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
|