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

106 lines
4.1 KiB
Lua

--[[
* @ClassName SevenDayCarnivalTaskItem
* @Description 开服七日狂欢任务Item
* @Date 2019/7/31 14:45
* @Author MagicianJoker, fengliudianshao@outlook.com
* @Copyright Copyright (c) 2019, MagicianJoker
--]]
---@class SevenDayCarnivalTaskItem
local SevenDayCarnivalTaskItem = quick_class("SevenDayCarnivalTaskItem")
local kMaxReward = 2
function SevenDayCarnivalTaskItem:ctor(root, prefab, parent)
self.spLoader = root.spLoader
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.currentPart = Util.GetGameObject(self.cloneObj, "content/current")
self.progress = Util.GetGameObject(self.currentPart, "progress"):GetComponent("Text")
self.dealBtn = Util.GetGameObject(self.currentPart, "dealBtn")
self.dealBtn:GetComponent("Button").onClick:AddListener(function()
self:OnDealBtnClicked()
end)
self.finished = Util.GetGameObject(self.currentPart, "finished")
--self.redPoint = Util.GetGameObject(self.currentPart, "redPoint")
self.advancePart = Util.GetGameObject(self.cloneObj, "content/advance")
end
function SevenDayCarnivalTaskItem:Init(context,sortingOrder)
self.localContext = context
self.taskDesc.text = context.Show
self.dealBtn:SetActive(false)
self.finished:SetActive(false)
--self.redPoint:SetActive(false)
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 SevenDayCarnivalTaskItem:OnSortingOrderChange(cursortingOrder)
for i = 1, #self.rewardList do
self.rewardList[i]:SetEffectLayer(cursortingOrder)
end
end
function SevenDayCarnivalTaskItem:SetValue(flag)
self.currentPart:SetActive(flag)
self.advancePart:SetActive(not flag)
if not flag then
return
end
self.serverContext = TaskManager.GetTypeTaskInfo(TaskTypeDef.SevenDayCarnival, self.localContext.Id)
if self.localContext.Jump[1] then
self.dealBtn:SetActive(self.serverContext.state ~= VipTaskStatusDef.Received)
else
self.dealBtn:SetActive(self.serverContext.state == VipTaskStatusDef.CanReceive)
end
if self.dealBtn.activeSelf then
self.dealBtn:GetComponent("Image").sprite = self.spLoader:LoadSprite(TaskGetBtnIconDef[self.serverContext.state])
end
local targetTime = self.localContext.TaskValue[2][1]
targetTime = targetTime > 0 and targetTime or 1
self.progress.text = self.serverContext.progress + self.serverContext.takeTimes .. "/" .. targetTime
--self.redPoint:SetActive(self.serverContext.state == VipTaskStatusDef.CanReceive)
self.finished:SetActive(self.serverContext.state == VipTaskStatusDef.Received)
end
function SevenDayCarnivalTaskItem:OnDealBtnClicked()
if self.serverContext.state == VipTaskStatusDef.NotFinished then
JumpManager.GoJump(self.localContext.Jump[1])
else
NetManager.TakeMissionRewardRequest(TaskTypeDef.SevenDayCarnival, self.localContext.Id, function(respond)
UIManager.OpenPanel(UIName.RewardItemPopup, respond.drop, 1)
--TaskManager.SetTypeTaskState(
-- TaskTypeDef.SevenDayCarnival,
-- self.localContext.Id,
-- VipTaskStatusDef.Received,
-- 0,
-- self.serverContext.progress + self.serverContext.takeTimes
--)
end)
end
end
function SevenDayCarnivalTaskItem:SetVisible(flags)
self.cloneObj:SetActive(flags)
end
function SevenDayCarnivalTaskItem:SetDisabled(flag)
self.dealBtn:GetComponent("Button").interactable = flag
Util.SetGray(self.dealBtn, not flag)
--self.redPoint:SetActive(false)
end
return SevenDayCarnivalTaskItem