PGRData/Script/matrix/xui/xuitheatre/roledetail/XUiTheatreOwnedInfoPanel.lua

726 lines
No EOL
26 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--######################## XGridSkill 技能格子 ########################
local XGridSkill = XClass(nil, "XGridSkill")
function XGridSkill:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
XUiHelper.RegisterClickEvent(self, self.BtnSubSkillIconBg, self.OnBtnSubSkillIconBgClick)
end
function XGridSkill:SetData(skillData)
self.SkillData = skillData
local icon = skillData.Icon
if icon then
self.RImgSubSkillIconNormal:SetRawImage(icon)
end
if self.RImgSubSkillIconSelected then
self.RImgSubSkillIconSelected:SetRawImage(icon)
end
local level = skillData.Level
local txtLevel = self.TxtLevel or self.TxtSubSkillLevel
txtLevel.text = level
self.PanelSkillLock.gameObject:SetActiveEx(not XTool.IsNumberValid(level))
self.GameObject:SetActiveEx(true)
end
function XGridSkill:OnBtnSubSkillIconBgClick()
local skillData = self.SkillData
local skillId = skillData.SkillId
local level = skillData.Level
if not skillId or not level then
return
end
XLuaUiManager.Open("UiTheatreBuffDetails", skillId, level)
end
--######################## XPanelRoleSkill 技能详细面板 ########################
local BALL_SKILL_COUNT = 3 --信号球数量
local MAIN_SKILL_INDEX = 4 --主动技能
local PASSIVE_SKILL_INDEX = 5 --被动技能
local XPanelRoleSkill = XClass(nil, "XPanelRoleSkill")
function XPanelRoleSkill:Ctor(ui, backClickCb, panelIndex)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.PanelIndex = panelIndex
self.BackClickCb = backClickCb
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
XUiHelper.RegisterClickEvent(self, self.BtnGoBack, self.OnBtnGoBackClick)
self:Init()
end
function XPanelRoleSkill:Init()
local icon = XTheatreConfigs.GetRoleDetailSkillIcon()
self.ImgNormalIcon:SetSprite(icon)
self.ImgPressIcon:SetSprite(icon)
local descs = XTheatreConfigs.GetRoleDetailSkillDesc()
self.TxtNormalName.text = descs[1]
self.TxtPressName.text = descs[1]
self.TxtNormalMassage.text = descs[2]
self.TxtPressMassage.text = descs[2]
self.BallSkillGrids = {}
self.ActiveSkillGrids = {}
self.PassiveSkillGrids = {}
self.GridSkillBall.gameObject:SetActiveEx(false)
self.GridActiveSkill.gameObject:SetActiveEx(false)
self.GridSubSkill.gameObject:SetActiveEx(false)
end
function XPanelRoleSkill:SetData(adventureRole)
local skills = adventureRole:GetSkill()
--信号球
self:UpdateBallSkillList(skills)
--主动技能
self:UpdateActiveSkillList(skills)
--被动技能
self:UpdatePassiveSkillList(skills)
end
function XPanelRoleSkill:UpdateBallSkillList(skills)
if not skills then
for i, v in ipairs(self.BallSkillGrids) do
v.GameObject:SetActiveEx(false)
end
return
end
for i = 1, BALL_SKILL_COUNT do
local skillGrid = self.BallSkillGrids[i]
if not skillGrid then
skillGrid = XGridSkill.New(XUiHelper.Instantiate(self.GridSkillBall, self.PanelSkilBall))
skillGrid.GameObject:SetActiveEx(true)
self.BallSkillGrids[i] = skillGrid
end
local data = skills[i].subSkills[1]
skillGrid:SetData({Icon = data.configDes.Icon, Level = data.Level, SkillId = data.configDes.SkillId})
end
end
function XPanelRoleSkill:UpdateActiveSkillList(skills)
if not skills then
for i, v in ipairs(self.ActiveSkillGrids) do
v.GameObject:SetActiveEx(false)
end
return
end
local mainSkill = skills[MAIN_SKILL_INDEX]
for i, v in ipairs(mainSkill.subSkills) do
local skillGrid = self.ActiveSkillGrids[i]
if not skillGrid then
skillGrid = XGridSkill.New(XUiHelper.Instantiate(self.GridActiveSkill, self.PanelActiveSkill))
skillGrid.GameObject:SetActiveEx(true)
self.ActiveSkillGrids[i] = skillGrid
end
skillGrid:SetData({Icon = v.configDes.Icon, Level = v.Level, SkillId = v.configDes.SkillId})
end
end
function XPanelRoleSkill:UpdatePassiveSkillList(skills)
if not skills then
for i, v in ipairs(self.PassiveSkillGrids) do
v.GameObject:SetActiveEx(false)
end
return
end
local passiveSkill = skills[PASSIVE_SKILL_INDEX]
for i, v in ipairs(passiveSkill.subSkills) do
local skillGrid = self.PassiveSkillGrids[i]
if not skillGrid then
skillGrid = XGridSkill.New(XUiHelper.Instantiate(self.GridSubSkill, self.PanelPassiveSkill))
skillGrid.GameObject:SetActiveEx(true)
self.PassiveSkillGrids[i] = skillGrid
end
skillGrid:SetData({Icon = v.configDes.Icon, Level = v.Level, SkillId = v.configDes.SkillId})
end
end
function XPanelRoleSkill:OnBtnGoBackClick()
self.BackClickCb(self.PanelIndex, true)
end
function XPanelRoleSkill:SetBtnGoBackActive(isActive)
self.BtnGoBack.gameObject:SetActiveEx(isActive)
end
--######################## XPanelSkill 技能简略面板 ########################
local CORE_SKILL_COUNT = 4
local GridSkillIndexs = {
NormalAtk = 1, --普攻
Ball = 2, --信号球
ExSkill = 3, --必杀
PassiveSkill = 4, --核心被动
}
local XPanelSkill = XClass(nil, "XPanelSkill")
function XPanelSkill:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
self:Init()
end
function XPanelSkill:Init()
local icon = XTheatreConfigs.GetRoleDetailSkillIcon()
self.ImgNormalIcon:SetSprite(icon)
self.ImgPressIcon:SetSprite(icon)
local descs = XTheatreConfigs.GetRoleDetailSkillDesc()
self.TxtNormalName.text = descs[1]
self.TxtPressName.text = descs[1]
self.TxtNormalMassage.text = descs[2]
self.TxtPressMassage.text = descs[2]
self.SkillGrids = {}
self.GridNormalSubSkill.gameObject:SetActiveEx(false)
self.GridPressSubSkill.gameObject:SetActiveEx(false)
for i = 1, CORE_SKILL_COUNT do
local grids = {}
grids[1] = XGridSkill.New(XUiHelper.Instantiate(self.GridNormalSubSkill, self.PanelNormalAll))
grids[2] = XGridSkill.New(XUiHelper.Instantiate(self.GridPressSubSkill, self.PanelPressAll))
self.SkillGrids[i] = grids
end
end
function XPanelSkill:SetData(adventureRole)
local skills = adventureRole:GetSkill()
local mainSkill = skills[MAIN_SKILL_INDEX]
local data = mainSkill.subSkills[1]
--普攻
for _, grid in ipairs(self.SkillGrids[GridSkillIndexs.NormalAtk]) do
grid:SetData({Icon = XTheatreConfigs.GetSkillPosIcon(GridSkillIndexs.NormalAtk), Level = data.Level})
end
--信号球
local ballLevel = 0
for i = 1, BALL_SKILL_COUNT do
data = skills[i].subSkills[1]
ballLevel = ballLevel + data.Level
end
ballLevel = ballLevel / BALL_SKILL_COUNT
for _, grid in ipairs(self.SkillGrids[GridSkillIndexs.Ball]) do
grid:SetData({Icon = XTheatreConfigs.GetSkillPosIcon(GridSkillIndexs.Ball), Level = math.ceil(ballLevel)})
end
--必杀
data = mainSkill.subSkills[2]
for _, grid in ipairs(self.SkillGrids[GridSkillIndexs.ExSkill]) do
grid:SetData({Icon = XTheatreConfigs.GetSkillPosIcon(GridSkillIndexs.ExSkill), Level = data.Level})
end
--核心被动
local passiveSkill = skills[PASSIVE_SKILL_INDEX]
data = passiveSkill.subSkills[1]
for _, grid in ipairs(self.SkillGrids[GridSkillIndexs.PassiveSkill]) do
grid:SetData({Icon = XTheatreConfigs.GetSkillPosIcon(GridSkillIndexs.PassiveSkill), Level = data.Level})
end
end
--######################## XGridAwareness 武器格子 ########################
local XUiGridEquipOther = require("XUi/XUiPlayerInfo/XUiGridEquipOther")
local XGridAwareness = XClass(nil, "XGridAwareness")
function XGridAwareness:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
self.WeaponGrid = XUiGridEquipOther.New(self.GridAwareness, {Parent = rootUi})
end
function XGridAwareness:Refresh(equip)
if not equip then
return
end
self.TxtNumber.text = equip.Level --武器等级
self.WeaponGrid:Refresh(equip)
end
--######################## XGridSuit 意识套装格子 ########################
local XUiGridSuitDetail = require("XUi/XUiEquipAwarenessReplace/XUiGridSuitDetail")
local XGridSuit = XClass(nil, "XGridSuit")
function XGridSuit:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self:InitUi()
end
function XGridSuit:InitUi()
self.PanelResonance.gameObject:SetActiveEx(false)
self.LeftUp.gameObject:SetActiveEx(false)
self.PanelSite.gameObject:SetActiveEx(false)
self.ImgBreakthrough.gameObject:SetActiveEx(false)
end
--dataXAdventureRole:GetSuitMergeActiveDatas()
function XGridSuit:Refresh(data)
self.RImgIcon:SetRawImage(data.Icon)
--意识套装没有质量等级,默认用套装第一个部位的品级
local suitId = data.SuitId
if XEquipConfig.IsDefaultSuitId(suitId) then
self.ImgQuality.gameObject:SetActive(false)
else
local ids = XDataCenter.EquipManager.GetEquipTemplateIdsBySuitId(suitId)
self.ImgQuality:SetSprite(XDataCenter.EquipManager.GetEquipQualityPath(ids[1]))
self.ImgQuality.gameObject:SetActive(true)
end
-- self.GridSuit:Refresh(data.SuitId)
end
--######################## XPanelSuit 意识套装布局 ########################
local XPanelSuit = XClass(nil, "XPanelSuit")
function XPanelSuit:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.GridSuit = XGridSuit.New(self.GridAwareness, rootUi)
end
function XPanelSuit:Refresh(data)
self.TxtNumber.text = data.Level
self.GridSuit:Refresh(data)
end
--######################## XPanelAwareness 武器和意识简略面板 ########################
local XPanelAwareness = XClass(nil, "XPanelAwareness")
function XPanelAwareness:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
self:Init(rootUi)
end
function XPanelAwareness:Init(rootUi)
self.RootUi = rootUi
local icon = XTheatreConfigs.GetRoleDetailEquipIcon()
self.ImgNormalIcon:SetSprite(icon)
self.ImgPressIcon:SetSprite(icon)
local descs = XTheatreConfigs.GetRoleDetailEquiupDesc()
self.TxtNormalName.text = descs[1]
self.TxtPressName.text = descs[1]
self.TxtNormalMassage.text = descs[2]
self.TxtPressMassage.text = descs[2]
self.WeaponGridNormal = XGridAwareness.New(self.PanelNormalWeapon, rootUi)
self.WeaponGridPress = XGridAwareness.New(self.PanelPressWeapon, rootUi)
self.SuitGrids = {}
end
function XPanelAwareness:SetData(adventureRole)
local characterId = adventureRole:GetId()
--武器
local weaponEquip = adventureRole:GetWeaponEquip()
self.WeaponGridNormal:Refresh(weaponEquip)
self.WeaponGridPress:Refresh(weaponEquip)
--意识四件套和二件套
local suitMergeActiveDatas = adventureRole:GetSuitMergeActiveDatas()
for i, data in ipairs(suitMergeActiveDatas) do
local suitGrids = self.SuitGrids[i]
if not suitGrids then
suitGrids = {}
suitGrids[1] = XPanelSuit.New(self["PanelNormalAwareness" .. i], self.RootUi)
suitGrids[2] = XPanelSuit.New(self["PanelPressAwareness" .. i], self.RootUi)
self.SuitGrids[i] = suitGrids
end
for i, suitGrid in ipairs(suitGrids) do
suitGrid:Refresh(data)
suitGrid.GameObject:SetActiveEx(true)
self["PanelNormalAwarenessDisable" .. i].gameObject:SetActiveEx(false)
self["PanelPressAwarenessDisable" .. i].gameObject:SetActiveEx(false)
end
end
for i = #suitMergeActiveDatas + 1, 2 do
local suitGrids = self.SuitGrids[i]
for gridIndex, suitGrid in ipairs(suitGrids or {}) do
suitGrid.GameObject:SetActiveEx(false)
end
self["PanelNormalAwarenessDisable" .. i].gameObject:SetActiveEx(true)
self["PanelPressAwarenessDisable" .. i].gameObject:SetActiveEx(true)
end
end
--######################## XPaneRolelAwareness 武器和意识详情面板 ########################
local XPaneRolelAwareness = XClass(nil, "XPaneRolelAwareness")
function XPaneRolelAwareness:Ctor(ui, backClickCb, rootUi, panelIndex)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.RootUi = rootUi
XUiHelper.InitUiClass(self, ui)
self.PanelIndex = panelIndex
self.BackClickCb = backClickCb
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
XUiHelper.RegisterClickEvent(self, self.BtnGoBack, self.OnBtnGoBackClick)
self:Init()
end
function XPaneRolelAwareness:Init()
local icon = XTheatreConfigs.GetRoleDetailEquipIcon()
self.ImgNormalIcon:SetSprite(icon)
self.ImgPressIcon:SetSprite(icon)
local descs = XTheatreConfigs.GetRoleDetailEquiupDesc()
self.TxtNormalName.text = descs[1]
self.TxtPressName.text = descs[1]
self.TxtNormalMassage.text = descs[2]
self.TxtPressMassage.text = descs[2]
self.GridAwareness.gameObject:SetActiveEx(true)
end
function XPaneRolelAwareness:SetData(adventureRole)
self.AdventureRole = adventureRole
local characterId = adventureRole:GetId()
local rootUi = self.RootUi
--武器
local weaponEquip = adventureRole:GetWeaponEquip()
self.WeaponGrid = self.WeaponGrid or XUiGridEquipOther.New(self.GridAwareness, { Parent = rootUi }, function()
XLuaUiManager.Open("UiEquipDetailOther", self.AdventureRole:GetWeaponEquip(), self.AdventureRole:GetCharacterViewModel())
end)
self.WeaponGrid:Refresh(weaponEquip)
--意识
self.WearingAwarenessGrids = self.WearingAwarenessGrids or {}
for i, equipSite in pairs(XEquipConfig.EquipSite.Awareness) do
local panelAwareness = self["PanelAwareness" .. equipSite]
local gridAwareness = XUiHelper.TryGetComponent(panelAwareness.transform, "GridAwareness")
local equip = adventureRole:GetWearingEquipBySite(equipSite)
local equipSiteTemp = equipSite
self.WearingAwarenessGrids[equipSite] = self.WearingAwarenessGrids[equipSite] or XUiGridEquipOther.New(gridAwareness, { Parent = rootUi }, function()
XLuaUiManager.Open("UiEquipDetailOther", self.AdventureRole:GetWearingEquipBySite(equipSite), adventureRole:GetCharacterViewModel())
end)
if not equip then
panelAwareness.gameObject:SetActiveEx(false)
self["PanelAwarenessDisable" .. equipSite].gameObject:SetActiveEx(true)
else
self.WearingAwarenessGrids[equipSite]:Refresh(equip)
panelAwareness.gameObject:SetActiveEx(true)
self["PanelAwarenessDisable" .. equipSite].gameObject:SetActiveEx(false)
end
end
end
function XPaneRolelAwareness:OnBtnGoBackClick()
self.BackClickCb(self.PanelIndex, true)
end
function XPaneRolelAwareness:SetBtnGoBackActive(isActive)
self.BtnGoBack.gameObject:SetActiveEx(isActive)
end
--######################## XPanelRole 简略角色面板 ########################
local XPanelRole = XClass(nil, "XPanelRole")
function XPanelRole:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
self:Init()
end
function XPanelRole:Init()
local icon = XTheatreConfigs.GetRoleDetailLevelIcon()
self.ImgNormalIcon:SetSprite(icon)
self.ImgPressIcon:SetSprite(icon)
local lvDescs = XTheatreConfigs.GetRoleDetailLevelDesc()
self.TxtNormalName.text = lvDescs[1]
self.TxtPressName.text = lvDescs[1]
self.TxtNormalMassage.text = lvDescs[2]
self.TxtPressMassage.text = lvDescs[2]
end
function XPanelRole:SetData(adventureRole)
local charViewModel = adventureRole:GetCharacterViewModel()
local isLocalRole = adventureRole:GetIsLocalRole()
--当前等级
local curLevel = adventureRole:GetLevel()
self.TxtNormalCurLevel.text = curLevel
self.TxtPressCurLevel.text = curLevel
--最大等级
local maxLevel = adventureRole:GetMaxLevel()
self.TxtNormalMaxLevel.text = XUiHelper.GetText("TheatreDetailRoleMaxLevel", maxLevel)
self.TxtPressMaxLevel.text = XUiHelper.GetText("TheatreDetailRoleMaxLevel", maxLevel)
--经验
local curExp = adventureRole:GetCurExp()
local nextLevelExp = adventureRole:GetNextLevelExp()
local showExpDesc = string.format("%s/%s", curExp, nextLevelExp)
local percent = curExp / nextLevelExp
self.TxtNormalExp.text = showExpDesc
self.TxtPressExp.text = showExpDesc
self.ImgNormalFill.fillAmount = percent
self.ImgPressFill.fillAmount = percent
self.TxtNormalExp.gameObject:SetActiveEx(true)
self.TxtPressExp.gameObject:SetActiveEx(true)
self.SliExp.gameObject:SetActiveEx(true)
end
--######################## XPanelRoleEnter 详细角色面板 ########################
local XPanelRoleEnter = XClass(nil, "XPanelRoleEnter")
function XPanelRoleEnter:Ctor(ui, backClickCb, panelIndex)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XUiHelper.InitUiClass(self, ui)
self.PanelIndex = panelIndex
self.BackClickCb = backClickCb
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
XUiHelper.RegisterClickEvent(self, self.BtnGoBack, self.OnBtnGoBackClick)
end
function XPanelRoleEnter:SetData(adventureRole)
local charViewModel = adventureRole:GetCharacterViewModel()
local isLocalRole = adventureRole:GetIsLocalRole()
local character = charViewModel:GetCharacter()
local icon = XTheatreConfigs.GetRoleDetailLevelIcon()
self.ImgNormalIcon:SetSprite(icon)
self.ImgPressIcon:SetSprite(icon)
local lvDescs = XTheatreConfigs.GetRoleDetailLevelDesc()
self.TxtNormalName.text = lvDescs[1]
self.TxtPressName.text = lvDescs[1]
self.TxtNormalMassage.text = lvDescs[2]
self.TxtPressMassage.text = lvDescs[2]
--当前等级
local curLevel = adventureRole:GetLevel()
self.TxtCurLevel.text = curLevel
--最大等级
local maxLevel = adventureRole:GetMaxLevel()
self.TxtMaxLevel.text = XUiHelper.GetText("TheatreDetailRoleMaxLevel", maxLevel)
--经验
local curExp = charViewModel:GetCurExp()
local nextLevelExp = charViewModel:GetNextLevelExp()
local showExpDesc = string.format("%s/%s", curExp, nextLevelExp)
local expPercent = curExp / nextLevelExp
self.TxtExp.text = showExpDesc
self.ImgFill.fillAmount = expPercent
--属性
local rawData = adventureRole:GetRawData()
local attribs = charViewModel:GetAttributes(rawData.GetEquipViewModels and rawData:GetEquipViewModels())
self.TxtAttack.text = attribs and FixToInt(attribs[XNpcAttribType.AttackNormal])
self.TxtLife.text = attribs and FixToInt(attribs[XNpcAttribType.Life])
self.TxtDefense.text = attribs and FixToInt(attribs[XNpcAttribType.DefenseNormal])
self.TxtCrit.text = attribs and FixToInt(attribs[XNpcAttribType.Crit])
--等级进度
self.ImgJd.fillAmount = curLevel / maxLevel
end
function XPanelRoleEnter:OnBtnGoBackClick()
self.BackClickCb(self.PanelIndex, true)
end
function XPanelRoleEnter:SetBtnGoBackActive(isActive)
self.BtnGoBack.gameObject:SetActiveEx(isActive)
end
--######################## XUiTheatreOwnedInfoPanel ########################
local PanelIndex = {
Role = 1,
Awareness = 2,
Skill = 3,
}
local AnimationPanel = {
[PanelIndex.Role] = "RoleEnterQieHuan",
[PanelIndex.Awareness] = "RolelAwarenessQieHuan",
[PanelIndex.Skill] = "RoleSkillQieHuan",
}
--选择的角色详情
local XUiTheatreOwnedInfoPanel = XClass(nil, "XUiTheatreOwnedInfoPanel")
function XUiTheatreOwnedInfoPanel:Ctor(ui, switchRoleStateCb, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
XTool.InitUiObject(self)
self.RootUi = rootUi
self.SwitchRoleStateCb = switchRoleStateCb
self.AdventureManager = XDataCenter.TheatreManager.GetCurrentAdventureManager()
self:AddButtonClick()
self:Init(rootUi)
end
function XUiTheatreOwnedInfoPanel:Init(rootUi)
local backClickCb = handler(self, self.OnChangePanel)
self.RolePanel = XPanelRole.New(self.PanelRole)
self.RoleEnterPanel = XPanelRoleEnter.New(self.PanelRoleEnter, backClickCb, PanelIndex.Role)
self.AwarenessPanel = XPanelAwareness.New(self.PanelAwareness, rootUi)
self.RolelAwarenessPanel = XPaneRolelAwareness.New(self.PaneRolelAwareness, backClickCb, rootUi, PanelIndex.Awareness)
self.SkillPanel = XPanelSkill.New(self.PanelSkill)
self.RoleSkillPanel = XPanelRoleSkill.New(self.PanelRoleSkill, backClickCb, PanelIndex.Skill)
self:InitPanelActiveState()
self.CurShowPanelIndex = nil
end
function XUiTheatreOwnedInfoPanel:InitPanelActiveState()
self.PanelAllMassage.gameObject:SetActiveEx(true)
self.RoleEnterPanel.GameObject:SetActiveEx(false)
self.RolelAwarenessPanel.GameObject:SetActiveEx(false)
self.RoleSkillPanel.GameObject:SetActiveEx(false)
if self.AnimaPanelIndex then
self:OnChangePanel(self.AnimaPanelIndex, true)
self.AnimaPanelIndex = nil
end
end
function XUiTheatreOwnedInfoPanel:AddButtonClick()
self.BtnElementDetail.CallBack = function() self:OnBtnElementDetailClick() end
self.BtnRole.CallBack = function() self:OnChangePanel(PanelIndex.Role) end
self.BtnAwareness.CallBack = function() self:OnChangePanel(PanelIndex.Awareness) end
self.BtnSkill.CallBack = function() self:OnChangePanel(PanelIndex.Skill) end
self.BtnCut.CallBack = function() self:OnBtnCutClick() end
XUiHelper.RegisterClickEvent(self, self.BtnCareerTips, self.OnBtnCareerTipsClick)
end
function XUiTheatreOwnedInfoPanel:OnBtnCareerTipsClick()
XLuaUiManager.Open("UiCharacterCarerrTips", self.AdventureRole:GetCharacterId())
end
function XUiTheatreOwnedInfoPanel:OnBtnCutClick()
if not self.AdventureRole then
return
end
local characterId = self.AdventureRole:GetCharacterId()
if not self.AdventureRole:GetIsLocalRole() and not XDataCenter.CharacterManager.GetCharacter(characterId) then
XUiManager.TipText("NotOwnCurRole")
return
end
local entityId = self.EntityId
self.SwitchRoleStateCb(entityId)
end
--切换动画1是切换成详情2是切换回来动画自带显隐
function XUiTheatreOwnedInfoPanel:OnChangePanel(panelIndex, isBack)
local animaName = panelIndex and AnimationPanel[panelIndex]
if not animaName then
return
end
self.RoleEnterPanel:SetBtnGoBackActive(true)
self.RolelAwarenessPanel:SetBtnGoBackActive(true)
self.RoleSkillPanel:SetBtnGoBackActive(true)
self.AnimaPanelIndex = panelIndex
local animaIndex = isBack and 2 or 1
self.RootUi:PlayAnimationWithMask(animaName .. animaIndex, function()
if XTool.UObjIsNil(self.GameObject) then
return
end
self.RoleEnterPanel:SetBtnGoBackActive(not isBack)
self.RolelAwarenessPanel:SetBtnGoBackActive(not isBack)
self.RoleSkillPanel:SetBtnGoBackActive(not isBack)
end)
end
function XUiTheatreOwnedInfoPanel:SetData(adventureRole, entityId)
if not adventureRole then
return
end
self.EntityId = entityId
self.AdventureRole = adventureRole
local characterViewModel = adventureRole:GetCharacterViewModel()
self.CharacterViewModel = characterViewModel
local isLocalRole = adventureRole:GetIsLocalRole()
--角色名
self.TxtName.text = characterViewModel:GetName()
--职业图标
local professionIcon = characterViewModel:GetProfessionIcon()
self.RImgTypeIcon:SetRawImage(professionIcon)
--型号
self.TxtNameOther.text = characterViewModel:GetTradeName()
--战力
self.TxtLv.text = adventureRole:GetAbility()
--能量元素图标
local elementIconList = characterViewModel:GetObtainElementIcons()
for i = 1, 3 do
local rImg = self["RImgCharElement" .. i]
local icon = elementIconList[i]
if icon then
rImg.gameObject:SetActiveEx(true)
rImg:SetRawImage(icon)
else
rImg.gameObject:SetActiveEx(false)
end
end
--未解锁使用自身角色文本
local useOwnCharacterFa = XTheatreConfigs.GetTheatreConfig("UseOwnCharacterFa").Value
self.TxtLockSwitchRole.text = XUiHelper.GetText("TheatreUnlockOwnRoleDesc", useOwnCharacterFa)
--当前选择的是试玩或自身角色
self.TxtTry.gameObject:SetActiveEx(not isLocalRole)
self.TxtMy.gameObject:SetActiveEx(isLocalRole)
--是否可使用自己的角色
local isUseLocalRole = self.AdventureManager:CheckCanUseLocalRole()
self.PanelLockSwitchRole.gameObject:SetActiveEx(not isUseLocalRole)
self.PanelSwitchRol.gameObject:SetActiveEx(isUseLocalRole)
self.RolePanel:SetData(adventureRole)
self.RoleEnterPanel:SetData(adventureRole)
self.AwarenessPanel:SetData(adventureRole)
self.RolelAwarenessPanel:SetData(adventureRole)
self.SkillPanel:SetData(adventureRole)
self.RoleSkillPanel:SetData(adventureRole)
end
function XUiTheatreOwnedInfoPanel:OnBtnElementDetailClick()
XLuaUiManager.Open("UiCharacterElementDetail", self.CharacterViewModel:GetId())
end
return XUiTheatreOwnedInfoPanel