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

96 lines
2.6 KiB

ChatDressCosumeItem = ChatDressCosumeItem or BaseClass(BaseItem)
function ChatDressCosumeItem:__init(parent)
self.base_file = "chatDress"
self.layout_file = "ChatDressCosumeItem"
-- self.use_local_view = true
self.type_id = 0
self.have_num = 0
self.use_num = 0
self.model = ChatDressModel:getInstance()
self:Load()
end
function ChatDressCosumeItem:Load_callback()
self.icon = self:GetChild("icon")
self.select
= GetChildGameObjects(self.transform, {
"select"
})
self.item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon)
self.item.ClickCallFun = function ()
self:SelectAll(not self.select.activeSelf)
end
if self.need_refreshData then
self:SetData(self.vo,self.select_all)
end
if self.select_cache then
self.select_cache = false
self:SelectAll(self.select_state)
end
self:InitEvent()
end
function ChatDressCosumeItem:InitEvent()
local function onBagChange()
self.have_num = GoodsModel:getInstance():GetTypeGoodsNum(self.type_id)
if self.have_num <= 0 then
self:SetVisible(false)
end
if self.select.activeSelf then
self.model:Fire(ChatDressEvent.ADD_COSUME_ITEM, self.type_id, self.have_num)
end
end
self.change_bag_event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, onBagChange)
end
function ChatDressCosumeItem:SetData(vo,select_all)
self.vo = vo
self.select_all = select_all
self.have_num = vo.goods_num
self.use_num = 0
self.type_id = vo.type_id
if self.is_loaded then
self.item:SetData(self.type_id, self.have_num)
if self.select.activeSelf then
self.model:Fire(ChatDressEvent.ADD_COSUME_ITEM, self.type_id, self.use_num)
end
if select_all then
self:SelectAll(true)
end
else
self.need_refreshData = true
end
end
function ChatDressCosumeItem:SelectAll(bool)
self.select_state = bool
if self.is_loaded then
if bool then
self.use_num = self.have_num
else
self.use_num = 0
end
self.select:SetActive(bool)
self.model:Fire(ChatDressEvent.ADD_COSUME_ITEM, self.type_id, self.use_num)
else
self.select_cache = true
end
end
function ChatDressCosumeItem:__delete()
if self.item then
self.item:ReleaseObj()
self.item = nil
end
if self.change_bag_event_id then
GoodsModel:getInstance():UnBind(self.change_bag_event_id)
self.change_bag_event_id = nil
end
end