Commit be2bc68b492e6a3a91c94cb4292e23e0351dde9e
1 parent
32b5d614
看守周围的格子
Showing
3 changed files
with
31 additions
and
0 deletions
Show diff stats
src/adv/Adv.lua
... | ... | @@ -1877,6 +1877,18 @@ function Adv:clickBlock(roomId, blockId, params) |
1877 | 1877 | return |
1878 | 1878 | end |
1879 | 1879 | |
1880 | + if not block:isMonster() then | |
1881 | + for _, one in ipairs(map:getAroundBlocksPlus(room, block)) do | |
1882 | + local _room, _block = one[1], one[2] | |
1883 | + if _block:isMonster() then | |
1884 | + local enemy = self.battle:getEnemy(_room.roomId, _block.blockId) | |
1885 | + if enemy:hadBuff(Buff.OBSTACLE_PLUS) then | |
1886 | + return | |
1887 | + end | |
1888 | + end | |
1889 | + end | |
1890 | + end | |
1891 | + | |
1880 | 1892 | if block:isHinder() then |
1881 | 1893 | if not checkAroundBlocks(true) then return end |
1882 | 1894 | end | ... | ... |
src/adv/AdvBuff.lua
src/adv/AdvMap.lua
... | ... | @@ -383,6 +383,24 @@ function Map:getAroundBlocks(room, block) |
383 | 383 | return blocks |
384 | 384 | end |
385 | 385 | |
386 | +function Map:getAroundBlocksPlus(room, block) | |
387 | + local blocks = {} | |
388 | + local range = {1, 0, -1} | |
389 | + local col, row = room:tranLtoG(block.col, block.row) | |
390 | + for _, c in ipairs(range) do | |
391 | + for _, r in ipairs(range) do | |
392 | + if c == 0 and r == 0 then | |
393 | + else | |
394 | + local rroom, rblock = self:getRBByPos(col + c, row + r) | |
395 | + if rroom then | |
396 | + table.insert(blocks, {rroom, rblock}) | |
397 | + end | |
398 | + end | |
399 | + end | |
400 | + end | |
401 | + return blocks | |
402 | +end | |
403 | + | |
386 | 404 | function Map:getBlocksBySize(roomId, blockId, size) |
387 | 405 | local blocks = {} |
388 | 406 | local room = self.rooms[roomId] | ... | ... |