棋盘技能
This commit is contained in:
parent
d281a2261d
commit
09e85e9dba
@ -594,6 +594,8 @@ BattleConst.SKILL_TYPE = {
|
||||
NORMAL = 0,
|
||||
ELIMINATION = 1,
|
||||
CHANGE_AROUND = 2,
|
||||
-- 3 暂不处理
|
||||
ELIMINATION_GRID_AND_ELEMENT = 4,
|
||||
}
|
||||
|
||||
BattleConst.SKILL_METHOD_TYPE = {
|
||||
|
||||
@ -10,7 +10,7 @@ local function _takeElimination(posId, skillEntity, gridEntities, sequenceEntiti
|
||||
if boardrange then
|
||||
local cludePosIdsMap = {}
|
||||
for posId, entity in pairs(gridEntities) do
|
||||
if entity:canInfluenceBySkill() then
|
||||
if entity:isEmptyIdle() then
|
||||
cludePosIdsMap[posId] = true
|
||||
end
|
||||
end
|
||||
@ -46,9 +46,32 @@ local function _takeChangeAround(posId, skillEntity, gridEntities, sequenceEntit
|
||||
end
|
||||
end
|
||||
|
||||
local function _takeEliminationGridAndElement(posId, skillEntity, gridEntities, sequenceEntities)
|
||||
local boardrange = skillEntity:getBoardRange()
|
||||
if boardrange then
|
||||
local cludePosIdsMap = {}
|
||||
for posId, entity in pairs(gridEntities) do
|
||||
if entity:isNotObstacleIdle() then
|
||||
cludePosIdsMap[posId] = true
|
||||
end
|
||||
end
|
||||
-- for _, entity in ipairs(sequenceEntities) do
|
||||
-- cludePosIdsMap[entity:getPosId()] = nil
|
||||
-- end
|
||||
local posIdInfos = ModuleManager.BattleManager:getAroundPosIdsByList(posId, boardrange, cludePosIdsMap)
|
||||
cludePosIdsMap = {}
|
||||
for _, info in ipairs(posIdInfos) do
|
||||
cludePosIdsMap[info.posId] = info
|
||||
end
|
||||
|
||||
DataManager.BattleData:cacheSkillInfluenceGrids(cludePosIdsMap)
|
||||
end
|
||||
end
|
||||
|
||||
BattleBoardSkillHandle._activeBoardSkill = {
|
||||
[SKILL_TYPE.ELIMINATION] = _takeElimination,
|
||||
[SKILL_TYPE.CHANGE_AROUND] = _takeChangeAround,
|
||||
[SKILL_TYPE.ELIMINATION_GRID_AND_ELEMENT] = _takeEliminationGridAndElement,
|
||||
}
|
||||
|
||||
function BattleBoardSkillHandle.activeBoardSkill(posId, skillEntity, gridEntities, sequenceEntities)
|
||||
|
||||
@ -173,15 +173,15 @@ function BattleGridEntity:canChangeInfo()
|
||||
return false
|
||||
end
|
||||
|
||||
function BattleGridEntity:canInfluenceBySkill()
|
||||
if self:isEmptyType() and not self:getIsIdle() then
|
||||
function BattleGridEntity:isEmptyIdle()
|
||||
if self:isEmptyType() and not self:getSkillId() and not self:getIsIdle() then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function BattleGridEntity:isEmptyIdle()
|
||||
if self:isEmptyType() and not self:getSkillId() then
|
||||
function BattleGridEntity:isNotObstacleIdle()
|
||||
if not self:isObstacleType() and not self:getSkillId() and not self:getIsIdle() then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user