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