108 lines
2.6 KiB
Lua
108 lines
2.6 KiB
Lua
local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CharInfoSkillCell = HL.Class('CharInfoSkillCell', UIWidgetBase)
|
|
|
|
|
|
|
|
|
|
CharInfoSkillCell._OnFirstTimeInit = HL.Override() << function(self)
|
|
end
|
|
|
|
|
|
CharInfoSkillCell.skills = HL.Field(HL.Table)
|
|
|
|
|
|
CharInfoSkillCell.m_charInfo = HL.Field(HL.Table)
|
|
|
|
|
|
CharInfoSkillCell.onClickCallback = HL.Field(HL.Function)
|
|
|
|
|
|
|
|
|
|
|
|
CharInfoSkillCell.InitCharInfoSkillCell = HL.Method(HL.Table, HL.Opt(HL.Function)) << function(self, info, callback)
|
|
self:_FirstTimeInit()
|
|
|
|
self.skills = info
|
|
self.view.single.buttonSkill.view.button.onClick:RemoveAllListeners()
|
|
self.view.plural.buttonSkill1.view.button.onClick:RemoveAllListeners()
|
|
self.view.plural.buttonSkill2.view.button.onClick:RemoveAllListeners()
|
|
self.onClickCallback = callback
|
|
self:_Refresh()
|
|
end
|
|
|
|
|
|
|
|
CharInfoSkillCell._OnClick = HL.Method() << function(self)
|
|
if self.onClickCallback then
|
|
self.onClickCallback(self.skills)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
CharInfoSkillCell._Refresh = HL.Method() << function(self)
|
|
local single = #self.skills == 1
|
|
self.view.single.gameObject:SetActive(not not single)
|
|
self.view.plural.gameObject:SetActive(not single)
|
|
|
|
if single then
|
|
self.view.single.buttonSkill:InitCharInfoSkillButton(self.skills[1], function()
|
|
self:_OnClick()
|
|
end)
|
|
self.view.single.buttonSkillShadow:InitCharInfoSkillButton(self.skills[1], function()
|
|
self:_OnClick()
|
|
end)
|
|
self.view.single.buttonSkill:RefreshRedDot(self.m_charInfo)
|
|
else
|
|
for i = 1, #self.skills do
|
|
local buttonSkillShadow = self.view.plural[string.format("buttonSkillShadow%d", i)]
|
|
local buttonSkill = self.view.plural[string.format("buttonSkill%d", i)]
|
|
buttonSkillShadow:InitCharInfoSkillButton(self.skills[i], function()
|
|
self:_OnClick()
|
|
end)
|
|
buttonSkill:InitCharInfoSkillButton(self.skills[i], function()
|
|
self:_OnClick()
|
|
end)
|
|
|
|
buttonSkill:RefreshRedDot(self.m_charInfo)
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
CharInfoSkillCell.InitSkill = HL.Method(HL.Table) << function(self, data)
|
|
self.skills = data.skills
|
|
self.m_charInfo = data.charInfo
|
|
self:_Refresh()
|
|
end
|
|
|
|
|
|
|
|
|
|
CharInfoSkillCell.SetSelect = HL.Method(HL.Boolean) << function(self, select)
|
|
local single = #self.skills == 1
|
|
if single then
|
|
self.view.single.buttonSkill.view.imageSelect2.gameObject:SetActive(select)
|
|
else
|
|
self.view.plural.select.gameObject:SetActive(select)
|
|
end
|
|
end
|
|
|
|
HL.Commit(CharInfoSkillCell)
|
|
return CharInfoSkillCell
|
|
|