源战役客户端
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.
 
 
 
 
 

138 rivejä
3.9 KiB

ChatDressItem = ChatDressItem or BaseClass(BaseItem)
function ChatDressItem:__init(parent)
self.base_file = "chatDress"
self.layout_file = "ChatDressItem"
self.data = nil
self.is_selected = false
self.index = 0
self.event_list = {}
self.prop_item_list = {}
self.model = ChatDressModel:getInstance()
self:Load()
end
function ChatDressItem:Load_callback()
self.nodes = {
"select_image:obj",
"click_con:obj",
"mark_image:obj",
"lock_image:obj",
"wear_image:obj",
"active_image:obj",
"head:img:obj",
"red_image:obj",
"name_text:tmp",
}
self:GetChildren(self.nodes)
self:InitEvent()
if self.need_refreshData then
self:UpdateView()
end
if self.need_reselect then
self:SetSelect(self.select_id)
end
end
function ChatDressItem:InitEvent()
local function onClick(target)
self.call_back(self.index, self.data)
end
AddClickEvent(self.click_con_obj, onClick)
end
-- 装扮信息
function ChatDressItem:SetData(index, data, call_back)
self.index = index
self.data = data
self.call_back = call_back
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function ChatDressItem:UpdateView( )
local data = self.data
local type_id = data.dress_id
local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
local goods_icon = goods_basic.goods_icon
type_id = tonumber(type_id)
local goods_name = GoodsModel:getInstance():getGoodsName(type_id, false)
self.name_text_tmp.text = goods_name
if Config.ConfigGoodsByCareer[type_id] then
goods_icon = Config.ConfigGoodsByCareer[type_id][RoleManager.Instance.mainRoleInfo.career]
end
local set_img_cb = function ( )
local new_width = GetSizeDeltaX(self.head_img.transform) * 0.95
local new_height = GetSizeDeltaY(self.head_img.transform) * 0.95
SetSizeDelta(self.head_img.transform, new_width, new_height)
end
lua_resM:setOutsideImageSprite(self, self.head_img, GameResPath.GetGoodsIcon(goods_icon), true, set_img_cb)
self.wear_image_obj:SetActive(self.model:GetCurUseDressId(data.dress_type) == data.dress_id)
self.lock_image_obj:SetActive(false)
local can_active = data.can_active and true or false
self.active_image_obj:SetActive(can_active)
self.mark_image_obj:SetActive(not data.is_active and not data.can_active)
end
--
function ChatDressItem:ClickFunc()
self:SetSelect(true)
end
function ChatDressItem:GetActiveState( )
local data = self.data
if data.is_active and not data.can_active then
return ChatDressModel.AcitiveState.Actived
elseif not data.is_active and not data.can_active then
return ChatDressModel.AcitiveState.Locked
elseif not data.is_active and data.can_active then
return ChatDressModel.AcitiveState.CanActive
end
end
function ChatDressItem:GetId( )
return self.data.dress_id
end
-- 选择情况
function ChatDressItem:SetSelect(index)
self.select_id = index
if self.is_loaded then
self.need_reselect = false
self.select_image_obj:SetActive(self.select_id == self.index)
else
self.need_reselect = true
end
end
function ChatDressItem:__delete()
for k, v in pairs(self.event_list) do
self.model:UnBind(v)
v = nil
end
self.event_list = {}
if self.bag_change_event_id then
GoodsModel:getInstance():UnBind(self.bag_change_event_id)
self.bag_change_event_id = nil
end
if #self.prop_item_list > 0 then
for k, v in pairs(self.prop_item_list) do
v:DeleteMe()
v = nil
end
end
end
function ChatDressItem:SetRedPoint()
-- self.red_point:SetActive(isTrue)----红点先去除
end