|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/startower/startower_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, '2481eZrVBpP7rPNob1XwV5e', 'startower_model');
|
// Scripts/mod/startower/startower_model.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 星命塔
|
// <br/>Create: 2019-02-27 11:03:16
|
// --------------------------------------------------------------------
|
var StartowerEvent = require("startower_event");
|
|
var StartowerModel = cc.Class({
|
"extends": BaseClass,
|
ctor: function ctor() {
|
this.ctrl = require("startower_controller").getInstance();
|
this.initConfig();
|
},
|
properties: {},
|
initConfig: function initConfig() {
|
// 已通关的最大层数
|
this.max_tower = 0; //剩余挑战次数
|
|
this.less_count = 0; //已购买次数
|
|
this.buy_count = 0;
|
this.reward_list = []; //通关奖励状态
|
},
|
setStarTowerData: function setStarTowerData(data) {
|
var tempsort = {
|
0: 2,
|
// 0 未领取放中间
|
1: 1,
|
// 1 可领取放前面
|
2: 3 // 2 已领取放最后
|
|
};
|
this.max_tower = data.max_tower || 0;
|
this.less_count = data.count || 0;
|
this.buy_count = data.buy_count || 0;
|
|
if (Utils.next(data.award_list) != null) {
|
for (var i in data.award_list) {
|
var tab = {};
|
tab.id = data.award_list[i].id;
|
tab.status = data.award_list[i].status;
|
tab.sort = tempsort[tab.status];
|
this.reward_list[data.award_list[i].id - 1] = tab;
|
}
|
}
|
|
this.reward_list.sort(Utils.tableLowerSorter(["sort", "id"]));
|
this.updateRedPoint();
|
gcore.GlobalEvent.fire(StartowerEvent.Update_All_Data);
|
},
|
setRewardData: function setRewardData(data) {
|
if (!this.reward_list || !data[0]) return;
|
var tempsort = {
|
0: 2,
|
// 0 未领取放中间
|
1: 1,
|
// 1 可领取放前面
|
2: 3 // 2 已领取放最后
|
|
};
|
|
for (var i in this.reward_list) {
|
if (this.reward_list[i].id == data[0].id) {
|
this.reward_list[i].status = data[0].status;
|
this.reward_list[i].sort = tempsort[data[0].status];
|
break;
|
}
|
}
|
|
this.reward_list.sort(Utils.tableLowerSorter(["sort", "id"]));
|
},
|
sortFunc: function sortFunc(data) {
|
data.sort(function (objA, objB) {
|
if (objA.sort != objB.sort) {
|
if (objA.sort && objB.sort) {
|
return objA.sort - objB.sort;
|
} else {
|
return false;
|
}
|
} else {
|
return objA.id - objB.id;
|
}
|
});
|
return data;
|
},
|
getRewardData: function getRewardData(id) {
|
if (!this.reward_list) return;
|
|
if (id == null) {
|
return this.reward_list || {};
|
} else {
|
return this.reward_list[id] || {};
|
}
|
},
|
updateRedPoint: function updateRedPoint() {
|
RedMgr.getInstance().addCalHandler(this.checkRedPoint.bind(this), RedIds.StarTower);
|
},
|
checkRedPoint: function checkRedPoint() {
|
var is_open = this.ctrl.checkIsOpen();
|
if (!is_open) return;
|
var status = false;
|
|
for (var i in this.reward_list) {
|
if (this.reward_list[i].status == 1) {
|
status = true;
|
break;
|
}
|
}
|
|
status = status || this.less_count > 0;
|
|
var SceneConst = require("scene_const");
|
|
var MainSceneController = require("mainscene_controller");
|
|
MainSceneController.getInstance().setBuildRedStatus(SceneConst.CenterSceneBuild.startower, {
|
bid: 1,
|
status: status
|
});
|
},
|
updateMaxTower: function updateMaxTower(data) {
|
if (data && data.max_tower && this.max_tower < data.max_tower) {
|
this.max_tower = data.max_tower;
|
}
|
|
gcore.GlobalEvent.fire(StartowerEvent.Fight_Success_Event);
|
},
|
updateLessCount: function updateLessCount(data) {
|
if (data.count != null) {
|
this.less_count = data.count || 0;
|
this.updateRedPoint();
|
}
|
|
if (data.buy_count != null) {
|
this.buy_count = data.buy_count;
|
}
|
|
gcore.GlobalEvent.fire(StartowerEvent.Count_Change_Event);
|
},
|
getNowTowerId: function getNowTowerId() {
|
return this.max_tower || 0;
|
},
|
getTowerLessCount: function getTowerLessCount() {
|
return this.less_count;
|
},
|
getBuyCount: function getBuyCount() {
|
return this.buy_count;
|
}
|
});
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxzdGFydG93ZXJcXHN0YXJ0b3dlcl9tb2RlbC5qcyJdLCJuYW1lcyI6WyJTdGFydG93ZXJFdmVudCIsInJlcXVpcmUiLCJTdGFydG93ZXJNb2RlbCIsImNjIiwiQ2xhc3MiLCJCYXNlQ2xhc3MiLCJjdG9yIiwiY3RybCIsImdldEluc3RhbmNlIiwiaW5pdENvbmZpZyIsInByb3BlcnRpZXMiLCJtYXhfdG93ZXIiLCJsZXNzX2NvdW50IiwiYnV5X2NvdW50IiwicmV3YXJkX2xpc3QiLCJzZXRTdGFyVG93ZXJEYXRhIiwiZGF0YSIsInRlbXBzb3J0IiwiY291bnQiLCJVdGlscyIsIm5leHQiLCJhd2FyZF9saXN0IiwiaSIsInRhYiIsImlkIiwic3RhdHVzIiwic29ydCIsInRhYmxlTG93ZXJTb3J0ZXIiLCJ1cGRhdGVSZWRQb2ludCIsImdjb3JlIiwiR2xvYmFsRXZlbnQiLCJmaXJlIiwiVXBkYXRlX0FsbF9EYXRhIiwic2V0UmV3YXJkRGF0YSIsInNvcnRGdW5jIiwib2JqQSIsIm9iakIiLCJnZXRSZXdhcmREYXRhIiwiUmVkTWdyIiwiYWRkQ2FsSGFuZGxlciIsImNoZWNrUmVkUG9pbnQiLCJiaW5kIiwiUmVkSWRzIiwiU3RhclRvd2VyIiwiaXNfb3BlbiIsImNoZWNrSXNPcGVuIiwiU2NlbmVDb25zdCIsIk1haW5TY2VuZUNvbnRyb2xsZXIiLCJzZXRCdWlsZFJlZFN0YXR1cyIsIkNlbnRlclNjZW5lQnVpbGQiLCJzdGFydG93ZXIiLCJiaWQiLCJ1cGRhdGVNYXhUb3dlciIsIkZpZ2h0X1N1Y2Nlc3NfRXZlbnQiLCJ1cGRhdGVMZXNzQ291bnQiLCJDb3VudF9DaGFuZ2VfRXZlbnQiLCJnZXROb3dUb3dlcklkIiwiZ2V0VG93ZXJMZXNzQ291bnQiLCJnZXRCdXlDb3VudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxjQUFjLEdBQUdD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Q0MsV0FBTixDQUFrQkMsSUFBbEIsQ0FBdUIvQixjQUFjLENBQUNxRCxtQkFBdEM7QUFDSCxHQWxIeUI7QUFvSDFCQyxFQUFBQSxlQUFlLEVBQUMseUJBQVN0QyxJQUFULEVBQWM7QUFDMUIsUUFBR0EsSUFBSSxDQUFDRSxLQUFMLElBQWMsSUFBakIsRUFBc0I7QUFDbEIsV0FBS04sVUFBTCxHQUFrQkksSUFBSSxDQUFDRSxLQUFMLElBQWMsQ0FBaEM7QUFDQSxXQUFLVSxjQUFMO0FBQ0g7O0FBQ0QsUUFBR1osSUFBSSxDQUFDSCxTQUFMLElBQWtCLElBQXJCLEVBQTBCO0FBQ3RCLFdBQUtBLFNBQUwsR0FBaUJHLElBQUksQ0FBQ0gsU0FBdEI7QUFDSDs7QUFDRGdCLElBQUFBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQkMsSUFBbEIsQ0FBdUIvQixjQUFjLENBQUN1RCxrQkFBdEM7QUFDSCxHQTdIeUI7QUErSDFCQyxFQUFBQSxhQUFhLEVBQUMseUJBQVU7QUFDcEIsV0FBTyxLQUFLN0MsU0FBTCxJQUFrQixDQUF6QjtBQUNILEdBakl5QjtBQW1JMUI4QyxFQUFBQSxpQkFBaUIsRUFBQyw2QkFBVTtBQUN4QixXQUFPLEtBQUs3QyxVQUFaO0FBQ0gsR0FySXlCO0FBdUkxQjhDLEVBQUFBLFdBQVcsRUFBQyx1QkFBVTtBQUNsQixXQUFPLEtBQUs3QyxTQUFaO0FBQ0g7QUF6SXlCLENBQVQsQ0FBckIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg5pif5ZG95aGUXG4vLyA8YnIvPkNyZWF0ZTogMjAxOS0wMi0yNyAxMTowMzoxNlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnZhciBTdGFydG93ZXJFdmVudCA9IHJlcXVpcmUoXCJzdGFydG93ZXJfZXZlbnRcIik7XG5cbnZhciBTdGFydG93ZXJNb2RlbCA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ2xhc3MsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmN0cmwgPSByZXF1aXJlKFwic3RhcnRvd2VyX2NvbnRyb2xsZXJcIikuZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnKCk7XG4gICAgfSxcblxuICAgIHByb3BlcnRpZXM6IHtcbiAgICB9LFxuXG4gICAgaW5pdENvbmZpZzogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyDlt7LpgJrlhbPnmoTmnIDlpKflsYLmlbBcbiAgICAgICAgdGhpcy5tYXhfdG93ZXIgPSAwO1xuICAgICAgICAvL+WJqeS9meaMkeaImOasoeaVsFxuICAgICAgICB0aGlzLmxlc3NfY291bnQgPSAwO1xuICAgICAgICAvL+W3sui0reS5sOasoeaVsFxuICAgICAgICB0aGlzLmJ1eV9jb3VudCA9IDA7XG4gICAgICAgIHRoaXMucmV3YXJkX2xpc3QgPSBbXTsgIC8v6YCa5YWz5aWW5Yqx54q25oCBXG5cbiAgICB9LFxuXG4gICAgc2V0U3RhclRvd2VyRGF0YTpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdmFyIHRlbXBzb3J0ID0ge1xuICAgICAgICAgICAgMDogMiwgIC8vIDAg5pyq6aKG5Y+W5pS+5Lit6Ze0XG4gICAgICAgICAgICAxOiAxLCAgLy8gMSDlj6/pooblj5bmlL7liY3pnaJcbiAgICAgICAgICAgIDI6IDMsICAvLyAyIOW3sumihuWPluaUvuacgOWQjlxuICAgICAgICB9XG4gICAgICAgIHRoaXMubWF4X3Rvd2VyID0gZGF0YS5tYXhfdG93ZXIgfHwgMDtcbiAgICAgICAgdGhpcy5sZXNzX2NvdW50ID0gZGF0YS5jb3VudCB8fCAwO1xuICAgICAgICB0aGlzLmJ1eV9jb3VudCA9IGRhdGEuYnV5X2NvdW50IHx8IDA7IFxuICAgICAgICBpZihVdGlscy5uZXh0KGRhdGEuYXdhcmRfbGlzdCkhPW51bGwpe1xuICAgICAgICAgICAgZm9yKHZhciBpIGluIGRhdGEuYXdhcmRfbGlzdCl7XG4gICAgICAgICAgICAgICAgdmFyIHRhYiA9IHt9O1xuICAgICAgICAgICAgICAgIHRhYi5pZCA9IGRhdGEuYXdhcmRfbGlzdFtpXS5pZDtcbiAgICAgICAgICAgICAgICB0YWIuc3RhdHVzID0gZGF0YS5hd2FyZF9saXN0W2ldLnN0YXR1cztcbiAgICAgICAgICAgICAgICB0YWIuc29ydCA9IHRlbXBzb3J0W3RhYi5zdGF0dXNdO1xuICAgICAgICAgICAgICAgIHRoaXMucmV3YXJkX2xpc3RbZGF0YS5hd2FyZF9saXN0W2ldLmlkLTFdID0gdGFiO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLnJld2FyZF9saXN0LnNvcnQoVXRpbHMudGFibGVMb3dlclNvcnRlcihbXCJzb3J0XCIsXCJpZFwiXSkpXG4gICAgICAgIHRoaXMudXBkYXRlUmVkUG9pbnQoKTtcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShTdGFydG93ZXJFdmVudC5VcGRhdGVfQWxsX0RhdGEpO1xuICAgIH0sXG5cbiAgICBzZXRSZXdhcmREYXRhOmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICBpZighdGhpcy5yZXdhcmRfbGlzdCB8fCAhZGF0YVswXSlyZXR1cm47XG4gICAgICAgIHZhciB0ZW1wc29ydCA9IHtcbiAgICAgICAgICAgIDA6IDIsICAvLyAwIOacqumihuWPluaUvuS4remXtFxuICAgICAgICAgICAgMTogMSwgIC8vIDEg5Y+v6aKG5Y+W5pS+5YmN6Z2iXG4gICAgICAgICAgICAyOiAzLCAgLy8gMiDlt7Lpooblj5bmlL7mnIDlkI5cbiAgICAgICAgfVxuICAgICAgICBmb3IodmFyIGkgaW4gdGhpcy5yZXdhcmRfbGlzdCl7XG4gICAgICAgICAgICBpZih0aGlzLnJld2FyZF9saXN0W2ldLmlkID09IGRhdGFbMF0uaWQpe1xuICAgICAgICAgICAgICAgIHRoaXMucmV3YXJkX2xpc3RbaV0uc3RhdHVzID0gZGF0YVswXS5zdGF0dXM7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXdhcmRfbGlzdFtpXS5zb3J0ID0gdGVtcHNvcnRbZGF0YVswXS5zdGF0dXNdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLnJld2FyZF9saXN0LnNvcnQoVXRpbHMudGFibGVMb3dlclNvcnRlcihbXCJzb3J0XCIsXCJpZFwiXSkpXG4gICAgfSxcblxuICAgIHNvcnRGdW5jOmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICBkYXRhLnNvcnQoZnVuY3Rpb24ob2JqQSwgb2JqQil7XG4gICAgICAgICAgICBpZihvYmpBLnNvcnQgIT0gb2JqQi5zb3J0KXtcbiAgICAgICAgICAgICAgICBpZihvYmpBLnNvcnQgJiYgb2JqQi5zb3J0KXtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iakEuc29ydCAtIG9iakIuc29ydDtcbiAgICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmpBLmlkIC0gb2JqQi5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gZGF0YVxuICAgIH0sXG4gICAgXG4gICAgZ2V0UmV3YXJkRGF0YTpmdW5jdGlvbihpZCl7XG4gICAgICAgIGlmKCF0aGlzLnJld2FyZF9saXN0KXJldHVybjtcbiAgICAgICAgaWYoaWQgPT0gbnVsbCl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXdhcmRfbGlzdCB8fCB7fTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXdhcmRfbGlzdFtpZF0gfHwge307XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgdXBkYXRlUmVkUG9pbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBSZWRNZ3IuZ2V0SW5zdGFuY2UoKS5hZGRDYWxIYW5kbGVyKHRoaXMuY2hlY2tSZWRQb2ludC5iaW5kKHRoaXMpLCBSZWRJZHMuU3RhclRvd2VyKTtcbiAgICB9LFxuXG4gICAgY2hlY2tSZWRQb2ludDpmdW5jdGlvbigpe1xuICAgICAgICB2YXIgaXNfb3BlbiA9IHRoaXMuY3RybC5jaGVja0lzT3BlbigpO1xuICAgICAgICBpZighaXNfb3BlbilyZXR1cm47XG4gICAgICAgIHZhciBzdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgZm9yKHZhciBpIGluIHRoaXMucmV3YXJkX2xpc3Qpe1xuICAgICAgICAgICAgaWYodGhpcy5yZXdhcmRfbGlzdFtpXS5zdGF0dXMgPT0gMSl7XG4gICAgICAgICAgICAgICAgc3RhdHVzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGF0dXMgPSBzdGF0dXMgfHwgKHRoaXMubGVzc19jb3VudCA+IDApO1xuICAgICAgICB2YXIgU2NlbmVDb25zdCA9IHJlcXVpcmUoXCJzY2VuZV9jb25zdFwiKTtcbiAgICAgICAgdmFyIE1haW5TY2VuZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwibWFpbnNjZW5lX2NvbnRyb2xsZXJcIik7XG4gICAgICAgIE1haW5TY2VuZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZXRCdWlsZFJlZFN0YXR1cyhTY2VuZUNvbnN0LkNlbnRlclNjZW5lQnVpbGQuc3RhcnRvd2VyLCB7YmlkOiAxLCBzdGF0dXM6IHN0YXR1c30pIFxuICAgIH0sXG5cbiAgICB1cGRhdGVNYXhUb3dlcjpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgaWYoZGF0YSAmJiBkYXRhLm1heF90b3dlciAmJiB0aGlzLm1heF90b3dlciA8IGRhdGEubWF4X3Rvd2VyKXtcbiAgICAgICAgICAgIHRoaXMubWF4X3Rvd2VyID0gZGF0YS5tYXhfdG93ZXI7XG4gICAgICAgIH1cbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShTdGFydG93ZXJFdmVudC5GaWdodF9TdWNjZXNzX0V2ZW50KVxuICAgIH0sXG5cbiAgICB1cGRhdGVMZXNzQ291bnQ6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIGlmKGRhdGEuY291bnQgIT0gbnVsbCl7XG4gICAgICAgICAgICB0aGlzLmxlc3NfY291bnQgPSBkYXRhLmNvdW50IHx8IDA7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlZFBvaW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZGF0YS5idXlfY291bnQgIT0gbnVsbCl7XG4gICAgICAgICAgICB0aGlzLmJ1eV9jb3VudCA9IGRhdGEuYnV5X2NvdW50O1xuICAgICAgICB9XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoU3RhcnRvd2VyRXZlbnQuQ291bnRfQ2hhbmdlX0V2ZW50KTtcbiAgICB9LFxuXG4gICAgZ2V0Tm93VG93ZXJJZDpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhfdG93ZXIgfHwgMDtcbiAgICB9LFxuXG4gICAgZ2V0VG93ZXJMZXNzQ291bnQ6ZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVzc19jb3VudDtcbiAgICB9LFxuXG4gICAgZ2V0QnV5Q291bnQ6ZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV5X2NvdW50O1xuICAgIH1cbn0pOyJdfQ==
|