forked from endernon/PGRData
86 lines
3.7 KiB
Lua
86 lines
3.7 KiB
Lua
XUiArchiveMonsterInfo = XClass(nil, "XUiArchiveMonsterInfo")
|
|
|
|
local CSTextManagerGetText = CS.XTextManager.GetText
|
|
local EvaluateOneForAll = XArchiveConfigs.EvaluateOnForAll
|
|
local InfoShortMax = 4
|
|
local InfoLongMax = 5
|
|
function XUiArchiveMonsterInfo:Ctor(ui, data, base)
|
|
self.GameObject = ui.gameObject
|
|
self.Transform = ui.transform
|
|
XTool.InitUiObject(self)
|
|
|
|
self.Data = data
|
|
self.Base = base
|
|
|
|
self.InfoContent = {
|
|
self.InfoContent1,
|
|
self.InfoContent2,
|
|
self.InfoContent3,
|
|
self.InfoContent4
|
|
}
|
|
self.DetailContent = {
|
|
self.DetailContent1,
|
|
self.DetailContent2,
|
|
self.DetailContent3,
|
|
self.DetailContent4,
|
|
self.DetailContent5
|
|
}
|
|
end
|
|
|
|
function XUiArchiveMonsterInfo:SelectType(index)
|
|
self:SetMonsterBaseInfoData(index)
|
|
self:SetMonsterShortInfoData(index)
|
|
self:SetMonsterLongInfoData(index)
|
|
end
|
|
|
|
function XUiArchiveMonsterInfo:SetMonsterBaseInfoData(type)
|
|
self.MonsterNameTex.text = (EvaluateOneForAll == XArchiveConfigs.OnForAllState.On) and self.Data:GetName() or self.Data:GetRealName(self.Data:GetNpcId()[type])
|
|
self.KillCount.text = CSTextManagerGetText("ArchiveMonsterKillText", self.Data.Kill[self.Data:GetNpcId()[type]])
|
|
self.ImgIcon:SetRawImage(self.Data:GetIcon())
|
|
end
|
|
|
|
function XUiArchiveMonsterInfo:SetMonsterShortInfoData(type)
|
|
local infoList = XDataCenter.ArchiveManager.GetArchiveMonsterInfoList(self.Data:GetNpcId()[type], XArchiveConfigs.MonsterInfoType.Short)
|
|
|
|
for index = 1, InfoShortMax do
|
|
if infoList[index] then
|
|
if not self.MonsterInfo then self.MonsterInfo = {} end
|
|
|
|
if not self.MonsterInfo[index] then
|
|
self.MonsterInfo[index] = {}
|
|
self.MonsterInfo[index].Transform = self.InfoContent[index].transform
|
|
self.MonsterInfo[index].GameObject = self.InfoContent[index].gameObject
|
|
XTool.InitUiObject(self.MonsterInfo[index])
|
|
end
|
|
self.MonsterInfo[index].TxtTitle.text = infoList[index]:GetTitle()
|
|
self.MonsterInfo[index].TxtDesc.text = infoList[index]:GetText()
|
|
self.MonsterInfo[index].TxtLock.text = infoList[index]:GetLockDesc()
|
|
self.MonsterInfo[index].UnLock.gameObject:SetActiveEx(not infoList[index]:GetIsLock())
|
|
self.MonsterInfo[index].Lock.gameObject:SetActiveEx(infoList[index]:GetIsLock())
|
|
end
|
|
self.InfoContent[index].gameObject:SetActiveEx(infoList[index] and true or false)
|
|
end
|
|
end
|
|
|
|
function XUiArchiveMonsterInfo:SetMonsterLongInfoData(type)
|
|
local infoList = XDataCenter.ArchiveManager.GetArchiveMonsterInfoList(self.Data:GetNpcId()[type], XArchiveConfigs.MonsterInfoType.Long)
|
|
|
|
for index = 1, InfoLongMax do
|
|
if infoList[index] then
|
|
if not self.MonsterDetail then self.MonsterDetail = {} end
|
|
|
|
if not self.MonsterDetail[index] then
|
|
self.MonsterDetail[index] = {}
|
|
self.MonsterDetail[index].Transform = self.DetailContent[index].transform
|
|
self.MonsterDetail[index].GameObject = self.DetailContent[index].gameObject
|
|
XTool.InitUiObject(self.MonsterDetail[index])
|
|
end
|
|
self.MonsterDetail[index].TxtTitle.text = infoList[index]:GetTitle()
|
|
self.MonsterDetail[index].TxtDesc.text = infoList[index]:GetText()
|
|
self.MonsterDetail[index].TxtLock.text = infoList[index]:GetLockDesc()
|
|
self.MonsterDetail[index].UnLock.gameObject:SetActiveEx(not infoList[index]:GetIsLock())
|
|
self.MonsterDetail[index].Lock.gameObject:SetActiveEx(infoList[index]:GetIsLock())
|
|
end
|
|
self.DetailContent[index].gameObject:SetActiveEx(infoList[index] and true or false)
|
|
end
|
|
end
|