PGRData/Script/matrix/xui/xuifubencouplecombat/childview/XUiPanelSkillTips.lua
2024-09-01 22:49:41 +02:00

130 lines
No EOL
4.5 KiB
Lua

-- v1.32 技能描述
--====================================================================
local XGridDesc = XClass(nil, "XGridSkill")
function XGridDesc:Ctor(ui)
self.Ui = ui
XUiHelper.InitUiClass(self, ui)
end
function XGridDesc:Refresh(titleTxt, descTxt)
self.Text.text = titleTxt
self.Text2.text = descTxt
end
function XGridDesc:SetActive(isActive)
self.GameObject:SetActiveEx(isActive)
end
--====================================================================
local XUiPanelSkillTips = XClass(nil, "XUiPanelSkillTips")
function XUiPanelSkillTips:Ctor(uiRoot, ui)
self.UiRoot = uiRoot
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.SkillCareerDesc = nil
self.SkillActiveDesc = nil
self.SkillPassiveDesc = nil
XTool.InitUiObject(self)
self:AddClickListener()
self.BtnClosePosition = self.BtnClose.transform.position
end
function XUiPanelSkillTips:AddClickListener()
XUiHelper.RegisterClickEvent(self, self.BtnClose, function() self:SetActive(false) end)
end
function XUiPanelSkillTips:SetData(careerskillId, index, cb)
self.CareerskillId = careerskillId
self.Index = index
self.Cb = cb
end
function XUiPanelSkillTips:Refresh()
self:RefreshDesc()
self:RefreshPosition()
end
--设置弹窗在界面中的位置
function XUiPanelSkillTips:RefreshPosition()
local usedSkillIds = XDataCenter.FubenCoupleCombatManager.GetUsedSkillIds()
local skillCount = #usedSkillIds
local index = skillCount - self.Index + 1
if self.UiRoot.GridSkillTemplates[index] then
local gridSkillTransform = self.UiRoot.GridSkillTemplates[index].Transform
local position = Vector3(
gridSkillTransform.position.x,
gridSkillTransform.position.y,
self.Transform.position.z)
self.Transform.position = position
self.Transform.localPosition = self.Transform.localPosition -
Vector3(self.Transform.rect.width / 2, - (self.Transform.rect.height / 2 + gridSkillTransform.rect.height / 1.5) ,0)
end
self.BtnClose.transform.position = self.BtnClosePosition
end
function XUiPanelSkillTips:RefreshDesc()
--技能名称
self.TxtName.text = XFubenCoupleCombatConfig.GetCharacterCareerSkillName(self.CareerskillId)
self.TxtEnName.text = XFubenCoupleCombatConfig.GetCharacterCareerSkillEnName(self.CareerskillId)
--图标
local skillIconPath = XFubenCoupleCombatConfig.GetCharacterCareerSkillIcon(self.CareerskillId)
self.RImgIcon:SetRawImage(skillIconPath)
--技能等级(4期不用)
-- local iconLv = XFubenCoupleCombatConfig.GetCharacterCareerSkillIconLv(self.CareerskillId)
-- if iconLv then
-- self.ImgIconLv:SetSprite(iconLv)
-- self.Triangle.gameObject:SetActiveEx(true)
-- self.ImgIconLv.gameObject:SetActiveEx(true)
-- else
-- self.Triangle.gameObject:SetActiveEx(false)
-- self.ImgIconLv.gameObject:SetActiveEx(false)
-- end
--技能职业描述
if not self.SkillCareerDesc then
self.SkillCareerDesc = XGridDesc.New(self.Skill)
end
local belongCareers = XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupBelongCareers(self.CareerskillId)
local text = nil
local connent = ","
for _, career in ipairs(belongCareers) do
if not text then
text = career
else
text = text .. connent .. career
end
end
if text then
self.SkillCareerDesc:Refresh(XUiHelper.GetText("CoupleCombatSkillCareerTitle"), text)
else
self.SkillCareerDesc:SetActive(false)
end
--主动技能描述
if not self.SkillActiveDesc then
self.SkillActiveDesc = XGridDesc.New(XUiHelper.Instantiate(self.Skill.gameObject, self.DescContent))
end
self.SkillActiveDesc:Refresh(XUiHelper.GetText("CoupleCombatSkillActiveTitle"), XFubenCoupleCombatConfig.GetCharacterCareerSkillDescription(self.CareerskillId))
--被动技能描述
if not self.SkillPassiveDesc then
self.SkillPassiveDesc = XGridDesc.New(XUiHelper.Instantiate(self.Skill.gameObject, self.DescContent))
end
self.SkillPassiveDesc:Refresh(XUiHelper.GetText("CoupleCombatSkillPassiveTitle"), XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupDescription(self.CareerskillId))
end
function XUiPanelSkillTips:SetActive(active)
self.GameObject:SetActiveEx(active)
if active then
self:Refresh()
else
if self.Cb then
self.Cb()
end
end
end
return XUiPanelSkillTips