源战役客户端
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 

149 righe
4.3 KiB

FuliLevelItem = FuliLevelItem or BaseClass(BaseItem)
local FuliLevelItem = FuliLevelItem
FuliLevelItem.Width = 699
FuliLevelItem.Height = 120
function FuliLevelItem:__init()
self.base_file = "fuli"
self.layout_file = "FuliLevelItem"
self.model = FuliModel:GetInstance()
self:Load()
end
function FuliLevelItem:Load_callback()
self.nodes = {
"get_btn:obj:img","get_btn/get_btn_text:tmp","name_text:txt","get_btn/get_btn_red:obj",
"item_scroll:scroll","item_scroll/Viewport/item_con","get_image:obj","nameTitle:tmp",
"icon:obj", "limitNumText:tmp", "limitBg:obj",
}
self:GetChildren(self.nodes)
self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon)
self.awardItem:SetItemSize(78,78)
SetAnchoredPositionY(self.limitNumText, -46)
SetAnchoredPositionY(self.limitBg, -46)
-- SetAnchoredPositionY(self.icon, -12)
self.nameTitle_tmp.text = "Lv."
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function FuliLevelItem:AddEvents( )
local on_click = function ( click_obj )
if self.get_btn_obj == click_obj then
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16006, self.data.id)
end
end
AddClickEvent(self.get_btn_obj, on_click)
end
function FuliLevelItem:UpdateView( )
self.name_text_txt.text = self.data.level
local get_str = ""
if self.data.limit_num > 0 then
local rest_num = self.data.limit_num - self.model:GetFuliLevelLimitGetNum(self.data.id)
self.rest_num = rest_num
local rest_str = HtmlColorTxt(rest_num, ColorUtil.GREEN_DARK)
if rest_num == 0 then
rest_str = HtmlColorTxt(rest_num, ColorUtil.RED_DARK)
end
get_str = string.format("剩余:%s",rest_str)
else
get_str = string.format("剩余:%s",HtmlColorTxt(0, ColorUtil.RED_DARK))
end
self.limitNumText_tmp.text = get_str
if not self.item_list_com then
self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
end
self.item_list_com:Reset()
local reward = {}
if self.data.limit_num > 0 and self.rest_num > 0 then
reward = self.data.award_limit_list
else
reward = self.data.award_list
end
self.limit_goods_vo = nil
local new_reward_list = {}
for k,v in ipairs(reward) do
if not v.is_limit then
new_reward_list[#new_reward_list + 1] = v
else
self.limit_goods_vo = v
end
end
self.icon_obj:SetActive(self.limit_goods_vo ~= nil)
self.limitBg_obj:SetActive(self.limit_goods_vo ~= nil)
if self.limit_goods_vo then
self.awardItem:SetData(self.limit_goods_vo[2],self.limit_goods_vo[3])
self.awardItem:SetNumLimitVisible( true, 25 )
-- SetSizeDeltaX(self.item_scroll,313)
else
self.limitNumText_tmp.text = ""
-- SetSizeDeltaX(self.item_scroll,410)
end
local info = {
data_list = new_reward_list,
item_con = self.item_con,
scroll_view = self.item_scroll,
obj_pool_type = UIObjPool.UIType.AwardItem,
item_width = 78,
space_x = 14,
start_y = -2,
start_x = 2,
create_frequency = 0,
is_enable = self.limit_goods_vo and #new_reward_list >= 4 or #new_reward_list >= 5,
on_update_item = function(item, i, v)
item:SetItemSize(78, 78)
item:SetVisible(true)
if v.is_limit then
item:SetNumLimitVisible( true, 4 )
item:SetData(v[2], v[3], nil, nil)
else
item:SetNumLimitVisible( false )
item:SetData(v[2], v[3], nil, nil)
end
end,
}
self.item_list_com:UpdateItems(info)
if self.data.sort_rank == 2 then--可以领且没有领
self.get_image_obj:SetActive(false)
SetImageGray(self.get_btn_img,false)
SetTMPSharedMaterial(self.get_btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
self.get_btn_red_obj:SetActive(true)
self.get_btn_obj:SetActive(true)
elseif self.data.sort_rank == 0 then--领了
self.get_image_obj:SetActive(true)
self.get_btn_obj:SetActive(false)
else--不够等级
self.get_image_obj:SetActive(false)
SetImageGray(self.get_btn_img,true)
SetTMPSharedMaterial(self.get_btn_text_tmp,ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
self.get_btn_red_obj:SetActive(false)
self.get_btn_obj:SetActive(true)
end
end
function FuliLevelItem:SetData(index, data )
self.index = index
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function FuliLevelItem:__delete( )
if self.awardItem then
UIObjPool:PushItem(UIObjPool.UIType.AwardItem, self.awardItem)
self.awardItem = nil
end
end