forked from endernon/PGRData
147 lines
No EOL
5.7 KiB
Lua
147 lines
No EOL
5.7 KiB
Lua
local XUiArchiveMonsterComment = XLuaUiManager.Register(XLuaUi, "UiArchiveMonsterComment")
|
|
local tableInsert = table.insert
|
|
local Vector3 = CS.UnityEngine.Vector3
|
|
local CSTextManagerGetText = CS.XTextManager.GetText
|
|
local ScoreMax = 5
|
|
local DifficultyMax = 5
|
|
local TagMax = 10
|
|
|
|
function XUiArchiveMonsterComment:OnEnable()
|
|
self.InfoData = self.Base.CurInfoData
|
|
self.EvaluateData = self.Base.CurEvaluateData
|
|
self:SetPaneBaseInfo()
|
|
self:SetPanelTag()
|
|
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:OnDisable()
|
|
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:OnStart(base)
|
|
self.Base = base
|
|
self.PaneBaseInfo = {}
|
|
self.PanelTag = {}
|
|
|
|
self:SetButtonCallBack()
|
|
self:InitMonsterComment(self.PaneBaseInfo, self.PaneBaseInfoObj)
|
|
self:InitMonsterComment(self.PanelTag, self.PanelTagObj)
|
|
|
|
self.PaneBaseInfo.ScoreImg = {
|
|
self.PaneBaseInfo.ScoreImg1,
|
|
self.PaneBaseInfo.ScoreImg2,
|
|
self.PaneBaseInfo.ScoreImg3,
|
|
self.PaneBaseInfo.ScoreImg4,
|
|
self.PaneBaseInfo.ScoreImg5
|
|
}
|
|
self.PaneBaseInfo.LevelImg = {
|
|
self.PaneBaseInfo.LevelImg1,
|
|
self.PaneBaseInfo.LevelImg2,
|
|
self.PaneBaseInfo.LevelImg3,
|
|
self.PaneBaseInfo.LevelImg4,
|
|
self.PaneBaseInfo.LevelImg5
|
|
}
|
|
self.PanelTag.TagItemObj = {
|
|
self.PanelTag.TagItemObj1,
|
|
self.PanelTag.TagItemObj2,
|
|
self.PanelTag.TagItemObj3,
|
|
self.PanelTag.TagItemObj4,
|
|
self.PanelTag.TagItemObj5,
|
|
self.PanelTag.TagItemObj6,
|
|
self.PanelTag.TagItemObj7,
|
|
self.PanelTag.TagItemObj8,
|
|
self.PanelTag.TagItemObj9,
|
|
self.PanelTag.TagItemObj10
|
|
}
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:SetButtonCallBack()
|
|
self.BtnClose.CallBack = function()
|
|
self:OnBtnCloseClick()
|
|
end
|
|
self.BtnBigClose.CallBack = function()
|
|
self:OnBtnCloseClick()
|
|
end
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:InitMonsterComment(tmp, obj)
|
|
tmp.Transform = obj.transform
|
|
tmp.GameObject = obj.gameObject
|
|
XTool.InitUiObject(tmp)
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:SetPaneBaseInfo()
|
|
self.PaneBaseInfo.TxtName.text = self.InfoData.Name
|
|
self.PaneBaseInfo.RImgIcon:SetRawImage(self.InfoData.Img)
|
|
self.PaneBaseInfo.ScoreNumTxt.text = CSTextManagerGetText("ChannelNumberLabel", self.EvaluateData and self.EvaluateData.ScoreCount or 0)
|
|
self.PaneBaseInfo.LevelNumTxt.text = CSTextManagerGetText("ChannelNumberLabel", self.EvaluateData and self.EvaluateData.DifficultyCount or 0)
|
|
|
|
for index = 1, ScoreMax do
|
|
local isActive = self.EvaluateData and self.EvaluateData.AverageScore and index <= self.EvaluateData.AverageScore
|
|
self.PaneBaseInfo.ScoreImg[index].gameObject:SetActiveEx(isActive)
|
|
end
|
|
|
|
for index = 1, DifficultyMax do
|
|
local isActive = self.EvaluateData and self.EvaluateData.AverageDifficulty and index <= self.EvaluateData.AverageDifficulty
|
|
self.PaneBaseInfo.LevelImg[index].gameObject:SetActiveEx(isActive)
|
|
end
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:SetPanelTag()
|
|
self.PanelTag.ImgIcon:SetRawImage(self.InfoData.Icon)
|
|
self.PanelTag.CountList = {}
|
|
for index = 1, TagMax do
|
|
if self.EvaluateData and self.EvaluateData.Tags and self.EvaluateData.Tags[index] then
|
|
if not self.PanelTag.TagItem then self.PanelTag.TagItem = {} end
|
|
|
|
if not self.PanelTag.TagItem[index] then
|
|
self.PanelTag.TagItem[index] = {}
|
|
self.PanelTag.TagItem[index].Transform = self.PanelTag.TagItemObj[index].transform
|
|
self.PanelTag.TagItem[index].GameObject = self.PanelTag.TagItemObj[index].gameObject
|
|
XTool.InitUiObject(self.PanelTag.TagItem[index])
|
|
end
|
|
local countList = {}
|
|
countList.Index = index
|
|
countList.Count = self.EvaluateData.Tags[index].Count
|
|
tableInsert(self.PanelTag.CountList, countList)
|
|
self.PanelTag.TagItem[index].TxtNum.text = CSTextManagerGetText("ChannelNumberLabel", XArchiveConfigs.GetCountUnitChange(self.EvaluateData.Tags[index].Count))
|
|
self.PanelTag.TagItem[index].TxtTag.text = XArchiveConfigs.GetArchiveTagCfgById(self.EvaluateData.Tags[index].Id).Name
|
|
self.PanelTag.TagItem[index].TxtTag.color = XUiHelper.Hexcolor2Color(XArchiveConfigs.GetArchiveTagCfgById(self.EvaluateData.Tags[index].Id).Color)
|
|
local bgImg = XArchiveConfigs.GetArchiveTagCfgById(self.EvaluateData.Tags[index].Id).Bg
|
|
if bgImg then self:SetUiSprite(self.PanelTag.TagItem[index].Bg, bgImg) end
|
|
end
|
|
local isActive = (self.EvaluateData and self.EvaluateData.Tags and self.EvaluateData.Tags[index]) and true or false
|
|
self.PanelTag.TagItemObj[index].gameObject:SetActiveEx(isActive)
|
|
end
|
|
self:SetTagSize()
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:SetTagSize()
|
|
if not self.PanelTag.TagItem then
|
|
return
|
|
end
|
|
local smallCount = math.floor(#self.PanelTag.TagItem / 3)
|
|
local bigCount = math.floor(#self.PanelTag.TagItem / 3)
|
|
local mdCount = #self.PanelTag.TagItem - bigCount - smallCount
|
|
table.sort(self.PanelTag.CountList, function(a, b)
|
|
return a.Count > b.Count
|
|
end)
|
|
|
|
for _, count in pairs(self.PanelTag.CountList) do
|
|
if bigCount > 0 then
|
|
self.PanelTag.TagItemObj[count.Index].transform.localScale = Vector3(1.2, 1.2, 1.2)
|
|
bigCount = bigCount - 1
|
|
elseif mdCount > 0 then
|
|
self.PanelTag.TagItemObj[count.Index].transform.localScale = Vector3(1, 1, 1)
|
|
mdCount = mdCount - 1
|
|
elseif smallCount > 0 then
|
|
self.PanelTag.TagItemObj[count.Index].transform.localScale = Vector3(0.8, 0.8, 0.8)
|
|
smallCount = smallCount - 1
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
function XUiArchiveMonsterComment:OnBtnCloseClick()
|
|
self:Close()
|
|
end |