miduo_client/Assets/ManagedResources/~Lua/Modules/EightDay/EightDayRewardItem.lua

81 lines
3.6 KiB
Lua

---@class EightDayRewardItem
local EightDayRewardItem = quick_class("EightDayRewardItem")
local itemDayList = { Language[10001], Language[10002], Language[10003], Language[10004], Language[10005], Language
[10006], Language[10007], Language[10008] }
local Gift = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig, "ActivityId",
ActivityTypeDef.EightDayGift)
-- local data
-- local giftData
---@param transform UnityEngine.Transform
function EightDayRewardItem:ctor(mainPanel, transform, iDay)
self.data = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.EightDayGift)
-- giftData = ActivityGiftManager.sevenDayGetRewardState
self.mainPanel = mainPanel
self.transform = transform
self.iDay = iDay
self.day = Util.GetGameObject(self.transform, "Content/Day"):GetComponent("Text")
self.day.text = string.format(Language[10021], itemDayList[self.iDay]) --Language[10286]..i..Language[10017]
self.reward = Util.GetGameObject(self.transform, "Content/Reward")
self.receivedFlag = Util.GetGameObject(self.transform, "Content/receivedFlag")
self.Btn = Util.GetGameObject(self.transform, "Btn"):GetComponent("Button")
self.Btn.interactable = false
--Util.SetGray(self.Btn.gameObject,true)--置灰
self.Text1 = Util.GetGameObject(self.transform, "Btn/Text"):GetComponent("Text")
self.redPoint = Util.GetGameObject(self.transform, "Btn/redPoint")
local item = SubUIManager.Open(SubUIConfig.ItemView, self.reward.transform)
local actData = ConfigManager.GetConfigDataByDoubleKey(ConfigName.ActivityRewardConfig, "Id",
self.data.mission[iDay].missionId, "ActivityId", ActivityTypeDef.EightDayGift)
item:OnOpen(false, { actData.Reward[1][1], actData.Reward[1][2] }, 0.8, false) --data.mission[iDay].missionId
item:ResetNameColor(Vector4.New(50 / 255, 50 / 255, 50 / 255, 1))
item:ResetNameSize(Vector3.New(5, -100, 0), Vector3.New(1.3, 1.3, 1))
self:Refresh()
end
function EightDayRewardItem:OnBtnClicked(i)
self.redPoint:SetActive(false) --红点
self.receivedFlag:SetActive(true) --领取成功
self.Btn.interactable = false --按钮是否可以点击
Util.SetGray(self.Btn.gameObject, true) --置灰
NetManager.GetActivityRewardRequest(self.data.mission[i].missionId, self.data.activityId, function(drop)
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1, function()
ActivityGiftManager.sevenDayGetRewardState[i] = 1
self:Refresh()
Game.GlobalEvent:DispatchEvent(GameEvent.EightDay.GetRewardSuccess)
end)
end)
end
function EightDayRewardItem:Refresh()
local iDay = self.iDay
local canRewardDay = self.data.mission[iDay].progress
for i, v in pairs(self.data.mission) do
if v.missionId == iDay then
self.Text1.text = GetLanguageStrById(Gift[iDay].ContentsShow)
if canRewardDay >= iDay then --已经达成的天数
local state = ActivityGiftManager.sevenDayGetRewardState[i]
if state == 0 then --奖励未领取
self.redPoint:SetActive(true)
self.Btn.interactable = true
Util.AddOnceClick(self.Btn.gameObject, function()
self:OnBtnClicked(i)
end)
elseif (state == 1) then --奖励已领取
self.redPoint:SetActive(false)
self.receivedFlag:SetActive(true)
Util.SetGray(self.Btn.gameObject, true)
end
end
end
end
end
return EightDayRewardItem