|
|
- TaskDailyView = TaskDailyView or BaseClass(BaseView)
- local TaskDailyView = TaskDailyView
- TaskDailyView.Show_List = {
- [1] = {
- id = 1,
- str = "经验副本",
- icon_name = "icon_54_jjfb",
- exp = 0,
- show_recommend = true,
- },
- [2] = {
- id = 2,
- str = "日常任务",
- icon_name = "icon_53_mrll",
- exp = 0,
- show_recommend = false,
- },
- [3] = {
- id = 3,
- str = "社团任务",
- icon_name = "icon_49_ghrw",
- exp = 0,
- show_recommend = false,
- },
- [4] = {
- id = 4,
- str = "飞艇护送",
- icon_name = "icon_48_fths",
- exp = 0,
- show_recommend = false,
- },
- [5] = {
- id = 5,
- str = "前往挂机",
- icon_name = "icon_57_ywgj",
- exp = 0,
- show_recommend = false,
- },
- [6] = {
- id = 6,
- str = "装备副本",
- icon_name = "icon_55_zbfb",
- exp = 0,
- show_recommend = false,
- },
- }
-
- function TaskDailyView:__init()
- self.base_file = "task"
- self.layout_file = "TaskDailyView"
- self.layer_name = "Main"
- self.destroy_imm = true
- self.use_background = true
- self.open_wnd_anim = 0
- self.hide_maincancas = false
- self.change_scene_close = true
- self.click_bg_toClose = true
- self.background_alpha = 0
- self.is_set_order_sorting = false
- self.item_list = {}
- self.model = TaskModel:getInstance()
-
- self.is_moving = false
-
- self.load_callback = function()
- self:LoadSuccess()
- self:InitEvent()
- end
-
- self.open_callback = function()
- self:InitView()
- end
-
- self.close_callback = function( )
- end
-
- self.destroy_callback = function()
- self:Remove()
- end
- end
-
- function TaskDailyView:InitView()
- self:UpdateView()
- self:TweenShowPanelPosition(true)
- end
-
- function TaskDailyView:Open()
- BaseView.Open(self)
- end
-
- function TaskDailyView:Remove()
- for k,v in pairs(self.item_list) do
- v:DeleteMe()
- end
- self.item_list = {}
-
- self:CancelTween()
- self:CancelTimer()
- end
-
- function TaskDailyView:LoadSuccess()
-
- self.transform.localPosition = Vector3.zero
- self.transform.sizeDelta = Vector3.zero
-
- if ClientConfig.iphone_x_model then
- self.transform.offsetMin = Vector2(ClientConfig.iphone_x_offset_left,0)
- self.transform.offsetMax = Vector2(-ClientConfig.iphone_x_offset_right,0)
- end
-
- self.showObject,
- self.mask_btn,
- self.close_btn = self:GetChildGameObjects({
- "Mask/ShowInfo",
- "MaskBtn",
- "Mask/ShowInfo/CloseBtn",
- })
-
- self.maskCon,
- self.showCon,
- self.mScoll,
- self.mContent,
- self.item_parent = self:GetChildTransforms({
- "Mask",
- "Mask/ShowInfo",
- "Mask/ShowInfo/ScrollView",
- "Mask/ShowInfo/ScrollView/Viewport/Content",
- "Mask/ShowInfo/ScrollView/Viewport/Content/ItemParent",
- })
-
- self.showCon.anchoredPosition = Vector2(-250,-223)
- self.maskCon.anchoredPosition = Vector2(300,-335)
- end
-
- function TaskDailyView:InitEvent()
- local function onBtnClickHandler(target)
- if target == self.mask_btn or target == self.close_btn then
-
- if self.is_moving then
- return
- end
- self.mask_btn:SetActive(false)
- self:TweenShowPanelPosition(false)
- end
- end
-
- AddClickEvent(self.mask_btn,onBtnClickHandler)
- AddClickEvent(self.close_btn,onBtnClickHandler)
- end
-
- function TaskDailyView:UpdateView( )
- local list = self:GetShowList()
- local len = #list
- for i,v in ipairs(list) do
- if self:CheckOperation(v) then
- local item = self.item_list[i]
- if not item then
- item = TaskDailyItem.New(self.item_parent)
- self.item_list[i] = item
- end
- item:SetVisible(true)
- item:SetData(i,v)
- end
- end
-
- self.mContent.sizeDelta = Vector2(360,99 * len)
-
- for i=#list+1, #self.item_list do
- self.item_list[i]:SetVisible(false)
- end
- end
-
- --是否做完
- function TaskDailyView:CheckOperation( vo )
- local lv = RoleManager.Instance.mainRoleInfo.level
- if vo.id==1 then
- return BaseDungeonModel:getInstance():CanChallengeDun(BaseDungeonModel.DUN_TYPE.EXP)
- elseif vo.id==2 then
- return (self.model:CanAcceptCircleTask(TaskType.BOUNTY_LINE) or #self.model:GetTabData(TaskType.BOUNTY_LINE) > 0)
- elseif vo.id==3 then
- return (self.model:CanAcceptCircleTask(TaskType.GUILD_LINE) or #self.model:GetTabData(TaskType.GUILD_LINE) > 0)
- elseif vo.id==5 then
- return true
- elseif vo.id==6 then
- return BaseDungeonModel:getInstance():CanChallengeDun(BaseDungeonModel.DUN_TYPE.EQUIP)
- end
-
- return true
- end
-
- --是否做完
- function TaskDailyView:GetShowList()
- local id_list = {}
- for index,vo in ipairs(TaskDailyView.Show_List) do
- if self:CheckOperation(vo) then
- table.insert(id_list,vo)
- end
- end
-
- if #id_list > 0 then
- for index,vo in pairs(id_list) do
- vo.exp = self.model:GetDoubleExp(vo.id)
- end
-
- local function sort_func(vo1,vo2)
- if vo1.exp ~= vo2.exp then
- return vo1.exp > vo2.exp
- else
- return vo1.id < vo2.id
- end
- end
-
- table.sort(id_list,sort_func)
- end
-
- return id_list
- end
-
- function TaskDailyView:CancelTimer()
- if self.timer_id then
- TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_id)
- self.timer_id = nil
- end
- end
-
-
- function TaskDailyView:CancelTween()
- if self.tween_id then
- TweenLite.Stop(self.tween_id)
- self.tween_id = nil
- end
- end
-
- function TaskDailyView:TweenShowPanelPosition(is_show)
-
- if self.is_moving then
- return
- end
-
- self.is_moving = true
-
- self:CancelTween()
- self:CancelTimer()
- local func = function ()
- if self._use_delete_method then
- return
- end
- self:CancelTimer()
- local end_x = is_show and 270 or -250
-
- if is_show then
- self.showObject:SetActive(true)
- end
-
- self.tween_id = TweenLite.to(self, self.showCon, TweenLite.UiAnimationType.ANCHORED_POSX, end_x, 0.2, function ()
- if self._use_delete_method then
- return
- end
-
- if is_show then
- self.mask_btn:SetActive(true)
- else
- self:Close()
- end
- self.is_moving = false
- end)
- end
- self.timer_id = TimerQuest.AddDelayQuest(GlobalTimerQuest, func,0.04)
- end
|