588 lines
No EOL
23 KiB
Lua
588 lines
No EOL
23 KiB
Lua
local mathFloor = math.floor
|
||
local Lerp = CS.UnityEngine.Mathf.Lerp
|
||
local CSXScheduleManagerUnSchedule = XScheduleManager.UnSchedule
|
||
local CsXTextManagerGetText = CsXTextManagerGetText
|
||
|
||
local SCORE_ANIM_DURATION = 1--分数滚动动画时间
|
||
local CONDITION_COLOR = {
|
||
[true] = CS.UnityEngine.Color.red,
|
||
[false] = CS.UnityEngine.Color.white,
|
||
}
|
||
local CONDITION_COLOR_FOR_TEXT = {
|
||
[true] = XUiHelper.Hexcolor2Color("ff3f3f"),
|
||
[false] = XUiHelper.Hexcolor2Color("59f5ff"),
|
||
}
|
||
|
||
local XUiStrongholdMain = XLuaUiManager.Register(XLuaUi, "UiStrongholdMain")
|
||
|
||
function XUiStrongholdMain:OnAwake()
|
||
self.AssetActivityPanel = XUiPanelActivityAsset.New(self.PanelSpecialTool)
|
||
local itemId = XDataCenter.StrongholdManager.GetMineralItemId()
|
||
XDataCenter.ItemManager.AddCountUpdateListener(itemId, function()
|
||
self.AssetActivityPanel:Refresh({ itemId })
|
||
end, self.AssetActivityPanel)
|
||
|
||
self.ImgUpEnergy.gameObject:SetActiveEx(false)
|
||
self.ImgUpMine.gameObject:SetActiveEx(false)
|
||
self.ImgUpPeople.gameObject:SetActiveEx(false)
|
||
|
||
self.BtnTeamZi = self:FindTransform("BtnTeamZi"):GetComponent("XUiButton")
|
||
|
||
self:AutoAddListener()
|
||
end
|
||
|
||
function XUiStrongholdMain:OnStart()
|
||
self:InitView()
|
||
|
||
--上期战报
|
||
if XDataCenter.StrongholdManager.CheckShowLastActivityRecord() then
|
||
XLuaUiManager.Open("UiStrongholdActivityResult")
|
||
XDataCenter.StrongholdManager.SetCookieGetCookieLastActivityRecord()
|
||
end
|
||
|
||
--在线重置后若重新进入活动,清除Flag
|
||
XDataCenter.StrongholdManager.ClearActivityEnd()
|
||
end
|
||
|
||
function XUiStrongholdMain:OnEnable()
|
||
if self.IsEnd then return end
|
||
|
||
--当从其他界面返回时检查活动是否被在线重置过
|
||
if XDataCenter.StrongholdManager.OnActivityEnd() then
|
||
self.IsEnd = true
|
||
return
|
||
end
|
||
|
||
self.AssetActivityPanel:Refresh({ XDataCenter.StrongholdManager.GetMineralItemId() })
|
||
self:UpdateLeftTime()
|
||
self:UpdateCurDay()
|
||
self:UpdateEndurance()
|
||
self:UpdateActivityStatus()
|
||
self:UpdateMine()
|
||
self:UpdateElectric()
|
||
self:UpdateAssistant()
|
||
self:UpdateRewards()
|
||
|
||
XDataCenter.StrongholdManager.CheckCookieAssistantFirstOpen()
|
||
end
|
||
|
||
function XUiStrongholdMain:OnDisable()
|
||
XCountDown.UnBindTimer(self, XCountDown.GTimerName.Stronghold)
|
||
self:DestroyMineTimer()
|
||
self:DestroyElectricTimer()
|
||
|
||
self.ImgUpEnergy.gameObject:SetActiveEx(false)
|
||
self.ImgUpMine.gameObject:SetActiveEx(false)
|
||
self.ImgUpPeople.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
function XUiStrongholdMain:OnGetEvents()
|
||
return {
|
||
XEventId.EVENT_STRONGHOLD_CUR_DAY_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_ACTIVITY_STATUS_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_PAUSE_DAY_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_MINERAL_LEFT_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_ENDURANCE_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_MAX_ELECTRIC_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_TEAMLIST_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_SHARE_CHARACTER_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_FINISH_GROUP_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_FINISH_REWARDS_CHANGE,
|
||
XEventId.EVENT_STRONGHOLD_ACTIVITY_END,
|
||
XEventId.EVENT_STRONGHOLD_ACTIVITY_RESULT_CHANGE,
|
||
}
|
||
end
|
||
|
||
function XUiStrongholdMain:OnNotify(evt, ...)
|
||
if self.IsEnd then return end
|
||
|
||
local args = { ... }
|
||
if evt == XEventId.EVENT_STRONGHOLD_CUR_DAY_CHANGE then
|
||
self:UpdateCurDay()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_ACTIVITY_STATUS_CHANGE
|
||
or evt == XEventId.EVENT_STRONGHOLD_PAUSE_DAY_CHANGE then
|
||
self.AssetActivityPanel:Refresh({ XDataCenter.StrongholdManager.GetMineralItemId() })
|
||
self:UpdateActivityStatus()
|
||
self:UpdateMine()
|
||
self:UpdateElectric()
|
||
self:UpdateLeftTime()
|
||
self:UpdateAssistant()
|
||
self:UpdateRewards()
|
||
self:UpdateEndurance()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_MINERAL_LEFT_CHANGE then
|
||
self:UpdateMine()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_ENDURANCE_CHANGE then
|
||
self:UpdateEndurance()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_TEAMLIST_CHANGE
|
||
or evt == XEventId.EVENT_STRONGHOLD_MAX_ELECTRIC_CHANGE then
|
||
self:UpdateElectric()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_SHARE_CHARACTER_CHANGE then
|
||
self:UpdateAssistant()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_FINISH_GROUP_CHANGE then
|
||
self:UpdateProgress()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_FINISH_REWARDS_CHANGE then
|
||
self:UpdateRewards()
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_ACTIVITY_END then
|
||
if XDataCenter.StrongholdManager.OnActivityEnd() then
|
||
self.IsEnd = true
|
||
return
|
||
end
|
||
elseif evt == XEventId.EVENT_STRONGHOLD_ACTIVITY_RESULT_CHANGE then
|
||
self:UpdatePanelEnd()
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:InitView()
|
||
local name = XStrongholdConfigs.GetActivityName()
|
||
self.TxtName = name
|
||
self.TxtTitleEnd = name
|
||
|
||
local levelId = XDataCenter.StrongholdManager.GetLevelId()
|
||
|
||
local levelName = XStrongholdConfigs.GetLevelName(levelId)
|
||
self.TxtLevelName.text = levelName
|
||
|
||
local minLevel, maxLevel = XStrongholdConfigs.GetLevelLimit(levelId)
|
||
self.TxtLevel.text = CsXTextManagerGetText("StrongholdLevelLimit", minLevel, maxLevel)
|
||
|
||
local levelIcon = XStrongholdConfigs.GetLevelIcon(levelId)
|
||
self:SetUiSprite(self.ImgIconLevel, levelIcon)
|
||
end
|
||
|
||
function XUiStrongholdMain:UpdateLeftTime()
|
||
if XDataCenter.StrongholdManager.IsActivityBegin() then
|
||
self.TxtSection.text = CsXTextManagerGetText("StrongholdSectionOne")
|
||
self.TxtSection.gameObject:SetActiveEx(true)
|
||
elseif XDataCenter.StrongholdManager.IsFightBegin() then
|
||
self.TxtSection.text = CsXTextManagerGetText("StrongholdSectionTwo")
|
||
self.TxtSection.gameObject:SetActiveEx(true)
|
||
else
|
||
self.TxtSection.gameObject:SetActiveEx(false)
|
||
end
|
||
|
||
XCountDown.UnBindTimer(self, XCountDown.GTimerName.Stronghold)
|
||
XCountDown.BindTimer(self, XCountDown.GTimerName.Stronghold, function(time)
|
||
time = time > 0 and time or 0
|
||
local timeText = XUiHelper.GetTime(time, XUiHelper.TimeFormatType.STRONGHOLD)
|
||
if XDataCenter.StrongholdManager.IsActivityBegin() then
|
||
self.TxtTime.text = CsXTextManagerGetText("StrongholdActivityTimeActivityBegin", timeText)
|
||
elseif XDataCenter.StrongholdManager.IsFightBegin() then
|
||
self.TxtTime.text = CsXTextManagerGetText("StrongholdActivityTimeFightBegin", timeText)
|
||
elseif XDataCenter.StrongholdManager.IsFightEnd() then
|
||
self.TxtTimeEnd.text = CsXTextManagerGetText("StrongholdActivityTimeFightEndExtra", timeText)
|
||
end
|
||
end)
|
||
end
|
||
|
||
function XUiStrongholdMain:UpdateCurDay()
|
||
local curDay = XDataCenter.StrongholdManager.GetCurDay()
|
||
self.TxtDay.text = curDay
|
||
|
||
local totalDay = XDataCenter.StrongholdManager.GetTotalDay()
|
||
self.TxtTotalDay.text = "/" .. totalDay
|
||
end
|
||
|
||
function XUiStrongholdMain:UpdateEndurance()
|
||
local curEndurance = XDataCenter.StrongholdManager.GetCurEndurance()
|
||
self.TxtEndurance.text = CsXTextManagerGetText("StrongholdEndurance", curEndurance)
|
||
|
||
local maxEndurance = XDataCenter.StrongholdManager.GetMaxEndurance()
|
||
local maxLimitEndurance = XDataCenter.StrongholdManager.GetMaxLimitEndurance()
|
||
|
||
if maxEndurance < maxLimitEndurance then
|
||
local isPaused = XDataCenter.StrongholdManager.IsDayPaused()
|
||
if isPaused then
|
||
local countTime = XDataCenter.StrongholdManager.GetDelayCountTimeStr()
|
||
self.TxtEnduranceTime.text = CsXTextManagerGetText("StrongholdEnduranceTimeDelay", countTime)
|
||
else
|
||
local countTime = XDataCenter.StrongholdManager.GetCountTimeStr()
|
||
self.TxtEnduranceTime.text = CsXTextManagerGetText("StrongholdEnduranceTime", countTime)
|
||
end
|
||
self.TxtEnduranceTime.color = CONDITION_COLOR_FOR_TEXT[isPaused]
|
||
self.TxtEnduranceTime.gameObject:SetActiveEx(true)
|
||
else
|
||
self.TxtEnduranceTime.gameObject:SetActiveEx(false)
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:UpdateProgress()
|
||
local finishCount, totalCount = XDataCenter.StrongholdManager.GetGroupProgress()
|
||
if not XDataCenter.StrongholdManager.IsChapterHardCanFight() then
|
||
self.BtnFight.gameObject:SetActiveEx(true)
|
||
self.BtnFightZi.gameObject:SetActiveEx(false)
|
||
|
||
self.BtnTeam.gameObject:SetActiveEx(true)
|
||
self.BtnTeamZi.gameObject:SetActiveEx(false)
|
||
|
||
self.TxtJd.text = finishCount .. "/" .. totalCount
|
||
self.ImgJd.fillAmount = totalCount ~= 0 and finishCount / totalCount or 0
|
||
else
|
||
self.BtnFightZi.gameObject:SetActiveEx(true)
|
||
self.BtnFight.gameObject:SetActiveEx(false)
|
||
|
||
self.BtnTeamZi.gameObject:SetActiveEx(true)
|
||
self.BtnTeam.gameObject:SetActiveEx(false)
|
||
|
||
self.TxtJdZi.text = finishCount .. "/" .. totalCount
|
||
self.ImgJdZi.fillAmount = totalCount ~= 0 and finishCount / totalCount or 0
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:UpdateRewards()
|
||
local isShowRed = XDataCenter.StrongholdManager.IsAnyRewardCanGet()
|
||
self.BtnReward:ShowReddot(isShowRed)
|
||
end
|
||
|
||
function XUiStrongholdMain:UpdateActivityStatus()
|
||
if XDataCenter.StrongholdManager.IsActivityBegin() then
|
||
|
||
self.PanelFighting.gameObject:SetActiveEx(true)
|
||
self.PanelEnd.gameObject:SetActiveEx(false)
|
||
self.PanelTime.gameObject:SetActiveEx(false)
|
||
self.PanelEndurance.gameObject:SetActiveEx(false)
|
||
self.BtnReward.gameObject:SetActiveEx(true)
|
||
if self.PanelMineTime then
|
||
self.PanelMineTime.gameObject:SetActiveEx(false)
|
||
end
|
||
self.BtnPower:ShowTag(false)
|
||
self.BtnStop.gameObject:SetActiveEx(false)
|
||
|
||
self:UpdateProgress()
|
||
elseif XDataCenter.StrongholdManager.IsFightBegin() then
|
||
|
||
self.PanelFighting.gameObject:SetActiveEx(true)
|
||
self.PanelEnd.gameObject:SetActiveEx(false)
|
||
self.PanelTime.gameObject:SetActiveEx(true)
|
||
self.PanelEndurance.gameObject:SetActiveEx(true)
|
||
self.BtnReward.gameObject:SetActiveEx(true)
|
||
if self.PanelMineTime then
|
||
self.PanelMineTime.gameObject:SetActiveEx(true)
|
||
end
|
||
self.BtnPower:ShowTag(true)
|
||
self.BtnStop.gameObject:SetActiveEx(true)
|
||
|
||
self:UpdateProgress()
|
||
elseif XDataCenter.StrongholdManager.IsFightEnd() then
|
||
|
||
self.PanelFighting.gameObject:SetActiveEx(false)
|
||
self.PanelEnd.gameObject:SetActiveEx(true)
|
||
self.PanelTime.gameObject:SetActiveEx(false)
|
||
self.PanelEndurance.gameObject:SetActiveEx(false)
|
||
self.BtnFight.gameObject:SetActiveEx(false)
|
||
self.BtnFightZi.gameObject:SetActiveEx(false)
|
||
self.BtnTeam.gameObject:SetActiveEx(false)
|
||
self.BtnTeamZi.gameObject:SetActiveEx(false)
|
||
self.BtnReward.gameObject:SetActiveEx(false)
|
||
if self.PanelMineTime then
|
||
self.PanelMineTime.gameObject:SetActiveEx(true)
|
||
end
|
||
self.BtnPower:ShowTag(true)
|
||
self.BtnStop.gameObject:SetActiveEx(false)
|
||
|
||
self:UpdatePanelEnd()
|
||
end
|
||
end
|
||
|
||
--矿场相关
|
||
function XUiStrongholdMain:UpdateMine()
|
||
local isPaused = XDataCenter.StrongholdManager.IsDayPaused()
|
||
if isPaused then
|
||
local countTime = XDataCenter.StrongholdManager.GetDelayCountTimeStr()
|
||
self.TxtMineTime.text = CsXTextManagerGetText("StrongholdMineTimeDelay", countTime)
|
||
else
|
||
local countTime = XDataCenter.StrongholdManager.GetCountTimeStr()
|
||
self.TxtMineTime.text = CsXTextManagerGetText("StrongholdMineTime", countTime)
|
||
end
|
||
self.TxtMineTime.color = CONDITION_COLOR_FOR_TEXT[isPaused]
|
||
|
||
local oldMinerCount = XDataCenter.StrongholdManager.GetCookieMinerCount()
|
||
local minerCount = XDataCenter.StrongholdManager.GetMinerCount()
|
||
local changeCount = oldMinerCount > 0 and minerCount - oldMinerCount or 0
|
||
if changeCount > 0 then
|
||
self:PlayMineUpAnim(oldMinerCount, minerCount)
|
||
else
|
||
local mineralCount = XDataCenter.StrongholdManager.GetMineralOutput(minerCount)
|
||
self.TxtPeople.text = minerCount
|
||
self.TxtMine.text = mineralCount
|
||
end
|
||
|
||
XDataCenter.StrongholdManager.SetCookieMinerCount(minerCount)
|
||
|
||
local isShow = XRedPointConditionStrongholdMineralLeft.Check()
|
||
self.BtnMine:ShowReddot(isShow)
|
||
end
|
||
|
||
--电厂相关
|
||
function XUiStrongholdMain:UpdateElectric()
|
||
local isPaused = XDataCenter.StrongholdManager.IsDayPaused()
|
||
if isPaused then
|
||
local countTime = XDataCenter.StrongholdManager.GetDelayCountTimeStr()
|
||
self.TxtElectricTime.text = CsXTextManagerGetText("StrongholdElectricTimeDelay", countTime)
|
||
else
|
||
local countTime = XDataCenter.StrongholdManager.GetCountTimeStr()
|
||
self.TxtElectricTime.text = CsXTextManagerGetText("StrongholdElectricTime", countTime)
|
||
end
|
||
self.TxtElectricTime.color = CONDITION_COLOR_FOR_TEXT[isPaused]
|
||
|
||
local oldCount = XDataCenter.StrongholdManager.GetCookieElectricEnergy()
|
||
local curCount = XDataCenter.StrongholdManager.GetTotalElectricEnergy()
|
||
local changeCount = oldCount > 0 and curCount - oldCount or 0
|
||
if changeCount > 0 then
|
||
self:PlayElectricUpAnim(oldCount, curCount)
|
||
else
|
||
self.TxtEnergyLimit.text = curCount
|
||
end
|
||
|
||
XDataCenter.StrongholdManager.SetCookieElectricEnergy(curCount)
|
||
|
||
local useElectric = XDataCenter.StrongholdManager.GetTotalUseElectricEnergy()
|
||
self.TxtEnergyUse.text = useElectric
|
||
self.TxtEnergyUse.color = CONDITION_COLOR[useElectric > curCount]
|
||
end
|
||
|
||
--支援角色
|
||
function XUiStrongholdMain:UpdateAssistant()
|
||
if not XDataCenter.StrongholdManager.CheckAssistantOpen() then
|
||
self.BtnAssistance.gameObject:SetActiveEx(false)
|
||
return
|
||
end
|
||
self.BtnAssistance.gameObject:SetActiveEx(true)
|
||
|
||
if XDataCenter.StrongholdManager.IsHaveAssistantCharacter() then
|
||
local characterId = XDataCenter.StrongholdManager.GetAssistantCharacterId()
|
||
local icon = XDataCenter.CharacterManager.GetCharBigRoundnessNotItemHeadIcon(characterId)
|
||
self.RImgAssistantRole:SetRawImage(icon)
|
||
self.RImgAssistantRole.gameObject:SetActiveEx(true)
|
||
else
|
||
self.RImgAssistantRole.gameObject:SetActiveEx(false)
|
||
end
|
||
end
|
||
|
||
--活动战报
|
||
function XUiStrongholdMain:UpdatePanelEnd()
|
||
local finishCount, totalCount = XDataCenter.StrongholdManager.GetLastAcitivityFinishProgress()
|
||
self.TxtEndProgress.text = finishCount .. "/" .. totalCount
|
||
|
||
local minerCount = XDataCenter.StrongholdManager.GetLastMinerCount()
|
||
self.TxtEndPeople.text = minerCount
|
||
|
||
local totalMineral = XDataCenter.StrongholdManager.GetLastMineralCount()
|
||
self.TxtEndMineral.text = totalMineral
|
||
|
||
local assistNum = XDataCenter.StrongholdManager.GetLastAssistCount()
|
||
self.TxtEndAssist.text = assistNum
|
||
end
|
||
|
||
function XUiStrongholdMain:AutoAddListener()
|
||
self.BtnBack.CallBack = function() self:OnClickBtnBack() end
|
||
self.BtnMainUi.CallBack = function() self:OnClickBtnMainUi() end
|
||
self:BindHelpBtn(self.BtnHelp, "StrongholdMain")
|
||
self.BtnShop.CallBack = function() self:OnClickBtnShop() end
|
||
self.BtnReward.CallBack = function() self:OnClickBtnReward() end
|
||
self.BtnMine.CallBack = function() self:OnClickBtnMine() end
|
||
self.BtnPower.CallBack = function() self:OnClickBtnPower() end
|
||
self.BtnTeam.CallBack = function() self:OnClickBtnTeam() end
|
||
self.BtnTeamZi.CallBack = function() self:OnClickBtnTeam() end
|
||
self.BtnAssistance.CallBack = function() self:OnClickBtnAssistance() end
|
||
self.BtnFight.CallBack = function() self:OnClickBtnFight() end
|
||
self.BtnFightZi.CallBack = function() self:OnClickBtnFight(true) end
|
||
self.BtnStop.CallBack = function() self:OnClickBtnStop() end
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnBack()
|
||
self:Close()
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnMainUi()
|
||
XLuaUiManager.RunMain()
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnShop()
|
||
if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.ShopCommon)
|
||
or XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.ShopActive) then
|
||
local skipId = XStrongholdConfigs.GetCommonConfig("ShopSkipId")
|
||
XFunctionManager.SkipInterface(skipId)
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnReward()
|
||
XLuaUiManager.Open("UiStrongholdRewardTip")
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnMine()
|
||
if XDataCenter.StrongholdManager.HasMineralLeft() then
|
||
local cb = function(mineralCount)
|
||
if mineralCount <= 0 then return end
|
||
local msg = CsXTextManagerGetText("StrongholdGetMianralLeft", mineralCount)
|
||
XUiManager.TipMsg(msg)
|
||
end
|
||
XDataCenter.StrongholdManager.GetStrongholdMineralRequest(cb)
|
||
else
|
||
XDataCenter.StrongholdManager.EnterUiMine()
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnPower()
|
||
XLuaUiManager.Open("UiStrongholdPower")
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnFight(selectHard)
|
||
local fightingGroupId = XDataCenter.StrongholdManager.CheckAnyGroupHasFinishedStage()
|
||
|
||
if XTool.IsNumberValid(fightingGroupId) then
|
||
local sureCallback = function()
|
||
XDataCenter.StrongholdManager.SetCurrentSelectGroupId(fightingGroupId)
|
||
XLuaUiManager.Open("UiStrongholdDeploy", fightingGroupId)
|
||
end
|
||
local closeCallback = function()
|
||
XLuaUiManager.Open("UiStrongholdMainLineBanner", selectHard)
|
||
end
|
||
local title = CSXTextManagerGetText("StrongholdEnterFightConfirmTitle")
|
||
local content = CSXTextManagerGetText("StrongholdEnterFightConfirmContent")
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, closeCallback, sureCallback)
|
||
else
|
||
XLuaUiManager.Open("UiStrongholdMainLineBanner", selectHard)
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnTeam()
|
||
local groupId = XDataCenter.StrongholdManager.CheckAnyGroupHasFinishedStage()
|
||
if groupId then
|
||
local callFunc = function()
|
||
local cb = function()
|
||
XLuaUiManager.Open("UiStrongholdDeploy")
|
||
end
|
||
XDataCenter.StrongholdManager.ResetStrongholdGroupRequest(groupId, cb)
|
||
end
|
||
local title = CSXTextManagerGetText("StrongholdTeamRestartConfirmTitle")
|
||
local content = CSXTextManagerGetText("StrongholdTeamRestartConfirmContent")
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, nil, callFunc)
|
||
else
|
||
XLuaUiManager.Open("UiStrongholdDeploy")
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnAssistance()
|
||
XDataCenter.StrongholdManager.EnterUiAssistant()
|
||
end
|
||
|
||
function XUiStrongholdMain:OnClickBtnStop()
|
||
if not XDataCenter.StrongholdManager.CheckPauseTimeAfterFightBegin() then
|
||
XUiManager.TipText("StrongholdPauseTimeAfterFightBegin")
|
||
return
|
||
end
|
||
|
||
if not XDataCenter.StrongholdManager.CheckPauseTimeBeforeFightEnd() then
|
||
XUiManager.TipText("StrongholdPauseTimeBeforeFightEnd")
|
||
return
|
||
end
|
||
|
||
local callFunc = function()
|
||
if not XDataCenter.StrongholdManager.CheckSetStrongholdStayRequestCD() then return end
|
||
XDataCenter.StrongholdManager.SetStrongholdStayRequest()
|
||
end
|
||
local title = CSXTextManagerGetText("StrongholdPauseConfirmTitle")
|
||
local content = CSXTextManagerGetText("StrongholdPauseConfirmContent")
|
||
XUiManager.DialogTip(title, content, XUiManager.DialogType.Normal, nil, callFunc)
|
||
end
|
||
|
||
function XUiStrongholdMain:PlayMineUpAnim(startNum, targetNum)
|
||
local asynPlayAnim = asynTask(self.PlayAnimation, self)
|
||
local asynLetMineRoll = asynTask(self.LetMineRoll, self)
|
||
|
||
RunAsyn(function()
|
||
local startMinerCount = startNum or 0
|
||
local targetMinerCount = targetNum or 0
|
||
local startMine = XDataCenter.StrongholdManager.GetMineralOutput(startMinerCount)
|
||
local targetMine = XDataCenter.StrongholdManager.GetMineralOutput(targetMinerCount)
|
||
|
||
local deltaHp = targetMinerCount - startMinerCount
|
||
self.TxtUpPeople.text = "+" .. deltaHp
|
||
local deltaAttack = targetMine - startMine
|
||
self.TxtUpMine.text = "+" .. deltaAttack
|
||
|
||
self.ImgUpMine.gameObject:SetActiveEx(true)
|
||
self.ImgUpPeople.gameObject:SetActiveEx(true)
|
||
self:PlayAnimation("ImgUpPeopleEnable")
|
||
self:PlayAnimation("ImgUpMineEnable")
|
||
asynLetMineRoll(startMinerCount, targetMinerCount, startMine, targetMine)
|
||
self:PlayAnimation("ImgUpPeopleDisable")
|
||
self:PlayAnimation("ImgUpMineDisable")
|
||
self.ImgUpMine.gameObject:SetActiveEx(false)
|
||
self.ImgUpPeople.gameObject:SetActiveEx(false)
|
||
end)
|
||
end
|
||
|
||
function XUiStrongholdMain:LetMineRoll(startMinerCount, targetMinerCount, startMine, targetMine, finishCb)
|
||
if not targetMinerCount then return end
|
||
if not targetMine then return end
|
||
local onRefreshFunc = function(time)
|
||
if XTool.UObjIsNil(self.TxtPeople)
|
||
or XTool.UObjIsNil(self.TxtMine)
|
||
then
|
||
self:DestroyMineTimer()
|
||
return true
|
||
end
|
||
if startMinerCount == targetMinerCount
|
||
and startMine == targetMine
|
||
then
|
||
return true
|
||
end
|
||
self.TxtPeople.text = mathFloor(Lerp(startMinerCount, targetMinerCount, time))
|
||
self.TxtMine.text = mathFloor(Lerp(startMine, targetMine, time))
|
||
end
|
||
self:DestroyMineTimer()
|
||
self.MineTimer = XUiHelper.Tween(SCORE_ANIM_DURATION, onRefreshFunc, finishCb)
|
||
end
|
||
|
||
function XUiStrongholdMain:DestroyMineTimer()
|
||
if self.MineTimer then
|
||
CSXScheduleManagerUnSchedule(self.MineTimer)
|
||
self.MineTimer = nil
|
||
end
|
||
end
|
||
|
||
function XUiStrongholdMain:PlayElectricUpAnim(startNum, targetNum)
|
||
local asynPlayAnim = asynTask(self.PlayAnimation, self)
|
||
local asynLetElectricRoll = asynTask(self.LetElectricRoll, self)
|
||
|
||
RunAsyn(function()
|
||
local startElectric = startNum or 0
|
||
local targetElectric = targetNum or 0
|
||
local deltaHp = targetElectric - startElectric
|
||
|
||
self.TxtUpEnergy.text = "+" .. deltaHp
|
||
|
||
self.ImgUpEnergy.gameObject:SetActiveEx(true)
|
||
self:PlayAnimation("ImgUpEnergyEnable")
|
||
asynLetElectricRoll(startElectric, targetElectric)
|
||
self:PlayAnimation("ImgUpEnergyDisable")
|
||
self.ImgUpEnergy.gameObject:SetActiveEx(false)
|
||
end)
|
||
end
|
||
|
||
function XUiStrongholdMain:LetElectricRoll(startElectric, targetElectric, finishCb)
|
||
if not targetElectric then return end
|
||
if not startElectric then return end
|
||
local onRefreshFunc = function(time)
|
||
if XTool.UObjIsNil(self.TxtEnergyLimit)
|
||
then
|
||
self:DestroyElectricTimer()
|
||
return true
|
||
end
|
||
if startElectric == targetElectric
|
||
then
|
||
return true
|
||
end
|
||
self.TxtEnergyLimit.text = mathFloor(Lerp(startElectric, targetElectric, time))
|
||
end
|
||
self:DestroyElectricTimer()
|
||
self.ElectricTimer = XUiHelper.Tween(SCORE_ANIM_DURATION, onRefreshFunc, finishCb)
|
||
end
|
||
|
||
function XUiStrongholdMain:DestroyElectricTimer()
|
||
if self.ElectricTimer then
|
||
CSXScheduleManagerUnSchedule(self.ElectricTimer)
|
||
self.ElectricTimer = nil
|
||
end
|
||
end |