源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

269 lines
5.5 KiB

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