35c8d87e86
EN: 1.4.0.73 CN: 1.4.0.74 JP: 1.4.0.77 KR: 1.4.0.80
123 lines
4.9 KiB
Lua
123 lines
4.9 KiB
Lua
local TemplatePropertyCtrl = class("TemplatePropertyCtrl", BaseCtrl)
|
|
local ValueColor = {
|
|
up = Color(0.5490196078431373, 0.6745098039215687, 0.34901960784313724, 1),
|
|
down = Color(0.3764705882352941, 0.6901960784313725, 0.050980392156862744, 1),
|
|
black = Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764, 1)
|
|
}
|
|
TemplatePropertyCtrl._mapNodeConfig = {
|
|
imgIcon = {sComponentName = "Image"},
|
|
txtProperty = {sComponentName = "TMP_Text"},
|
|
txtValue1 = {sComponentName = "TMP_Text"},
|
|
imgUp = {},
|
|
imgDown = {},
|
|
txtValue2 = {sComponentName = "TMP_Text"}
|
|
}
|
|
TemplatePropertyCtrl._mapEventConfig = {}
|
|
function TemplatePropertyCtrl:SetItemProperty(sKey, nValue, nValueAfter, bAdditionDesc)
|
|
local mapAttributeDesc = self:_GetAttributeDesc(sKey)
|
|
if not mapAttributeDesc then
|
|
return
|
|
end
|
|
NovaAPI.SetTMPColor(self._mapNode.txtValue2, ValueColor.black)
|
|
self._mapNode.imgUp:SetActive(false)
|
|
self._mapNode.imgDown:SetActive(false)
|
|
local sValue, sValueAfter = "", ""
|
|
sValue = self:_TransValueFormat(nValue, mapAttributeDesc.isPercent, mapAttributeDesc.Format)
|
|
if nValueAfter then
|
|
sValueAfter = self:_TransValueFormat(nValueAfter, mapAttributeDesc.isPercent, mapAttributeDesc.Format)
|
|
if nValueAfter < nValue then
|
|
NovaAPI.SetTMPColor(self._mapNode.txtValue2, ValueColor.down)
|
|
self._mapNode.imgDown:SetActive(true)
|
|
elseif nValue < nValueAfter then
|
|
NovaAPI.SetTMPColor(self._mapNode.txtValue2, ValueColor.up)
|
|
self._mapNode.imgUp:SetActive(true)
|
|
end
|
|
end
|
|
if bAdditionDesc then
|
|
self:_RefreshContent(mapAttributeDesc.Icon, mapAttributeDesc.RandomAttrDesc, sValue, sValueAfter)
|
|
else
|
|
self:_RefreshContent(mapAttributeDesc.Icon, mapAttributeDesc.Desc, sValue, sValueAfter)
|
|
end
|
|
end
|
|
function TemplatePropertyCtrl:SetCharProperty(mapCharAttr, mapAttrData, bSimple, nMaxVal)
|
|
local mapAttributeDesc = self:_GetAttributeDesc(mapCharAttr.sKey)
|
|
if not mapAttributeDesc then
|
|
return
|
|
end
|
|
local sValue, sValueAdd = "", ""
|
|
if bSimple then
|
|
sValue = self:_TransValueFormat(mapAttrData.totalValue, mapAttributeDesc.isPercent, mapAttributeDesc.Format)
|
|
self:_RefreshContent(mapAttributeDesc.Icon, ConfigTable.GetUIText(mapCharAttr.sLanguageId_Simple), sValue)
|
|
else
|
|
local nBaseValue = mapAttrData.baseValue
|
|
local nAddValue = mapAttrData.totalValue - mapAttrData.baseValue
|
|
sValue = self:_TransValueFormat(nBaseValue, mapCharAttr.bPercent, mapAttributeDesc.Format)
|
|
sValueAdd = self:_TransValueFormat(nAddValue, mapCharAttr.bPercent, mapAttributeDesc.Format, true)
|
|
if nAddValue <= 0 then
|
|
sValueAdd = ""
|
|
end
|
|
self:_RefreshContent(mapAttributeDesc.Icon, mapAttributeDesc.Desc, sValue, sValueAdd)
|
|
end
|
|
if nMaxVal and nMaxVal ~= "" then
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue2, NovaAPI.GetTMPText(self._mapNode.txtValue2) .. "/" .. nMaxVal)
|
|
end
|
|
end
|
|
function TemplatePropertyCtrl:SetNote(nNoteId, nLevel1, nLevel2, bShowArrow)
|
|
self._mapNode.imgUp:SetActive(false)
|
|
self._mapNode.imgDown:SetActive(false)
|
|
self:SetPngSprite(self._mapNode.imgIcon, "Icon/ZZZOther/icon_common_chainfo_note")
|
|
local mapNote = ConfigTable.GetData("SubNoteSkill", nNoteId)
|
|
if mapNote then
|
|
NovaAPI.SetTMPText(self._mapNode.txtProperty, orderedFormat(ConfigTable.GetUIText("Disc_Advance_NoteSkill_UpDesc"), mapNote.Name))
|
|
end
|
|
if nLevel2 then
|
|
self._mapNode.txtValue1.gameObject:SetActive(true)
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue1, orderedFormat(ConfigTable.GetUIText("Note_Count"), nLevel1))
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue2, orderedFormat(ConfigTable.GetUIText("Note_Count"), nLevel2))
|
|
NovaAPI.SetTMPColor(self._mapNode.txtValue2, ValueColor.up)
|
|
if bShowArrow then
|
|
self._mapNode.imgUp:SetActive(true)
|
|
end
|
|
else
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue2, orderedFormat(ConfigTable.GetUIText("Note_Count"), nLevel1))
|
|
NovaAPI.SetTMPColor(self._mapNode.txtValue2, ValueColor.black)
|
|
self._mapNode.txtValue1.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
function TemplatePropertyCtrl:_GetAttributeDesc(sKey)
|
|
local mapAttributeDesc = CacheTable.GetData("_AttributeDesc", sKey)
|
|
if mapAttributeDesc == nil then
|
|
printError("EffectType未配置:" .. sKey)
|
|
self:_RefreshContent(nil, "", "")
|
|
return false
|
|
else
|
|
return mapAttributeDesc
|
|
end
|
|
end
|
|
function TemplatePropertyCtrl:_RefreshContent(sIcon, sName, sValue1, sValue2)
|
|
if sIcon then
|
|
self:SetPngSprite(self._mapNode.imgIcon, sIcon)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtProperty, sName)
|
|
if sValue2 and sValue2 ~= "" then
|
|
self._mapNode.txtValue1.gameObject:SetActive(true)
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue1, sValue1)
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue2, sValue2)
|
|
else
|
|
NovaAPI.SetTMPText(self._mapNode.txtValue2, sValue1)
|
|
NovaAPI.SetTMPColor(self._mapNode.txtValue2, ValueColor.black)
|
|
self._mapNode.txtValue1.gameObject:SetActive(false)
|
|
end
|
|
end
|
|
function TemplatePropertyCtrl:_TransValueFormat(nValue, bPercent, nFormat, bAdd)
|
|
if bPercent then
|
|
nValue = nValue / 100
|
|
end
|
|
local sValue = FormatEffectValue(nValue, bPercent, nFormat)
|
|
if bAdd then
|
|
sValue = "+" .. sValue
|
|
end
|
|
return sValue
|
|
end
|
|
return TemplatePropertyCtrl
|