Commit e1b26027f2079cdbf4af03839cc088dd981ca614
1 parent
e085da41
增加移除项目排除功能
Showing
2 changed files
with
11 additions
and
5 deletions
Show diff stats
src/adv/AdvMap.lua
... | ... | @@ -188,14 +188,16 @@ function Map:eventChangeToOther(eventTypeF, eventIdF, eventTypeT, eventIdT, coun |
188 | 188 | return change |
189 | 189 | end |
190 | 190 | |
191 | -function Map:clearEventById(eventType, eventId, count) | |
191 | +function Map:clearEventById(eventType, eventId, count, exclude) | |
192 | 192 | count = count or 0 |
193 | 193 | eventId = eventId or 0 |
194 | + exclude = exclude or {} | |
194 | 195 | |
195 | 196 | local pool = {} |
196 | - for _, room_ in pairs(self.rooms) do | |
197 | - for _, block_ in pairs(room_.blocks) do | |
198 | - if block_.isOpen and block_:getEventType() == eventType and (eventId == 0 or block_.event.id == eventId) then | |
197 | + for roomId, room_ in pairs(self.rooms) do | |
198 | + exclude[roomId] = exclude[roomId] or {} | |
199 | + for blockId, block_ in pairs(room_.blocks) do | |
200 | + if not exclude[roomId][blockId] and block_.isOpen and block_:getEventType() == eventType and (eventId == 0 or block_.event.id == eventId) then | |
199 | 201 | table.insert(pool, {room_, block_}) |
200 | 202 | end |
201 | 203 | end | ... | ... |
src/adv/AdvPassive.lua
... | ... | @@ -497,7 +497,11 @@ end |
497 | 497 | |
498 | 498 | -- 移除指定项目 |
499 | 499 | function Passive:effect13(eventType, triggerPms, eventId, count) |
500 | - local change = self.owner.battle.adv:getCurMap():clearEventById(eventType, eventId, count) | |
500 | + local exclude = {} | |
501 | + if self.owner:is("Enemy") then | |
502 | + exclude[self.owner.roomId] = {[self.owner.blockId] = 1} | |
503 | + end | |
504 | + local change = self.owner.battle.adv:getCurMap():clearEventById(eventType, eventId, count, exclude) | |
501 | 505 | for _, one in ipairs(change) do |
502 | 506 | self.owner.battle.adv:backBlockChange(one[1].roomId, one[2].blockId) |
503 | 507 | end | ... | ... |