2025-06-04 05:12:01 +08:00

86 lines
2.5 KiB
Plaintext

local BaseCell = autoImport("BaseCell")
GuildTaskCell = class("GuildTaskCell", BaseCell)
local pos = LuaVector3.zero
function GuildTaskCell:Init()
self:FindObjs()
self:AddButtonEvt()
end
function GuildTaskCell:FindObjs()
self.taskName = self:FindComponent("TaskName", UILabel)
self.desc = self:FindComponent("Desc", UILabel)
self.confirmed = self:FindGO("Confirmed")
self.progress = self:FindComponent("Progress", UILabel)
self.confirmBtn = self:FindGO("ConfirmBtn"):GetComponent(UISprite)
self.confirmLabel = self:FindGO("Label" , self.confirmBtn.gameObject):GetComponent(UILabel)
self.taskBg1 = self:FindGO("TaskBg1")
self.taskBg2 = self:FindGO("TaskBg2")
end
function GuildTaskCell:AddButtonEvt()
self:AddClickEvent(self.confirmBtn.gameObject,function ()
if self.canConfirm then
local currentRaidID = SceneProxy.Instance:GetCurRaidID()
local raidData = currentRaidID and Table_MapRaid[currentRaidID];
if(raidData and raidData.Type == 10)then
FuncShortCutFunc.Me():CallByID(1000)
return;
end
EventManager.Me():PassEvent(GuildChallengeEvent.CloseUI,self)
ServiceGuildCmdProxy.Instance:CallEnterTerritoryGuildCmd();
end
end)
end
function GuildTaskCell:SetData(data)
self.data = data
self.gameObject:SetActive(data ~= nil)
if data then
local staticData = Table_GuildChallenge[data.id]
if staticData ~= nil then
self.taskName.text = staticData.Name
self.desc.text = staticData.Traceinfo
self.progress.text = string.format(ZhString.GuildChallenge_Progress, data.progress, staticData.Target)
local sizeX = self.taskName.localSize.x
local posX = sizeX / 2 + 28
pos:Set(posX, 0, 0)
self.taskBg1.transform.localPosition = pos
pos:Set(-posX, 0, 0)
self.taskBg2.transform.localPosition = pos
end
local canReward = data.reward == true
self.confirmBtn.gameObject:SetActive(canReward);
if(data.finish)then
self:SetConfirm(true);
self.confirmBtn.gameObject:SetActive(canReward);
self.confirmed.gameObject:SetActive(not canReward)
else
self:SetConfirm(false);
self.confirmBtn.gameObject:SetActive(true);
self.confirmed.gameObject:SetActive(false)
end
end
end
function GuildTaskCell:SetConfirm(canConfirm)
self.canConfirm = canConfirm
if canConfirm then
-- self.confirmBtn.color = ColorUtil.NGUIWhite
self.confirmBtn.spriteName = "com_btn_1";
self.confirmLabel.effectColor = ColorUtil.ButtonLabelBlue
else
-- self.confirmBtn.color = ColorUtil.NGUIShaderGray
self.confirmBtn.spriteName = "com_btn_13";
self.confirmLabel.effectColor = ColorUtil.NGUIGray
end
end