Commit c8c957e44c70cc66988744da4974e59517e1a78b

Authored by zhouhaihai
1 parent f02ffa27

必要时删除建筑

Showing 2 changed files with 26 additions and 0 deletions   Show diff stats
src/adv/Adv.lua
... ... @@ -989,6 +989,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
989 989 end
990 990 end,
991 991 [3] = function() --发现怪物
  992 + if block:getEventType() == AdvEventType.Build then
  993 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  994 + end
992 995 self:getCurMap():addNewMonsterRand(effect[2], {room, block})
993 996 self:pushBackEvent(AdvBackEventType.Monster, {id = effect[2]})
994 997 clearBlock = false
... ... @@ -1015,6 +1018,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1015 1018 clearBlock = false
1016 1019 end,
1017 1020 [7] = function() -- 建筑
  1021 + if block:getEventType() == AdvEventType.Build then
  1022 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1023 + end
1018 1024 block:updateEvent({
1019 1025 etype = AdvEventType.Build,
1020 1026 id = effect[2]
... ... @@ -1023,6 +1029,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1023 1029 clearBlock = false
1024 1030 end,
1025 1031 [8] = function() -- 选择
  1032 + if block:getEventType() == AdvEventType.Build then
  1033 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1034 + end
1026 1035 block:updateEvent({
1027 1036 etype = AdvEventType.Choose,
1028 1037 id = effect[2]
... ... @@ -1031,6 +1040,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1031 1040 clearBlock = false
1032 1041 end,
1033 1042 [9] = function() -- click
  1043 + if block:getEventType() == AdvEventType.Build then
  1044 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1045 + end
1034 1046 block:updateEvent({
1035 1047 etype = AdvEventType.Click,
1036 1048 id = effect[2]
... ... @@ -1039,6 +1051,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1039 1051 clearBlock = false
1040 1052 end,
1041 1053 [10] = function() -- 陷阱
  1054 + if block:getEventType() == AdvEventType.Build then
  1055 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1056 + end
1042 1057 block:updateEvent({
1043 1058 etype = AdvEventType.Trap,
1044 1059 id = effect[2]
... ...
src/adv/AdvBattle.lua
... ... @@ -234,6 +234,17 @@ function Battle:removeEnemyById(id)
234 234 end
235 235 end
236 236 end
  237 +-- 只是从战斗中移除 从地图中移除 在外面操作
  238 +function Battle:removeBuildByPos(roomId, blockId)
  239 + local mapIdx = self.adv:getCurMapIdx()
  240 + for i = #self.builds[mapIdx], 1, -1 do
  241 + if self.builds[mapIdx][i].roomId == roomId and self.builds[mapIdx][i].blockId == blockId then
  242 + local build = table.remove(self.builds[mapIdx], i)
  243 + build:clear()
  244 + break
  245 + end
  246 + end
  247 +end
237 248  
238 249 --回合
239 250 function Battle:afterRound()
... ...