源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

136 lines
5.0 KiB

-- <*
-- @Author: Saber
-- @Description: 社团红包item
-- *>
GuildRedPacketItem = GuildRedPacketItem or BaseClass(BaseItem)
local GuildRedPacketItem = GuildRedPacketItem
function GuildRedPacketItem:__init(parent_wnd,prefab_asset,layer_name)
self.base_file = "redPacket"
self.layout_file = "GuildRedPacketItem"
self.parent_wnd = parent_wnd
self.layer_name = layer_name
self.redpacket_id = 0 -- 红包唯一id
self.redpacket_cfg_id = 0 -- 红包配置id
self.model = RedPacketModel:GetInstance()
self:Load()
end
function GuildRedPacketItem:Load_callback()
self.nodes = {
"get_btn:obj:imgex", "get_btn/get_flag:imgex",
"head_con",
"desc1:tmp", "desc2:tmp",
}
self:GetChildren(self.nodes)
self.role_head = HeadRoleItem.New(self.head_con)
self.role_head:SetItemSize(70, 70)
self.role_head:SetAnchoredPosition(0, 0)
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function GuildRedPacketItem:AddEvents( )
local function click_event(target)
if target == self.get_btn_obj or target == self.gameObject then
if self.data and self.data.id then
if self.data.status == 0 then --发红包
self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33909,self.data.id)
else --领红包、看红包
self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33902,self.data.id)
-- if self.model:IsGuildRedPacketInLimit() then
-- Message.show("当日领取红包次数已达上限")
-- else
-- end
end
end
end
end
AddClickEvent(self.get_btn_obj, click_event)
AddClickEvent(self.gameObject, click_event)
end
function GuildRedPacketItem:UpdateView( )
if self.data then
-- 红包id相关
self.redpacket_id = self.data.id
self.redpacket_cfg_id = self.data.packet_id
-- 红包发起人头像级描述信息
local head_data = {
vo = {
id = self.data.role_id,
-- server_id = self.data.ser_id or 0,
career = self.data.career,
sex = self.data.sex,
turn = self.data.turn,
picture_ver = self.data.picture_ver,
picture = self.data.picture,
profile_photo_id = self.data.profile_photo_id,
dress_board_id = self.data.dress_id,
level = self.data.lv,
use_bg = 2
},
show_tip = false,
}
self.role_head:SetData(head_data)
-- 红包描述
local red_packet_cfg = Config.Redpacket[self.redpacket_cfg_id]
self.desc1_tmp.text = string.format("金主:<color=#ffec96>%s</color>", self.data.role_name)
self.desc2_tmp.text = Trim(red_packet_cfg.greetings)
-- 根据红包领取情况加载按钮状态
self.get_btn_imgex.gray = false
local icon_res, btn_gray = "guild_red_open_pointfilter", false -- 按钮资源和灰化
-- if self.data.has_look == 0 then -- 被处理为未查看的红包(上线后的新红包)
-- icon_res = "guild_red_open_pointfilter"
-- btn_gray = false
-- elseif self.data.has_look == 1 then -- 旧红包
if self.data.status == 0 then -- 还没发的红包,置顶
icon_res = "guild_red_send_pointfilter"
btn_gray = false
elseif self.data.status == 1 then -- 发出去的红包,收到协议时未领完
if self.data.receive_status == 3 then -- 已经领了的
icon_res = "guild_red_claimed_pointfilter"
elseif self.data.receive_status == 2 then -- 领不到了
icon_res = "guild_red_missed_pointfilter"
elseif self.data.receive_status == 1 then -- 还能领
icon_res = "guild_red_open_pointfilter"
end
btn_gray = self.data.receive_status ~= 1
elseif self.data.status == 2 then -- 已领完
if self.data.receive_status == 3 then -- 已经领了的
icon_res = "guild_red_claimed_pointfilter"
btn_gray = true
else
icon_res = "guild_red_missed_pointfilter"
btn_gray = true
end
end
-- end
lua_resM:setImageSprite(self, self.get_flag_imgex, "redPacket_asset", icon_res, true)
self.get_flag_imgex.gray = btn_gray
self.get_btn_imgex.gray = btn_gray
end
end
function GuildRedPacketItem:SetData( data )
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function GuildRedPacketItem:__delete( )
if self.role_head then
self.role_head:DeleteMe()
self.role_head = nil
end
end