74 lines
2.8 KiB
Lua
74 lines
2.8 KiB
Lua
|
local XUiPromotionWay = XLuaUiManager.Register(XLuaUi, "UiPromotionWay")
|
||
|
|
||
|
function XUiPromotionWay:OnStart(showAbility, teamData, stageFightControlId, stageId)
|
||
|
self.StageFightControlId = stageFightControlId
|
||
|
self.TeamData = teamData
|
||
|
self.ShowAbility = showAbility
|
||
|
self.StageId = stageId
|
||
|
self.BtnClose.CallBack = function() self:OnBtnClose() end
|
||
|
self.BtnCharacterJump.CallBack = function() self:OnBtnCharacterJump() end
|
||
|
self.BtnEquipJump.CallBack = function() self:OnBtnEquipJump() end
|
||
|
|
||
|
local _, stageName = XDataCenter.FubenManager.GetFubenNames(self.StageId)
|
||
|
self.TxtTitle.text = stageName
|
||
|
end
|
||
|
|
||
|
function XUiPromotionWay:OnEnable()
|
||
|
self:UpdateData()
|
||
|
end
|
||
|
|
||
|
function XUiPromotionWay:OnBtnClose()
|
||
|
self:Close()
|
||
|
end
|
||
|
|
||
|
function XUiPromotionWay:OnBtnCharacterJump()
|
||
|
XLuaUiManager.Open("UiCharacter", self.TeamData[self.TargetCharacter], nil, nil, nil, true)
|
||
|
end
|
||
|
|
||
|
function XUiPromotionWay:OnBtnEquipJump()
|
||
|
XLuaUiManager.Open("UiCharacter", self.TeamData[self.TargetCharacter])
|
||
|
end
|
||
|
|
||
|
function XUiPromotionWay:UpdateData()
|
||
|
local data = XFubenConfigs.GetStageFightControl(self.StageFightControlId)
|
||
|
local targetAbility
|
||
|
if data.MaxShowFight > 0 then
|
||
|
targetAbility = data.MaxShowFight
|
||
|
elseif data.AvgShowFight > 0 then
|
||
|
targetAbility = data.AvgShowFight
|
||
|
else
|
||
|
targetAbility = data.ShowFight
|
||
|
end
|
||
|
--找出最接近战力限制的为显示目标
|
||
|
local teamAbility = {}
|
||
|
for i = 1, #self.TeamData do
|
||
|
local character = XDataCenter.CharacterManager.GetCharacter(self.TeamData[i])
|
||
|
if character == nil then
|
||
|
table.insert(teamAbility, 0)
|
||
|
else
|
||
|
table.insert(teamAbility, character.Ability)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local targetCharacter = 1
|
||
|
for i = 2, #self.TeamData do
|
||
|
if targetAbility - teamAbility[i] > 0 and targetAbility - teamAbility[i] < math.abs(targetAbility - teamAbility[targetCharacter]) then
|
||
|
targetCharacter = i
|
||
|
end
|
||
|
end
|
||
|
|
||
|
targetCharacter = self.TeamData[targetCharacter] ~= 0 and targetCharacter or self.TargetCharacter
|
||
|
|
||
|
self.TargetCharacter = targetCharacter
|
||
|
local targetCharacterAbility = data.CharacterFight
|
||
|
local targetEquipAbility = data.EquipFight
|
||
|
local equipAbility = XDataCenter.EquipManager.GetEquipAbility(self.TeamData[targetCharacter])
|
||
|
local characterAbility = teamAbility[targetCharacter] - equipAbility
|
||
|
|
||
|
self.TxtCharacter.text = math.floor(characterAbility / targetCharacterAbility * 100) .. "%"
|
||
|
self.ImgCharacterProgress.fillAmount = 0
|
||
|
self.ImgCharacterProgress:DOFillAmount(characterAbility / targetCharacterAbility, 0.5)
|
||
|
self.TxtEquip.text = math.floor(equipAbility / targetEquipAbility * 100) .. "%"
|
||
|
self.ImgEquipProgress.fillAmount = 0
|
||
|
self.ImgEquipProgress:DOFillAmount(equipAbility / targetEquipAbility, 0.5)
|
||
|
end
|