--装备对比的tips
|
|
StarSoulEquipCompareTips = StarSoulEquipCompareTips or BaseClass(BaseItem)
|
|
function StarSoulEquipCompareTips:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "StarSoulEquipCompareTips"
|
|
self.layer_name = "Top"
|
|
-- self.use_local_view = true
|
|
self.use_background = true
|
|
self.click_bg_toClose = true
|
|
self.close_mode = CloseMode.CloseDestroy
|
|
self.is_set_zdepth = true
|
|
-- self.destroy_imm = true
|
|
self.goods_vo = nil
|
|
self.model = StarSpiritModel:getInstance()
|
|
self:Load()
|
|
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:__delete()
|
|
if self.icon_item then
|
|
self.icon_item:ReleaseObj()
|
|
self.icon_item = nil
|
|
end
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:Load_callback()
|
|
self:LoadSuccess()
|
|
self:InitEvent()
|
|
if self.need_refreshData then
|
|
self:SetData(self.goods_vo)
|
|
end
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:LoadSuccess()
|
|
self.layout,
|
|
self.bg,
|
|
self.icon_con,
|
|
self.ScrollView,
|
|
self.ScrollViewContent,
|
|
self.line1,
|
|
self.line2,
|
|
self.line3
|
|
= GetChildTransforms(self.transform, {
|
|
"layout",
|
|
"layout/normal/bg",
|
|
"layout/normal/icon_con",
|
|
"layout/normal/ScrollView",
|
|
"layout/normal/ScrollView/Viewport/Content",
|
|
"layout/normal/ScrollView/Viewport/Content/line1",
|
|
"layout/normal/ScrollView/Viewport/Content/line2",
|
|
"layout/normal/ScrollView/Viewport/Content/line3",
|
|
})
|
|
|
|
self.name_text,
|
|
self.pos_text,
|
|
self.base_name_text,
|
|
self.basePro_text,
|
|
self.base_stren_text,
|
|
self.add_name_text,
|
|
self.addPro_text,
|
|
self.equip_score,
|
|
self.random_name_text,
|
|
self.random_pro_text
|
|
= GetChildTexts(self.transform, {
|
|
"layout/normal/nameText",
|
|
"layout/normal/posText",
|
|
"layout/normal/ScrollView/Viewport/Content/baseName",
|
|
"layout/normal/ScrollView/Viewport/Content/basePro",
|
|
"layout/normal/ScrollView/Viewport/Content/strengthAdd",
|
|
"layout/normal/ScrollView/Viewport/Content/addName",
|
|
"layout/normal/ScrollView/Viewport/Content/addPro",
|
|
"layout/normal/equip_score",
|
|
"layout/normal/ScrollView/Viewport/Content/randomName",
|
|
"layout/normal/ScrollView/Viewport/Content/randomPro",
|
|
})
|
|
|
|
self.step_bg,
|
|
self.item_bg
|
|
= GetChildImages(self.transform, {
|
|
"layout/normal/setp_bg",
|
|
"layout/normal/itemBg",
|
|
})
|
|
|
|
self.layout.anchoredPosition = Vector2(-384, 0)
|
|
self.icon_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon_con, nil, self.layer_name)
|
|
self.icon_item:SetStrenTextPos(6.5, 23.5)
|
|
self.icon_item:SetPosition(50, -60)
|
|
self.icon_item:SetItemBgVisible(false)
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:InitEvent()
|
|
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:SetData(goods_vo)
|
|
self.goods_vo = goods_vo
|
|
if self.goods_vo == nil then return end
|
|
if self.is_loaded then
|
|
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_vo.type_id)
|
|
local equip_cfg = Config.Starsoulequip[goods_vo.type_id]
|
|
--部位
|
|
self.pos_text.text = equip_cfg and Config.Starsoulequippos[equip_cfg.pos] and Trim(Config.Starsoulequippos[equip_cfg.pos].describe) or "无"
|
|
|
|
local stren = 0
|
|
for _, v in pairs(self.model.equip_stren_data) do
|
|
if v.goods_id == self.goods_vo.goods_id then
|
|
stren = v.stren
|
|
break
|
|
end
|
|
end
|
|
self.icon_item:SetData(goods_vo.type_id, nil, nil, stren,nil,nil,nil,nil,nil,true)
|
|
self.icon_item:SetStar(equip_cfg and equip_cfg.star or 0)
|
|
self:SetBestPro(equip_cfg.best_attr)
|
|
--计算强化后的属性加成
|
|
self:SetProperty(basic, stren)
|
|
local callback = function (dynamic)
|
|
if self.goods_vo.goods_id and dynamic and self.goods_vo.goods_id == dynamic.goods_id then
|
|
self.dynamic = dynamic
|
|
--背景
|
|
lua_resM:setImageSprite(self, self.step_bg, "uiComponent_asset", "tsui_pj_"..self.dynamic.color)
|
|
lua_resM:setImageSprite(self, self.item_bg, "common_asset", "xlui_zbpz_"..self.dynamic.color)
|
|
--评分
|
|
self.equip_score.text = self.dynamic.rating + (equip_cfg and equip_cfg.base_rating or 0)
|
|
if basic then
|
|
|
|
-- 名字
|
|
self.name_text.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color) .. ">" .. basic.goods_name .. "+"..stren .. "</color>"
|
|
|
|
end
|
|
self:SetBetterProperty(self.dynamic.equip_extra_attr)
|
|
end
|
|
|
|
self:RefreshPos()
|
|
end
|
|
GoodsModel:getInstance():GetDynamic(self.goods_vo.goods_id, callback, false)
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:SetName()
|
|
local basic = GoodsModel.Instance:GetGoodsBasicByTypeId(self.goods_vo.type_id)
|
|
self.name_text.text = basic and basic.goods_name-- self.goods_vo.goods_name
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:SetScore()
|
|
local cfg = Config.Starsoulequip[self.goods_vo.type_id]
|
|
local base_score = 0
|
|
local better_score = 0
|
|
if cfg then
|
|
base_score = cfg.base_rating
|
|
end
|
|
self.base_score_text.text = base_score
|
|
self.better_score_text.text = base_score + self.goods_vo.rating
|
|
end
|
|
|
|
--红点
|
|
function StarSoulEquipCompareTips:ShowReDot()
|
|
if self.dynamic and self.dynamic.type_id and self.dynamic.stren and self.dynamic.cell then
|
|
if RoleManager.Instance.mainRoleInfo.level >= Config.ConfigOpenLv.Equip.strength then
|
|
local bool = EquipModel:getInstance():IsCanStrength(self.dynamic.type_id, self.dynamic.stren, self.dynamic.cell) and true or false
|
|
self.strengthBtn_dot:SetActive(bool)
|
|
end
|
|
end
|
|
end
|
|
|
|
--设置基础属性
|
|
function StarSoulEquipCompareTips:SetProperty(basic, stren)
|
|
stren = stren or 0
|
|
if basic then
|
|
local equip_cfg = Config.Starsoulequip[self.goods_vo.type_id]
|
|
if not equip_cfg then
|
|
Message.show("没有配置", self.goods_vo.type_id)
|
|
return
|
|
end
|
|
local pos = equip_cfg.pos or 0
|
|
local rare = equip_cfg.rare
|
|
local base_attrlist = ErlangParser:GetInstance():Parse(basic.base_attrlist)
|
|
local base_equip_attr_list = Config.Starsoulequiplv[pos.."@"..rare.."@0"] and Config.Starsoulequiplv[pos.."@"..rare.."@0"].attr_list or {}
|
|
base_equip_attr_list = ErlangParser:GetInstance():Parse(base_equip_attr_list)
|
|
local stren_attr_list = {}
|
|
local add_prop = {}
|
|
local base_prop = {}
|
|
local attr_id_list = {}
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
local stren_str = ""
|
|
for _, v in pairs(base_attrlist) do
|
|
local id, value = tonumber(v[1]), tonumber(v[2])
|
|
base_prop[id] = {id = id, value = value}
|
|
table.insert(attr_id_list, id)
|
|
end
|
|
table.sort(attr_id_list, function (a, b)
|
|
return a < b
|
|
end)
|
|
for _, v in pairs(base_equip_attr_list) do
|
|
local id, value = tonumber(v[1]), tonumber(v[2])
|
|
if base_prop[id] then
|
|
base_prop[id].value = base_prop[id].value + value
|
|
end
|
|
end
|
|
for i = 1, stren do
|
|
local list = Config.Starsoulequiplv[pos.."@"..rare.."@"..i] and Config.Starsoulequiplv[pos.."@"..rare.."@"..i].attr_list
|
|
if list then
|
|
list = ErlangParser:GetInstance():Parse(list)
|
|
for _, v in pairs(list) do
|
|
local id, value = tonumber(v[1]), tonumber(v[2])
|
|
if not stren_attr_list[id] then
|
|
stren_attr_list[id] = {id = id, value = 0}
|
|
end
|
|
stren_attr_list[id].value = stren_attr_list[id].value + value
|
|
end
|
|
end
|
|
|
|
end
|
|
for _, id in ipairs(attr_id_list) do
|
|
local data = base_prop[id]
|
|
if data then
|
|
local add_value = stren_attr_list[id] and stren_attr_list[id].value or 0
|
|
local _, name, _, value = WordManager:GetPropertyInfo(data.id, data.value + add_value)
|
|
name_str = name_str..name.."\n"
|
|
pro_str = pro_str..value.."\n"
|
|
if stren_attr_list[id] then
|
|
local value_add = WordManager:GetPropertyValue(stren_attr_list[id].id, stren_attr_list[id].value)
|
|
stren_str = stren_str.."(强化 +"..value_add..")\n"
|
|
else
|
|
stren_str = stren_str.."(强化 +0)\n"
|
|
end
|
|
end
|
|
|
|
end
|
|
self.base_name_text.text = Trim(name_str)
|
|
self.basePro_text.text = Trim(pro_str)
|
|
self.base_stren_text.text = Trim(stren_str)
|
|
self.base_name_text.transform.sizeDelta = Vector2(self.base_name_text.transform.sizeDelta.x, self.base_name_text.preferredHeight)
|
|
self.basePro_text.transform.sizeDelta = Vector2(self.basePro_text.transform.sizeDelta.x, self.basePro_text.preferredHeight)
|
|
self.base_stren_text.transform.sizeDelta = Vector2(self.base_stren_text.transform.sizeDelta.x, self.base_stren_text.preferredHeight)
|
|
end
|
|
|
|
end
|
|
|
|
--设置附加属性
|
|
function StarSoulEquipCompareTips:SetBetterProperty(equip_extra_attr)
|
|
local better_str = ""
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
if equip_extra_attr then
|
|
table.sort(equip_extra_attr, function (a, b)
|
|
return a.attr_id < b.attr_id
|
|
end)
|
|
|
|
for i, v in ipairs(equip_extra_attr) do
|
|
local _, name, _, value = WordManager:GetPropertyInfo(v.attr_id, v.attr_val)
|
|
name_str = name_str .. "<color=" .. WordManager.GetGoodsColor(v.color) .. ">"..name.."</color>" .. "\n"
|
|
pro_str = pro_str.."<color=" .. WordManager.GetGoodsColor(v.color) .. ">"..value.."</color>" .. "\n"
|
|
end
|
|
end
|
|
self.random_name_text.text = Trim(name_str)
|
|
self.random_pro_text.text = Trim(pro_str)
|
|
self.random_pro_text.transform.sizeDelta = Vector2(self.random_pro_text.transform.sizeDelta.x, self.random_pro_text.preferredHeight)
|
|
self.random_name_text.transform.sizeDelta = Vector2(self.random_name_text.transform.sizeDelta.x, self.random_name_text.preferredHeight)
|
|
end
|
|
|
|
--设置极品属性
|
|
function StarSoulEquipCompareTips:SetBestPro(best_attr)
|
|
local attr_list = ErlangParser:GetInstance():Parse(best_attr)
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
for i, v in ipairs(attr_list) do
|
|
local _, name, _, value = WordManager:GetPropertyInfo(tonumber(v[1]), tonumber(v[2]))
|
|
name_str = name_str ..name.."\n"
|
|
pro_str = pro_str..value.."\n"
|
|
end
|
|
if name_str == "" then
|
|
name_str = "无"
|
|
end
|
|
self.add_name_text.text = Trim(name_str)
|
|
self.addPro_text.text = Trim(pro_str)
|
|
self.addPro_text.transform.sizeDelta = Vector2(self.addPro_text.transform.sizeDelta.x, self.addPro_text.preferredHeight)
|
|
self.add_name_text.transform.sizeDelta = Vector2(self.add_name_text.transform.sizeDelta.x, self.add_name_text.preferredHeight)
|
|
end
|
|
|
|
function StarSoulEquipCompareTips:RefreshPos()
|
|
local base_offset = 55
|
|
base_offset = base_offset + self.basePro_text.preferredHeight
|
|
base_offset = base_offset + 40
|
|
base_offset = base_offset + self.addPro_text.preferredHeight
|
|
base_offset = base_offset + 50
|
|
base_offset = base_offset + self.random_pro_text.preferredHeight
|
|
base_offset = base_offset + 190
|
|
self.ScrollView.sizeDelta = Vector2(380, base_offset - 175)
|
|
self.ScrollViewContent.sizeDelta = Vector2(380, base_offset - 175)
|
|
base_offset = 55
|
|
base_offset = base_offset + self.basePro_text.preferredHeight
|
|
self.line2.anchoredPosition = Vector2(0, -base_offset)
|
|
base_offset = base_offset + 40
|
|
self.addPro_text.transform.anchoredPosition = Vector2(171, -base_offset)
|
|
self.add_name_text.transform.anchoredPosition = Vector2(25, -base_offset)
|
|
base_offset = base_offset + self.addPro_text.preferredHeight + 10
|
|
self.line3.anchoredPosition = Vector2(0, -base_offset)
|
|
base_offset = base_offset + 40
|
|
self.random_name_text.transform.anchoredPosition = Vector2(25, -base_offset)
|
|
self.random_pro_text.transform.anchoredPosition = Vector2(171, -base_offset)
|
|
base_offset = base_offset + self.random_pro_text.preferredHeight
|
|
base_offset = base_offset + 190 --190 是背景初始高度
|
|
self.bg.sizeDelta = Vector2(382.7, base_offset)
|
|
end
|