|
|
- RankEquipItem = RankEquipItem or BaseClass(BaseItem)
- function RankEquipItem:__init(parent_wnd, prefab_asset, layer_name)
- self.base_file = "rank"
- self.layout_file = "RankEquipItem"
- self.is_delay_callback = true
- self.model = EquipModel:getInstance()
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self.only_show_strength_tag = false --是否仅显示可强化标识
- self.pos_type = false
- self.pos_type_visible = false
-
- self.bg_alpha = 1
- --self.use_local_view = true
- self:Load()
- end
-
- function RankEquipItem:Load_callback()
- self.equip_conta,self.canStren = GetChildTransforms(self.transform,
- {
- "equip_conta","canStren"
- })
- self.strengthText,self.stren = GetChildTexts (self.transform,
- {
- "strengthText","stren"
- })
- self.default_conta,self.red_dot,self.selectBg,self.canStrenObj = GetChildGameObjects (self.transform,
- {
- "default_conta","red_dot","selectBg","canStren"
- })
- self.pos_type_img, self.default_conta_img = GetChildImages (self.transform,
- {
- "pos_type", "default_conta"
- })
-
-
- self.stren.text = ""
- self.icon_item = AwardItem.New(self.equip_conta)
- -- self.icon_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.equip_conta)
- self.icon_item:SetItemSize(88,88)
- -- self.icon_item:SetAnchoredPosition(0,0)
- if self.style_cache then
- self:SetEquipStyle(self.style_cache)
- self.style_cache = nil
- end
-
- if self.need_refreshData then
- self:SetData(self.data)
- self:SetPosType(self.pos_type, self.pos_type_visible)
- self:SetBgAlpha(self.bg_alpha)
- end
-
- if self.need_set_ring_show then
- self:SetRingShow(self.mate_stage,self.mate_star)
- end
-
- self.icon_item.ClickCallFun = function (target,target2,x,y) --覆盖AwardItem 的点击方法
- self:ClickHandler(target2,x,y)
- end
-
- self:InitEvent()
- end
-
- function RankEquipItem:InitEvent()
- local function click_fun(target,x,y)
- self:ClickHandler(target,x,y)
- end
- AddClickEvent(self.gameObject, click_fun)
-
- local select_fun = function (goods_vo)
- if self.data and goods_vo then
- if self.data.goods_id == goods_vo.goods_id then
- self:SetSelect(true)
- else
- self:SetSelect(false)
- end
- end
- end
- self.event_id = self.model:Bind(EquipModel.EQUIP_ITEM_BE_CLICK, select_fun)
-
- local change_dynamic = function (goods_id)
- if self.data then
- if self.data.goods_id == goods_id then
- self:SetData(self.data, self.only_show_strength_tag)
- end
- end
- end
- self.dynamic_event_id = GlobalEventSystem:Bind(GoodsModel.CHANGE_GOODS_DYNAMIC,change_dynamic)
-
- end
-
- function RankEquipItem:ClickHandler(target,x,y)
- if self.data then
- UIToolTipMgr:getInstance():AppendEquipTips(self.data.type_id, x, y, self.data, nil,nil,nil,"rank_equip", true)
- else
- if self.is_open_ring then
- UIToolTipMgr:getInstance():AppendEquipTips(self.ring_equip_id, x, y, nil, nil,nil,nil,"rank_equip")
- end
- end
- end
-
- function RankEquipItem:SetData(data, only_show_strength_tag, role_id)
- self.data = data
- self.role_id = role_id or self.role_id
- self.only_show_strength_tag = only_show_strength_tag
- if self.is_loaded then
- self.need_refreshData = false
- --设置装备
- local callback = function (dynamic)
- if self.data and self.data.goods_id == dynamic.goods_id then
- if self.gameObject == nil then return end
- if self.data.type_id ~= dynamic.type_id then
- self.data.type_id = dynamic.type_id
- GoodsModel:getInstance():SetBaseInfo(self.data)
- end
- self.dynamic = dynamic
- self:SetDynamic(self.dynamic)
- self:ShowCanStrength(self.data.type_id)
- if self.icon_item then
- self.icon_item:SetVisible(true)
- local stren_data = EquipModel:getInstance():GetBagEquipAwaraItemInfo(self.data)
- stren_data.equip_key = "RankEquipItem"
- stren_data.is_find = true
- local hide_color_effect = false
- if self.pos_type == EquipModel.EquipType.Guard or self.pos_type == EquipModel.EquipType.Fetter then
- hide_color_effect = true
- end
- -- self.icon_item:SetData(self.data.type_id, self.data.goods_num, self.dynamic.color,stren_data,nil,nil,nil,nil,nil,nil,nil,true)
- self.icon_item:SetData(self.data.type_id, self.data.goods_num, self.dynamic.color,stren_data,nil,nil,nil,nil,nil,hide_color_effect)
- --是否过期装备
- if self.data.expire_time and self.data.expire_time~=0 and self.data.expire_time - TimeUtil:getServerTime() <= 0 then
- self.icon_item:SetExpiredVisible(true)
- else
- self.icon_item:SetExpiredVisible(false)
- end
- end
- end
- end
- callback(self.data)
- else
- self.need_refreshData = true
- end
- end
-
- --设置一生一世的信息
- function RankEquipItem:SetRingShow(mate_stage,mate_star)
- self.mate_stage = mate_stage
- self.mate_star = mate_star
- if self.is_loaded then
- self.need_set_ring_show = false
- local conf = MateModel:GetInstance():GetShipConf(self.mate_stage, self.mate_star)
- local goods_id = conf and conf.goods_id
- if goods_id and goods_id > 0 then
- --保存数据做tip显示用
- EquipModel:getInstance().mate_show_tool_tip_data = {stage = self.mate_stage, star = self.mate_star}
- self.ring_equip_id = goods_id
- self.icon_item:SetDataWithMapId(goods_id)
- self.icon_item:SetVisible(true)
- self.is_open_ring = true
- else
- self.icon_item:SetVisible(false)
- self.is_open_ring = false
- end
- else
- self.need_set_ring_show = true
- end
- end
-
- --是否显示可强化和镶嵌
- function RankEquipItem:ShowCanStrength(type_id)
- -- local bool = false
- -- local equip_cfg = EquipModel:getInstance():GetEquipmentCfg(type_id)
- -- -- print("huangcong:EquipItem [start:176] :", type_id)
- -- -- PrintTable(equip_cfg)
- -- -- print("huangcong:EquipItem [end]")
- -- if equip_cfg then
- -- bool = EquipModel:getInstance():GetEquipCanStrengthByPos(equip_cfg.series,equip_cfg.equip_type)
- -- end
- -- print("huangcong:EquipItem [start:180] :", bool)
- -- self.red_dot:SetActive(bool)
- -- self:showEffect(bool)
- end
-
- function RankEquipItem:SetDynamic(dynamic)
- if self.gameObject == nil then return end
- if dynamic.stren and dynamic.stren > 0 then
- self.stren.text = "+" .. dynamic.stren
- else
- self.stren.text = ""
- end
- end
-
- function RankEquipItem:SetEquipStyle(style)
- self.equip_style = style
- if self.is_loaded and style ~= nil then
- local str = WordManager:GetEquipStyleStr(style)
- self.stren.text = ""
- else
- self.style_cache = style
- end
- end
-
- function RankEquipItem:ClearData()
- self.data = nil
- if self.icon_item then
- self.icon_item:SetVisible(false, false)
- end
- if self.stren then
- self.stren.text = ""
- end
- end
-
- function RankEquipItem:SetSelect(bool)
- self.selectBg:SetActive(bool)
- end
-
- function RankEquipItem:showEffect(bool)
- if bool then
- self.canStrenObj:SetActive(true)
- if self.is_bag then
- self:AddUIEffect("ui_effect_jineng_jiantou1", self.canStren, self.layer_name, nil, nil, true)
- else
- self:AddUIEffect("ui_effect_jineng_jiantou1", self.canStren, self.layer_name, nil, nil, true)
- end
- else
- self.canStrenObj:SetActive(false)
- self:ClearUIEffect(self.canStren)
- end
- end
-
- function RankEquipItem:__delete()
- if self.event_id then
- self.model:UnBind(self.event_id)
- self.event_id = nil
- end
- if self.dynamic_event_id then
- GlobalEventSystem:UnBind(self.dynamic_event_id)
- self.dynamic_event_id = nil
- end
- self:ClearUIEffect(self.canStren)
-
- if self.icon_item then
- self.icon_item:DeleteMe()
- -- self.icon_item:ReleaseObj()
- self.icon_item = nil
- end
- end
-
- function RankEquipItem:SetPosType(pos, b)
- self.pos_type = pos
- self.pos_type_visible = b
- if self.is_loaded then
- self.need_refreshData = false
- self.default_conta:SetActive(self.pos_type and ((self.pos_type == 11 and self.data == nil) or self.pos_type ~= 11))
- if self.pos_type then
- lua_resM:setImageSprite(self,self.pos_type_img,"common_asset","com_equip_pos_".. self.pos_type, true)
- -- lua_resM:setImageSprite(self,self.default_conta_img,"common_asset",self.pos_type >= 11 and "tyui_pz_9" or "tyui_pz_8", true)
- lua_resM:setImageSprite(self,self.default_conta_img,"common_asset","tyui_pz_8", true)
- end
- self.pos_type_img.gameObject:SetActive(self.pos_type_visible)
- else
- self.need_refreshData = true
- end
- end
-
- function RankEquipItem:SetBgAlpha(alpha)
- self.bg_alpha = alpha
- if self.is_loaded then
- self.need_refreshData = false
- self.icon_item:SetAlpha(self.bg_alpha)
- -- if self.bg_alpha == 0 then
- -- self.icon_item:SetVisible(false,true)
- -- else
- -- self.icon_item:SetVisible(true,true)
- -- end
- else
- self.need_refreshData = true
- end
- end
|