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