miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/ContinuityRechargeItem.lua

122 lines
4.8 KiB
Lua

--[[
* @ClassName ContinuityRechargeItem
* @Description 每日充值Item
* @Date 2019/8/2 16:49
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
---@class ContinuityRechargeItem
local ContinuityRechargeItem = quick_class("ContinuityRechargeItem")
local kMaxReward = 5
function ContinuityRechargeItem:ctor(prefab, parent)
self.cloneObj = newObjToParent(prefab, parent)
self.taskDesc = Util.GetGameObject(self.cloneObj, "content/desc"):GetComponent("Text")
self.rewardContent = Util.GetGameObject(self.cloneObj, "content/itemContent")
self.rewardList = {}
for i = 1, kMaxReward do
self.rewardList[i] = SubUIManager.Open(SubUIConfig.ItemView, self.rewardContent.transform)
end
self.progress = Util.GetGameObject(self.cloneObj, "progress"):GetComponent("Text")
self.progress.gameObject:SetActive(false)
self.dealBtn = Util.GetGameObject(self.cloneObj, "dealBtn")
self.dealBtnText = Util.GetGameObject(self.dealBtn, "Text"):GetComponent("Text")
self.dealBtn:GetComponent("Button").onClick:AddListener(function()
self:OnDealBtnClicked()
end)
-- self.finished = Util.GetGameObject(self.cloneObj, "finished")
--self.redPoint = Util.GetGameObject(self.cloneObj, "redPoint")
end
function ContinuityRechargeItem:Init(context,sortingOrder)
self.localContext = context
self.taskDesc.text = string.format(Language[11349], context.Sort)
self.dealBtn:SetActive(true)
-- self.finished:SetActive(false)
--self.redPoint:SetActive(false)
-- self.progress.text = "(0/1)"
table.walk(self.rewardList, function(rewardItem)
rewardItem.gameObject:SetActive(false)
end)
for i, rewardInfo in ipairs(context.Reward) do
self.rewardList[i]:OnOpen(false, rewardInfo, 0.8,false,false,false,sortingOrder)
self.rewardList[i].gameObject:SetActive(true)
end
end
--层级重设 防特效穿透
function ContinuityRechargeItem:OnSortingOrderChange(cursortingOrder)
for j = 1,#self.rewardList do
self.rewardList[j]:SetEffectLayer(cursortingOrder)
end
end
function ContinuityRechargeItem:SetValue()
self.serverContext = ActivityGiftManager.GetActivityInfo(ActivityTypeDef.ContinuityRecharge, self.localContext.Id)
if self.serverContext.state == 1 then
-- self.dealBtn:SetActive(true)
-- self.finished:SetActive(false)
--self.redPoint:SetActive(false)
-- self.progress.text = (1/1)"
self.dealBtn:GetComponent("Button").interactable = false
Util.SetGray(self.dealBtn, true)
self.dealBtnText.text = Language[10101]
else
-- self.finished:SetActive(false)
-- self.dealBtn:SetActive(true)
-- self.dealBtn:GetComponent("Image").sprite = Util.LoadSprite(TaskGetBtnIconDef[self.serverContext.progress])--无用的
--self.redPoint:SetActive(self.serverContext.progress == 1)
-- self.progress.text = "("..self.serverContext.progress .. "/1"..")"
if self.serverContext.progress == 1 then
self.dealBtn:GetComponent("Button").interactable = true
Util.SetGray(self.dealBtn, false)
self.dealBtnText.text = Language[11948]
else
self.dealBtn:GetComponent("Button").interactable = self:IsCurrentSortEnable()
Util.SetGray(self.dealBtn, not self:IsCurrentSortEnable())
self.dealBtnText.text = Language[10556]
end
end
end
function ContinuityRechargeItem:OnDealBtnClicked()
if self.serverContext.progress == 0 then
if not ShopManager.IsActive(SHOP_TYPE.SOUL_STONE_SHOP) then
PopupTipPanel.ShowTip(Language[10422])
return
end
JumpManager.GoJump(36008)
else
NetManager.GetActivityRewardRequest(self.localContext.Id, self.localContext.ActivityId, function(_drop)
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1)
ActivityGiftManager.SetActivityInfo(
ActivityTypeDef.ContinuityRecharge,
self.localContext.Id,
1
)
-- self.dealBtn:SetActive(false)
-- self.finished:SetActive(true)
--self.redPoint:SetActive(false)
self.cloneObj.transform:Sibling()
CheckRedPointStatus(RedPointType.ContinuityRecharge)
Game.GlobalEvent:DispatchEvent(GameEvent.Activity.ContinueRechargeRefresh)
end)
end
end
--是否轮到当天可充了
function ContinuityRechargeItem:IsCurrentSortEnable()
local activityInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.ContinuityRecharge)
return activityInfo.value + 1 == self.localContext.Sort
end
function ContinuityRechargeItem:TrySetLastSibling()
if self.serverContext.state == 1 then
self.cloneObj.transform:SetAsLastSibling()
end
end
return ContinuityRechargeItem