2025-06-04 05:02:57 +08:00

103 lines
2.7 KiB
Plaintext

SealTaskPage = class("SealTaskPage", SubMediatorView)
autoImport("SealTaskCell");
autoImport("DialogCell");
function SealTaskPage:Init()
self:ReLoadPerferb("view/SealTaskPage");
self:InitUI();
self:MapEvents();
self.npcinfo = self.viewdata.npcinfo;
self.npcAgent = self.npcinfo and self.npcinfo.roleAgent;
end
function SealTaskPage:InitUI()
self.dailyTime = self:FindComponent("DailyTime", UILabel);
self.noneTip = self:FindGO("NoneTip");
local grid = self:FindComponent("SealGrid", UIGrid);
self.taskCtl = UIGridListCtrl.new(grid ,SealTaskCell ,"SealTaskCell");
self.taskCtl:AddEventListener(MouseEvent.MouseClick,self.childClick,self)
self:UpdateDailyTime();
end
function SealTaskPage:OnEnter()
SealTaskPage.super.OnEnter(self);
ServiceSceneSealProxy.Instance:CallSealQueryList()
end
function SealTaskPage:OnExit()
SealTaskPage.super.OnExit(self);
end
function SealTaskPage:childClick(cellctl)
local aceptSeal = SealProxy.Instance.nowAcceptSeal;
if(TeamProxy.Instance:IHaveTeam())then
if(cellctl and cellctl.data)then
local data = cellctl.data.staticData;
local accept = cellctl.data.accept;
if(accept)then
MsgManager.ConfirmMsgByID(1609, function ()
ServiceSceneSealProxy.Instance:CallSealAcceptCmd(data.id, accept);
end, nil,nil);
else
if(aceptSeal and aceptSeal~=0)then
MsgManager.ConfirmMsgByID(1612, function ()
ServiceSceneSealProxy.Instance:CallSealAcceptCmd(data.id, accept);
end, nil,nil);
else
ServiceSceneSealProxy.Instance:CallSealAcceptCmd(data.id, accept);
end
end
end
else
MsgManager.ShowMsgByIDTable(1607);
end
end
function SealTaskPage:UpdateSealTasks()
local list = SealProxy.Instance.nowSealTasks;
local aceptSeal = SealProxy.Instance.nowAcceptSeal;
local sealtasks = {};
for i=1,#list do
if(list[i])then
local rsdata = Table_RepairSeal[list[i]];
if(rsdata)then
local tempData = {};
tempData.staticData = rsdata;
tempData.accept = rsdata.id == aceptSeal;
table.insert(sealtasks, tempData);
end
end
end
self.taskCtl:ResetDatas(sealtasks);
self.noneTip:SetActive(#list == 0);
end
function SealTaskPage:UpdateDailyTime()
-- 更新封印次數
local var = MyselfProxy.Instance:getVarByType(Var_pb.EVARTYPE_SEAL);
local donetimes = var and var.value;
donetimes = donetimes or 0;
local maxtimes = GameConfig.Seal.maxSealNum;
self.dailyTime.text = donetimes.."/"..maxtimes;
end
function SealTaskPage:MapEvents()
self:AddListenEvt(ServiceEvent.SceneSealSealQueryList, self.HandleSealQueryList);
self:AddListenEvt(ServiceEvent.SceneSealSealAcceptCmd, self.HandleSealQueryList);
end
function SealTaskPage:HandleSealQueryList( note )
self:UpdateSealTasks();
self:UpdateDailyTime();
end