Files
fc/dev/project/assets/Scripts/mod/pvp/campfight/campfight.mod.js
T

299 lines
8.4 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 陣營大戰(打年獸)
// <br/>Create: 2019-02-27 11:03:16
// --------------------------------------------------------------------
const BridgeController = require( "bridge.controller" );
const CampfightConst = require( "campfight.const" );
const BTC = require("battle_controller");
const CampfightMod = cc.Class( {
extends: BridgeController,
ctor: function() {
},
// 初始化配置数据
initConfig: function() {
this.cur_peroid = 0;
this.cur_status = 0;
this.is_contest = false;//本人是否參賽
this.is_inPanel = false;
this.topthree = [];
this.first = true;
},
// 注册协议接受事件
registerProtocals: function() {
this.RegisterProtocal( 31300, this.handle31300 ); //擂臺賽信息
this.RegisterProtocal( 31301, this.handle31301 ); //设置阵法
this.RegisterProtocal( 31302, this.handle31302 ); //保存阵法
this.RegisterProtocal( 31303, this.handle31303 ); //打年獸
this.RegisterProtocal( 31305, this.handle31305 ); //往期排行榜
this.RegisterProtocal( 31304, this.handle31304 ); //資格公示分組榜
this.RegisterProtocal( 31306, this.handle31306 ); //戰鬥活動面板
this.RegisterProtocal( 31307, this.handle31307 ); //pvp戰鬥
this.RegisterProtocal( 31308, this.handle31308 ); //個人分組
this.RegisterProtocal( 31309, this.handle31309 ); //pve结束阶段公示榜
this.RegisterProtocal( 31310, this.handle31310 ); // 推送结算
this.RegisterProtocal( 31311, this.handle31311 ); //录像列表
this.RegisterProtocal( 31312, this.handle31312 ); //位次變動推送
this.RegisterProtocal( 31313, this.handle31313 ); //设置防御阵法
},
// 从服务器初始化数据
reqBaseFromServer: function( _cb ) {
// 配置加载
let cfgs = [
"arena_camp_data"
];
this.loadConfigs( cfgs, ( _ret, _data ) => {
nx.dt.fnInvoke( _cb, true );
this.reqOldRank();
} );
},
setMainPanel(_is){
this.is_inPanel = _is;
},
//當前界面是否在主界面
inMainPanel(){
return this.is_inPanel;
},
// 请求主要信息
reqMainData: function( _cb ) {
this.SendProtocal( 31300, {}, _cb );
},
// 请求擂臺賽信息返回
handle31300: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
this.setCurPeriod(_data.period);
this.setActStatus(_data.status);
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_MAIN,_data);
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_STATUS_CHANGE,_data.status);
if(!this.inMainPanel()){
if(_data.status == 1 || _data.status == 5){
nx.bridge.createPanel("WndCampfightPush",{status:_data.status});
}
}
},
//设置阵法
sendForm: function(formation_type,group,posinfo,hallows_id,_cb){
this.SendProtocal( 31301, {formation_type:formation_type,group:group,pos_info:posinfo,hallows_id:hallows_id}, _cb );
},
handle31301: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
if(_data.flag == 1){
nx.tbox("CampFitFormSave");
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_UPDATE_BTN,"form");
}
},
//请求阵法
reqForm: function(formation_type,group,_cb){
this.SendProtocal( 31302, {formation_type:formation_type,group:group}, _cb );
},
handle31302: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_UPDATE_FORM,_data);
},
reqBatBoss: function(_cb){
this.SendProtocal( 31303, {}, _cb );
},
handle31303: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
},
reqZigeGroup: function( _group,_cb ) {
this.SendProtocal( 31304, {group:_group}, _cb );
},
handle31304: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_ZIGE_UI,_data);
},
reqOldRank: function( _cb ) {
this.SendProtocal( 31305, {}, _cb );
},
handle31305: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
let showdata = {
type: nx.text.getKey( "CampFitTopThree" ),
showCampList : _data.rank_list,
};
if( nx.dt.arrNEmpty( _data.rank_list ) ){
if( this.first ){
nx.bridge.vset( "CampfightTop", showdata );
for (let i = 0; i < _data.rank_list.length; i++) {
let item = _data.rank_list[i];
if( item.rank < 4 ){
this.topthree.push( item );
}
}
this.first = false;
}
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_UPDATE_RANK,_data);
},
reqBatGroup: function( _group,_cb ) {
this.SendProtocal( 31306, {group:_group}, _cb );
},
handle31306: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_BATUI,_data);
},
reqBat: function(formation_type,group,posinfo,hallows_id,_rid,_srv_id,_cb ) {
this.SendProtocal( 31307, {formation_type:formation_type, group:group, pos_info:posinfo, hallows_id:hallows_id,rid:_rid, srv_id:_srv_id}, _cb );
},
handle31307: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
},
reqSelfGroup: function( _cb ) {
this.SendProtocal( 31308, {}, _cb );
},
// 请求擂臺賽信息返回
handle31308: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
if(_data.rank == 0){
this.is_contest = false;
this.setGroup(1);//默認第一組
}else{
this.is_contest = true;
this.setGroup(_data.group);
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_UPSEAT,this.group);
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_SETRANK,_data.rank);
},
reqMonsDmgRank: function( _cb ) {
this.SendProtocal( 31309, {}, _cb );
},
handle31309: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_MONS_UI,_data);
},
handle31310: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
nx.bridge.vset( "ResultInfo", _data );
},
reqReportList: function( _group ,_cb ) {
this.SendProtocal( 31311, {group:_group}, _cb );
},
handle31311: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
gcore.GlobalEvent.fire(CampfightConst.EVT_CAMP_REPORT,_data);
},
handle31312: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
nx.bridge.createPanel("WndCampfightPlace",{data:_data});
},
//设置防御阵法
setDefendForm: function(formation_type,group,pos_info,hallows_id,_cb){
this.SendProtocal( 31313, {formation_type:formation_type,group:group,pos_info:pos_info,hallows_id:hallows_id}, _cb );
},
handle31313: function( _data ) {
if( !this.isGoodData( _data ) ) {
return;
}
},
//配置
//當前活動周期
setCurPeriod(period){
this.cur_peroid = period;
},
getCurPeriod(){
return this.cur_peroid;
},
//當前分組
setGroup(group){
this.group = group;
},
getGroup(){
return this.group;
},
//活動階段
setActStatus(status){
this.cur_status = status;
},
getActStatus(){
return this.cur_status;
},
isContest(){
return this.is_contest;
},
setReqGroup(group){
this.reqing_group = group;
},
getReqGroup(){
return this.reqing_group || 1;
}
} );
module.exports = CampfightMod;