miduo_client/Assets/ManagedResources/~Lua/Modules/FuXingGaoZhao/FuXingGaoZhaoPanel.lua

171 lines
6.0 KiB
Lua

require("Base/BasePanel")
local FuXingGaoZhao = Inherit(BasePanel)
local this = FuXingGaoZhao
local sortingOrder = 0
local rewardList = {}
local itemPreList={} --item预设容器
local data
local func
local timeData = string.split(ConfigManager.GetConfigDataByKey(ConfigName.SpecialConfig,"Id",109).Value,"#")
--初始化组件(用于子类重写)
function FuXingGaoZhao:InitComponent()
self.backBtn = Util.GetGameObject(self.gameObject,"btnBack")
self.effect = Util.GetGameObject(self.gameObject,"UI_effect_LuckyCatPanel_normal")
self.time = Util.GetGameObject(self.gameObject,"Time"):GetComponent("Text")
self.getBtn = Util.GetGameObject(self.gameObject,"getBtn")
FuXingGaoZhaoManager.InitRewardData()
self.mid = Util.GetGameObject(self.gameObject,"mid")
if #rewardList == 0 then
for i = 1, self.mid.transform.childCount do
table.insert(rewardList,self.mid.transform:GetChild(i-1))
end
end
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft})
end
--绑定事件(用于子类重写)
function FuXingGaoZhao:BindEvent()
Util.AddClick(self.backBtn,function ()
CheckRedPointStatus(RedPointType.FuXingGaoZhao)
self:ClosePanel()
end)
Util.AddClick(self.getBtn,function ()
if data.ActState == 0 then
local configData = ConfigManager.GetConfigDataByKey(ConfigName.SpecialConfig,"Id",110).Value
local strings = string.split(configData,"#")
local costId, costNum = tonumber(strings[1]),tonumber(strings[2])
if costNum > BagManager.GetTotalItemNum(costId) then
JumpManager.GoJump(36003)
else
local itemName = ConfigManager.GetConfigData(ConfigName.ItemConfig,costId).Name
MsgPanel.ShowTwo(string.format(Language[12243],costNum,itemName), nil, function()
NetManager.FuXingStoreBuyRequest(data.activityId,function ()
PopupTipPanel.ShowTip(Language[12244])
FuXingGaoZhao:Refresh()
end)
end)
end
elseif data.ActState == 1 then
NetManager.GetActivityRewardRequest(-1,data.activityId,function (drop)
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1,function()
FuXingGaoZhao:Refresh()
end)
end)
end
end)
end
--添加事件监听(用于子类重写)
function FuXingGaoZhao:AddListener()
end
--移除事件监听(用于子类重写)
function FuXingGaoZhao:RemoveListener()
end
function FuXingGaoZhao:OnSortingOrderChange()
Util.AddParticleSortLayer(self.effect, self.sortingOrder - sortingOrder)
sortingOrder = self.sortingOrder
end
--界面打开时调用(用于子类重写)
function FuXingGaoZhao:OnOpen(_func)
func = _func
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main})
end
-- 打开,重新打开时回调
function FuXingGaoZhao:OnShow()
FuXingGaoZhao:Refresh()
end
function FuXingGaoZhao:Refresh()
data = FuXingGaoZhaoManager.GetData()
FuXingGaoZhao:SetBtn()
if data.ActState == 0 then
FuXingGaoZhao:SetTime()
self.time.gameObject:SetActive(true)
else
self.time.gameObject:SetActive(false)
end
for i = 1, #rewardList do
FuXingGaoZhao:SetSingleReward(rewardList[i],data.rewards[i],i)
end
end
function FuXingGaoZhao:SetBtn()
local text = Util.GetGameObject(self.getBtn,"Text"):GetComponent("Text")
local redPoint = Util.GetGameObject(self.getBtn,"redPoint")
if data.ActState == 0 then
text.text = Language[12245]
self.getBtn:SetActive(true)
redPoint:SetActive(false)
elseif data.ActState == 1 then
text.text = Language[11948]
local bool = FuXingGaoZhaoManager.CheckRedPoint()
self.getBtn:SetActive(bool)
redPoint:SetActive(bool)
elseif data.ActState == 2 then
self.getBtn:SetActive(false)
end
end
function FuXingGaoZhao:SetTime()
if self.timer then
self.timer:Stop()
self.timer = nil
end
local time = data.startTime + tonumber(timeData[1])*86400 - GetTimeStamp()
self.time.text = string.format(Language[12246],TimeToFelaxible(time))
self.timer = Timer.New(function()
time = time - 1
if time < 1 then
self.timer:Stop()
self.timer = nil
self:ClosePanel()
end
self.time.text = string.format(Language[12246],TimeToFelaxible(time))
end, 1, -1, true)
self.timer:Start()
end
function FuXingGaoZhao:SetSingleReward(go,sdata,index)
local reward = Util.GetGameObject(go,"GameObject")
local mask = Util.GetGameObject(go,"mask")
-- LogBlue("index:"..index.." go:"..tostring(go.name).." 天数:"..tostring(NumToSimplenessFont[index]))
Util.GetGameObject(go,"Text"):GetComponent("Text").text = string.format(Language[10528],NumToSimplenessFont[index])
if not itemPreList[index] then
itemPreList[index] = SubUIManager.Open(SubUIConfig.ItemView,reward.transform)
end
itemPreList[index]:OnOpen(false, sdata.Reward, 0.85,false, false, false, sortingOrder)
mask:SetActive(sdata.State == 1)
local effect = Util.GetGameObject(itemPreList[index].gameObject,"effects/UI_Effect_jinkuang_Fang")
itemPreList[index]:SetEffectLayer(self.sortingOrder)
effect:SetActive((data.ActState == 1) and (sdata.State == 0) and (sdata.Progress <= GetTimeStamp()))
end
--界面关闭时调用(用于子类重写)
function FuXingGaoZhao:OnClose()
if self.timer then
self.timer:Stop()
self.timer = nil
end
if func then
func()
func = nil
end
end
--界面销毁时调用(用于子类重写)
function FuXingGaoZhao:OnDestroy()
if self.timer then
self.timer:Stop()
self.timer = nil
end
itemPreList={}
rewardList={}
SubUIManager.Close(self.UpView)
end
return FuXingGaoZhao