Commit be2bc68b492e6a3a91c94cb4292e23e0351dde9e

Authored by zhouhaihai
1 parent 32b5d614

看守周围的格子

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
... ... @@ -38,6 +38,7 @@ Buff.GET_PASSIVE = 34 -- 获得 passive -- 结束失效
38 38 Buff.OBSTACLE_CHANGE = 35 -- 看守类型改变 -- 怪物使用 2 - 1
39 39 Buff.DISABLE_AURA = 36 -- 禁用光环
40 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 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]
... ...