|
--装备对比的tips
|
|
SealCompareTips = SealCompareTips or BaseClass(BaseItem)
|
|
|
|
function SealCompareTips:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "EquipCompareTips"
|
|
self.goods_vo = nil
|
|
self.model = GoodsModel:getInstance()
|
|
|
|
self.seal_item_list = {}
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function SealCompareTips:__delete()
|
|
if self.icon_item then
|
|
self.icon_item:DeleteMe()
|
|
end
|
|
for i,v in ipairs(self.seal_item_list) do
|
|
v:DeleteMe()
|
|
v = nil
|
|
end
|
|
self.seal_item_list = {}
|
|
|
|
if self.expire_label then
|
|
lua_viewM:ClearItem(self.expire_label)
|
|
self.expire_label = nil
|
|
end
|
|
end
|
|
|
|
function SealCompareTips:Load_callback()
|
|
EquipCompareTips.Load_callback(self)
|
|
end
|
|
|
|
function SealCompareTips:InitEvent()
|
|
EquipCompareTips.InitEvent(self)
|
|
end
|
|
|
|
function SealCompareTips:SetData(goods_vo)
|
|
self.goods_vo = goods_vo
|
|
if self.goods_vo == nil then return print("SealCompareTips里面没有物品数据") end
|
|
|
|
if self.is_loaded then
|
|
local color_str = ColorUtil.WHITE
|
|
if self.goods_vo.level > RoleManager.Instance.mainRoleInfo.level then
|
|
color_str = ColorUtil.RED
|
|
end
|
|
self.level.text = "<color="..color_str..">" .. self.goods_vo.level .. "</color>"
|
|
-- local index = Config.ConfigEquipShow[self.goods_vo.subtype].index
|
|
self.equip_pos.text = Trim(Config.Holysealpos[self.goods_vo.subtype].name)
|
|
self.fight.text = self.goods_vo.combat_power or 0
|
|
|
|
color_str = (self.goods_vo.career_id == 0 or RoleManager.Instance.mainRoleInfo.career == self.goods_vo.career_id) and ColorUtil.WHITE or ColorUtil.RED
|
|
local career_name = Config.Career[self.goods_vo.career_id] and Config.Career[self.goods_vo.career_id].career_name or "通用"
|
|
self.career.text = "<color="..color_str..">" .. career_name .. "</color>"
|
|
|
|
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
|
|
-- self:CreateStar(8)
|
|
if self.goods_vo.goods_id then
|
|
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
|
|
self.dynamic.stren = dynamic.stren or 0
|
|
local stren = ""
|
|
if dynamic.stren and dynamic.stren > 0 then
|
|
stren = "+" ..dynamic.stren
|
|
end
|
|
self.nameText.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color)..">" .. self.goods_vo.goods_name .. stren .. "</color>"
|
|
local step = Config.Holysealgoods[self.goods_vo.type_id] and Config.Holysealgoods[self.goods_vo.type_id].stage or 0
|
|
self.step_num.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color)..">" .. step .. "阶</color>"
|
|
|
|
self.icon_item:SetData(self.goods_vo)
|
|
|
|
self.composite_score.text = self.dynamic.overall_rating
|
|
self.equip_score.text = self.dynamic.rating
|
|
|
|
if basic then
|
|
local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist)
|
|
self:SetProperty(base_pro, dynamic.stren, basic.subtype)
|
|
self.fight.text = dynamic.combat_power or 0
|
|
end
|
|
self:SetAddProperty(self.dynamic)
|
|
self:SetSpecialProperty(self.goods_vo)
|
|
self:SetSuitProperty(self.dynamic)
|
|
|
|
self:Refresh()
|
|
--self:ShowReDot()
|
|
end
|
|
end
|
|
GoodsModel:getInstance():GetDynamic(self.goods_vo.goods_id, callback)
|
|
end
|
|
|
|
--self:SetSellState(self.goods_vo.sell, self.goods_vo.price_type, self.goods_vo.type_id)
|
|
self:Refresh()
|
|
else
|
|
self.need_refresh = true
|
|
end
|
|
end
|
|
|
|
--设置附加属性
|
|
function SealCompareTips:SetAddProperty(dynamic)
|
|
if dynamic and dynamic.equip_extra_attr then
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
|
|
if #dynamic.equip_extra_attr == 0 then
|
|
self.addName.text = "无"
|
|
self.addPro.text = ""
|
|
else
|
|
for i,v in ipairs(dynamic.equip_extra_attr) do
|
|
if v.type_id == 1 then
|
|
name_str = name_str .. "<color="..WordManager.GetGoodsColor(v.color)..">每"..v.plus_interval.."级"..WordManager:GetProperties(tonumber(v.attr_id)).."</color>"
|
|
pro_str = pro_str .."<color="..WordManager.GetGoodsColor(v.color)..">+"..WordManager:GetPropertyValue(tonumber(v.attr_id), tonumber(v.plus_unit)) .. "</color>"
|
|
else
|
|
name_str = name_str .. "<color=" .. WordManager.GetGoodsColor(v.color) .. ">"..WordManager:GetProperties(tonumber(v.attr_id)).."</color>"
|
|
pro_str = pro_str .. "<color="..WordManager.GetGoodsColor(v.color)..">+"..WordManager:GetPropertyValue(tonumber(v.attr_id), v.attr_val).."</color>"
|
|
end
|
|
if i < #dynamic.equip_extra_attr then
|
|
name_str = name_str .. "\n"
|
|
pro_str = pro_str .. "\n"
|
|
end
|
|
end
|
|
self.addName.text = name_str
|
|
self.addPro.text = pro_str
|
|
end
|
|
end
|
|
end
|
|
|
|
--设置洗炼属性
|
|
function SealCompareTips:SetSpecialProperty(goodsVo)
|
|
self.wash_name.text = "特殊属性"
|
|
if goodsVo then
|
|
if Config.Holysealgoods[goodsVo.type_id] then
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
local attr = ErlangParser:GetInstance():Parse(Config.Holysealgoods[goodsVo.type_id].special_attr)
|
|
for i,v in ipairs(attr) do
|
|
name_str = name_str .. WordManager:GetProperties(tonumber(v[1]))
|
|
pro_str = pro_str .. "+" .. WordManager:GetPropertyValue(tonumber(v[1]), tonumber(v[2]))
|
|
if i < #attr then
|
|
name_str = name_str .. "\n"
|
|
pro_str = pro_str .. "\n"
|
|
end
|
|
end
|
|
self.washName.text = name_str
|
|
self.washPro.text = pro_str
|
|
end
|
|
end
|
|
end
|
|
|
|
--刷新相关控件的位置
|
|
function SealCompareTips:Refresh()
|
|
if self.goods_vo then
|
|
self:RefreshPosAndSize(self.dynamic)
|
|
self:SetRootPos()
|
|
end
|
|
end
|
|
|
|
--设置基础属性
|
|
function SealCompareTips:SetProperty(base_pro, stren, pos)
|
|
stren = stren or 0
|
|
local stren_config = SealModel:getInstance():GetStrengthConfig(pos, stren)
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
local stren_str = ""
|
|
local pro_list = {}
|
|
if stren_config and Trim(stren_config.attr_list) ~= "[]" then
|
|
pro_list = ErlangParser:GetInstance():Parse(stren_config.attr_list)
|
|
end
|
|
for i,v in ipairs(base_pro) do
|
|
name_str = name_str .. WordManager:GetProperties(tonumber(v[1]))
|
|
pro_str = pro_str.."+" .. WordManager:GetPropertyValue(tonumber(v[1]),tonumber(v[2]))
|
|
for i2, v2 in ipairs(pro_list) do
|
|
if tonumber(v2[1]) == tonumber(v[1]) then
|
|
stren_str = stren_str .. "<color="..ColorUtil.GREEN..">(强化+" .. v2[2] .. ")</color>"
|
|
end
|
|
end
|
|
|
|
if i < #base_pro then
|
|
name_str = name_str.."\n"
|
|
pro_str = pro_str.."\n"
|
|
stren_str = stren_str.."\n"
|
|
end
|
|
end
|
|
self.baseName.text = name_str
|
|
self.basePro.text = pro_str
|
|
self.strengthAdd.text = stren_str
|
|
end
|
|
|
|
--设置套装属性
|
|
function SealCompareTips:SetSuitProperty(dynamic, subtype)
|
|
local suit_id = Config.Holysealgoods[dynamic.type_id] and Config.Holysealgoods[dynamic.type_id].suit_id
|
|
local suit_num
|
|
if isOther then
|
|
suit_num = dynamic.suit_count
|
|
else
|
|
suit_num = SealModel:getInstance():GetSuitNum(suit_id) or 0
|
|
end
|
|
local config = Config.Holysealsuit[suit_id]
|
|
if config then
|
|
self.suit_name.text = Trim(config.name).."("..suit_num.."/"..config.max_count..")"
|
|
local attr = ErlangParser:GetInstance():Parse(config.attr_list)
|
|
if attr and #attr > 0 then
|
|
local num_str = ""
|
|
local name_str = ""
|
|
local pro_str = ""
|
|
for i, v in ipairs(attr) do
|
|
local color
|
|
if suit_num >= tonumber(v[1]) then
|
|
color = ColorUtil.GREEN
|
|
else
|
|
color = ColorUtil.GRAY
|
|
end
|
|
|
|
num_str = num_str.."<color="..color..">【"..v[1].."件】</color>"
|
|
for i2, v2 in ipairs(v[3]) do
|
|
name_str = name_str .."<color="..color..">"..WordManager:GetProperties(tonumber(v2[1])).."</color>"
|
|
pro_str = pro_str .."<color="..color..">+"..WordManager:GetPropertyValue(tonumber(v2[1]), tonumber(v2[2])).."</color>"
|
|
if i < #attr or i2 < #v[3] then
|
|
num_str = num_str.."\n"
|
|
name_str = name_str.."\n"
|
|
pro_str = pro_str.."\n"
|
|
end
|
|
end
|
|
end
|
|
self.suitNum.text = num_str
|
|
self.suitName.text = name_str
|
|
self.suitPro.text = pro_str
|
|
end
|
|
end
|
|
end
|
|
|
|
--更新各个控件的位置
|
|
function SealCompareTips:RefreshPosAndSize(dynamic)
|
|
local off_y = 0
|
|
off_y = self.basePro.preferredHeight + 15
|
|
self.baseName.transform.sizeDelta = Vector2(self.baseName.transform.sizeDelta.x, off_y)
|
|
self.basePro.transform.sizeDelta = Vector2(self.basePro.transform.sizeDelta.x, off_y)
|
|
self.strengthAdd.transform.sizeDelta = Vector2(self.strengthAdd.transform.sizeDelta.x, off_y)
|
|
off_y = off_y + 30
|
|
|
|
local show_add = false
|
|
if dynamic then
|
|
show_add = true
|
|
end
|
|
if show_add then
|
|
self.line2.gameObject:SetActive(true)
|
|
self.addName.gameObject:SetActive(true)
|
|
self.addPro.gameObject:SetActive(true)
|
|
|
|
self.line2.localPosition = Vector3(0, -off_y, 0)
|
|
off_y = off_y + 30
|
|
self.addName.transform.localPosition = Vector2(self.addName.transform.localPosition.x, -off_y)
|
|
self.addPro.transform.localPosition = Vector2(self.addPro.transform.localPosition.x, -off_y)
|
|
self.addName.transform.sizeDelta = Vector2(self.addName.transform.sizeDelta.x, self.addName.preferredHeight + 15)
|
|
self.addPro.transform.sizeDelta = Vector2(self.addPro.transform.sizeDelta.x, self.addPro.preferredHeight + 15)
|
|
off_y = off_y + self.addPro.preferredHeight + 15
|
|
else
|
|
self.line2.gameObject:SetActive(false)
|
|
self.addName.gameObject:SetActive(false)
|
|
self.addPro.gameObject:SetActive(false)
|
|
end
|
|
|
|
local show_wash = false
|
|
if dynamic and Config.Holysealgoods[dynamic.type_id] then
|
|
show_wash = true
|
|
end
|
|
if show_wash then
|
|
self.line5.gameObject:SetActive(true)
|
|
self.washName.gameObject:SetActive(true)
|
|
self.washPro.gameObject:SetActive(true)
|
|
|
|
self.line5.localPosition = Vector3(0, -off_y, 0)
|
|
off_y = off_y + 30
|
|
self.washName.transform.localPosition = Vector3(self.washName.transform.localPosition.x, -off_y, 0)
|
|
self.washName.transform.sizeDelta = Vector2(self.washName.transform.sizeDelta.x, self.washName.preferredHeight + 15)
|
|
self.washPro.transform.localPosition = Vector3(self.washPro.transform.localPosition.x, -off_y, 0)
|
|
self.washPro.transform.sizeDelta = Vector2(self.washPro.transform.sizeDelta.x, self.washPro.preferredHeight + 15)
|
|
off_y = off_y + self.washPro.preferredHeight + 15
|
|
else
|
|
self.line5.gameObject:SetActive(false)
|
|
self.washName.gameObject:SetActive(false)
|
|
self.washPro.gameObject:SetActive(false)
|
|
end
|
|
|
|
local show_spirit = false
|
|
--[[if dynamic and dynamic.cspirit_stage and dynamic.cspirit_lv and dynamic.cspirit_stage > 0 and dynamic.cspirit_lv > 0 then
|
|
show_spirit = true
|
|
end--]]
|
|
if show_spirit then
|
|
self.line6.gameObject:SetActive(true)
|
|
self.spiritName.gameObject:SetActive(true)
|
|
self.spiritPro.gameObject:SetActive(true)
|
|
|
|
self.line6.localPosition = Vector3(0, -off_y, 0)
|
|
off_y = off_y + 30
|
|
self.spiritName.transform.localPosition = Vector3(self.spiritName.transform.localPosition.x, -off_y, 0)
|
|
self.spiritName.transform.sizeDelta = Vector2(self.spiritName.transform.sizeDelta.x, self.spiritName.preferredHeight + 15)
|
|
self.spiritPro.transform.localPosition = Vector3(self.spiritPro.transform.localPosition.x, -off_y, 0)
|
|
self.spiritPro.transform.sizeDelta = Vector2(self.spiritPro.transform.sizeDelta.x, self.spiritPro.preferredHeight + 15)
|
|
off_y = off_y + self.spiritPro.preferredHeight + 10
|
|
else
|
|
self.line6.gameObject:SetActive(false)
|
|
self.spiritName.gameObject:SetActive(false)
|
|
self.spiritPro.gameObject:SetActive(false)
|
|
end
|
|
|
|
local show_stone = false
|
|
if dynamic and Config.Goodsdecompose[dynamic.type_id] then
|
|
show_stone = true
|
|
end
|
|
if show_stone then
|
|
self.line3.localPosition = Vector3(0, -off_y, 0)
|
|
off_y = off_y + 30
|
|
self.line3.gameObject:SetActive(true)
|
|
self.stone_conta.gameObject:SetActive(true)
|
|
local height = self:SetDecompose(dynamic)
|
|
self.stone_conta.sizeDelta = Vector2(self.stone_conta.sizeDelta.x, height)
|
|
self.stone_conta.localPosition = Vector3(self.stone_conta.localPosition.x, -off_y, 0)
|
|
off_y = off_y + height + 15
|
|
else
|
|
self.line3.gameObject:SetActive(false)
|
|
self.stone_conta.gameObject:SetActive(false)
|
|
end
|
|
|
|
local show_suit = false
|
|
if dynamic then
|
|
show_suit = true
|
|
end
|
|
if show_suit then
|
|
self.line4.gameObject:SetActive(true)
|
|
self.suitNum.gameObject:SetActive(true)
|
|
self.suitName.gameObject:SetActive(true)
|
|
self.suitPro.gameObject:SetActive(true)
|
|
|
|
self.line4.localPosition = Vector3(0, -off_y, 0)
|
|
off_y = off_y + 30
|
|
self.suitNum.transform.localPosition = Vector3(self.suitNum.transform.localPosition.x, -off_y, 0)
|
|
self.suitNum.transform.sizeDelta = Vector2(self.suitNum.transform.sizeDelta.x, self.suitNum.preferredHeight + 15)
|
|
self.suitName.transform.localPosition = Vector3(self.suitName.transform.localPosition.x, -off_y, 0)
|
|
self.suitName.transform.sizeDelta = Vector2(self.suitName.transform.sizeDelta.x, self.suitName.preferredHeight + 15)
|
|
self.suitPro.transform.localPosition = Vector3(self.suitPro.transform.localPosition.x, -off_y, 0)
|
|
self.suitPro.transform.sizeDelta = Vector2(self.suitPro.transform.sizeDelta.x, self.suitPro.preferredHeight + 15)
|
|
off_y = off_y + self.suitPro.preferredHeight + 15
|
|
else
|
|
self.line4.gameObject:SetActive(false)
|
|
self.suitNum.gameObject:SetActive(false)
|
|
self.suitName.gameObject:SetActive(false)
|
|
self.suitPro.gameObject:SetActive(false)
|
|
end
|
|
|
|
self.line7.gameObject:SetActive(false)
|
|
self.wake_baseName.gameObject:SetActive(false)
|
|
self.wake_basePro.gameObject:SetActive(false)
|
|
|
|
self.line8.gameObject:SetActive(false)
|
|
self.wake_strenName.gameObject:SetActive(false)
|
|
self.wake_strenPro.gameObject:SetActive(false)
|
|
|
|
self.line9.gameObject:SetActive(false)
|
|
self.wake_suitNum.gameObject:SetActive(false)
|
|
self.wake_suitName.gameObject:SetActive(false)
|
|
self.wake_suitPro.gameObject:SetActive(false)
|
|
|
|
self.line10.gameObject:SetActive(false)
|
|
self.magic_skillName.gameObject:SetActive(false)
|
|
self.magic_skillLevel.gameObject:SetActive(false)
|
|
|
|
-- if off_y > 451 then
|
|
-- self.down_arrow.localPosition = Vector3(150, -621.6, 0)
|
|
-- self.sell_conta.localPosition = Vector3(22, -643.5, 0)
|
|
-- self.ScrollView.sizeDelta = Vector2(287, 451)
|
|
self.ScrollViewContent.sizeDelta = Vector2(self.ScrollViewContent.sizeDelta.x, off_y)
|
|
-- self.ScrollViewViewport.sizeDelta = Vector2(276, 451)
|
|
-- self.transform.sizeDelta = Vector2(328, 685)
|
|
-- self.bg.sizeDelta = Vector2(328, 711)
|
|
-- else
|
|
-- self.down_arrow.localPosition = Vector3(150, -off_y + self.ScrollView.localPosition.y + 20, 0)
|
|
-- self.sell_conta.localPosition = Vector3(22, -off_y + self.ScrollView.localPosition.y, 0)
|
|
-- self.ScrollView.sizeDelta = Vector2(287, off_y)
|
|
-- self.ScrollViewContent.sizeDelta = Vector2(276, off_y)
|
|
-- self.ScrollViewViewport.sizeDelta = Vector2(276, off_y)
|
|
-- self.transform.sizeDelta = Vector2(328, off_y - self.ScrollView.localPosition.y + 60)
|
|
-- self.bg.sizeDelta = Vector2(328, off_y - self.ScrollView.localPosition.y + 60)
|
|
-- end
|
|
|
|
if self.ScrollViewContent.sizeDelta.y > 451 then
|
|
self.down_arrow.gameObject:SetActive(true)
|
|
else
|
|
self.down_arrow.gameObject:SetActive(false)
|
|
end
|
|
|
|
--[[--小天使小恶魔,位置改变
|
|
self.expired_label.gameObject:SetActive(false)
|
|
self.descCon.gameObject:SetActive(false)
|
|
self.ScrollViewViewport.transform.sizeDelta = Vector2(326, 447)
|
|
if self.goods_vo.type==10 and self.goods_vo.subtype==11 then
|
|
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
|
|
self.bg.sizeDelta = Vector2(335, 507)
|
|
self.career_conta.transform.anchoredPosition = Vector3(-61, 394, 0)
|
|
self.ScrollView.transform.anchoredPosition = Vector3(-3.5, -165, 0)
|
|
self.ScrollViewViewport.transform.sizeDelta = Vector2(326, 136)
|
|
self.ui_line1.transform.anchoredPosition = Vector3(113, -115, 0)
|
|
self.ui_line2.transform.anchoredPosition = Vector3(110, -253, 0)
|
|
self.descCon.transform.anchoredPosition = Vector3(-3.5, -351, 0)
|
|
self.descCon.gameObject:SetActive(true)
|
|
self.descLabel.text = Trim(basic.intro)
|
|
self.getWayLabel.text = Trim(basic.getway)
|
|
|
|
if self.goods_vo.expire_time then
|
|
if self.goods_vo.expire_time == 0 then
|
|
self.expired_label.gameObject:SetActive(false)
|
|
else
|
|
self.expired_label.gameObject:SetActive(true)
|
|
local text = ""
|
|
if TimeUtil:getServerTime() > self.goods_vo.expire_time then
|
|
text = "<color=#de4141>已过期</color>"
|
|
else
|
|
local time = self.goods_vo.expire_time - TimeUtil:getServerTime()
|
|
text = string.format("<color=#ff8a3c>【%s】后过期</color>",TimeUtil:timeConvert6(time))
|
|
end
|
|
self.expired_label:GetComponent("Text").text = text
|
|
self.expired_label.transform.sizeDelta = Vector2(280, 30)
|
|
self.expired_label.transform.anchoredPosition = Vector3(114, -96, 0)
|
|
end
|
|
end
|
|
end--]]
|
|
end
|
|
|
|
--设置宝石
|
|
function SealCompareTips:SetDecompose(goodsVo)
|
|
self.stone_name.text = "分解获得"
|
|
local cfg = Config.Goodsdecompose[goodsVo.type_id]
|
|
if cfg then
|
|
local list = ErlangParser:GetInstance():Parse(cfg.regular_mat)
|
|
for i, v in ipairs(list) do
|
|
local item = self.seal_item_list[i]
|
|
if item == nil then
|
|
item = SealToolDecomItem.New(self.stone_conta)
|
|
self.seal_item_list[i] = item
|
|
end
|
|
item:SetData(v)
|
|
end
|
|
return 25 * #list
|
|
end
|
|
return 25
|
|
end
|