ro-table/Asstes/Resources/Script/FrameWork/GUI/cell/Bag/EnchantInfoLabelCell.txt
2025-06-04 05:02:57 +08:00

64 lines
2.3 KiB
Plaintext

local BaseCell = autoImport("BaseCell")
EnchantInfoLabelCell = class("EnchantInfoLabelCell", BaseCell)
EnchantInfoLabelMenuTypePos = {
[EnchantMenuType.SixBaseAttri] = {name = Vector3(0,0,0), value = Vector3(160,0,0)},
[EnchantMenuType.BaseAttri] = {name = Vector3(0,0,0), value = Vector3(430,0,0)},
[EnchantMenuType.DefAttri] = {name = Vector3(0,0,0), value = Vector3(430,0,0)},
[EnchantMenuType.CombineAttri] = {name = Vector3(0,0,0), value = Vector3(430,-28,0)},
}
function EnchantInfoLabelCell:Init()
EnchantInfoLabelCell.super.Init();
self.name = self:FindComponent("Name", UILabel);
self.value = self:FindComponent("Value", UILabel);
end
-- data:{enchantData, enchantType, attriMenuType, equipType, pos}
function EnchantInfoLabelCell:SetData(data)
if(data)then
self:Show();
local esData = data.enchantData;
local attriMenuType = data.attriMenuType;
self.name.transform.localPosition = EnchantInfoLabelMenuTypePos[attriMenuType].name;
self.value.transform.localPosition = EnchantInfoLabelMenuTypePos[attriMenuType].value;
local propVO = EnchantEquipUtil.Instance:GetAttriPropVO(esData.AttrType);
if(propVO)then
self.name.text = tostring(propVO.displayName);
if(attriMenuType == EnchantMenuType.SixBaseAttri)then
self.name.text = tostring(propVO.displayName)..esData.AttrType;
end
local range = esData.AttrBound and esData.AttrBound[1];
if(range)then
if(propVO.isPercent)then
local min,max = range[1]*100, range[2]*100;
self.value.text = string.format("+%d%%~+%d%%", tostring(min), tostring(max));
else
self.value.text = string.format("+%d~+%d", tostring(range[1]), tostring(range[2]));
end
end
end
-- 組合特性不需要灰顯
if(attriMenuType~=EnchantMenuType.CombineAttri)then
local enchantType = data.enchantType;
local equipType = data.equipType;
if(not data.canGet)then
self.name.text = "[c][9c9c9c]"..self.name.text.."[-][/c]";
self.value.text = "[c][9c9c9c]"..self.value.text.."[-][/c]";
end
else
self.name.text = string.format(ZhString.EnchantInfoLabelCell_CombineEffectFormat,
esData.Name, esData.ComBineAttr, esData.Dsc);
self.value.text = esData.AttrSectionDsc;
if(not data.canGet)then
self.name.text = "[c][9c9c9c]"..self.name.text.."[-][/c]";
self.value.text = "[c][9c9c9c]"..self.value.text.."[-][/c]";
end
end
else
self:Hide();
end
end