PGRData/Script/matrix/xui/xuicharacterdetail/XUiCharacterDetail.lua

285 lines
No EOL
14 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.

local XUiCharacterDetail = XLuaUiManager.Register(XLuaUi, "UiCharacterDetail")
local CharDetailUiType = {
Detail = 1, --详细信息
Parner = 2, --推荐角色
Equip = 3, --推荐装备
}
local CHILD_UI_EQUIP = "UiPanelEquipInfo"
local CHILD_UI_TEAM = "UiPanelTeamInfo"
-- auto
-- Automatic generation of code, forbid to edit
function XUiCharacterDetail:InitAutoScript()
self:AutoInitUi()
self:AutoAddListener()
end
function XUiCharacterDetail:AutoInitUi()
self.BtnBack = self.Transform:Find("SafeAreaContentPane/CharTopButton/BtnBack"):GetComponent("Button")
self.PanelDetailInfo = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo")
self.PanelContent = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent")
self.RImgRoleIcon = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/RImgRoleIcon"):GetComponent("RawImage")
self.PanelLeftInfo = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/PanelLeftInfo")
self.RImgQuality = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/PanelLeftInfo/RImgQuality"):GetComponent("RawImage")
self.BtnArchive = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/PanelLeftInfo/BtnArchive"):GetComponent("Button")
self.BtnDetial = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/PanelLeftInfo/BtnDetial"):GetComponent("Button")
self.PanelRight = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight")
self.PanelRightInfo = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo")
self.TxtElementDes2 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel2/layout/RootTxtPanel2/TxtElementDes2"):GetComponent("Text")
self.TxtElementValue1 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel2/layout/RootTxtPanel1/TxtElementValue1"):GetComponent("Text")
self.TxtCareerName = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel1/TxtCareerName"):GetComponent("Text")
self.ImgCareerIcon = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel1/ImgCareerIcon"):GetComponent("Image")
self.TxtElementDes1 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel2/layout/RootTxtPanel1/TxtElementDes1"):GetComponent("Text")
self.TxtSpecialDes2 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel3/layout/RootTxtPanel2/TxtSpecialDes2"):GetComponent("Text")
self.Txt1 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel3/layout/RootTxtPanel1/Txt1"):GetComponent("Text")
self.TxtSpecialDes1 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel3/layout/RootTxtPanel1/TxtSpecialDes1"):GetComponent("Text")
self.PanelEdgeRoot = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/PanelEdgeRoot")
self.PanelPointRoot = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/PanelPointRoot")
self.TxtElementValue2 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel2/layout/RootTxtPanel2/TxtElementValue2"):GetComponent("Text")
self.TxtElementDes3 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel2/layout/RootTxtPanel3/TxtElementDes3"):GetComponent("Text")
self.TxtElementValue3 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel2/layout/RootTxtPanel3/TxtElementValue3"):GetComponent("Text")
self.Txt2 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel3/layout/RootTxtPanel2/Txt2"):GetComponent("Text")
self.TxtSpecialDes3 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel3/layout/RootTxtPanel3/TxtSpecialDes3"):GetComponent("Text")
self.Txt3 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel3/layout/RootTxtPanel3/Txt3"):GetComponent("Text")
self.TxtGraphName1 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/RootGraphName/TxtGraphName1"):GetComponent("Text")
self.TxtGraphName2 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/RootGraphName/TxtGraphName2"):GetComponent("Text")
self.TxtGraphName3 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/RootGraphName/TxtGraphName3"):GetComponent("Text")
self.TxtGraphName4 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/RootGraphName/TxtGraphName4"):GetComponent("Text")
self.TxtGraphName5 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/RootGraphName/TxtGraphName5"):GetComponent("Text")
self.TxtGraphName6 = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/PanelRightInfo/RootPanel4/Graph/RootGraphName/TxtGraphName6"):GetComponent("Text")
self.BtnTeamRecomend = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/BtnTeamRecomend"):GetComponent("Button")
self.BtnEquipRecomend = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelRight/BtnEquipRecomend"):GetComponent("Button")
self.TxtCharacterDesName = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/RootTxtPanel2/TxtCharacterDesName"):GetComponent("Text")
self.TxtCharacterName = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/RootTxtPanel1/TxtCharacterName"):GetComponent("Text")
self.PanelArchiveTips = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelArchiveTips")
self.TxtArchiveTitle = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelArchiveTips/TxtArchiveTitle"):GetComponent("Text")
self.TxtArchIvesDes = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/PanelArchiveTips/TxtArchIvesDes"):GetComponent("Text")
self.PanelAsset = self.Transform:Find("SafeAreaContentPane/PanelAsset")
self.BtnMainUi = self.Transform:Find("SafeAreaContentPane/CharTopButton/BtnMainUi"):GetComponent("Button")
self.TxtCV = self.Transform:Find("SafeAreaContentPane/PanelDetailInfo/PanelContent/Left/RootTxtPanel3/TxtCV"):GetComponent("Text")
end
function XUiCharacterDetail:AutoAddListener()
self:RegisterClickEvent(self.BtnBack, self.OnBtnBackClick)
self:RegisterClickEvent(self.BtnArchive, self.OnBtnArchiveClick)
self:RegisterClickEvent(self.BtnDetial, self.OnBtnDetialClick)
self:RegisterClickEvent(self.BtnTeamRecomend, self.OnBtnTeamRecomendClick)
self:RegisterClickEvent(self.BtnEquipRecomend, self.OnBtnEquipRecomendClick)
self:RegisterClickEvent(self.BtnMainUi, self.OnBtnMainUiClick)
end
-- auto
function XUiCharacterDetail:OnBtnTeamRecomendClick()
self:SwitchView(CharDetailUiType.Parner)
end
function XUiCharacterDetail:OnBtnEquipRecomendClick()
self:SwitchView(CharDetailUiType.Equip)
end
function XUiCharacterDetail:OnBtnDetialClick()
XUiHelper.StopAnimation()
self:PlayAnimation("QieHuanDisable")
self.BtnArchive.gameObject:SetActiveEx(true)
self.BtnDetial.gameObject:SetActiveEx(false)
end
function XUiCharacterDetail:OnBtnArchiveClick()
XUiHelper.StopAnimation()
self:PlayAnimation("QieHuan")
self.BtnArchive.gameObject:SetActiveEx(false)
self.BtnDetial.gameObject:SetActiveEx(true)
end
function XUiCharacterDetail:OnAwake()
self:InitAutoScript()
self.TxtElementDes = {
[1] = self.TxtElementDes1,
[2] = self.TxtElementDes2,
[3] = self.TxtElementDes3
}
self.TxtElementValue = {
[1] = self.TxtElementValue1,
[2] = self.TxtElementValue2,
[3] = self.TxtElementValue3
}
self.TxtSpecialDes = {
[1] = self.TxtSpecialDes1,
[2] = self.TxtSpecialDes2,
[3] = self.TxtSpecialDes3
}
self.Txt = {
[1] = self.Txt1,
[2] = self.Txt2,
[3] = self.Txt3
}
self.TxtGraphName = {
[1] = self.TxtGraphName1,
[2] = self.TxtGraphName2,
[3] = self.TxtGraphName3,
[4] = self.TxtGraphName4,
[5] = self.TxtGraphName5,
[6] = self.TxtGraphName6
}
end
function XUiCharacterDetail:OnStart(CharacterId)
local detailConfig = XCharacterConfigs.GetCharDetailTemplate(CharacterId)
if not detailConfig then
return
end
self.CharacterId = CharacterId
self.AssetPanel = XUiPanelAsset.New(self, self.PanelAsset, XDataCenter.ItemManager.ItemId.FreeGem, XDataCenter.ItemManager.ItemId.ActionPoint, XDataCenter.ItemManager.ItemId.Coin)
self.PanelContentRtf = self.PanelContent:GetComponent("RectTransform")
self.BtnArchive.gameObject:SetActiveEx(true)
self.BtnDetial.gameObject:SetActiveEx(false)
self.PanelAsset.gameObject:SetActiveEx(false)
self:SwitchView(CharDetailUiType.Detail)
end
function XUiCharacterDetail:SwitchView(uiType)
self.CurUiType = uiType
self:UpdateStateView()
end
function XUiCharacterDetail:UpdateStateView()
if self.CurUiType == CharDetailUiType.Detail then
self.PanelAsset.gameObject:SetActiveEx(false)
self.PanelDetailInfo.gameObject:SetActiveEx(true)
self:UpdateRightElementView()
self:CloseChildUi(CHILD_UI_EQUIP)
self:CloseChildUi(CHILD_UI_TEAM)
elseif self.CurUiType == CharDetailUiType.Equip then
self.PanelAsset.gameObject:SetActiveEx(true)
self.PanelDetailInfo.gameObject:SetActiveEx(false)
self:OpenChildUi(CHILD_UI_EQUIP, self.CharacterId, self)
self:CloseChildUi(CHILD_UI_TEAM)
elseif self.CurUiType == CharDetailUiType.Parner then
self.PanelAsset.gameObject:SetActiveEx(true)
self.PanelDetailInfo.gameObject:SetActiveEx(false)
self:CloseChildUi(CHILD_UI_EQUIP)
self:OpenChildUi(CHILD_UI_TEAM, self.CharacterId, self)
end
end
function XUiCharacterDetail:UpdateRightElementView()
local detailConfig = XCharacterConfigs.GetCharDetailTemplate(self.CharacterId)
local charConfig = XCharacterConfigs.GetCharacterTemplate(self.CharacterId)
if not detailConfig or not charConfig then
return
end
--描述
self.TxtArchiveTitle.text = charConfig.Name
self.TxtArchIvesDes.text = detailConfig.DetailDes
--职业
local careerConfig = XCharacterConfigs.GetNpcTypeTemplate(detailConfig.Career)
if not careerConfig then
return
end
self.TxtCareerName.text = careerConfig.Name
self:SetUiSprite(self.ImgCareerIcon, careerConfig.Icon)
--元素
local elementValueList = detailConfig.ObtainElementValueList
local elementList = detailConfig.ObtainElementList
for i = 1, 3 do
if elementList[i] then
self.TxtElementDes[i].gameObject:SetActiveEx(true)
self.TxtElementValue[i].gameObject:SetActiveEx(true)
self.TxtElementValue[i].text = string.format("%s%s", elementValueList[i], "%")
local config = XCharacterConfigs.GetCharElement(elementList[i])
if config then
self.TxtElementDes[i].text = config.ElementName
end
else
self.TxtElementDes[i].gameObject:SetActiveEx(false)
self.TxtElementValue[i].gameObject:SetActiveEx(false)
end
end
--特点
local specialTitleList = detailConfig.ObtainSpeicalTitle
local specialDesList = detailConfig.ObtainSpeicalDes
for i = 1, 3 do
if specialTitleList[i] then
self.TxtSpecialDes[i].text = specialTitleList[i]
self.Txt[i].text = specialDesList[i]
self.TxtSpecialDes[i].gameObject:SetActiveEx(true)
self.Txt[i].gameObject:SetActiveEx(true)
else
self.TxtSpecialDes[i].gameObject:SetActiveEx(false)
self.Txt[i].gameObject:SetActiveEx(false)
end
end
--类型
local graphValueList = detailConfig.AttribGraphNum
local len = #graphValueList
for i = 1, len do
local pointTrans = self.PanelPointRoot:GetChild(i - 1)
local edgePos = self.PanelEdgeRoot:GetChild(i - 1).localPosition
local ratio = graphValueList[i] / 100
pointTrans.localPosition = CS.UnityEngine.Vector3(edgePos.x * ratio, edgePos.y * ratio, 0)
end
self.PanelPointRoot.parent:GetComponent(typeof(CS.XUiPolygon)):Refresh()
--类型名字
for i = 1, 6 do
local config = XCharacterConfigs.GetCharGraphTemplate(i)
if config then
self.TxtGraphName[i].text = config.GraphName
end
end
--人物名字名称icon等
local quality = XCharacterConfigs.GetCharMinQuality(self.CharacterId)
local npcId = XCharacterConfigs.GetCharNpcId(self.CharacterId, quality)
local npc = CS.XNpcManager.GetNpcTemplate(npcId)
if not npc then
return
end
self.RImgQuality:SetRawImage(XCharacterConfigs.GetCharQualityIcon(quality))
self.RImgRoleIcon:SetRawImage(XDataCenter.CharacterManager.GetCharHalfBodyImage(self.CharacterId))
self.TxtCharacterName.text = charConfig.Name
self.TxtCharacterDesName.text = charConfig.TradeName
local castName = XFavorabilityConfigs.GetCharacterCvById(self.CharacterId)
local cast = (castName ~= "") and CS.XTextManager.GetText("FavorabilityCast", tostring(castName)) or ""
self.TxtCV.text = cast
end
function XUiCharacterDetail:OnBtnBackClick()
if self.CurUiType == CharDetailUiType.Parner or self.CurUiType == CharDetailUiType.Equip then
self:SwitchView(CharDetailUiType.Detail)
else
local tPos = self.PanelContentRtf.anchoredPosition
if tPos.x > -400 then
self.PanelContentRtf.anchoredPosition = CS.UnityEngine.Vector2(-450, tPos.y)
self.BtnArchive.gameObject:SetActiveEx(true)
self.BtnDetial.gameObject:SetActiveEx(false)
else
self:Close()
end
end
end
function XUiCharacterDetail:OnBtnMainUiClick()
XLuaUiManager.RunMain()
end