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