|
|
- --装备对比的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
|