2023-07-14 19:35:33 +00:00
|
|
|
local XGWNode = require("XEntity/XGuildWar/Battle/Node/XGWNode")
|
|
|
|
-- 普通区节点
|
|
|
|
local XNormalGWNode = XClass(XGWNode, "XNormalGWNode")
|
|
|
|
|
|
|
|
function XNormalGWNode:Ctor(id)
|
|
|
|
end
|
|
|
|
|
|
|
|
-- data : XGuildWarNodeData
|
|
|
|
function XNormalGWNode:UpdateWithServerData(data)
|
|
|
|
XNormalGWNode.Super.UpdateWithServerData(self, data)
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 获取节点当前精英怪
|
|
|
|
-- return : { XGWEliteMonster }
|
|
|
|
function XNormalGWNode:GetEliteMonsters(checkIsDead)
|
|
|
|
return XDataCenter.GuildWarManager
|
|
|
|
.GetBattleManager():GetMonstersByNodeId(self:GetId(), checkIsDead)
|
|
|
|
end
|
|
|
|
|
|
|
|
function XNormalGWNode:GetCurrentEliteMonster(checkIsDead)
|
|
|
|
local monsters = self:GetEliteMonsters(checkIsDead)
|
|
|
|
table.sort(monsters, function(aMonster, bMonster)
|
|
|
|
return aMonster:GetUID() > bMonster:GetUID()
|
|
|
|
end)
|
|
|
|
return monsters[1]
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 获取节点当前是否在战斗中
|
|
|
|
function XNormalGWNode:GetIsInBattle()
|
|
|
|
if self:GetMemberCount() > 0 then
|
|
|
|
if next(self:GetEliteMonsters()) or (self:GetStutesType() == XGuildWarConfig.NodeStatusType.Alive) then
|
|
|
|
return true
|
|
|
|
else
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
else
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function XNormalGWNode:GetIsCanBattle()
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 获取展示节点怪物的图标
|
|
|
|
function XNormalGWNode:GetShowMonsterIcon()
|
|
|
|
return self.Config.ShowMonsterIcon
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 获取展示节点怪物的名称
|
|
|
|
function XNormalGWNode:GetShowMonsterName()
|
|
|
|
return self.Config.ShowMonsterName
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 获取当前节点当场最高伤害
|
|
|
|
function XNormalGWNode:GetMaxDamage()
|
|
|
|
local aliveType = XGuildWarConfig.FightRecordAliveType.Alive
|
|
|
|
return XDataCenter.GuildWarManager
|
|
|
|
.GetBattleManager():GetMaxDamageByUID(self.UID, aliveType)
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 检查是否能够战斗
|
|
|
|
function XNormalGWNode:CheckCanFight()
|
|
|
|
local currentEnergy = XDataCenter.GuildWarManager.GetCurrentActionPoint()
|
|
|
|
return currentEnergy >= self.Config.FightCostEnergy
|
|
|
|
end
|
|
|
|
|
|
|
|
-- 检查是否能够扫荡
|
|
|
|
function XNormalGWNode:CheckCanSweep(checkCostEnergy)
|
|
|
|
if self:GetIsDead() then
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
if self:GetMaxDamage() <= 0 then
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
if checkCostEnergy then
|
|
|
|
return XDataCenter.GuildWarManager.GetCurrentActionPoint() >= self.Config.SweepCostEnergy
|
|
|
|
end
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
function XNormalGWNode:GetFightCostEnergy()
|
|
|
|
return self.Config.FightCostEnergy
|
|
|
|
end
|
|
|
|
|
|
|
|
function XNormalGWNode:GetSweepCostEnergy()
|
|
|
|
return self.Config.SweepCostEnergy
|
|
|
|
end
|
|
|
|
|
|
|
|
function XNormalGWNode:GetStageId()
|
2024-09-01 20:49:41 +00:00
|
|
|
if self.Config.GuildWarStageId == 0 then
|
|
|
|
return 0
|
|
|
|
end
|
2023-07-14 19:35:33 +00:00
|
|
|
return XGuildWarConfig.GetCfgByIdKey(XGuildWarConfig.TableKey.Stage
|
|
|
|
, self.Config.GuildWarStageId).StageId
|
|
|
|
end
|
|
|
|
|
|
|
|
return XNormalGWNode
|