|
|
- 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
|