diff --git a/lua/app/module/battle/controller/battle_controller.lua b/lua/app/module/battle/controller/battle_controller.lua index 84185f35..bc701df8 100644 --- a/lua/app/module/battle/controller/battle_controller.lua +++ b/lua/app/module/battle/controller/battle_controller.lua @@ -526,6 +526,10 @@ function BattleController:onTouchEvent(eventType, posId, isVirtual) if eventType == ELIMINATION_TOUCH_EVENT.DOWN then self:onLinkStart(entity, posId, isVirtual) elseif eventType == ELIMINATION_TOUCH_EVENT.ENTER then + if self.battleData:getIsVirtual() then + return + end + self:onLinkEnter(entity, posId, isVirtual) elseif eventType == ELIMINATION_TOUCH_EVENT.EXIT then @@ -557,7 +561,7 @@ function BattleController:onLinkStart(entity, posId, isVirtual) if #self.battleData:getGridSequence() > 0 then self.battleData:clearGridSequence() end - self.battleData:insertGridSequence(posId, self:snapshotBoard()) + self.battleData:insertGridSequence(posId, self:snapshotBoard(), isVirtual) local skillEntity = self.battleData:getSkillEntityBySkillId(entity:getSkillId()) local maskElementType = entity:getElementType(skillEntity) self.battleUI:showBoardMask(maskElementType) @@ -633,7 +637,7 @@ function BattleController:onLinkEnter(entity, posId, isVirtual) local maskElementType = elementType or lastElementType self.battleUI:showBoardMask(maskElementType) - self.battleData:insertGridSequence(posId, self:snapshotBoard()) + self.battleData:insertGridSequence(posId, self:snapshotBoard(), isVirtual) if lastEntity:getNeedChangePos() and not entity:getNeedChangePos() then -- 需要移动到队列末尾 local lastSkillId = lastEntity:getSkillId() local skillId = entity:getSkillId() diff --git a/lua/app/userdata/battle/battle_data.lua b/lua/app/userdata/battle/battle_data.lua index 23b3d484..4d823076 100644 --- a/lua/app/userdata/battle/battle_data.lua +++ b/lua/app/userdata/battle/battle_data.lua @@ -180,6 +180,10 @@ function BattleData:alreadyInsertSequence(posId) return self.gridSequenceMap[posId] == true end +function BattleData:getIsVirtual() + return self.isVirtual +end + function BattleData:getSequenceHadSkill() for _, info in ipairs(self:getGridSequence()) do local entity = self.gridEntities[info.posId] @@ -190,12 +194,13 @@ function BattleData:getSequenceHadSkill() return end -function BattleData:insertGridSequence(posId, snapshot) +function BattleData:insertGridSequence(posId, snapshot, isVirtual) if self:alreadyInsertSequence(posId) then return false end self.gridSequenceMap[posId] = true + self.isVirtual = isVirtual table.insert(self.gridSequence, {posId = posId, snapshot = snapshot}) return true end @@ -248,6 +253,7 @@ end function BattleData:clearGridSequence() self.gridSequence = {} -- 格子队列 self.gridSequenceMap = {} -- 格子队列对应的map,方面查找 + self.isVirtual = nil self:clearSkillInfluenceGrids() end