|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/voyage/voyage_model.js';
|
var __require = nodeEnv ? function (request) {
|
return cc.require(request);
|
} : function (request) {
|
return __quick_compile_project__.require(request, __filename);
|
};
|
function __define (exports, require, module) {
|
if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
|
cc._RF.push(module, 'cd20cms6apHoo9solcOUhFv', 'voyage_model');
|
// Scripts/mod/voyage/voyage_model.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里填写详细说明,主要填写该模块的功能简要
|
// <br/>Create: 2019-03-06 20:33:19
|
// --------------------------------------------------------------------
|
var VoyageOrderVo = require("voyage_order_vo");
|
|
var VoyageConst = require("voyage_const");
|
|
var VoyageModel = cc.Class({
|
"extends": BaseClass,
|
ctor: function ctor() {},
|
properties: {},
|
initConfig: function initConfig() {
|
this.ctrl = require("voyage_controller").getInstance();
|
this.order_list = []; // 全部订单数据
|
|
this.free_times = 0; // 今日已经免费刷新次数
|
|
this.coin_times = 0; // 今日已经钻石刷新次数
|
},
|
//设置所有订单数据
|
setOrderList: function setOrderList(data) {
|
this.order_list = [];
|
|
for (var k in data) {
|
var v = data[k];
|
var order_vo = new VoyageOrderVo();
|
order_vo.updateData(v);
|
this.order_list.push(order_vo);
|
}
|
},
|
//获取所有订单数据
|
getAllOrderList: function getAllOrderList() {
|
return this.order_list;
|
},
|
//刷新某一订单数据
|
updateOneOrderData: function updateOneOrderData(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 deleteOneOrderData(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;
|
}
|
}
|
},
|
setFreeTimes: function setFreeTimes(times) {
|
this.free_times = times;
|
},
|
//获取今日已经免费刷新次数
|
getFreeTimes: function getFreeTimes() {
|
return this.free_times;
|
},
|
setCoinTimes: function setCoinTimes(times) {
|
this.coin_times = times;
|
},
|
//获取今日已经钻石刷新次数
|
getCoinTimes: function getCoinTimes() {
|
return this.coin_times;
|
},
|
//订单中是否有紫色(史诗)品质及以上的订单并且未接取
|
checkIsHaveHigherEpicOrder: function checkIsHaveHigherEpicOrder() {
|
var is_have = false;
|
|
for (var k in this.order_list) {
|
var order_vo = this.order_list[k];
|
|
if (order_vo.status == VoyageConst.Order_Status.Unget && order_vo.config && order_vo.config.quality >= VoyageConst.Order_Rarity.Epic) {
|
is_have = true;
|
break;
|
}
|
}
|
|
return is_have;
|
},
|
//根据英雄id判断是否为任务中
|
checkHeroIsInTaskById: function checkHeroIsInTaskById(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 getQuickFinishNeedGoldByTime(lefttime) {
|
var gold_num = 0;
|
|
for (var k in Config.shipping_data.data_quick_cost) {
|
var config = Config.shipping_data.data_quick_cost[k];
|
|
if (lefttime >= config.min && lefttime <= config.max) {
|
gold_num = config.gold;
|
}
|
}
|
|
return gold_num;
|
},
|
//是否有订单缓存数据
|
checkIsHaveOrderData: function checkIsHaveOrderData() {
|
return Utils.next(this.order_list) != null;
|
},
|
//是否显示红点(是否有已完成的订单任务)
|
checkVoyageRedStatus: function checkVoyageRedStatus() {
|
var is_show_red = false;
|
|
for (var k in this.order_list) {
|
var order_vo = this.order_list[k];
|
|
if (order_vo.status == VoyageConst.Order_Status.Finish) {
|
is_show_red = true;
|
break;
|
}
|
}
|
|
return is_show_red;
|
},
|
//远航活动状态
|
setActivityStatus: function setActivityStatus(status) {
|
this.activity_status = status;
|
},
|
getActivityStatus: function getActivityStatus() {
|
return this.activity_status || 0;
|
},
|
//获取是否第一次提示特权
|
getFirstFresh: function getFirstFresh() {
|
return this.is_first_fresh || false;
|
},
|
setFirstFresh: function setFirstFresh(status) {
|
this.is_first_fresh = status;
|
}
|
});
|
|
cc._RF.pop();
|
}
|
if (nodeEnv) {
|
__define(__module.exports, __require, __module);
|
}
|
else {
|
__quick_compile_project__.registerModuleFunc(__filename, function () {
|
__define(__module.exports, __require, __module);
|
});
|
}
|
})();
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx2b3lhZ2VcXHZveWFnZV9tb2RlbC5qcyJdLCJuYW1lcyI6WyJWb3lhZ2VPcmRlclZvIiwicmVxdWlyZSIsIlZveWFnZUNvbnN0IiwiVm95YWdlTW9kZWwiLCJjYyIsIkNsYXNzIiwiQmFzZUNsYXNzIiwiY3RvciIsInByb3BlcnRpZXMiLCJpbml0Q29uZmlnIiwiY3RybCIsImdldEluc3RhbmNlIiwib3JkZXJfbGlzdCIsImZyZWVfdGltZXMiLCJjb2luX3RpbWVzIiwic2V0T3JkZXJMaXN0IiwiZGF0YSIsImsiLCJ2Iiwib3JkZXJfdm8iLCJ1cGRhdGVEYXRhIiwicHVzaCIsImdldEFsbE9yZGVyTGlzdCIsInVwZGF0ZU9uZU9yZGVyRGF0YSIsIm9yZGVyX2lkIiwiZGVsZXRlT25lT3JkZXJEYXRhIiwic3BsaWNlIiwic2V0RnJlZVRpbWVzIiwidGltZXMiLCJnZXRGcmVlVGltZXMiLCJzZXRDb2luVGltZXMiLCJnZXRDb2luVGltZXMiLCJjaGVja0lzSGF2ZUhpZ2hlckVwaWNPcmRlciIsImlzX2hhdmUiLCJzdGF0dXMiLCJPcmRlcl9TdGF0dXMiLCJVbmdldCIsImNvbmZpZyIsInF1YWxpdHkiLCJPcmRlcl9SYXJpdHkiLCJFcGljIiwiY2hlY2tIZXJvSXNJblRhc2tCeUlkIiwiaWQiLCJpc19pbiIsImFzc2lnbl9pZHMiLCJpIiwiYXNzaWduIiwicGFydG5lcl9pZCIsImdldFF1aWNrRmluaXNoTmVlZEdvbGRCeVRpbWUiLCJsZWZ0dGltZSIsImdvbGRfbnVtIiwiQ29uZmlnIiwic2hpcHBpbmdfZGF0YSIsImRhdGFfcXVpY2tfY29zdCIsIm1pbiIsIm1heCIsImdvbGQiLCJjaGVja0lzSGF2ZU9yZGVyRGF0YSIsIlV0aWxzIiwibmV4dCIsImNoZWNrVm95YWdlUmVkU3RhdHVzIiwiaXNfc2hvd19yZWQiLCJGaW5pc2giLCJzZXRBY3Rpdml0eVN0YXR1cyIsImFjdGl2aXR5X3N0YXR1cyIsImdldEFjdGl2aXR5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RSw2QkFBWTtBQUMzQixXQUFPLEtBQUtELGVBQUwsSUFBd0IsQ0FBL0I7QUFDSCxHQS9Jc0I7QUFpSnZCO0FBQ0FFLEVBQUFBLGFBQWEsRUFBRSx5QkFBWTtBQUN2QixXQUFPLEtBQUtDLGNBQUwsSUFBdUIsS0FBOUI7QUFDSCxHQXBKc0I7QUFzSnZCQyxFQUFBQSxhQUFhLEVBQUUsdUJBQVVsQyxNQUFWLEVBQWtCO0FBQzdCLFNBQUtpQyxjQUFMLEdBQXNCakMsTUFBdEI7QUFDSDtBQXhKc0IsQ0FBVCxDQUFsQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHh4eEBzeWcuY29tKOW/heWhqywg5Yib5bu65qih5Z2X55qE5Lq65ZGYKVxuLy8gQGRlc2NyaXB0aW9uOlxuLy8gICAgICDov5nph4zloavlhpnor6bnu4bor7TmmI4s5Li76KaB5aGr5YaZ6K+l5qih5Z2X55qE5Yqf6IO9566A6KaBXG4vLyA8YnIvPkNyZWF0ZTogMjAxOS0wMy0wNiAyMDozMzoxOVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnZhciBWb3lhZ2VPcmRlclZvID0gcmVxdWlyZShcInZveWFnZV9vcmRlcl92b1wiKTtcbnZhciBWb3lhZ2VDb25zdCA9IHJlcXVpcmUoXCJ2b3lhZ2VfY29uc3RcIik7XG5cbnZhciBWb3lhZ2VNb2RlbCA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ2xhc3MsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgfSxcblxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jdHJsID0gcmVxdWlyZShcInZveWFnZV9jb250cm9sbGVyXCIpLmdldEluc3RhbmNlKCk7XG4gICAgICAgIHRoaXMub3JkZXJfbGlzdCA9IFtdICAvLyDlhajpg6jorqLljZXmlbDmja5cbiAgICAgICAgdGhpcy5mcmVlX3RpbWVzID0gMCAgIC8vIOS7iuaXpeW3sue7j+WFjei0ueWIt+aWsOasoeaVsFxuICAgICAgICB0aGlzLmNvaW5fdGltZXMgPSAwICAgLy8g5LuK5pel5bey57uP6ZK755+z5Yi35paw5qyh5pWwXG4gICAgfSxcblxuICAgIC8v6K6+572u5omA5pyJ6K6i5Y2V5pWw5o2uXG4gICAgc2V0T3JkZXJMaXN0OiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICB0aGlzLm9yZGVyX2xpc3QgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgayBpbiBkYXRhKSB7XG4gICAgICAgICAgICB2YXIgdiA9IGRhdGFba107XG4gICAgICAgICAgICB2YXIgb3JkZXJfdm8gPSBuZXcgVm95YWdlT3JkZXJWbygpO1xuICAgICAgICAgICAgb3JkZXJfdm8udXBkYXRlRGF0YSh2KTtcbiAgICAgICAgICAgIHRoaXMub3JkZXJfbGlzdC5wdXNoKG9yZGVyX3ZvKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvL+iOt+WPluaJgOacieiuouWNleaVsOaNrlxuICAgIGdldEFsbE9yZGVyTGlzdDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmRlcl9saXN0XG4gICAgfSxcblxuICAgIC8v5Yi35paw5p+Q5LiA6K6i5Y2V5pWw5o2uXG4gICAgdXBkYXRlT25lT3JkZXJEYXRhOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICBmb3IgKHZhciBrIGluIHRoaXMub3JkZXJfbGlzdCkge1xuICAgICAgICAgICAgdmFyIHYgPSB0aGlzLm9yZGVyX2xpc3Rba107XG4gICAgICAgICAgICBpZiAodi5vcmRlcl9pZCA9PSBkYXRhLm9yZGVyX2lkKSB7XG4gICAgICAgICAgICAgICAgdi51cGRhdGVEYXRhKGRhdGEpO1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy/liKDpmaTmn5DkuIDorqLljZXmlbDmja5cbiAgICBkZWxldGVPbmVPcmRlckRhdGE6IGZ1bmN0aW9uIChvcmRlcl9pZCkge1xuICAgICAgICBmb3IgKHZhciBrIGluIHRoaXMub3JkZXJfbGlzdCkge1xuICAgICAgICAgICAgdmFyIG9yZGVyX3ZvID0gdGhpcy5vcmRlcl9saXN0W2tdO1xuICAgICAgICAgICAgaWYgKG9yZGVyX3ZvLm9yZGVyX2lkID09IG9yZGVyX2lkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmRlcl9saXN0LnNwbGljZShrLCAxKTtcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIHNldEZyZWVUaW1lczogZnVuY3Rpb24gKHRpbWVzKSB7XG4gICAgICAgIHRoaXMuZnJlZV90aW1lcyA9IHRpbWVzO1xuICAgIH0sXG5cbiAgICAvL+iOt+WPluS7iuaXpeW3sue7j+WFjei0ueWIt+aWsOasoeaVsFxuICAgIGdldEZyZWVUaW1lczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmVlX3RpbWVzXG4gICAgfSxcblxuICAgIHNldENvaW5UaW1lczogZnVuY3Rpb24gKHRpbWVzKSB7XG4gICAgICAgIHRoaXMuY29pbl90aW1lcyA9IHRpbWVzO1xuICAgIH0sXG5cbiAgICAvL+iOt+WPluS7iuaXpeW3sue7j+mSu+efs+WIt+aWsOasoeaVsFxuICAgIGdldENvaW5UaW1lczogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2luX3RpbWVzXG4gICAgfSxcblxuICAgIC8v6K6i5Y2V5Lit5piv5ZCm5pyJ57Sr6Imy77yI5Y+y6K+X77yJ5ZOB6LSo5Y+K5Lul5LiK55qE6K6i5Y2V5bm25LiU5pyq5o6l5Y+WXG4gICAgY2hlY2tJc0hhdmVIaWdoZXJFcGljT3JkZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGlzX2hhdmUgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgayBpbiB0aGlzLm9yZGVyX2xpc3QpIHtcbiAgICAgICAgICAgIHZhciBvcmRlcl92byA9IHRoaXMub3JkZXJfbGlzdFtrXTtcbiAgICAgICAgICAgIGlmIChvcmRlcl92by5zdGF0dXMgPT0gVm95YWdlQ29uc3QuT3JkZXJfU3RhdHVzLlVuZ2V0ICYmIG9yZGVyX3ZvLmNvbmZpZyAmJiBvcmRlcl92by5jb25maWcucXVhbGl0eSA+PSBWb3lhZ2VDb25zdC5PcmRlcl9SYXJpdHkuRXBpYykge1xuICAgICAgICAgICAgICAgIGlzX2hhdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzX2hhdmVcbiAgICB9LFxuXG4gICAgLy/moLnmja7oi7Hpm4RpZOWIpOaWreaYr+WQpuS4uuS7u+WKoeS4rVxuICAgIGNoZWNrSGVyb0lzSW5UYXNrQnlJZDogZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgIHZhciBpc19pbiA9IGZhbHNlO1xuICAgICAgICBmb3IgKHZhciBrIGluIHRoaXMub3JkZXJfbGlzdCkge1xuICAgICAgICAgICAgdmFyIG9yZGVyX3ZvID0gdGhpcy5vcmRlcl9saXN0W2tdO1xuICAgICAgICAgICAgaWYgKG9yZGVyX3ZvLmFzc2lnbl9pZHMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIG9yZGVyX3ZvLmFzc2lnbl9pZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFzc2lnbiA9IG9yZGVyX3ZvLmFzc2lnbl9pZHNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChhc3NpZ24ucGFydG5lcl9pZCAmJiBhc3NpZ24ucGFydG5lcl9pZCA9PSBpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNfaW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc19pbikge1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzX2luXG4gICAgfSxcblxuICAgIC8v5qC55o2u6K6i5Y2V5Ymp5L2Z5pe26Ze06I635Y+W5Yqg6YCf5omA6ZyA6ZK755+z5pWw6YePXG4gICAgZ2V0UXVpY2tGaW5pc2hOZWVkR29sZEJ5VGltZTogZnVuY3Rpb24gKGxlZnR0aW1lKSB7XG4gICAgICAgIHZhciBnb2xkX251bSA9IDA7XG4gICAgICAgIGZvciAodmFyIGsgaW4gQ29uZmlnLnNoaXBwaW5nX2RhdGEuZGF0YV9xdWlja19jb3N0KSB7XG4gICAgICAgICAgICB2YXIgY29uZmlnID0gQ29uZmlnLnNoaXBwaW5nX2RhdGEuZGF0YV9xdWlja19jb3N0W2tdO1xuICAgICAgICAgICAgaWYgKGxlZnR0aW1lID49IGNvbmZpZy5taW4gJiYgbGVmdHRpbWUgPD0gY29uZmlnLm1heCkge1xuICAgICAgICAgICAgICAgIGdvbGRfbnVtID0gY29uZmlnLmdvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ29sZF9udW1cbiAgICB9LFxuXG4gICAgLy/mmK/lkKbmnInorqLljZXnvJPlrZjmlbDmja5cbiAgICBjaGVja0lzSGF2ZU9yZGVyRGF0YTogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKFV0aWxzLm5leHQodGhpcy5vcmRlcl9saXN0KSAhPSBudWxsKVxuICAgIH0sXG5cbiAgICAvL+aYr+WQpuaYvuekuue6oueCuSjmmK/lkKbmnInlt7LlrozmiJDnmoTorqLljZXku7vliqEpXG4gICAgY2hlY2tWb3lhZ2VSZWRTdGF0dXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGlzX3Nob3dfcmVkID0gZmFsc2U7XG4gICAgICAgIGZvciAodmFyIGsgaW4gdGhpcy5vcmRlcl9saXN0KSB7XG4gICAgICAgICAgICB2YXIgb3JkZXJfdm8gPSB0aGlzLm9yZGVyX2xpc3Rba107XG4gICAgICAgICAgICBpZiAob3JkZXJfdm8uc3RhdHVzID09IFZveWFnZUNvbnN0Lk9yZGVyX1N0YXR1cy5GaW5pc2gpIHtcbiAgICAgICAgICAgICAgICBpc19zaG93X3JlZCA9IHRydWVcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc19zaG93X3JlZFxuICAgIH0sXG5cbiAgICAvL+i/nOiIqua0u+WKqOeKtuaAgVxuICAgIHNldEFjdGl2aXR5U3RhdHVzOiBmdW5jdGlvbiAoc3RhdHVzKSB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlfc3RhdHVzID0gc3RhdHVzO1xuICAgIH0sXG5cbiAgICBnZXRBY3Rpdml0eVN0YXR1czogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpdml0eV9zdGF0dXMgfHwgMDtcbiAgICB9LFxuXG4gICAgLy/ojrflj5bmmK/lkKbnrKzkuIDmrKHmj5DnpLrnibnmnYNcbiAgICBnZXRGaXJzdEZyZXNoOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzX2ZpcnN0X2ZyZXNoIHx8IGZhbHNlXG4gICAgfSxcblxuICAgIHNldEZpcnN0RnJlc2g6IGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICAgICAgdGhpcy5pc19maXJzdF9mcmVzaCA9IHN0YXR1cztcbiAgICB9XG59KTsiXX0=
|