"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();
|