Commit c8c957e44c70cc66988744da4974e59517e1a78b
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() | ... | ... |