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

120 lines
5.3 KiB
Lua

--[[
* @ClassName GrowthGiftTaskItem
* @Description 成长基金任务Item
* @Date 2019/5/25 17:01
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
---@class GrowthGiftTaskItem
local GrowthGiftTaskItem = quick_class("GrowthGiftTaskItem")
local GlobalActivity = ConfigManager.GetConfig(ConfigName.GlobalActivity)
local GrowthRewardId = nil
function GrowthGiftTaskItem:ctor(prefab, parent)
self.cloneObj = newObjToParent(prefab, parent)
self.itemPos = Util.GetGameObject(self.cloneObj, "itemPos_1")
self.giftInfo = SubUIManager.Open(SubUIConfig.ItemView, self.itemPos.transform)
self.desc = Util.GetGameObject(self.cloneObj, "desc"):GetComponent("Text")
self.receiveBtn = Util.GetGameObject(self.cloneObj, "btnDeal")
self.receiveBtn:GetComponent("Button").onClick:AddListener(function()
self:OnBtnDealClicked()
end)
self.finished = Util.GetGameObject(self.cloneObj, "finished")
self.redPoint = Util.GetGameObject(self.cloneObj,"redPoint")
end
local sortingOrder = 0
function GrowthGiftTaskItem:Init(configData,_sortingOrder)
GrowthRewardId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.GrowthReward)
self.context = configData
sortingOrder = _sortingOrder or 0
self.giftInfo:OnOpen(false, configData.Reward[1], 0.8,false,false,false,sortingOrder)
if configData.Values[1][1] == ConditionType.Level then
self.desc.text = string.format(Language[11373], configData.Values[1][2])
else
self.desc.text = string.format(Language[11374], configData.Values[1][2])
end
self.finished:SetActive(false)
Util.SetGray(self.receiveBtn, true)
end
function GrowthGiftTaskItem:OnSortingOrderChange(cursortingOrder)
if self.giftInfo then
self.giftInfo:OnOpen(false, self.context.Reward[1], 0.8,false,false,false,cursortingOrder)
end
end
function GrowthGiftTaskItem:SetValue()
local activityInfo = ActivityGiftManager.GetActivityInfo(GrowthRewardId, self.context.Id)--获取活动数据 self.context.Id
local goods = OperatingManager.GetGiftGoodsInfo(GoodsTypeDef.GrowthReward, GlobalActivity[GrowthRewardId].CanBuyRechargeId[1])--判断当前礼包是否已投资
if activityInfo then
self.state = activityInfo.state
self.finished:SetActive(self.state == 1)
self.receiveBtn.gameObject:SetActive(self.state == 0)
if self.state == 0 then --未领取
self.receiveStatus = PlayerManager.level >= self.context.Values[1][2]
Util.SetGray(self.receiveBtn, not self.receiveStatus)
self.redPoint:SetActive(self.receiveStatus)
-- if self.receiveStatus then--判断是否达到等级
-- Util.SetGray(self.receiveBtn, not self.receiveStatus)
-- if(GrowthRewardId == ActivityTypeDef.GrowthReward)then--吸引玩家点击
-- self.redPoint:SetActive(true)
-- self.receiveStatus = true
-- else
-- self.redPoint:SetActive(not goods)
-- end
-- else
-- self.redPoint:SetActive(false)
-- end
else
--已达成,领取完毕
self.receiveStatus = false
self.redPoint:SetActive(false)
end
else
self.finished:SetActive(false)
self.receiveStatus = false
self.receiveBtn.gameObject:SetActive(true)
Util.SetGray(self.receiveBtn, true)
end
--本地红点处理
--OperatingManager.GetGrowthRedPointState(GrowthRewardId)
end
function GrowthGiftTaskItem:OnBtnDealClicked()
local openStatus = ActivityGiftManager.GetActivityOpenStatus(ActivityTypeDef.GrowthReward)
local goods = OperatingManager.GetGiftGoodsInfo(GoodsTypeDef.GrowthReward, GlobalActivity[GrowthRewardId].CanBuyRechargeId[1])
if not openStatus or (goods and goods.buyTimes < 1) then
PopupTipPanel.ShowTip(Language[11375])
return
end
if self.receiveStatus then
NetManager.GetActivityRewardRequest(self.context.Id,GrowthRewardId, function(drop)
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1)
ActivityGiftManager.SetActivityInfo(self.context.ActivityId, self.context.Id, 1)
self.receiveBtn.gameObject:SetActive(false)
self.redPoint:SetActive(false)
self.finished:SetActive(true)
self.state = 1
RedpotManager.CheckRedPointStatus(RedPointType.GrowthGift)
--检测奖励是否全部领完
local t = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig, "ActivityId", GrowthRewardId)
for i = 1, #t do
local info = ActivityGiftManager.GetActivityInfo(GrowthRewardId, t[i].Id)
if info.state ~= 1 then
Game.GlobalEvent:DispatchEvent(GameEvent.GrowGift.GetAllGift)
return
end
end
if(GrowthRewardId == 16)then--16是最后一个礼包的ActivityId
MsgPanel.ShowOne(Language[11370])
else
MsgPanel.ShowOne(Language[11371])
end
Game.GlobalEvent:DispatchEvent(GameEvent.GrowGift.GetAllGift)
end)
else
PopupTipPanel.ShowTip(Language[11376])
end
end
return GrowthGiftTaskItem