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