PGRData/Script/matrix/xui/xuicommon/XUiNewRoomFightControl.lua

195 lines
No EOL
7.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

XUiNewRoomFightControl = XClass(nil, "XUiNewRoomFightControl")
local WarningLevel = {
NoWarning = 1, -- 没有警告
Warning = 2, -- 困难
Danger = 3 -- 极度危险
}
--战力限制组件
function XUiNewRoomFightControl:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
end
function XUiNewRoomFightControl:UpdateByTextAndWarningLevel(warningLevel, controlName, recommendNum, curNumText)
self.BtnTishen.gameObject:SetActiveEx(false)
if warningLevel == WarningLevel.NoWarning then
self.GameObject:SetActiveEx(false)
return
end
self.GameObject:SetActiveEx(true)
self.Normal.gameObject:SetActiveEx(false)
self.Ex.gameObject:SetActiveEx(warningLevel == WarningLevel.Danger)
self.Hard.gameObject:SetActiveEx(warningLevel == WarningLevel.Warning)
if warningLevel == WarningLevel.Warning then
self.TxtHardControlName.text = controlName
self.TxtHardMaxFight.text = recommendNum
self.TxtHardCurFight.text = curNumText
elseif warningLevel == WarningLevel.Danger then
self.TxtExControlName.text = controlName
self.TxtExMaxFight.text = recommendNum
self.TxtExCurFight.text = curNumText
end
return
end
function XUiNewRoomFightControl:UpdateInfo(stageFightControlId, teamAbility, condition, stageId, teamData)
self.TeamData = teamData
self.StageId = stageId
self.StageFightControlId = stageFightControlId
self.TeamAbility = teamAbility
self.GameObject:SetActiveEx(true)
self.Ex.gameObject:SetActiveEx(false)
self.Hard.gameObject:SetActiveEx(false)
self.Normal.gameObject:SetActiveEx(false)
self.BtnTishen.gameObject:SetActiveEx(false)
self.BtnTishen.CallBack = function() self:OnBtnTishen() end
self.Result = XUiFightControlState.Normal
local data = XFubenConfigs.GetStageFightControl(self.StageFightControlId)
if data == nil then
return
end
local showAbility = 0
local charlist = XDataCenter.CharacterManager.GetCharacterList()
local dis
local recommendFight
local showFight
--平均战力有几个人不满足
local avgCount
--上阵了几个人(用于判断一个人都没上的情况)
local teamCount = 0
for _, v in pairs(self.TeamAbility) do
if v > 0 then
teamCount = teamCount + 1
end
end
--最高战力,找出战力最高的
if data.MaxRecommendFight > 0 then
dis = CS.XTextManager.GetText("MaxRecommendFight")
for _, v in pairs(self.TeamAbility) do
if v and v > showAbility then
showAbility = v
end
end
showAbility = math.floor(showAbility)
recommendFight = data.MaxRecommendFight
showFight = data.MaxShowFight
--平均战力(找出有几个低于AvgShowFight找出最低的那个计算危险程度)
elseif data.AvgRecommendFight > 0 then
dis = CS.XTextManager.GetText("AvgRecommendFight")
local count = 0
local noPlayer = true
local minAbility = 99999
for _, v in pairs(self.TeamAbility) do
if v > 0 then
noPlayer = false
if v < data.AvgShowFight then
count = count + 1
end
if v < minAbility then
minAbility = v
end
end
end
avgCount = count
if noPlayer then
showAbility = 0
elseif count == 0 then
showAbility = data.AvgShowFight
else
showAbility = minAbility
end
recommendFight = data.AvgRecommendFight
showFight = data.AvgShowFight
--显示推荐战力,找出最高战力
elseif data.RecommendFight > 0 then
dis = CS.XTextManager.GetText("RecommendFight")
for _, v in pairs(charlist) do
if v.Ability and v.Ability > showAbility then
showAbility = v.Ability
end
end
showAbility = math.floor(showAbility)
recommendFight = data.RecommendFight
showFight = data.ShowFight
end
self.TxtNormalControlName.text = dis
self.TxtHardControlName.text = dis
self.TxtExControlName.text = dis
if condition then--不满足条件直接极度困难
--极度困难
if showAbility < recommendFight then
self.Ex.gameObject:SetActiveEx(true)
self.BtnTishen.gameObject:SetActiveEx(teamCount > 0)
if data.MaxRecommendFight > 0 then
self.TxtExCurFight.text = CS.XTextManager.GetText("MaxCurRecommendFight", showAbility)
elseif data.AvgRecommendFight > 0 then
if teamCount > 0 then
self.TxtExCurFight.text = CS.XTextManager.GetText("AvgCurRecommendFight", avgCount)
else
self.TxtExCurFight.text = CS.XTextManager.GetText("FightConditionError")
end
elseif data.RecommendFight > 0 then
self.TxtExCurFight.text = CS.XTextManager.GetText("MaxCurRecommendFight", showAbility)
end
self.TxtExMaxFight.text = showFight
self.Result = XUiFightControlState.Ex
--困难
elseif showAbility >= recommendFight and showAbility < showFight then
self.Hard.gameObject:SetActiveEx(true)
self.BtnTishen.gameObject:SetActiveEx(teamCount > 0)
if data.MaxRecommendFight > 0 then
self.TxtHardCurFight.text = CS.XTextManager.GetText("MaxCurRecommendFight", showAbility)
elseif data.AvgRecommendFight > 0 then
if teamCount > 0 then
self.TxtHardCurFight.text = CS.XTextManager.GetText("AvgCurRecommendFight", avgCount)
else
self.TxtHardCurFight.text = CS.XTextManager.GetText("FightConditionError")
end
elseif data.RecommendFight > 0 then
self.TxtHardCurFight.text = CS.XTextManager.GetText("MaxCurRecommendFight", showAbility)
end
self.TxtHardMaxFight.text = showFight
self.Result = XUiFightControlState.Hard
--普通(不显示)
-- elseif showAbility >= showFight then
end
else
self.Ex.gameObject:SetActiveEx(true)
self.TxtExCurFight.text = CS.XTextManager.GetText("FightConditionError")
self.TxtExMaxFight.text = showFight
self.Result = XUiFightControlState.Ex
end
self.ShowAbility = showAbility
return self.Result
end
function XUiNewRoomFightControl:GetResult()
local tipContent = ""
local config = XFubenConfigs.GetStageFightControl(self.StageFightControlId)
if config == nil then
return nil
end
if config.MaxRecommendFight > 0 then
tipContent = XUiHelper.GetText("Insufficient", config.MaxShowFight)
elseif config.AvgRecommendFight > 0 then
local count = 0
for _, v in pairs(self.TeamAbility) do
if v > 0 then
if v < config.AvgShowFight then
count = count + 1
end
end
end
tipContent = XUiHelper.GetText("AvgInsufficient", count, config.AvgShowFight)
else
tipContent = XUiHelper.GetText("Insufficient", config.ShowFight)
end
return self.Result, tipContent
end
function XUiNewRoomFightControl:OnBtnTishen()
XLuaUiManager.Open("UiPromotionWay", self.ShowAbility, self.TeamData, self.StageFightControlId, self.StageId)
end