|
EquipToolTipsAttr = EquipToolTipsAttr or BaseClass(BaseItem)
|
|
|
|
EquipToolTipsAttr.Height = 27
|
|
local EquipToolTipsAttr = EquipToolTipsAttr
|
|
function EquipToolTipsAttr:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "EquipToolTipsAttr"
|
|
self.is_delay_callback = true
|
|
self.attrType = EquipToolTips.AttrType.BaseAttr
|
|
self.model = EquipModel:getInstance()
|
|
self.height = 27
|
|
self.item_height = 0
|
|
self.attr_list = {}
|
|
self.pos_data = {}
|
|
self:Load()
|
|
end
|
|
|
|
function EquipToolTipsAttr:Load_callback()
|
|
self.nodes = {
|
|
"suit_con:obj","zhuoyue_con:obj","suit_con/suitText:tmp"
|
|
,"base_con:obj","attr_con:obj","title:tmp",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
if self.need_refreshData then
|
|
self:SetData(self.data)
|
|
end
|
|
self:InitEvent()
|
|
end
|
|
|
|
function EquipToolTipsAttr:InitEvent()
|
|
-- local function clickHandler(target)
|
|
-- if target == self.touch_obj then
|
|
-- end
|
|
-- end
|
|
-- AddClickEvent(self.touch_obj, clickHandler,2)
|
|
end
|
|
|
|
function EquipToolTipsAttr:__delete()
|
|
for k,v in pairs(self.attr_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.attr_list = {}
|
|
end
|
|
|
|
function EquipToolTipsAttr:SetData(vo,attrType,value,equip_cfg,is_last,empower_lv)
|
|
self.data = vo
|
|
self.attrType = attrType or self.attrType
|
|
self.value = value or self.value
|
|
self.equip_cfg = equip_cfg or self.equip_cfg
|
|
self.is_last = is_last or self.is_last
|
|
self.empower_lv = empower_lv or self.empower_lv
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
else
|
|
self.need_refreshData = true
|
|
return
|
|
end
|
|
-- print("huangcong:EquipToolTipsAttr [start:56] self.data:", self.data)
|
|
-- PrintTable(self.data)
|
|
-- print("huangcong:EquipToolTipsAttr [end]")
|
|
--基础属性
|
|
if self.attrType == EquipToolTips.AttrType.BaseAttr then
|
|
self.base_con_obj:SetActive(true)
|
|
-- if self.value and self.value[1] and self.value[1] > 0 then
|
|
-- self.base_strangthen_txt.text = string.format("<color=%s>(精炼+%s)</color>",ColorUtil.GREEN_DARK,self.value[1])
|
|
-- else
|
|
-- self.base_strangthen_txt.text = ""
|
|
-- end
|
|
self.title_tmp.text = "基础属性(基础+精炼)"
|
|
self.item_class = EquipToolTipsBaseAttr
|
|
--升星属性
|
|
elseif self.attrType == EquipToolTips.AttrType.EvolutionAttr then
|
|
self.base_con_obj:SetActive(true)
|
|
self.item_class = EquipToolTipsBaseAttr
|
|
self.title_tmp.text = "升星属性"
|
|
-- self.base_strangthen_txt.text = string.format("<color=%s>(升星+%s)</color>",ColorUtil.GREEN_DARK,self.value)
|
|
--高级属性
|
|
elseif self.attrType == EquipToolTips.AttrType.ZhuoyueAttr then
|
|
self.zhuoyue_con_obj:SetActive(true)
|
|
self.item_class = EquipToolTipsZhuoYueAttr
|
|
local level = 0
|
|
for k,v in pairs(self.data) do
|
|
if v and v[1] and v[1][1] then
|
|
level = level + 1
|
|
end
|
|
end
|
|
if self.value - level > 0 then--还有可升星的
|
|
self.title_tmp.text = string.format("高级属性(剩余%s条可升星解锁)",self.value - level)
|
|
else
|
|
self.title_tmp.text ="高级属性"
|
|
end
|
|
--宝石属性
|
|
elseif self.attrType == EquipToolTips.AttrType.GemstoneAttr then
|
|
self.item_class = EquipToolTipsGemstoneAttr
|
|
local new_gems_info = {}
|
|
for i=1,3 do
|
|
new_gems_info[i] = self.data[i] or {}
|
|
end
|
|
self.data = new_gems_info
|
|
self.title_tmp.text = "宝石属性"
|
|
--刻印属性
|
|
elseif self.attrType == EquipToolTips.AttrType.DraconicAttr then
|
|
self.item_class = EquipToolTipsDraconicAttr
|
|
self.title_tmp.text = "刻印属性"
|
|
--技能
|
|
elseif self.attrType == EquipToolTips.AttrType.Skill then
|
|
self.item_class = EquipToolTipsSkillAttr
|
|
self.title_tmp.text = "技能"
|
|
--套装属性
|
|
elseif self.attrType == EquipToolTips.AttrType.SuitAttr then
|
|
self.suit_con_obj:SetActive(true)
|
|
self.item_class = EquipToolTipsSuitAttr
|
|
local is_color_ok = self.value.is_color_ok or false
|
|
if self.data[1] then
|
|
local cur_suit_id_num,suit_equip_pos_list = self.value.cur_suit_id_num,self.value.suit_equip_pos_list
|
|
-- suit_equip_pos_list = is_color_ok and suit_equip_pos_list or {}
|
|
-- cur_suit_id_num = is_color_ok and cur_suit_id_num or 0
|
|
local suit_str = nil
|
|
for i,v in ipairs(self.data[1].suit_equip) do
|
|
if i ~= EquipModel.EquipType.Guard then
|
|
local equip_name = Config.ConfigEquipShow[v].name
|
|
if not suit_str then
|
|
suit_str = HtmlColorTxt(equip_name, not suit_equip_pos_list[v] and ColorUtil.GRAY_DARK or "#ffffff")
|
|
else
|
|
suit_str = suit_str.." "..HtmlColorTxt(equip_name, not suit_equip_pos_list[v] and ColorUtil.GRAY_DARK or "#ffffff")
|
|
end
|
|
end
|
|
end
|
|
self.suitText_tmp.text = suit_str
|
|
|
|
--当前穿了几件套装相关
|
|
local suit_num_str = ""
|
|
local name = Trim(self.data[#self.data].name)
|
|
if cur_suit_id_num then
|
|
suit_num_str = string.format("%s/%s",cur_suit_id_num <= self.data[1].suit_num_max and cur_suit_id_num or self.data[1].suit_num_max,self.data[1].suit_num_max)
|
|
-- suit_num_str = cur_suit_id_num > 0 and HtmlColorTxt(suit_num_str, ColorUtil.GREEN_DARK) or suit_num_str
|
|
self.value = cur_suit_id_num
|
|
for i,v in ipairs(self.data) do
|
|
if cur_suit_id_num <= v.suit_num then
|
|
name = Trim(v.name)
|
|
end
|
|
end
|
|
else
|
|
suit_num_str = "0/"..self.data[1].suit_num_max
|
|
end
|
|
self.title_tmp.text = string.format("%s(%s)%s", Trim(name),suit_num_str,not is_color_ok and HtmlColorTxt("橙品装备可激活", ColorUtil.RED_DARK) or "")
|
|
local sort_func = function ( a, b )
|
|
return a.suit_num < b.suit_num
|
|
end
|
|
table.sort(self.data, sort_func)
|
|
end
|
|
self.pos_data = {}
|
|
local pos_value = 0
|
|
for i,vo in ipairs(self.data) do
|
|
if vo.stage_attr then
|
|
pos_value = #vo.stage_attr + pos_value
|
|
self.pos_data[i] = {#self.data,pos_value}
|
|
end
|
|
end
|
|
elseif self.attrType == EquipToolTips.AttrType.EmpowerAttr then
|
|
self.base_con_obj:SetActive(true)
|
|
self.title_tmp.text = "升品属性"
|
|
-- if self.empower_lv and self.empower_lv > 0 then
|
|
-- self.base_strangthen_txt.text = string.format("<color=%s>(精炼+%s)</color>",ColorUtil.GREEN_DARK,self.empower_lv)
|
|
-- else
|
|
-- self.base_strangthen_txt.text = ""
|
|
-- end
|
|
self.item_class = EquipToolTipsBaseAttr
|
|
end
|
|
self:UpdateAttrList()
|
|
end
|
|
|
|
function EquipToolTipsAttr:UpdateAttrList( )
|
|
if not self.item_class or not self.data then return end
|
|
local data = self.data
|
|
for k,v in pairs(self.attr_list) do
|
|
v:SetVisible(true)
|
|
end
|
|
local y = 0
|
|
local real_len = 0
|
|
for i,v in ipairs(data) do
|
|
local item = self.attr_list[i]
|
|
if not item then
|
|
item = self.item_class.New(self.attr_con)
|
|
self.attr_list[i] = item
|
|
if self.attrType == EquipToolTips.AttrType.SuitAttr then--装备套装要计算排版位置
|
|
if i == 1 then
|
|
y = 0
|
|
else
|
|
real_len = #v.attr+real_len
|
|
y = -self.item_class.Height*real_len + 12*(i-1)
|
|
end
|
|
else
|
|
y = -self.item_class.Height*(i - 1)
|
|
end
|
|
item:SetPosition(0, y)
|
|
end
|
|
if self.attrType == EquipToolTips.AttrType.EmpowerAttr then
|
|
item:SetData(v, i, self.value, ColorUtil.RED_DARK)
|
|
else
|
|
item:SetData(v, i, self.value, self.pos_data[i])
|
|
end
|
|
item:SetVisible(true)
|
|
end
|
|
if self.attrType == EquipToolTips.AttrType.SuitAttr then--装备套装要计算排版位置
|
|
|
|
else
|
|
self.item_height = #data*self.item_class.Height
|
|
end
|
|
SetSizeDeltaY(self.transform,self.item_height + EquipToolTipsAttr.Height)
|
|
if self.call_back and self.is_last then
|
|
self.call_back()
|
|
end
|
|
end
|
|
|
|
function EquipToolTipsAttr:SetCallBack( call_back )
|
|
self.call_back = call_back
|
|
end
|