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