118 lines
2.8 KiB
Plaintext
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|