源战役客户端
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 

179 行
4.7 KiB

--任务界面
TaskNewBaseView = TaskNewBaseView or BaseClass(BaseView)
local TaskNewBaseView = TaskNewBaseView
-----------------------扩展模块需要修改的地方--------------------------
TaskNewBaseView.Index2View = {
[1] = {index = 1,view = TaskSubMainView},
[2] = {index = 2,view = TaskSubExtensionView},
[3] = {index = 3,view = TaskSubCommonView},
}
----------------------------------------------------------------
function TaskNewBaseView:__init()
self.base_file = "task"
self.layout_file = "TaskNewBaseView"
self.layer_name = "UI"
self.append_to_ctl_queue = true
self.use_background = true
self.change_scene_close = true
self.close_fog = true
self.model = TaskModel:getInstance()
self.show_tabs = {}
self.tab_name_list = {}
self.contaner_list = {}
local playerLv = RoleManager:getInstance():GetMainRoleVo().level
for i,v in ipairs(Config.ConfigTaskEffect.Tabbuttons) do
if v.open_lv <= playerLv then
if i == 2 and not ClientConfig.alpha_mode then
table.insert(self.show_tabs, TaskNewBaseView.Index2View[i])
table.insert(self.tab_name_list,v)
-- elseif i == 5 and self.model:HasTurnLine() then
-- table.insert(self.show_tabs, TaskNewBaseView.Index2View[i])
-- table.insert(self.tab_name_list,v)
else
table.insert(self.show_tabs, TaskNewBaseView.Index2View[i])
table.insert(self.tab_name_list,v)
end
end
end
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
-- task_id 针对第二个标签
--parent_index,sub_index 针对第三个标签
function TaskNewBaseView:Open(index,task_id,parent_index,sub_index)
self.open_index = self:GetRealTabIndex(index or 1)
self.task_id = task_id
self.parent_index = parent_index
self.sub_index = sub_index
BaseView.Open(self)
end
function TaskNewBaseView:InitView()
self:SeletedTabbar(self.open_index)
end
function TaskNewBaseView:LoadSuccess()
self.sub_conta = self:GetChild("SubElement")
local select_callback = function(index)
self:SeletedTabbar(index)
end
local closeWin_callback = function()
self:Close()
end
self.tabWindowComponent = TabWindowComponent.New(self.transform,"主线任务",self.tab_name_list,1264,632,306,52,
select_callback,closeWin_callback,Vector3(0,0,0),self.background_wnd,"task_asset")
end
function TaskNewBaseView:InitEvent()
local close_fun = function ()
self:Close()
end
self.event_id = self.model:Bind(TaskEvent.CLOSE_TASK_VIEW, close_fun)
end
function TaskNewBaseView:Remove()
if self.event_id then
self.model:UnBind(self.event_id)
self.event_id = nil
end
for i, view in pairs(self.contaner_list) do
view:DeleteMe()
end
self.contaner_list = nil
if self.tabWindowComponent then
self.tabWindowComponent:DeleteMe()
end
self.tabWindowComponent = nil
end
function TaskNewBaseView:SeletedTabbar(index)
local current_index = self.tabWindowComponent:GetCurrentSelectIndex()
if current_index == index then
return
end
local real_index = self:GetRealTabIndex(index)
if real_index == 4 then
if RoleManager.Instance.mainRoleInfo.guild_id <= 0 then
Message.show(string.format("请先加入一个社团"))
return
end
end
self.select_tab = index
if self.tabWindowComponent ~= nil then
self.tabWindowComponent:SetTabBarIndex(self.select_tab)
self:SwitchBar()
end
end
function TaskNewBaseView:SwitchBar()
local index = self.tabWindowComponent:GetCurrentSelectIndex()
local chile_view = self.contaner_list[index]
local viewIndex,viewName = self.show_tabs[index].index,self.show_tabs[index].view
local taskType = self:GetTaskTypeByIndex(viewIndex)
local config = Config.ConfigTaskEffect.Tabbuttons[viewIndex]
if config then
self.tabWindowComponent:SetTitle(config.name)
end
if chile_view == nil then
local viewModule = viewName
chile_view = viewModule.New(self.sub_conta)
self.contaner_list[index] = chile_view
end
chile_view:SetData(taskType,self.task_id,self.parent_index,self.sub_index)
self.task_id = false
self.parent_index = false
self.sub_index = false
self:PopUpChild(chile_view)
end
function TaskNewBaseView:GetRealTabIndex(index)
for i,v in ipairs(self.show_tabs) do
if v.index == index then
return i
end
end
return 1
end
function TaskNewBaseView:GetTaskTypeByIndex( index )
local task_type
if index == 1 then
task_type = TaskType.MAIN_LINE
elseif index == 2 then
task_type = TaskType.EXTENSION_LINE
elseif index == 3 then
task_type = TaskType.BOUNTY_LINE
elseif index == 4 then
task_type = TaskType.GUILD_LINE
elseif index == 5 then
task_type = TaskType.TRUN_LINE
end
return task_type
end