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

285 lines
14 KiB
Lua
Raw Normal View History

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