源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

138 rindas
4.4 KiB

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