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,6 +1877,18 @@ function Adv:clickBlock(roomId, blockId, params) | ||
1877 | return | 1877 | return |
1878 | end | 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 | if block:isHinder() then | 1892 | if block:isHinder() then |
1881 | if not checkAroundBlocks(true) then return end | 1893 | if not checkAroundBlocks(true) then return end |
1882 | end | 1894 | end |
src/adv/AdvBuff.lua
@@ -38,6 +38,7 @@ Buff.GET_PASSIVE = 34 -- 获得 passive -- 结束失效 | @@ -38,6 +38,7 @@ Buff.GET_PASSIVE = 34 -- 获得 passive -- 结束失效 | ||
38 | Buff.OBSTACLE_CHANGE = 35 -- 看守类型改变 -- 怪物使用 2 - 1 | 38 | Buff.OBSTACLE_CHANGE = 35 -- 看守类型改变 -- 怪物使用 2 - 1 |
39 | Buff.DISABLE_AURA = 36 -- 禁用光环 | 39 | Buff.DISABLE_AURA = 36 -- 禁用光环 |
40 | Buff.GET_AURA = 37 -- 获得光环 | 40 | Buff.GET_AURA = 37 -- 获得光环 |
41 | +Buff.OBSTACLE_PLUS = 38 -- 周围8格不能点击 | ||
41 | 42 | ||
42 | 43 | ||
43 | --角色一些属性的变化 | 44 | --角色一些属性的变化 |
src/adv/AdvMap.lua
@@ -383,6 +383,24 @@ function Map:getAroundBlocks(room, block) | @@ -383,6 +383,24 @@ function Map:getAroundBlocks(room, block) | ||
383 | return blocks | 383 | return blocks |
384 | end | 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 | function Map:getBlocksBySize(roomId, blockId, size) | 404 | function Map:getBlocksBySize(roomId, blockId, size) |
387 | local blocks = {} | 405 | local blocks = {} |
388 | local room = self.rooms[roomId] | 406 | local room = self.rooms[roomId] |