61 lines
1.6 KiB
Lua
61 lines
1.6 KiB
Lua
local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EnemyDamageTakenInfo = HL.Class('EnemyDamageTakenInfo', UIWidgetBase)
|
|
|
|
local ELEMENT_RESISTANCE_DATA = {
|
|
{ "physicalDmgResistScalar", "Physical"},
|
|
{ "fireDmgResistScalar", "Fire"},
|
|
{ "pulseDmgResistScalar", "Pulse"},
|
|
{ "crystDmgResistScalar", "Cryst"},
|
|
{ "naturalDmgResistScalar", "Natural"},
|
|
}
|
|
|
|
|
|
EnemyDamageTakenInfo.m_levelCellCache = HL.Field(HL.Forward("UIListCache"))
|
|
|
|
|
|
|
|
|
|
EnemyDamageTakenInfo._OnFirstTimeInit = HL.Override() << function(self)
|
|
self.m_levelCellCache = UIUtils.genCellCache(self.view.entry)
|
|
end
|
|
|
|
|
|
|
|
|
|
EnemyDamageTakenInfo.InitEnemyDamageTakenInfo = HL.Method(HL.String) << function(self, enemyTemplateId)
|
|
self:_FirstTimeInit()
|
|
|
|
local _, enemyData = Tables.enemyAttributeTemplateTable:TryGetValue(enemyTemplateId)
|
|
if not enemyData then
|
|
self.m_levelCellCache:Refresh(0)
|
|
end
|
|
self.m_levelCellCache:Refresh(#ELEMENT_RESISTANCE_DATA, function(cell, index)
|
|
local data = ELEMENT_RESISTANCE_DATA[index]
|
|
local scalar = enemyData[data[1]]
|
|
cell.stateController:SetState(data[2])
|
|
cell.gradeTxt.text = self:_GetDamageTakenLevelText(scalar)
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
EnemyDamageTakenInfo._GetDamageTakenLevelText = HL.Method(HL.Number).Return(HL.String) << function(self, damageTakenScalar)
|
|
for _, data in ipairs(Tables.enemyDamageTakenLevelTable) do
|
|
if damageTakenScalar <= data.damageTakenScalar then
|
|
return data.name
|
|
end
|
|
end
|
|
return ''
|
|
end
|
|
|
|
HL.Commit(EnemyDamageTakenInfo)
|
|
return EnemyDamageTakenInfo
|
|
|