|
FuliAIItem = FuliAIItem or BaseClass(BaseItem)
|
|
local FuliAIItem = FuliAIItem
|
|
|
|
function FuliAIItem:__init()
|
|
self.base_file = "fuli"
|
|
self.layout_file = "FuliAIItem"
|
|
self.model = FuliModel:GetInstance()
|
|
self.awardItem_list = {}
|
|
self:Load()
|
|
end
|
|
|
|
function FuliAIItem:Load_callback()
|
|
self.nodes = {
|
|
"click_con:obj","bg_image:obj","time_text:tmp","item_con",
|
|
"icon_can_get:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
-- self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con)
|
|
-- self.awardItem:SetEnableClick(false)
|
|
-- self.awardItem:SetItemSize(84, 84)
|
|
-- self.awardItem:SetVisible(false)
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function FuliAIItem:AddEvents( )
|
|
local function on_click( ... )
|
|
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16004, self.index)
|
|
if self.is_get then
|
|
self.model:Fire(FuliConst.AI_TALK_SHOW, FuliConst.AI_TALK_TYPE.IS_GET)
|
|
else
|
|
if not self.can_get then
|
|
self.model:Fire(FuliConst.AI_TALK_SHOW, FuliConst.AI_TALK_TYPE.CAN_NOT_GET)
|
|
end
|
|
end
|
|
end
|
|
AddClickEvent(self.click_con_obj, on_click)
|
|
end
|
|
|
|
function FuliAIItem:UpdateView( )
|
|
local award_list = stringtotable(self.data.award)
|
|
for i,v in ipairs(award_list) do
|
|
self.awardItem_list[i] = self.awardItem_list[i] or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con)
|
|
local item = self.awardItem_list[i]
|
|
item:SetData(v[2], v[3],nil)
|
|
item:SetVisible(true)
|
|
item:SetEnableClick(false)
|
|
item:SetItemSize(62, 62)
|
|
item:SetAnchoredPosition((i - 1) * (62 + 10), 0)
|
|
end
|
|
-- self.awardItem:SetData(award_list[1][2], award_list[1][3],nil)
|
|
-- self.awardItem:SetVisible(true)
|
|
self.bg_image_obj:SetActive(true)
|
|
self.can_get = false
|
|
if TableSize(self.server_data) > 0 then
|
|
local rest_time = self.data.duration - self.server_data.duration_time--时间还没到
|
|
local rest_time_index = self.model:GetFuliAICountTimeIndex()
|
|
if rest_time > 0 and rest_time_index == self.index then
|
|
self:SetTimer(rest_time)
|
|
else
|
|
local min = math.floor(self.data.duration/60)
|
|
self.time_text_tmp.text = "在线"..min.."分钟"
|
|
-- self.bg_image_obj:SetActive(false)
|
|
end
|
|
if rest_time <= 0 and self.server_data.my_receive[self.index] ~= 1 then
|
|
self.can_get = true
|
|
-- self.red_dot_obj:SetActive(true)
|
|
self.time_text_tmp.text = HtmlColorTxt("点击领取", ColorUtil.GREEN_TIPS)
|
|
-- self.awardItem:SetGray(false)
|
|
self:SetAwardItemGray( false )
|
|
self.icon_can_get_obj:SetActive(true)
|
|
else
|
|
self.is_get = self.server_data.my_receive[self.index] == 1
|
|
-- self.get_image_obj:SetActive(self.is_get)
|
|
if self.is_get then
|
|
self.time_text_tmp.text = HtmlColorTxt("已领取", ColorUtil.WHITE)
|
|
-- self.awardItem:SetGray(true)
|
|
self:SetAwardItemGray( true )
|
|
end
|
|
self.icon_can_get_obj:SetActive(false)
|
|
end
|
|
else
|
|
self.time_text_tmp.text = ""
|
|
end
|
|
end
|
|
|
|
function FuliAIItem:SetAwardItemGray( bool )
|
|
for k,v in pairs(self.awardItem_list) do
|
|
v:SetGray(bool)
|
|
end
|
|
end
|
|
|
|
function FuliAIItem:SetTimer( time )
|
|
local function time_down()
|
|
time = self.data.duration - self.server_data.duration_time
|
|
if time > 0 then
|
|
self.time_text_tmp.text = HtmlColorTxt(TimeUtil:timeConvert13(time), ColorUtil.GREEN_TIPS)
|
|
else
|
|
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16003)
|
|
self.model:DeleteFuncCallBack("FuliAIItem:SetTimer"..self.index)
|
|
end
|
|
end
|
|
self.model:SetFuncCallBack(time_down, "FuliAIItem:SetTimer"..self.index)
|
|
-- self.timer_id = GlobalTimerQuest:AddPeriodQuest(time_down, 1, -1)
|
|
end
|
|
|
|
function FuliAIItem:StopTimer( )
|
|
-- if self.timer_id then
|
|
-- GlobalTimerQuest:CancelQuest(self.timer_id)
|
|
-- self.timer_id = nil
|
|
-- end
|
|
end
|
|
|
|
function FuliAIItem:SetData(index, data,server_data )
|
|
self.index = index
|
|
self.data = data
|
|
self.server_data = server_data
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function FuliAIItem:__delete( )
|
|
self.model:DeleteFuncCallBack("FuliAIItem:SetTimer"..self.index)
|
|
-- if self.awardItem then
|
|
-- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem)
|
|
-- self.awardItem = nil
|
|
-- end
|
|
self:StopTimer()
|
|
|
|
for i,item in pairs(self.awardItem_list) do
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, item)
|
|
end
|
|
self.awardItem_list = {}
|
|
end
|