421 lines
13 KiB
JavaScript
421 lines
13 KiB
JavaScript
|
|
// --------------------------------------------------------------------
|
||
|
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
||
|
|
// @description:
|
||
|
|
// 这里填写详细说明,主要填写该模块的功能简要
|
||
|
|
// <br/>Create: 2019-02-18 14:15:05
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
const BridgeController = require( "bridge.controller" );
|
||
|
|
var BackpackEvent = require( "backpack_event" );
|
||
|
|
var Battle_dramaEvent = require( "battle_drama_event" );
|
||
|
|
var HallowsEvent = require( "hallows_event" );
|
||
|
|
var BackPackConst = require( "backpack_const" )
|
||
|
|
// 桥接替换的界面
|
||
|
|
|
||
|
|
var HallowsController = cc.Class( {
|
||
|
|
extends: BridgeController,
|
||
|
|
ctor: function() {
|
||
|
|
},
|
||
|
|
|
||
|
|
// 初始化配置数据
|
||
|
|
initConfig: function() {
|
||
|
|
var HallowsModel = require( "hallows_model" );
|
||
|
|
|
||
|
|
this.model = new HallowsModel();
|
||
|
|
this.model.initConfig();
|
||
|
|
},
|
||
|
|
|
||
|
|
// 返回当前的model
|
||
|
|
getModel: function() {
|
||
|
|
return this.model;
|
||
|
|
},
|
||
|
|
|
||
|
|
// 注册监听事件
|
||
|
|
registerEvents: function() {
|
||
|
|
|
||
|
|
if( this.battle_drama_event == null ) {
|
||
|
|
this.battle_drama_event = gcore.GlobalEvent.bind( Battle_dramaEvent.BattleDrama_Update_Max_Id, ( function( max_id ) {
|
||
|
|
this.requestInitProtocals( max_id );
|
||
|
|
} ).bind( this ) )
|
||
|
|
}
|
||
|
|
|
||
|
|
if( this.goods_add_event == null ) {
|
||
|
|
this.goods_add_event = gcore.GlobalEvent.bind( BackpackEvent.ADD_GOODS, ( function( bag_code, item_list ) {
|
||
|
|
if( bag_code != BackPackConst.Bag_Code.BACKPACK ) return;
|
||
|
|
this.checkNeedUpdateRedStatus( item_list );
|
||
|
|
} ).bind( this ) )
|
||
|
|
}
|
||
|
|
|
||
|
|
if( this.goods_update_event == null ) {
|
||
|
|
this.goods_update_event = gcore.GlobalEvent.bind( BackpackEvent.MODIFY_GOODS_NUM, ( function( bag_code, item_list ) {
|
||
|
|
if( bag_code != BackPackConst.Bag_Code.BACKPACK ) return;
|
||
|
|
this.checkNeedUpdateRedStatus( item_list );
|
||
|
|
} ).bind( this ) )
|
||
|
|
}
|
||
|
|
|
||
|
|
if( this.goods_del_event == null ) {
|
||
|
|
this.goods_del_event = gcore.GlobalEvent.bind( BackpackEvent.DELETE_GOODS, ( function( bag_code, item_list ) {
|
||
|
|
if( bag_code != BackPackConst.Bag_Code.BACKPACK ) return;
|
||
|
|
this.checkNeedUpdateRedStatus( item_list );
|
||
|
|
} ).bind( this ) )
|
||
|
|
}
|
||
|
|
|
||
|
|
if( this.re_link_game_event = null ) {
|
||
|
|
this.re_link_game_event = gcore.GlobalEvent.bind( EventId.EVT_RE_LINK_GAME, ( function() {
|
||
|
|
this.resonate_data = null;
|
||
|
|
} ).bind( this ) )
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//物品变化的时候做处理,如果是自己操作引起的不需要这里判断的,因为那属于自身更新
|
||
|
|
checkNeedUpdateRedStatus: function( item_list ) {
|
||
|
|
if( this.is_self_handle ) {
|
||
|
|
this.is_self_handle = false;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if( this.item_list == null || Utils.next( item_list ) == null ) return;
|
||
|
|
|
||
|
|
for( var i in item_list ) {
|
||
|
|
var cfg = item_list[ i ].config;
|
||
|
|
if( cfg ) {
|
||
|
|
if( cfg.id == 72001 || cfg.id == 72002 || cfg.id == 72003 ) {
|
||
|
|
this.model.checkHallowsRedStatus();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 注册协议接受事件
|
||
|
|
registerProtocals: function() {
|
||
|
|
this.RegisterProtocal( 24100, this.handle24100 ) // 圣器基础属性
|
||
|
|
this.RegisterProtocal( 24101, this.handle24101 ) // 圣器进阶
|
||
|
|
this.RegisterProtocal( 24102, this.handle24102 ) // 圣灵穿戴
|
||
|
|
this.RegisterProtocal( 24103, this.handle24103 ) // 圣技升级
|
||
|
|
this.RegisterProtocal( 24104, this.handle24104 ) // 使用圣印
|
||
|
|
this.RegisterProtocal( 24105, this.handle24105 ) // 共鸣变化
|
||
|
|
this.RegisterProtocal( 24107, this.handle24107 ) // 更新圣器
|
||
|
|
this.RegisterProtocal( 24108, this.handle24108 ) // 新增圣器,这个时候播放激活特效
|
||
|
|
|
||
|
|
this.RegisterProtocal( 24120, this.handle24120 ) // 圣器任务列表
|
||
|
|
this.RegisterProtocal( 24121, this.handle24121 ) // 圣器任务列表
|
||
|
|
this.RegisterProtocal( 24122, this.handle24122 ) // 圣器任务列表
|
||
|
|
this.RegisterProtocal( 24123, this.handle24123 ) // 神器重铸
|
||
|
|
this.RegisterProtocal( 24124, this.handle24124 ) // 是否打开过神器界面
|
||
|
|
this.RegisterProtocal( 24135, this.handle24135 ) // 神器精炼
|
||
|
|
|
||
|
|
this.RegisterProtocal( 24140, this.handle24140 ) //满级属性预览
|
||
|
|
// this.requestInitProtocals();
|
||
|
|
},
|
||
|
|
|
||
|
|
reqBaseFromServer: function( _cb ) {
|
||
|
|
|
||
|
|
// 配置加载
|
||
|
|
let cfgs = [
|
||
|
|
"hallows_data", // 行星武器
|
||
|
|
"hallows_refine_data", // 行星武器精炼
|
||
|
|
];
|
||
|
|
this.loadConfigs( cfgs, ( _ret, _data ) => {
|
||
|
|
this.reqHallowsData( _cb );
|
||
|
|
} );
|
||
|
|
},
|
||
|
|
|
||
|
|
checkIsLock: function() {
|
||
|
|
var open_config = game.configs.hallows_data.data_const.hallows_open;
|
||
|
|
if( open_config == null ) return null;
|
||
|
|
let ret = nx.bridge.checkConditions( [ open_config.val ] );
|
||
|
|
return ret;
|
||
|
|
},
|
||
|
|
|
||
|
|
reqHallowsData( _cb ) {
|
||
|
|
// 功能解锁检查
|
||
|
|
let is_open = this.checkIsLock();
|
||
|
|
|
||
|
|
// 锁定中不请求数据
|
||
|
|
if( nx.dt.objNEmpty( is_open ) ) {
|
||
|
|
nx.dt.fnInvoke( _cb, true );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
this.SendProtocal( 24100, {} );
|
||
|
|
this.SendProtocal( 24120, {}, _cb );
|
||
|
|
},
|
||
|
|
|
||
|
|
//监测圣器系统是否解锁
|
||
|
|
checkIsOpen: function( show_desc ) {
|
||
|
|
var open_config = game.configs.source_data.data_source_data[ 39 ];
|
||
|
|
if( open_config == null ) return false;
|
||
|
|
let ret = nx.bridge.checkConditions([open_config.lev_limit]);
|
||
|
|
if( show_desc && ret.val ) {
|
||
|
|
nx.tbox( ret.desc );
|
||
|
|
}
|
||
|
|
let is_open = ret.val;
|
||
|
|
return is_open;
|
||
|
|
},
|
||
|
|
|
||
|
|
//初始登记请求的一些数据
|
||
|
|
requestInitProtocals: function() {
|
||
|
|
if( this.battle_drama_event ) {
|
||
|
|
gcore.GlobalEvent.unbind( this.battle_drama_event );
|
||
|
|
this.battle_drama_event = null;
|
||
|
|
}
|
||
|
|
this.requestHallowsInfo();
|
||
|
|
},
|
||
|
|
|
||
|
|
//打开圣器的圣印界面
|
||
|
|
openHallowsTraceWindow: function( status, data ) {
|
||
|
|
if(status){
|
||
|
|
nx.bridge.createPanel( "WNdHallowsTrace", data );
|
||
|
|
}else{
|
||
|
|
nx.bridge.closePanel( "WNdHallowsTrace" );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//圣器装备的tips
|
||
|
|
openHallowsTips: function( status, data ) {
|
||
|
|
nx.bridge.createPanel( "WndHallowsDetail", data );
|
||
|
|
},
|
||
|
|
|
||
|
|
|
||
|
|
openHallowsTipsWindow: function( status, type, data ) {
|
||
|
|
if( data == null ) return;
|
||
|
|
let params = {};
|
||
|
|
params.type = type;//1 激活 2进阶
|
||
|
|
params.data = data;
|
||
|
|
// this.step_tips_window.open( params );
|
||
|
|
nx.bridge.createPanel( "WndHallowsTip", params );
|
||
|
|
},
|
||
|
|
//激活和进阶二合一
|
||
|
|
//圣器激活界面
|
||
|
|
|
||
|
|
|
||
|
|
//共鸣
|
||
|
|
// --[[function HallowsController:openHallowsResonateUpWindow(status, data)
|
||
|
|
// if not status then
|
||
|
|
// if self.resonate_up_window then
|
||
|
|
// self.resonate_up_window:close()
|
||
|
|
// self.resonate_up_window = null
|
||
|
|
// end
|
||
|
|
// else
|
||
|
|
// if self.resonate_up_window == null then
|
||
|
|
// self.resonate_up_window = HallowsResonateUpWindow.New()
|
||
|
|
// end
|
||
|
|
// self.resonate_up_window:open(data)
|
||
|
|
// end
|
||
|
|
// end --]]
|
||
|
|
|
||
|
|
requestHallowsInfo: function() {
|
||
|
|
this.SendProtocal( 24100, {} );
|
||
|
|
this.SendProtocal( 24120, {} );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24100: function( data ) {
|
||
|
|
this.model.updateHallowsInfo( data );
|
||
|
|
},
|
||
|
|
|
||
|
|
//更新圣器
|
||
|
|
handle24107: function( data ) {
|
||
|
|
this.model.updateHallowsData( data );
|
||
|
|
gcore.GlobalEvent.fire( HallowsEvent.HallowsUpdateEvent, data.id );
|
||
|
|
},
|
||
|
|
|
||
|
|
//激活圣器
|
||
|
|
handle24108: function( data ) {
|
||
|
|
this.model.updateHallowsData( data );
|
||
|
|
// 如果是激活了最后一个神器,且神器任务界面正在显示,则切换为神器升级界面
|
||
|
|
|
||
|
|
// /通知面板更新数据
|
||
|
|
gcore.GlobalEvent.fire( HallowsEvent.HallowsActivityEvent, data.id );
|
||
|
|
//播放激活特效
|
||
|
|
this.openHallowsTipsWindow( true, 1, data );
|
||
|
|
},
|
||
|
|
|
||
|
|
//圣器进阶
|
||
|
|
requestHallowsAdvance: function( id, is_auto ) {
|
||
|
|
this.is_self_handle = true;
|
||
|
|
var auto_type = 0;
|
||
|
|
if( is_auto ) {
|
||
|
|
auto_type = 1;
|
||
|
|
}
|
||
|
|
var protocal = {};
|
||
|
|
protocal.id = id
|
||
|
|
protocal.is_auto = auto_type
|
||
|
|
this.SendProtocal( 24101, protocal )
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24101: function( data ) {
|
||
|
|
// nx.tbox(data.msg);
|
||
|
|
//升阶了
|
||
|
|
if( data.result == 1 ) {
|
||
|
|
this.openHallowsTipsWindow( true, 2, data.id );
|
||
|
|
gcore.GlobalEvent.fire( HallowsEvent.UpdateHallowsDetailInfoList, data.id );
|
||
|
|
} else {
|
||
|
|
this.is_self_handle = false;
|
||
|
|
}
|
||
|
|
gcore.GlobalEvent.fire( HallowsEvent.HallowsAdvanceEvent, data.id, data.result );
|
||
|
|
},
|
||
|
|
|
||
|
|
//升级圣器技能
|
||
|
|
requestHallowsSkillUpgrade: function( hallows_id ) {
|
||
|
|
this.is_self_handle = true;
|
||
|
|
var protocal = {};
|
||
|
|
protocal.hallows_id = hallows_id
|
||
|
|
this.SendProtocal( 24103, protocal );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24103: function( data ) {
|
||
|
|
// 失败判定
|
||
|
|
if( !this.isGoodData( data ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if( data.result == 1 ) {
|
||
|
|
// gcore.GlobalEvent.fire(HallowsEvent.HallowsSkillUpgradeEvent, data.hallows_id, data.id);
|
||
|
|
} else {
|
||
|
|
this.is_self_handle = false;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//穿戴一件装备
|
||
|
|
requestHallowsEquip: function( hallows_id, item_id, pos ) {
|
||
|
|
this.is_self_handle = true;
|
||
|
|
hallows_id = hallows_id || 0;
|
||
|
|
item_id = item_id || 1;
|
||
|
|
pos = pos || 1;
|
||
|
|
var protocal = {};
|
||
|
|
protocal.hallows_id = hallows_id;
|
||
|
|
protocal.id = item_id;
|
||
|
|
protocal.pos = pos;
|
||
|
|
this.SendProtocal( 24102, protocal )
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24102: function( data ) {
|
||
|
|
// 失败判定
|
||
|
|
if( !this.isGoodData( _data ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if( data.result == 1 ) {
|
||
|
|
gcore.GlobalEvent.fire( HallowsEvent.HallowsEqupUpEvent, data.id, data.pos );
|
||
|
|
} else {
|
||
|
|
this.is_self_handle = false;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//使用圣印物品
|
||
|
|
requestUseTraceItem: function( hallows_id, num ) {
|
||
|
|
this.is_self_handle = true;
|
||
|
|
hallows_id = hallows_id || 0;
|
||
|
|
num = num || 1;
|
||
|
|
var protocal = {};
|
||
|
|
protocal.hallows_id = hallows_id;
|
||
|
|
protocal.num = num;
|
||
|
|
this.SendProtocal( 24104, protocal );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24104: function( _data ) {
|
||
|
|
// 失败判定
|
||
|
|
if( !this.isGoodData( _data ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if( _data.result == 1 ) {
|
||
|
|
this.openHallowsTraceWindow( false );
|
||
|
|
} else {
|
||
|
|
this.is_self_handle = false;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 初始化圣器任务列表
|
||
|
|
handle24120: function( data ) {
|
||
|
|
this.model.updateHallowsTask( data.list );
|
||
|
|
},
|
||
|
|
|
||
|
|
|
||
|
|
// 圣器任务更新信息
|
||
|
|
handle24121: function( data ) {
|
||
|
|
this.model.updateHallowsTask( data.list );
|
||
|
|
},
|
||
|
|
|
||
|
|
requestSubmitHallowsTask: function( id ) {
|
||
|
|
var protocal = {};
|
||
|
|
protocal.id = id
|
||
|
|
this.SendProtocal( 24122, protocal );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24122: function( data ) {
|
||
|
|
// 失败判定
|
||
|
|
if( !this.isGoodData( data ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//共鸣变化
|
||
|
|
handle24105: function( data ) {
|
||
|
|
this.resonate_data = data;
|
||
|
|
// this.openHallowsResonateUpWindow(true, data);
|
||
|
|
},
|
||
|
|
|
||
|
|
// 请求神器重铸
|
||
|
|
requestHallowsReset: function( id ) {
|
||
|
|
var protocal = {};
|
||
|
|
protocal.id = id;
|
||
|
|
this.SendProtocal( 24123, protocal );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24123: function( _data ) {
|
||
|
|
// 失败判定
|
||
|
|
if( !this.isGoodData( _data ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
this.requestHallowsInfo();
|
||
|
|
},
|
||
|
|
|
||
|
|
// 请求标记打开神器界面
|
||
|
|
requestSignOpenHallows: function() {
|
||
|
|
this.SendProtocal( 24124, {} );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24124: function( data ) {
|
||
|
|
if( data.is_first ) {
|
||
|
|
this.model.setOpenHallowsFlag( data.is_first );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
__delete: function() {
|
||
|
|
if( this.model != null ) {
|
||
|
|
this.model.DeleteMe();
|
||
|
|
this.model = null;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
send24135: function( hallows_id ) {
|
||
|
|
var protocal = {}
|
||
|
|
protocal.hallows_id = hallows_id
|
||
|
|
this.SendProtocal( 24135, protocal )
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24135: function( data ) {
|
||
|
|
// 失败判定
|
||
|
|
if( !this.isGoodData( data ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if( data.code == 1 ) {
|
||
|
|
var new_data = {}
|
||
|
|
new_data.id = data.hallows_id
|
||
|
|
new_data.refine_lev = data.refine_lev
|
||
|
|
this.model.updateHallowsData( new_data )
|
||
|
|
gcore.GlobalEvent.fire( HallowsEvent.HallowsUpdateEvent, data.hallows_id, true )
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
send24140: function( hallows_id ) {
|
||
|
|
this.detail_id = hallows_id;
|
||
|
|
var protocal = {};
|
||
|
|
protocal.hallows_id = hallows_id;
|
||
|
|
this.SendProtocal( 24140, protocal );
|
||
|
|
},
|
||
|
|
|
||
|
|
handle24140: function( data ) {
|
||
|
|
this.model.createHallow( data );
|
||
|
|
this.openHallowsTips( true, this.detail_id );
|
||
|
|
},
|
||
|
|
|
||
|
|
} );
|
||
|
|
|
||
|
|
module.exports = HallowsController;
|