106 lines
4.1 KiB
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 |