|
|
- 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
|