miduo_client/Assets/ManagedResources/~Lua/Modules/SevenDayCarnival/SevenDayRewardPreviewPanel.lua

169 lines
6.6 KiB
Lua
Raw Normal View History

2021-04-21 13:12:04 +08:00
--[[
2020-05-09 13:31:21 +08:00
* @ClassName SevenDayRewardPreviewPanel
* @Description
* @Date 2019/8/9 15:47
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
---@class SevenDayRewardPreviewPanel
local SevenDayRewardPreviewPanel = quick_class("SevenDayRewardPreviewPanel", BasePanel)
local kScoreTaskType = 38
function SevenDayRewardPreviewPanel:InitComponent()
2021-04-21 13:12:04 +08:00
self.spLoader = SpriteLoader.New()
2020-05-09 13:31:21 +08:00
self.closeBtn = Util.GetGameObject(self.transform, "bg/closeBtn")
self.itemPos = Util.GetGameObject(self.transform, "bg/itemPos")
self.itemView = nil
self.taskProgress = Util.GetGameObject(self.transform, "bg/taskProgressBg/value"):GetComponent("Text")
self.currentProgress = Util.GetGameObject(self.transform, "bg/currentProgressBg/value"):GetComponent("Text")
self.canReceiveValue = Util.GetGameObject(self.transform, "bg/canReceiveBg/value"):GetComponent("Text")
self.rewardPart = Util.GetGameObject(self.transform, "bg/finalTarget")
self.remainTimes = Util.GetGameObject(self.rewardPart, "remainTimes"):GetComponent("Text")
self.rewardProgress = Util.GetGameObject(self.rewardPart, "progressbar/progress"):GetComponent("Image")
self.rewardValue = Util.GetGameObject(self.rewardPart, "progressbar/value"):GetComponent("Text")
self.rewardPos = Util.GetGameObject(self.rewardPart, "rewardPos")
self.rewardView = nil
self.receiveBtn = Util.GetGameObject(self.transform, "bg/receiveBtn")
self.receiveBtnText = Util.GetGameObject(self.receiveBtn, "Text"):GetComponent("Text")
self.ruleTips = Util.GetGameObject(self.transform, "bg/ruleTips"):GetComponent("Text")
end
function SevenDayRewardPreviewPanel:BindEvent()
Util.AddClick(self.closeBtn, function()
self:ClosePanel()
end)
Util.AddClick(self.receiveBtn, function()
self:OnReceivedBtnClicked()
end)
end
function SevenDayRewardPreviewPanel:AddListener()
Game.GlobalEvent:AddEvent(GameEvent.MissionDaily.OnMissionDailyChanged, self.RefreshPanel, self)
end
function SevenDayRewardPreviewPanel:RemoveListener()
Game.GlobalEvent:RemoveEvent(GameEvent.MissionDaily.OnMissionDailyChanged, self.RefreshPanel, self)
end
function SevenDayRewardPreviewPanel:OnOpen()
self:RefreshPanel()
end
function SevenDayRewardPreviewPanel:OnShow()
self:SetRemainTimes()
end
function SevenDayRewardPreviewPanel:OnClose()
if self.timer then
self.timer:Stop()
self.timer = nil
end
end
function SevenDayRewardPreviewPanel:OnReceivedBtnClicked()
local activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.SevenDayCarnival)
local treasureTaskConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.TreasureTaskConfig,
"ActivityId", activityId, "TaskType", kScoreTaskType)
NetManager.GetSevenDayCarnivalBoxReward(function(respond)
self:ClosePanel()
UIManager.OpenPanel(UIName.RewardItemPopup, respond.drop, 1)
TaskManager.SetTypeTaskState(
TaskTypeDef.SevenDayCarnival,
treasureTaskConfig.Id,
VipTaskStatusDef.Received,
0,
1
)
end)
end
function SevenDayRewardPreviewPanel:RefreshPanel()
local activityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.SevenDayCarnival)
local globalActConfig = ConfigManager.GetConfigData(ConfigName.GlobalActivity, activityId)
self.ruleTips.text = string.gsub(globalActConfig.ExpertDec, "\\n", "\n")
local treasureTaskConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.TreasureTaskConfig,
"ActivityId", activityId, "TaskType", kScoreTaskType)
self:SetItemViews(treasureTaskConfig.Reward)
local taskInfo = TaskManager.GetTypeTaskInfo(TaskTypeDef.SevenDayCarnival, treasureTaskConfig.Id)
if taskInfo.state == VipTaskStatusDef.Received then
2021-03-02 16:53:12 +08:00
self.receiveBtnText.text = Language[10101]
2020-05-09 13:31:21 +08:00
Util.SetGray(self.receiveBtn, true)
self.receiveBtn:GetComponent("Button").interactable = false
elseif taskInfo.state == VipTaskStatusDef.NotFinished then
2021-03-02 16:53:12 +08:00
self.receiveBtnText.text = Language[10018]
2020-05-09 13:31:21 +08:00
Util.SetGray(self.receiveBtn, true)
self.receiveBtn:GetComponent("Button").interactable = false
else
self.receiveBtn:GetComponent("Button").interactable = true
2021-03-02 16:53:12 +08:00
self.receiveBtnText.text = Language[10018]
2020-05-09 13:31:21 +08:00
Util.SetGray(self.receiveBtn, false)
end
local currentScore = SevenDayCarnivalManager.GetSevenDayScore()
self.rewardProgress.fillAmount = currentScore / treasureTaskConfig.TaskValue[2][1]
self.rewardValue.text = currentScore .. "/" .. treasureTaskConfig.TaskValue[2][1]
self.taskProgress.text = ""..currentScore .. "/" .. treasureTaskConfig.TaskValue[2][1]..""
local percentValue = (currentScore / treasureTaskConfig.TaskValue[2][1]) * 100
self.currentProgress.text = ""..string.format("%d%%", percentValue)..""
2021-03-02 16:53:12 +08:00
self.canReceiveValue.text = ""..currentScore .. Language[10200]..""
2020-05-09 13:31:21 +08:00
end
function SevenDayRewardPreviewPanel:SetItemViews(reward)
if self.rewardView and self.itemView then
local rewardList = table.clone(reward[1])
rewardList[2] = 0
self.itemView:OnOpen(false, rewardList, 1.2)
self.rewardView:OnOpen(false, rewardList, 0.55)
return
end
local rewardList = table.clone(reward[1])
rewardList[2] = 0
self.itemView = SubUIManager.Open(SubUIConfig.ItemView, self.itemPos.transform)
self.itemView:OnOpen(false, rewardList, 1.2)
self.rewardView = SubUIManager.Open(SubUIConfig.ItemView, self.rewardPos.transform)
self.rewardView:OnOpen(false, rewardList, 0.55)
end
function SevenDayRewardPreviewPanel:SetRemainTimes()
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.SevenDayCarnival)
if not activityInfo then
self:ClosePanel()
return
end
local timeDown = activityInfo.endTime - GetTimeStamp()
if self.timer then
self.timer:Stop()
self.timer = nil
end
if timeDown < 1 then
self:ClosePanel()
return
end
self:SetRemainTimeFormat(timeDown)
self.timer = Timer.New(function()
self:SetRemainTimeFormat(timeDown)
if timeDown < 1 then
self.timer:Stop()
self.timer = nil
self:ClosePanel()
end
timeDown = timeDown - 1
end, 1, -1, true)
self.timer:Start()
end
function SevenDayRewardPreviewPanel:SetRemainTimeFormat(timeDown)
if timeDown - 86400 > 0 then
2021-03-02 16:53:12 +08:00
self.remainTimes.text = Language[11885] .. DateUtils.GetTimeFormatV2(timeDown - 86400)
2020-05-09 13:31:21 +08:00
else
self.remainTimes.text = ""
end
end
2020-06-23 18:36:24 +08:00
return SevenDayRewardPreviewPanel