miduo_client/Assets/ManagedResources/~Lua/Modules/HomeLand/TrainBuildLvUpPanel.lua

205 lines
7.7 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

----- --家园建筑升级 -----
local TrainBuildLvUpPanel = Inherit(BasePanel)
local this = TrainBuildLvUpPanel
local HomeLand = ConfigManager.GetConfig(ConfigName.TrainBuild)
local HomeLandLevel = ConfigManager.GetConfig(ConfigName.TrainBuildLevel)
local costOneSec = ConfigManager.GetConfigData(ConfigName.SpecialConfig,170).Value
local itemConfig=ConfigManager.GetConfigData(ConfigName.ItemConfig,16)
--传入父脚本模块
local parent
--传入特效层级
local sortingOrder=0
local data=nil
local Obj=nil
local endCostNum=0
local pro=0
function TrainBuildLvUpPanel:InitComponent()
this.spLoader = SpriteLoader.New()
--当前两个名字
this.curName = Util.GetGameObject(this.gameObject,"Buildings/curName"):GetComponent("Text")
this.nextName = Util.GetGameObject(this.gameObject,"Buildings/nextName"):GetComponent("Text")
this.Content = Util.GetGameObject(this.gameObject,"Content")
this.Obtain = Util.GetGameObject(this.Content,"Obtain")
this.Cost = Util.GetGameObject(this.Content,"Cost")
this.tipInfo = Util.GetGameObject(this.gameObject,"tip"):GetComponent("Text")
this.tipInfo.text = "每个满级特训神将激活:所有神将礼物属性+5%最高200%"
--Obtain
this.limit = Util.GetGameObject(this.Obtain,"limit")
this.gain = Util.GetGameObject(this.Obtain,"gain")
this.gainIcon = Util.GetGameObject(this.Obtain,"gain/Icon"):GetComponent("Image")
this.gainNum = Util.GetGameObject(this.Obtain,"gain/Num"):GetComponent("Text")
this.gainAdd = Util.GetGameObject(this.Obtain,"gain/Add"):GetComponent("Text")
--cost
this.cost1Icon1 = Util.GetGameObject(this.Cost,"cost1/Icon"):GetComponent("Image")
this.cost1Num1 = Util.GetGameObject(this.Cost,"cost1/Num"):GetComponent("Text")
this.cost2 = Util.GetGameObject(this.Cost,"cost2")
this.cost2Name = Util.GetGameObject(this.Cost,"cost2/Text"):GetComponent("Text")
this.cost2Num = Util.GetGameObject(this.Cost,"cost2/Num"):GetComponent("Text")
--fastDone
this.fastDoneMoney = Util.GetGameObject(this.gameObject,"Btns/fastDone/Money")
this.fastDoneIcon = Util.GetGameObject(this.fastDoneMoney,"Icon"):GetComponent("Image")
this.fastDoneNum = Util.GetGameObject(this.fastDoneMoney,"Num"):GetComponent("Text")
this.fastDoneBtn = Util.GetGameObject(this.gameObject,"Btns/fastDone/BtnDo")
--Done
this.doneNum = Util.GetGameObject(this.gameObject,"Btns/Done/Money/Text"):GetComponent("Text")
this.doneBtn = Util.GetGameObject(this.gameObject,"Btns/Done/BtnDo")
end
function TrainBuildLvUpPanel:BindEvent()
Util.AddClick(this.fastDoneBtn, function()
-- local priviId = PrivilegeManager.GetPrivilegeRemainValue()
TrainBuildManager.ResumeCost(data.dataSingle,string.split(costOneSec,"#"),function (num)
MsgPanel.ShowTwo(string.format("是否花费%s%s立即升级",endCostNum,itemConfig.Name),function() end,function()
NetManager.TrainingArchitectureUpRequest(data.dataMain.Id,2,function ()
--特效
Obj.effect2:SetActive(true)
Timer.New(function ()
Obj.effect2:SetActive(false)
end,1):Start()
PopupTipPanel.ShowTip(string.format("<color=#00FF00>%s</color>已升级至<color=#00FF00>%s</color>级",data.dataMain.Name,data.dataSingle.level))
self:ClosePanel()
Game.GlobalEvent:DispatchEvent(GameEvent.UI.OnUpdateData)
end)
end,"取消","确定")
end)
end)
Util.AddClick(this.doneBtn, function()
if data.endTime and data.endTime>0 then
PopupTipPanel.ShowTip("升级中")
return
end
TrainBuildManager.ResumeCost(data.dataSingle,nil,function ()
NetManager.TrainingArchitectureUpRequest(data.dataMain.Id,1,function ()
Game.GlobalEvent:DispatchEvent(GameEvent.UI.OnUpdateData)
self:ClosePanel()
end)
end)
end)
Util.AddClick(this.gameObject,function ()
self:ClosePanel()
end)
end
function TrainBuildLvUpPanel:AddListener()
end
function TrainBuildLvUpPanel:RemoveListener()
end
function TrainBuildLvUpPanel:OnOpen(_args)
data = _args[1]
Obj = _args[2]
end
function TrainBuildLvUpPanel:OnShow()
local curData = data.dataSingle
local nextData = HomeLandLevel[curData.Id + 1]
local str = string.split(costOneSec,"#")
this.curName.text = string.format("%s %s级",data.dataMain.Name,curData.level)
this.nextName.text = string.format("%s级",nextData.level)
this.Obtain:SetActive(false)
if curData.Gain and curData.Gain>0 then
this.Obtain:SetActive(true)
--this.gainIcon.sprite = this.spLoader:LoadSprite(GetSpriteNameByItemId(curData.Gain[1]))
this.gainNum.text = curData.Gain
this.gainAdd.text = string.format(" +%s",nextData.Gain - curData.Gain)
end
this.Cost:SetActive(false)
if curData.Cost then
this.Cost:SetActive(true)
this.cost1Icon1.sprite = this.spLoader:LoadSprite(GetSpriteNameByItemId(curData.Cost[1][1]))
local color1 = BagManager.GetTotalItemNum(curData.Cost[1][1]) >= curData.Cost[1][2] and "#A47C31" or "red"
this.cost1Num1.text = string.format("<color=%s>%s</color>",color1,curData.Cost[1][2])
end
this.cost2:SetActive(false)
if curData.Rule and #curData.Rule>0 and type(curData.Rule[1])~="userdata" then
this.cost2:SetActive(true)
local color = TrainBuildManager.BuildData[curData.Rule[1]].level < curData.Rule[2] and "FF0000" or "A47C31"
this.cost2Num.text = string.format("<color=#%s>%s到达%s级</color>",color,HomeLand[curData.Rule[1]].Name,curData.Rule[2])
else
end
this.fastDoneIcon.sprite = this.spLoader:LoadSprite(GetSpriteNameByItemId(tonumber(str[1])))
--LogError("curData.Time===================="..curData.Time)
LogError("curdata.endTime==="..data.endTime.." curData endtime-curtime==="..data.endTime - GetTimeStamp())
local leftTime=0
if data.endTime>0 then
leftTime=data.endTime - GetTimeStamp()
else
leftTime=curData.Time
end
pro=tonumber(str[2])
endCostNum=math.ceil(leftTime/60)*pro
this.fastDoneNum.text = endCostNum
this.doneNum.text = string.format("耗时:%s",this:CulculateTime(curData.Time))
if data.endTime>0 then
this:SetTime(leftTime)
end
ForceRebuildLayout(this.gain.transform)
ForceRebuildLayout(this.Obtain.transform)
ForceRebuildLayout(this.Cost.transform)
ForceRebuildLayout(this.Content.transform)
end
function TrainBuildLvUpPanel:SetTime(_num)
if self.timer then
self.timer:Stop()
self.timer = nil
end
local aaa=_num
self.timer = Timer.New(function ()
aaa=aaa-1
--LogError("lefttime================"..leftTime2.." data.endTime=="..data.endTime)
endCostNum=math.ceil(aaa/60)*pro
this.fastDoneNum.text = endCostNum
end, 1, -1, true)
self.timer:Start()
end
function TrainBuildLvUpPanel:CulculateTime(time)
if time < 60 then
return time..""
elseif time >= 60 and time < 3600 then
return math.floor(time/60)..""..(time%60)..""
elseif time >= 3600 and time < 86400 then
return math.floor(time/3600)..""..math.floor((time%3600)/60)..""
elseif time >= 86400 then
return math.floor(time/86400)..""..math.floor((time%86400)/3600)..""
end
end
function TrainBuildLvUpPanel:OnClose()
data=nil
if self.timer then
self.timer:Stop()
self.timer = nil
end
end
function TrainBuildLvUpPanel:OnDestroy()
this.spLoader:Destroy()
if self.timer then
self.timer:Stop()
self.timer = nil
end
end
return TrainBuildLvUpPanel