|
|
- -- <*
- -- @Author: Saber
- -- @Description: 圣物系统 特殊处理的圆形节点
- -- *>
- PsionicArmorCircleItem = PsionicArmorCircleItem or BaseClass(BaseItem)
- local PsionicArmorCircleItem = PsionicArmorCircleItem
- local PsionicConst = PsionicConst
-
- function PsionicArmorCircleItem:__init(parent_wnd, prefab_asset, layer_name)
- self.base_file = "common"
- self.layout_file = "PsionicArmorCircleItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
- self.default_x, self.default_y = 78, 78 -- awardItem的大小
- self.size_x, self.size_y = 78, 78 -- 目标大小
- self.override_func = nil
- self.show_tips = true
- self.show_count = true
- self.show_slot = false -- 展示槽位名称
- self.model = PsionicModel:getInstance()
- self:Load()
- end
-
- function PsionicArmorCircleItem:Load_callback()
- local nodes = {
- "bg:img", "item_con",
- "slot_flag_bg:obj", "slot_flag_bg/slot_flag:tmp",
- }
- self:GetChildren(nodes)
-
- self.bg_img.enabled = false
- self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con)
- self.award_item.hide_effect = true -- 不显示原来的特效
- self.award_item:SetAnchoredPosition(0, 0)
- self.award_item:SetVisible(false)
- self.award_item:SetItemBgVisible(false) -- 隐藏背景
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function PsionicArmorCircleItem:SetVisible(state, force_hide)
- BaseItem.SetVisible(self, state, force_hide)
- if self.award_item then
- self.award_item:SetVisible(state, force_hide)
- end
- end
-
- function PsionicArmorCircleItem:AddEvents( )
-
- end
-
- function PsionicArmorCircleItem:SetData( type_id, goods_num, color, stren_data )
- self.type_id = type_id
- self.goods_num = goods_num
- self.color = color
- self.stren_data = stren_data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function PsionicArmorCircleItem:UpdateView( )
- self:SetItemSize(self.size_x, self.size_y)
- self:OverrideClickEvent(self.override_func)
- self:SetEnableClick(self.show_tips)
- self:ChangeCountVisible(self.show_count)
- self:SetSlotName(self.show_slot)
- if self.type_id then
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id)
- local color = goods_basic and goods_basic.color or 2 -- 最低品质是蓝色品质
- lua_resM:setImageSprite(self, self.bg_img, "common_asset", "ps_tip_armor_bg" .. color)
- self.bg_img.enabled = true
- self.award_item:SetData(self.type_id, self.goods_num, color, self.stren_data)
- self.award_item:SetVisible(true)
- else
- self.bg_img.enabled = false
- self.award_item:SetVisible(false)
- end
- end
-
- function PsionicArmorCircleItem:SetEnableClick(bool)
- self.show_tips = bool
- if self.is_loaded and self.award_item then
- self.award_item:SetEnableClick(bool)
- end
- end
-
- function PsionicArmorCircleItem:ChangeCountVisible(bool)
- self.show_count = bool
- if self.is_loaded and self.award_item then
- self.award_item:ChangeCountVisible(bool)
- end
- end
-
- function PsionicArmorCircleItem:SetItemSize(size_x, size_y)
- self.size_x = size_x
- self.size_y = size_y or self.size_x
- if not self.is_loaded then return end
- local scale_x = self.size_x / self.default_x
- local scale_y = self.size_y / self.default_y
- SetLocalScale(self.transform, scale_x, scale_y, 1)
- end
-
- --覆盖AwardItem 的点击方法
- function PsionicArmorCircleItem:OverrideClickEvent(func)
- self.override_func = func
- if not self.is_loaded or not self.award_item then return end
- if self.override_func then
- self.award_item.ClickCallFun = function (target,x,y)
- func(target,x,y)
- end
- end
- end
-
- function PsionicArmorCircleItem:SetSlotName(slot)
- self.show_slot = slot
- if self.is_loaded then
- if not self.show_slot then
- self.slot_flag_bg_obj:SetActive(false)
- else
- self.slot_flag_bg_obj:SetActive(true)
- self.slot_flag_tmp.text = PsionicConst.EquipSlotName[self.show_slot]
- end
- end
- end
-
- function PsionicArmorCircleItem:__delete( )
- if self.award_item then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
- end
- self.award_item = nil
- end
|