miduo_client/Assets/ManagedResources/~Lua/Modules/FirstRecharge/DayRewardItem.lua

108 lines
4.7 KiB
Lua

--[[
* @ClassName DayRewardItem
* @Description 首冲每日奖励
* @Date 2019/6/3 14:41
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
---@class DayRewardItem
local DayRewardItem = quick_class("DayRewardItem")
local kRewardCount = 2
---@param transform UnityEngine.Transform
function DayRewardItem:ctor(mainPanel,transform)
self.spLoader = SpriteLoader.New()
self.mainPanel = mainPanel
self.transform = transform
self.gameObject = self.transform.gameObject
self.title = Util.GetGameObject(self.transform, "title"):GetComponent("Text")
self.rewardContent = Util.GetGameObject(self.transform, "rewardList")
self.rewardList = {}
for i = 1, kRewardCount do
self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent.transform)
end
self.receiveBtn = Util.GetGameObject(self.transform, "receiveBtn"):GetComponent("Button")
self.receiveBtn.onClick:AddListener(function()
self:OnReceivedBtnClicked()
end)
self.receivedFlag = Util.GetGameObject(self.transform, "receivedFlag")
self.redPoint = Util.GetGameObject(self.transform,"redPoint")
self.transform:GetComponent("RectTransform").rotation = Quaternion.Euler(Vector3.New(0,0,0))
end
function DayRewardItem:Dispose()
self.spLoader:Destroy()
end
function DayRewardItem:OnSortingOrderChange(cursortingOrder)
for i = 1, #self.rewardList do
self.rewardList[i]:SetEffectLayer(cursortingOrder)
end
end
function DayRewardItem:SetValue(context,_sortingOrder)
self.title.text = string.format("第%s天",NumToChinese[context.Values[1][2]])
local sortingOrder = _sortingOrder or 0
self.context = context
for i, rewardInfo in ipairs(context.Reward) do
self.rewardList[i]:OnOpen(false, rewardInfo, 0.9,false,false,false,sortingOrder)
end
--if FirstRechargeManager.GetRechargeTime() == 0 then
-- self.receiveBtn.gameObject:SetActive(true)
-- self.receiveBtn.interactable = false
-- self.receivedFlag:SetActive(false)
-- --self.redPoint:SetActive(false)
--else
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FirstRecharge)
local AccumRecharge = 0
for _, missInfo in ipairs(activityInfo.mission) do
if missInfo and missInfo.progress then
AccumRecharge = missInfo.progress
end
end
if (self.context.Values[1][1] == 1 and AccumRecharge > 0)
or AccumRecharge >= self.context.Values[1][1] then
local day = GetTimePass(FirstRechargeManager.GetRechargeTime())--FirstRechargeManager.GetRechargeTime()
if self.context.Values[1][2] <= day then
local state = ActivityGiftManager.GetActivityInfo(context.ActivityId, context.Id).state
self.receiveBtn:GetComponent("Image").sprite = self.spLoader:LoadSprite("r_shouchong_lingqu_01_zh")
self.receiveBtn.enabled = true
self.receivedFlag:SetActive(state == 1)
self.receiveBtn.gameObject:SetActive(state ~= 1)
self.redPoint:SetActive(state ~= 1)
else
self.receiveBtn.gameObject:SetActive(true)
self.receiveBtn:GetComponent("Image").sprite = self.spLoader:LoadSprite("r_shouchong_lingqu_02_zh")
self.receiveBtn.enabled = false
self.receivedFlag:SetActive(false)
self.redPoint:SetActive(false)
end
else
self.receiveBtn.gameObject:SetActive(true)
self.receiveBtn:GetComponent("Image").sprite = self.spLoader:LoadSprite("r_shouchong_lingqu_02_zh")
self.receiveBtn.enabled = false
self.receivedFlag:SetActive(false)
self.redPoint:SetActive(false)
end
--end
end
function DayRewardItem:OnReceivedBtnClicked()
NetManager.GetActivityRewardRequest(self.context.Id, self.context.ActivityId, function(drop)
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1)
ActivityGiftManager.SetActivityInfo(self.context.ActivityId, self.context.Id, 1)
self.receiveBtn.gameObject:SetActive(false)
self.receivedFlag:SetActive(true)
self.redPoint:SetActive(false)
local index = FirstRechargeManager.GetFirstRechargeIndexByMoney(self.context.Values[1][1])
self.mainPanel:SetTabRedPointStatus(index)
CheckRedPointStatus(RedPointType.FirstRecharge)
if FirstRechargeManager.GetReceiveAll() then
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.OnActivityOpenOrClose, {
type = ActivityTypeDef.FirstRecharge,
status = 0 --关闭
})
end
end)
end
return DayRewardItem