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

118 lines
2.8 KiB
Plaintext

local BaseCell = autoImport("BaseCell");
TeamOptionGComCell = class("TeamOptionGComCell", BaseCell);
autoImport("TeamOptionGSonCell");
function TeamOptionGComCell:Init()
self:InitCell();
end
function TeamOptionGComCell:InitCell()
self.childGrid = self:FindComponent("ChildGrid", UIGrid);
self.childCtl = UIGridListCtrl.new(self.childGrid, TeamOptionGSonCell, "TeamOptionGSonCell");
self.childCtl:AddEventListener(MouseEvent.MouseClick, self.clickChild, self);
self:SetEvent(self.gameObject, function (go)
self:clickFather();
end);
self.playTween = self.gameObject:GetComponent(UIPlayTween);
self.label = self:FindComponent("Label", UILabel);
self.tog = self:FindComponent("Toggle", UIToggle);
self.goalTween = self:FindGO("GoalTween");
self.childBg = self:FindComponent("ChildBg", UISprite);
end
function TeamOptionGComCell:clickFather(ignortTween)
self.tog.value = true;
self:PlayTween(not self.tweenDir);
self:PassEvent(MouseEvent.MouseClick, {type = "father", ctl = self, data = self.data.fatherGoal});
end
function TeamOptionGComCell:clickChild(cellCtl)
if(self.chooseChild~=cellCtl)then
if(not self.tweenDir)then
self.tweenDir = true;
self.childGrid.transform.localScale = Vector3(1,1,1);
end
if(self.chooseChild)then
self.chooseChild:SetChoose(false);
end
self.chooseChild = cellCtl;
cellCtl:SetChoose(true);
self:PassEvent(MouseEvent.MouseClick, {type = "child", ctl = cellCtl, data = cellCtl.data});
self.tog.value = false;
end
end
function TeamOptionGComCell:SetData(data)
self.label.text = data.NameZh;
self.data = data;
if(data.fatherGoal and data.fatherGoal.SetShow == 1)then
self.gameObject:SetActive(true);
self.label.text = data.fatherGoal.NameZh;
local childGoals = {};
for i=1,#data.childGoals do
local goal = data.childGoals[i];
if(goal.SetShow==1)then
table.insert(childGoals, goal);
end
end
self.childCtl:ResetDatas(childGoals);
if(#childGoals>0)then
self.goalTween:SetActive(true);
self.childBg.height = 59 + 51 * #childGoals;
else
self.goalTween:SetActive(false);
end
else
self.gameObject:SetActive(false);
end
end
function TeamOptionGComCell:PlayTween(b)
self.playTween:Play(b);
self.tweenDir = b;
if(not b and self.chooseChild)then
self.chooseChild:SetChoose(false);
self.chooseChild = nil;
end
end
function TeamOptionGComCell:SetChoose(b)
self.tog.value = b;
end
function TeamOptionGComCell:InitChoose(goalid)
if(self.data)then
if(self.data.fatherGoal and self.data.fatherGoal.id == goalid)then
self:clickFather(true);
return true;
end
if(self.childCtl)then
local childCells = self.childCtl:GetCells();
for i=1,#childCells do
local childCell = childCells[i];
if(childCell.data and childCell.data.id == goalid)then
self:clickFather(true);
self:clickChild(childCell);
return true;
end
end
end
end
return false;
end