Files
fc/dev/project/assets/Scripts/mod/guild/talent/guildskill_controller.js
T
2026-05-23 22:10:14 +08:00

382 lines
12 KiB
JavaScript

// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里填写详细说明,主要填写该模块的功能简要
// <br/>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;