179 lines
5.3 KiB
JavaScript
179 lines
5.3 KiB
JavaScript
|
|
// --------------------------------------------------------------------
|
||
|
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
||
|
|
// @description:
|
||
|
|
// 这里填写详细说明,主要填写该模块的功能简要
|
||
|
|
// <br/>Create: 2019-03-06 20:33:19
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
const BridgeClass = require( "bridge.class" );
|
||
|
|
const DispatchOrder = require( "dispatch.order" );
|
||
|
|
const DispatchConst = require( "dispatch.const" );
|
||
|
|
|
||
|
|
const DispatchModel = cc.Class( {
|
||
|
|
|
||
|
|
extends: BridgeClass,
|
||
|
|
ctor: function() {
|
||
|
|
},
|
||
|
|
|
||
|
|
properties: {
|
||
|
|
},
|
||
|
|
|
||
|
|
initConfig: function() {
|
||
|
|
this.ctrl = require( "dispatch.mod" ).getInstance();
|
||
|
|
this.order_list = [] // 全部订单数据
|
||
|
|
this.free_times = 0 // 今日已经免费刷新次数
|
||
|
|
this.coin_times = 0 // 今日已经钻石刷新次数
|
||
|
|
},
|
||
|
|
|
||
|
|
//设置所有订单数据
|
||
|
|
setOrderList: function( data ) {
|
||
|
|
this.order_list = [];
|
||
|
|
for( var k in data ) {
|
||
|
|
var v = data[ k ];
|
||
|
|
var order_vo = new DispatchOrder();
|
||
|
|
order_vo.updateData( v );
|
||
|
|
this.order_list.push( order_vo );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//获取所有订单数据
|
||
|
|
getAllOrderList: function() {
|
||
|
|
return this.order_list
|
||
|
|
},
|
||
|
|
|
||
|
|
//刷新某一订单数据
|
||
|
|
updateOneOrderData: function( data ) {
|
||
|
|
for( var k in this.order_list ) {
|
||
|
|
var v = this.order_list[ k ];
|
||
|
|
if( v.order_id == data.order_id ) {
|
||
|
|
v.updateData( data );
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
//删除某一订单数据
|
||
|
|
deleteOneOrderData: function( order_id ) {
|
||
|
|
for( var k in this.order_list ) {
|
||
|
|
var order_vo = this.order_list[ k ];
|
||
|
|
if( order_vo.order_id == order_id ) {
|
||
|
|
this.order_list.splice( k, 1 );
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
deleteSomeOrderData: function( order_id_list ) {
|
||
|
|
let len = this.order_list.length;
|
||
|
|
for( var i = 0; i < len; i++ ) {
|
||
|
|
for( var j = 0; j < this.order_list.length; j++ ) {
|
||
|
|
var order_vo = this.order_list[ j ];
|
||
|
|
for( var k = 0; k < order_id_list.length; k++ ) {
|
||
|
|
if( order_id_list[ k ].order_id == order_vo.order_id ) {
|
||
|
|
this.order_list.splice( j, 1 );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
setFreeTimes: function( times ) {
|
||
|
|
this.free_times = times;
|
||
|
|
},
|
||
|
|
|
||
|
|
//获取今日已经免费刷新次数
|
||
|
|
getFreeTimes: function() {
|
||
|
|
return this.free_times
|
||
|
|
},
|
||
|
|
|
||
|
|
setCoinTimes: function( times ) {
|
||
|
|
this.coin_times = times;
|
||
|
|
},
|
||
|
|
|
||
|
|
//获取今日已经钻石刷新次数
|
||
|
|
getCoinTimes: function() {
|
||
|
|
return this.coin_times
|
||
|
|
},
|
||
|
|
|
||
|
|
//订单中是否有紫色(史诗)品质及以上的订单并且未接取
|
||
|
|
checkIsHaveHigherEpicOrder: function() {
|
||
|
|
var is_have = false;
|
||
|
|
for( var k in this.order_list ) {
|
||
|
|
var order_vo = this.order_list[ k ];
|
||
|
|
if( order_vo.status == DispatchConst.Order_Status.Unget && order_vo.config && order_vo.config.quality >= DispatchConst.Order_Rarity.Epic ) {
|
||
|
|
is_have = true;
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return is_have
|
||
|
|
},
|
||
|
|
|
||
|
|
//根据英雄id判断是否为任务中
|
||
|
|
checkHeroIsInTaskById: function( id ) {
|
||
|
|
var is_in = false;
|
||
|
|
for( var k in this.order_list ) {
|
||
|
|
var order_vo = this.order_list[ k ];
|
||
|
|
if( order_vo.assign_ids ) {
|
||
|
|
for( var i in order_vo.assign_ids ) {
|
||
|
|
var assign = order_vo.assign_ids[ i ];
|
||
|
|
if( assign.partner_id && assign.partner_id == id ) {
|
||
|
|
is_in = true;
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if( is_in ) {
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return is_in
|
||
|
|
},
|
||
|
|
|
||
|
|
//根据订单剩余时间获取加速所需钻石数量
|
||
|
|
getQuickFinishNeedGoldByTime: function( lefttime ) {
|
||
|
|
var gold_num = 0;
|
||
|
|
for( var k in game.configs.shipping_data.data_quick_cost ) {
|
||
|
|
var config = game.configs.shipping_data.data_quick_cost[ k ];
|
||
|
|
if( lefttime >= config.min && lefttime <= config.max ) {
|
||
|
|
gold_num = config.gold;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return gold_num
|
||
|
|
},
|
||
|
|
|
||
|
|
//是否有订单缓存数据
|
||
|
|
checkIsHaveOrderData: function() {
|
||
|
|
return ( Utils.next( this.order_list ) != null )
|
||
|
|
},
|
||
|
|
|
||
|
|
//是否显示红点(是否有已完成的订单任务)
|
||
|
|
checkVoyageRedStatus: function() {
|
||
|
|
var is_show_red = false;
|
||
|
|
for( var k in this.order_list ) {
|
||
|
|
var order_vo = this.order_list[ k ];
|
||
|
|
if( order_vo.status == DispatchConst.Order_Status.Finish ) {
|
||
|
|
is_show_red = true
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return is_show_red
|
||
|
|
},
|
||
|
|
|
||
|
|
//远航活动状态
|
||
|
|
setActivityStatus: function( status ) {
|
||
|
|
this.activity_status = status;
|
||
|
|
},
|
||
|
|
|
||
|
|
getActivityStatus: function() {
|
||
|
|
return this.activity_status || 0;
|
||
|
|
},
|
||
|
|
|
||
|
|
//获取是否第一次提示特权
|
||
|
|
getFirstFresh: function() {
|
||
|
|
return this.is_first_fresh || false
|
||
|
|
},
|
||
|
|
|
||
|
|
setFirstFresh: function( status ) {
|
||
|
|
this.is_first_fresh = status;
|
||
|
|
}
|
||
|
|
} );
|