// -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-01-19 17:37:33 // -------------------------------------------------------------------- const BridgeController = require( "bridge.controller" ); var BackpackConst = require("backpack_const"); var GuildskillConst = require("guildskill_const"); var RoleController = require("role_controller"); var GuildskillEvent = require("guildskill_event") const HeroController = require( "hero_controller" ); var GuildskillController = cc.Class({ extends: BridgeController, ctor: function () { }, // 初始化配置数据 initConfig: function () { var GuildskillModel = require("guildskill_model"); this.model = new GuildskillModel(); this.model.initConfig(); }, // 返回当前的model getModel: function () { return this.model; }, // 注册监听事件 registerEvents: function () { //背包初始化之后,再请求公会信息,因为要判断是否可以升级技能的 if (this.backpack_init_event == null) { this.backpack_init_event = gcore.GlobalEvent.bind(EventId.GET_ALL_DATA, function (bag_code) { if (bag_code != BackpackConst.Bag_Code.BACKPACK) return this.role_vo = RoleController.getInstance().getRoleVo(); if (this.role_vo == null) { if (this.init_role_event == null) { this.init_role_event = gcore.GlobalEvent.bind(EventId.EVT_ROLE_CREATE_SUCCESS, function () { gcore.GlobalEvent.unbind(this.init_role_event); this.role_vo = RoleController.getInstance().getRoleVo(); if (this.role_vo) this.registerRoleEvent(); }.bind(this)) } } else { this.registerRoleEvent(); } }.bind(this)) if (this.re_link_game_event == null) { this.login_event_success = gcore.GlobalEvent.bind(EventId.EVT_RE_LINK_GAME, (function () { this.model.clearGuildCareerSkill(); this.requestInitProtocal(); }).bind(this)) } } }, registerRoleEvent: function () { this.requestInitProtocal(true); if (this.role_assets_event == null) { this.role_assets_event = this.role_vo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, function (key, value) { if (key == "gid") this.requestInitProtocal( ); else if (key == "guild"){ // this.model.checkGuildSkillRedStatus(); } }, this) } }, reqBaseFromServer: function( _cb ){ let cfgs = [ "guild_skill_data", ]; this.loadConfigs( cfgs, ( _ret, _data ) =>{ nx.dt.fnInvoke( _cb, true ); // this.send23711( _cb ); } ) }, //请求技能状态,用于初始化红点 requestInitProtocal: function ( _cb ) { if (this.role_vo != null) { if (this.role_vo.gid != 0) { this.SendProtocal(23703, {}, _cb ); // --公會pvp技能信息 this.send23711( _cb ); } else { this.openGuildSkillMainWindow(false); this.model.clearGuildCareerSkill(); } } }, // 注册协议接受事件 registerProtocals: function () { // this.RegisterProtocal(1110, this.on1110); this.RegisterProtocal(23700, this.handle23700) // 获取指定职业技能信息 this.RegisterProtocal(23701, this.handle23701) // 激活技能 this.RegisterProtocal(23702, this.handle23702) // 更新当前分组技能 this.RegisterProtocal(23703, this.handle23703) // 可学习技能状态 this.RegisterProtocal(23704, this.handle23704) //重置技能信息消耗 this.RegisterProtocal(23705, this.handle23705) //确定重置技能 this.RegisterProtocal(23706, this.handle23706) //突破 this.RegisterProtocal(23707, this.handle23707) //升級突破後的屬性等級 this.RegisterProtocal(23708, this.handle23708) //升級突破後的技能等級 this.RegisterProtocal(23709, this.handle23709) //重置突破後的技能 this.RegisterProtocal(23710, this.handle23710) //查看突破後該類型的信息 this.RegisterProtocal(23711, this.handle23711) //返回所有數據 }, //打开公会技能的主界面 openGuildSkillMainWindow: function (status) { if (status == false) { if (this.main_window != null) { this.main_window.close(); this.main_window = null; } } else { if (this.main_window == null) this.main_window = Utils.createClass("guildskill_main_window"); this.main_window.open(); } }, // --==============================-- // --desc:打開公會技能重置界面 // --time:2019年3月11日 // --@status: // --@return // --==============================-- openGuildskillResetPanel(status, career, reset_type){ if( status == false ){ if (this.guild_skill_reset_panel != null) { this.guild_skill_reset_panel.close() this.guild_skill_reset_panel = null; } }else{ if (this.guild_skill_reset_panel == null) { var GuildskillResetPanel = require("guildskill_reset_panel") this.guild_skill_reset_panel = new GuildskillResetPanel() } let ojb = {}; ojb.career = career; ojb.reset_type = reset_type; this.guild_skill_reset_panel.open(ojb) } }, // --==============================-- // --desc:打開公會技能升級界面 // --time:2020年4月12日 // --@status: // --@return // --==============================-- openGuildskillLevelUpPanel(status, career){ if (status == false) { if (this.guildskill_level_up_panel != null) { this.guildskill_level_up_panel.close() this.guildskill_level_up_panel = null } }else{ if (this.guildskill_level_up_panel == null) { var GuildskillLevelUpPanel = require("guildskill_level_up_panel") this.guildskill_level_up_panel = new GuildskillLevelUpPanel() } this.guildskill_level_up_panel.open(career) } }, // --==============================-- // --desc:打開公會技能升級成功 // --time:2020年4月12日 // --@status: // --@return // --==============================-- openGuildskillLevelSuccessPanel(status, career){ let skill = this.model.getPvpskillInfoByCareer( career ); let HC = HeroController.getInstance(); HC.openSkillUnlockWindow( status, skill.skill_id ); // if (status == false ){ // if( this.guildskill_level_success_panel != null ){ // this.guildskill_level_success_panel.close() // this.guildskill_level_success_panel = null // } // }else{ // if( this.guildskill_level_success_panel == null ){ // var GuildskillLevelSuccessPanel = require("guildskill_level_success_panel") // this.guildskill_level_success_panel = new GuildskillLevelSuccessPanel() // } // this.guildskill_level_success_panel.open(career) // } }, //请求指定职业的技能信息 requestCareerSkillInfo: function (career) { career = career || GuildskillConst.index.physics; var protocal = {}; protocal.career = career; this.SendProtocal(23700, protocal); }, handle23700: function (data) { this.model.initGuildCareerSkill(data); }, //请求激活技能 requestActivitySkill: function (skill_id) { var protocal = {}; protocal.skill_id = skill_id; this.SendProtocal(23701, protocal); }, handle23701: function (data) { if( !nx.dt.strEmpty( data.msg ) ){ nx.tbox(data.msg); } if (data.code == 1) this.model.updateGuildCareerSkill(data.career, data.skill_id); }, //更新指定职业的分组技能信息,这个时候是主要升级 handle23702: function (data) { this.model.upgradeGuildCareerSkill(data.career, data.group_id); }, //可学习技能状态 handle23703: function (data) { this.model.initGuildSkillStatus(data); }, // --==============================-- // --desc:請求重置技能消耗 // --time:2019年3月11日 // --@ 作者: lwc // --@return // --==============================-- send23704(career){ let protocal = {} protocal.career = career this.SendProtocal(23704, protocal) }, handle23704(data){ gcore.GlobalEvent.fire(GuildskillEvent.UpdateSkillResetEvent, data) }, // --請求重置 send23705(career){ let protocal = {} protocal.career = career this.SendProtocal(23705, protocal) }, handle23705(data){ if( nx.dt.strNEmpty( data.msg ) ){ nx.tbox(data.msg) } if (data.code == 1 ){ this.model.resetCareerSkillInfo(data.career) } }, // -- 突破 send23706(career2){ let career = career2 || GuildskillConst.index.physics let protocal = {} protocal.career = career this.SendProtocal(23706, protocal) }, handle23706(data){ if( nx.dt.strNEmpty( data.msg ) ){ nx.tbox(data.msg) } if (data.flag == 1 ){ gcore.GlobalEvent.fire(GuildskillEvent.Guild_Pvp_Career_Break_Event, data.career) } }, // --升級突破後的屬性等級 send23707(career2, id){ let career = career2 || GuildskillConst.index.physics let protocal = {} protocal.career = career protocal.id = id this.record_id = id this.SendProtocal(23707, protocal) }, handle23707(data){ if( nx.dt.strNEmpty( data.msg ) ){ nx.tbox(data.msg) } if (data.flag == 1) { gcore.GlobalEvent.fire(GuildskillEvent.Guild_Pvp_Career_Update_Event, data.career, 2, this.record_id) } }, // -- 升級突破後的技能等級 send23708(career2){ let career = career2 || GuildskillConst.index.physics let protocal = {} protocal.career = career this.SendProtocal(23708, protocal) }, handle23708(data){ nx.tbox(data.msg) if (data.flag == 1 ){ if (this.guildskill_level_up_panel) { this.openGuildskillLevelUpPanel(false) } gcore.GlobalEvent.fire(GuildskillEvent.Guild_Pvp_Career_Update_Event, data.career, 1) this.openGuildskillLevelSuccessPanel(true, data.career) } }, // -- 重置突破後的技能 send23709(career){ let protocal = {} protocal.career = career this.SendProtocal(23709, protocal) }, handle23709(data){ nx.tbox(data.msg) if( data.flag == 1) { this.model.setPvpFisrtReset(false) } }, // -- pvp單個creer職業 信息 send23710(career2){ let career = career2 || GuildskillConst.index.physics let protocal = {} protocal.career = career this.SendProtocal(23710, protocal) }, handle23710(data){ this.model.initPvpCareerSkillInfo({data}) this.model.setPvpFisrtReset(data.is_first == 1) gcore.GlobalEvent.fire(GuildskillEvent.Guild_Pvp_Career_Info_Event, data.career) }, // -- pvp 所有職業信息 send23711( _cb ){ let protocal = {} this.SendProtocal(23711, protocal, _cb ); }, handle23711(data){ this.model.initPvpCareerSkillInfo(data.guild_skill_break_group) this.model.setPvpFisrtReset(data.is_first == 1) gcore.GlobalEvent.fire(GuildskillEvent.Guild_Pvp_Skill_Info_Event, data) } }); module.exports = GuildskillController;