141 lines
4.6 KiB
JavaScript
141 lines
4.6 KiB
JavaScript
|
|
// --------------------------------------------------------------------
|
||
|
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
||
|
|
// @description:
|
||
|
|
// 这里填写详细说明,主要填写该模块的功能简要
|
||
|
|
// <br/>Create: {DATE}
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
|
||
|
|
const BridgeClass = require( "bridge.class" );
|
||
|
|
const SummonDefine = require( "summon.define" );
|
||
|
|
|
||
|
|
var PartnersummonModel = cc.Class( {
|
||
|
|
extends: BridgeClass,
|
||
|
|
ctor: function() {
|
||
|
|
},
|
||
|
|
|
||
|
|
properties: {
|
||
|
|
recruit_list: null, // 卡库的数据
|
||
|
|
recruit_data: null, // 召唤结果
|
||
|
|
had_open_view: false,
|
||
|
|
},
|
||
|
|
|
||
|
|
initConfig: function() {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
setSummonData: function( summon_data ) {
|
||
|
|
if( !summon_data ) return;
|
||
|
|
this.recruit_list = summon_data.recruit_list;
|
||
|
|
this.setShareData( summon_data );
|
||
|
|
this.updateRecruitData();
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 更新免费召唤次数、下次免费时间
|
||
|
|
updateSummonData: function( update_data ) {
|
||
|
|
if( !update_data ) return;
|
||
|
|
if( !this.recruit_list ) return;
|
||
|
|
for( var recruit_i in this.recruit_list ) {
|
||
|
|
var recruit_info = this.recruit_list[ recruit_i ];
|
||
|
|
if( recruit_info.group_id === update_data.group_id && recruit_info.draw_list ) {
|
||
|
|
for( var draw_i in recruit_info.draw_list ) {
|
||
|
|
var draw_info = recruit_info.draw_list[ draw_i ];
|
||
|
|
if( draw_info.times === 1 && draw_info.kv_list ) {
|
||
|
|
for( var kv_i in draw_info.kv_list ) {
|
||
|
|
var kv_info = draw_info.kv_list[ kv_i ];
|
||
|
|
if( kv_info.key == SummonDefine.Recruit_Key.Free_Count )
|
||
|
|
kv_info.val = update_data.free_times;
|
||
|
|
if( kv_info.key == SummonDefine.Recruit_Key.Free_Time )
|
||
|
|
kv_info.val = update_data.free_cd_end;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
gcore.GlobalEvent.fire( SummonDefine.UpdateSummonDataEvent, update_data );
|
||
|
|
},
|
||
|
|
|
||
|
|
setRecruitData: function( recruit_data ) {
|
||
|
|
this.recruit_data = recruit_data
|
||
|
|
},
|
||
|
|
|
||
|
|
getRecruitData: function() {
|
||
|
|
return this.recruit_data
|
||
|
|
},
|
||
|
|
|
||
|
|
setShareData: function( data ) {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
updateRecruitData: function( data_list ) {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
// 获取卡库数据
|
||
|
|
getSummonGroupData: function() {
|
||
|
|
var group_data = []
|
||
|
|
var recruit_config = game.configs.recruit_data.data_partnersummon_data;
|
||
|
|
|
||
|
|
var group_item = null;
|
||
|
|
var recruit_config_info = null;
|
||
|
|
var group_id = null;
|
||
|
|
for( var recruit_i in recruit_config ) {
|
||
|
|
recruit_config_info = recruit_config[ recruit_i ];
|
||
|
|
if( recruit_config_info.is_show === 0 ) {
|
||
|
|
group_id = recruit_config_info.group_id;
|
||
|
|
var recruit_data = this.getSummonProtoDataByGroupID( group_id );
|
||
|
|
group_item = {};
|
||
|
|
group_item.config_data = recruit_config[ recruit_i ];
|
||
|
|
group_item.recruit_data = recruit_data;
|
||
|
|
group_item.group_id = recruit_config_info.group_id;
|
||
|
|
group_data.push( group_item );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 排序
|
||
|
|
function sortById( pro ) {
|
||
|
|
return function( obj1, obj2 ) {
|
||
|
|
var c_val1 = obj1.config_data[ pro ];
|
||
|
|
var c_val2 = obj2.config_data[ pro ];
|
||
|
|
if( c_val1 < c_val2 ) {
|
||
|
|
return -1;
|
||
|
|
} else {
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
var summon_group_data = group_data.sort( sortById( "sort_id" ) );
|
||
|
|
return summon_group_data
|
||
|
|
},
|
||
|
|
|
||
|
|
getSummonProtoDataByGroupID: function( group_id ) {
|
||
|
|
if( !group_id || !this.recruit_list ) return;
|
||
|
|
var recruit_data = null;
|
||
|
|
for( var recruit_i in this.recruit_list ) {
|
||
|
|
recruit_data = this.recruit_list[ recruit_i ];
|
||
|
|
if( recruit_data.group_id === group_id ) {
|
||
|
|
return recruit_data
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return null
|
||
|
|
},
|
||
|
|
|
||
|
|
getScoreSummonNeedCount: function() {
|
||
|
|
|
||
|
|
if( !game.configs.recruit_data ){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
var count = 0;
|
||
|
|
var score_recruit_info = game.configs.recruit_data.data_partnersummon_data[ SummonDefine.Summon_Type.Score ];
|
||
|
|
if( score_recruit_info.exchange_once && score_recruit_info.exchange_once[ 0 ] ) {
|
||
|
|
count = score_recruit_info.exchange_once[ 0 ][ 1 ];
|
||
|
|
}
|
||
|
|
|
||
|
|
return count
|
||
|
|
},
|
||
|
|
|
||
|
|
} );
|