源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

180 lines
5.3 KiB

DualGemstoneTips = DualGemstoneTips or BaseClass(BaseView)
local DualGemstoneTips = DualGemstoneTips
function DualGemstoneTips:__init()
self.base_file = "common"
self.layout_file = "goodsTooltips"
self.layer_name = "Top"
self.is_set_zdepth = true
self.use_background = true
self.click_bg_toClose = true
self.hide_maincancas = false
self.pos_x = 0
self.pos_y = 0
self.goods_vo = nil
self.is_show_btn = nil
self.model = GoodsModel:getInstance()
self.mainVo = RoleManager.Instance.mainRoleInfo
-- self.use_local_view = true
self.curr_height = 0
self.load_callback = function ()
self:LoadSuccess()
end
self.open_callback = function ()
self:SetData()
end
self.close_callback = function ()
end
self.destroy_callback = function ()
if self.icon_item then
self.icon_item:DeleteMe()
end
if self.event_odc then
GlobalEventSystem:UnBind(self.event_odc)
self.event_odc = nil
end
end
end
function DualGemstoneTips:LoadSuccess()
self.layout,
self.bg,
self.icon_con,
self.btns_con
= self:GetChildTransforms({
"layout",
"layout/bg",
"layout/icon_con",
"layout/btns_con"
})
self.nameText,
self.countText,
self.levelText,
self.contentText
= self:GetChildTexts({
"layout/nameText",
"layout/countText",
"layout/levelText",
"layout/contentText",
})
self.btns_con.gameObject:SetActive(false)
self.icon_item = AwardItem.New(self.icon_con, false, self.layer_name)
self.icon_item:ChangeCountVisible(false)
self:InitEvent()
end
function DualGemstoneTips:InitEvent()
self.event_odc = GlobalEventSystem:Bind(EventName.ORIENTATION_DID_CHANGE, function ()
self:AdjustLayoutPos()
end)
end
function DualGemstoneTips:Open(type_id, x, y, goods_vo)
self.type_id = type_id
self.goods_vo = goods_vo
self.pos_x = x
self.pos_y = y
BaseView.Open(self)
end
function DualGemstoneTips:SetData()
self.layout.gameObject:SetActive(true)
local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id)
local a_stone, b_stone
if self.goods_vo then
a_stone = self.goods_vo.a_stone
b_stone = self.goods_vo.b_stone
else
for _, goods_id in pairs(ComposeModel.Instance.add_goods_list) do
local info = GoodsModel:getInstance():GetBagGoodsInfoById(goods_id)
if not a_stone then
a_stone = info.type_id
elseif not b_stone then
b_stone = info.type_id
end
end
end
self.icon_item:SetData(self.type_id)
self.countText.text = "<color=#9e6d4b>类型:</color><color=#6e4737>" .. WordManager:GetGoodsTypeStr(basic.type, base.subtype) .. "</color>"
local name = Trim(basic.goods_name)
local level = 0
if self.goods_vo then
level = self.goods_vo.dstone_lv
else
if a_stone and Config.Equipstonelv[a_stone] then
level = level + Config.Equipstonelv[a_stone].lv
end
if b_stone and Config.Equipstonelv[b_stone] then
level = level + Config.Equipstonelv[b_stone].lv
end
end
if level ~= 0 then
name = level..""..name
end
self.nameText.text = Language.substitute("<color={0}>{1}</color>", WordManager.GetGoodsColor(basic.color), Trim(name))
if basic.level > 0 then
local str = "#6e4737"
if self.mainVo.level < basic.level then
str = "#f14041"
end
self.levelText.text = "<color=#9e6d4b>等级:</color><color="..str..">" .. basic.level .. "</color>"
else
self.levelText.text = ""
end
local contentStr = Trim(basic.intro)
local str = ""
if a_stone then
local attr = JewelModel:getInstance():GetJewelAttr(a_stone)
str = Language.substitute("<color={0}>{1}</color>", "#f18310", Trim(attr))
contentStr = contentStr.."\n\n"..str
end
if b_stone then
local attr = JewelModel:getInstance():GetJewelAttr(b_stone)
str = Language.substitute("<color={0}>{1}</color>", "#f18310", Trim(attr))
contentStr = contentStr.."\n"..str
end
local stage = self.goods_vo and self.goods_vo.stage or 1
local cfg = Config.Doubleattrgemstage[basic.subtype.."@"..stage]
if cfg then
contentStr = contentStr.."\n"..Trim(cfg.tips)
end
self.contentText.text = contentStr
local h = 175 + self.contentText.preferredHeight + 30
self.bg.sizeDelta = Vector2(385, h)
self:AdjustLayoutPos()
end
function DualGemstoneTips:AdjustLayoutPos()
if self.pos_x and self.pos_y then
--自定义显示的按钮
local layout_width = self.bg.sizeDelta.x + self.btns_con.sizeDelta.x
local layout_height = self.bg.sizeDelta.y
local x, y = ScreenToViewportPoint(self.pos_x, self.pos_y)
local iphone_x_offset = math.max(ClientConfig.iphone_x_offset_left, ClientConfig.iphone_x_offset_right)
if x + layout_width + 50 + iphone_x_offset * 2 > SrcScreenWidth then
x = SrcScreenWidth - layout_width - 90 - iphone_x_offset * 2
end
if y < layout_height + 50 then
y = layout_height + 50
end
self.layout.anchoredPosition = Vector2(x, y)
end
end