Files
fc/dev/project/assets/Scripts/mod/summon/summon.model.js
T

141 lines
4.6 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
// --------------------------------------------------------------------
// @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
},
} );