Commit c8c957e44c70cc66988744da4974e59517e1a78b

Authored by zhouhaihai
1 parent f02ffa27

必要时删除建筑

Showing 2 changed files with 26 additions and 0 deletions   Show diff stats
@@ -989,6 +989,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -989,6 +989,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
989 end 989 end
990 end, 990 end,
991 [3] = function() --发现怪物 991 [3] = function() --发现怪物
  992 + if block:getEventType() == AdvEventType.Build then
  993 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  994 + end
992 self:getCurMap():addNewMonsterRand(effect[2], {room, block}) 995 self:getCurMap():addNewMonsterRand(effect[2], {room, block})
993 self:pushBackEvent(AdvBackEventType.Monster, {id = effect[2]}) 996 self:pushBackEvent(AdvBackEventType.Monster, {id = effect[2]})
994 clearBlock = false 997 clearBlock = false
@@ -1015,6 +1018,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1015,6 +1018,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1015 clearBlock = false 1018 clearBlock = false
1016 end, 1019 end,
1017 [7] = function() -- 建筑 1020 [7] = function() -- 建筑
  1021 + if block:getEventType() == AdvEventType.Build then
  1022 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1023 + end
1018 block:updateEvent({ 1024 block:updateEvent({
1019 etype = AdvEventType.Build, 1025 etype = AdvEventType.Build,
1020 id = effect[2] 1026 id = effect[2]
@@ -1023,6 +1029,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1023,6 +1029,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1023 clearBlock = false 1029 clearBlock = false
1024 end, 1030 end,
1025 [8] = function() -- 选择 1031 [8] = function() -- 选择
  1032 + if block:getEventType() == AdvEventType.Build then
  1033 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1034 + end
1026 block:updateEvent({ 1035 block:updateEvent({
1027 etype = AdvEventType.Choose, 1036 etype = AdvEventType.Choose,
1028 id = effect[2] 1037 id = effect[2]
@@ -1031,6 +1040,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1031,6 +1040,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1031 clearBlock = false 1040 clearBlock = false
1032 end, 1041 end,
1033 [9] = function() -- click 1042 [9] = function() -- click
  1043 + if block:getEventType() == AdvEventType.Build then
  1044 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1045 + end
1034 block:updateEvent({ 1046 block:updateEvent({
1035 etype = AdvEventType.Click, 1047 etype = AdvEventType.Click,
1036 id = effect[2] 1048 id = effect[2]
@@ -1039,6 +1051,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1039,6 +1051,9 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1039 clearBlock = false 1051 clearBlock = false
1040 end, 1052 end,
1041 [10] = function() -- 陷阱 1053 [10] = function() -- 陷阱
  1054 + if block:getEventType() == AdvEventType.Build then
  1055 + self.battle:removeBuildByPos(room.roomId, block.blockId)
  1056 + end
1042 block:updateEvent({ 1057 block:updateEvent({
1043 etype = AdvEventType.Trap, 1058 etype = AdvEventType.Trap,
1044 id = effect[2] 1059 id = effect[2]
src/adv/AdvBattle.lua
@@ -234,6 +234,17 @@ function Battle:removeEnemyById(id) @@ -234,6 +234,17 @@ function Battle:removeEnemyById(id)
234 end 234 end
235 end 235 end
236 end 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 function Battle:afterRound() 250 function Battle:afterRound()