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] | ... | ... |