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

107 lines
3.3 KiB

require("game.func.FuncOpenModel")
require("game.func.NewFuncOpenView")
require("game.func.NewModelOpenView")
require("game.func.SkillFuncOpenView")
FuncOpenController = FuncOpenController or BaseClass(BaseController)
function FuncOpenController:__init()
FuncOpenController.Instance = self
self.model = FuncOpenModel:getInstance()
self:RegisterProtocals()
self:InitEvent()
end
function FuncOpenController:RegisterProtocals()
end
function FuncOpenController:InitEvent()
-- local function on_scene_finish( )
-- if self.delay_show_skill then
-- self.delay_show_skill = false
-- self:ShowSkill(self.skill_data)
-- end
-- end
-- GlobalEventSystem:Bind(EventName.SCENE_LOAD_VIEW_COMPLETE, on_scene_finish)
--打开功能开放界面
local function onFuncOpenView(key)
self.model:SetOpenCondition(key)
local voList = self.model.func_data_list
if (voList and #voList > 0) then
local cur_vo = voList[1]
if cur_vo.help_type == HelpType.NEW_FUNC_OPEN then
if self.func_open_view == nil then
self.func_open_view = NewFuncOpenView.New()
end
if not self.func_open_view:HasOpen() then
self.func_open_view:Open(voList)
end
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_CLOSE_VIEW)
elseif cur_vo.help_type == HelpType.TASK_ITEM_SHOW then
if self.model_open_view == nil then
self.model_open_view = NewModelOpenView.New()
end
if not self.model_open_view:HasOpen() then
self.model_open_view:Open(voList)
end
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_CLOSE_VIEW)
end
self.model:ClearOpenCondition()
self.model:ClearOpenFuncData()
end
end
GlobalEventSystem:Bind(EventName.OPEN_FUNC_OPEN_VIEW,onFuncOpenView)
end
--新技能开放接口--[101021测试]
--开启技能展示必传参数skill_id
--skill_data.skill_id[技能ID]
--skill_data.ignore_fly[是否不飞默认不飞]
--skill_data.show_time[界面展示时间默认5s]
--skill_data.ignore_auto_task[界面关闭不自动任务]
--skill_data.skill_level[技能等级,默认为1]
function FuncOpenController:ShowSkill(skill_data)
if not skill_data then return end
self.skill_data = skill_data
local skill_id = skill_data.skill_id
local skill_cfg = SkillManager.Instance:getSkillFromConfig(skill_id)
local skill_level = skill_data.skill_level or 1
if skill_cfg then
local desc = ""
if skill_cfg.lvs and skill_cfg.lvs[skill_level] then
desc = skill_cfg.lvs[skill_level].desc
end
local show_vos = {
{
type = 2,
is_out_res=true,
outside_res = GameResPath.GetSkillIcon(skill_id),
saying = desc or (skill_cfg and skill_cfg.name or "获取新技能"),
ignore_fly = skill_data.ignore_fly == nil and true or skill_data.ignore_fly,
id=skill_data.id or 0,
show_time = skill_data.show_time or 5,
skill_id = skill_id,
name = skill_cfg.name,
ignore_auto_task = skill_data.ignore_auto_task,
},
}
self.show_vos = show_vos
end
-- if SceneManager:getInstance():IsMainCityorYieldScene() then
local skill_id = self.show_vos[1] and self.show_vos[1].skill_id
--其他技能展示获得界面就行
if self.func_open_view == nil then
self.func_open_view = NewFuncOpenView.New()
end
if not self.func_open_view:HasOpen() then
self.func_open_view:Open(self.show_vos)
end
-- else
-- if not is_agained then
-- self.delay_show_skill = true
-- end
-- end
end