152 lines
4.6 KiB
JavaScript
152 lines
4.6 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '50728I/mu9Dq5gNFyfCbUPi', 'ladder_model');
|
||
|
|
// Scripts/mod/pvp/ladder/ladder_model.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
||
|
|
// @description:
|
||
|
|
// 跨服天梯model
|
||
|
|
// <br/>Create: 2019-07-24 10:23:54
|
||
|
|
// --------------------------------------------------------------------
|
||
|
|
var BridgeClass = require("bridge.class");
|
||
|
|
var RoleController = require("role_controller");
|
||
|
|
var LadderModel = cc.Class({
|
||
|
|
"extends": BridgeClass,
|
||
|
|
ctor: function ctor() {},
|
||
|
|
properties: {},
|
||
|
|
initConfig: function initConfig() {
|
||
|
|
this.myBaseInfo = {}; // 个人数据
|
||
|
|
this.enemyListData = []; // 挑战对手数据
|
||
|
|
this.ladderOpenStatus = 0; // 天梯是否开启
|
||
|
|
|
||
|
|
this.guildwar_red_list = {}; // 红点数据
|
||
|
|
},
|
||
|
|
|
||
|
|
//个人数据
|
||
|
|
setLadderMyBaseInfo: function setLadderMyBaseInfo(data) {
|
||
|
|
this.myBaseInfo = data;
|
||
|
|
},
|
||
|
|
getLadderMyBaseInfo: function getLadderMyBaseInfo() {
|
||
|
|
return this.myBaseInfo;
|
||
|
|
},
|
||
|
|
//获取剩余挑战次数
|
||
|
|
getLeftChallengeCount: function getLeftChallengeCount() {
|
||
|
|
if (this.myBaseInfo) {
|
||
|
|
return this.myBaseInfo.can_combat_num || 0;
|
||
|
|
}
|
||
|
|
return 0;
|
||
|
|
},
|
||
|
|
//获取今日购买次数
|
||
|
|
getTodayBuyCount: function getTodayBuyCount() {
|
||
|
|
if (this.myBaseInfo) {
|
||
|
|
return this.myBaseInfo.buy_combat_num || 0;
|
||
|
|
}
|
||
|
|
return 0;
|
||
|
|
},
|
||
|
|
//获取今日剩余购买次数
|
||
|
|
getTodayLeftBuyCount: function getTodayLeftBuyCount() {
|
||
|
|
var role_vo = RoleController.getInstance().getRoleVo();
|
||
|
|
var buy_count = this.myBaseInfo.buy_combat_num || 0;
|
||
|
|
var max_count = 0;
|
||
|
|
for (var k in game.configs.sky_ladder_data.data_buy_num) {
|
||
|
|
var v = game.configs.sky_ladder_data.data_buy_num[k];
|
||
|
|
if (v.vip <= role_vo.vip_lev) {
|
||
|
|
max_count = max_count + 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var left_count = max_count - buy_count;
|
||
|
|
if (left_count < 0) {
|
||
|
|
left_count = 0;
|
||
|
|
}
|
||
|
|
return left_count;
|
||
|
|
},
|
||
|
|
//设置挑战对手数据
|
||
|
|
setLadderEnemyListData: function setLadderEnemyListData(data) {
|
||
|
|
this.enemyListData = data || {};
|
||
|
|
},
|
||
|
|
updateLadderEnemyListData: function updateLadderEnemyListData(data) {
|
||
|
|
data = data || {};
|
||
|
|
for (var k in data) {
|
||
|
|
var newData = data[k];
|
||
|
|
for (var _ in this.enemyListData) {
|
||
|
|
var oldData = this.enemyListData[_];
|
||
|
|
if (newData.idx == oldData.idx) {
|
||
|
|
for (var key in newData) {
|
||
|
|
oldData[key] = newData[key];
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
getLadderEnemyListData: function getLadderEnemyListData() {
|
||
|
|
return this.enemyListData;
|
||
|
|
},
|
||
|
|
getLadderEnemyDataByIndex: function getLadderEnemyDataByIndex(index) {
|
||
|
|
var enemy_data = {};
|
||
|
|
for (var k in this.enemyListData) {
|
||
|
|
var eData = this.enemyListData[k];
|
||
|
|
if (eData.idx == index) {
|
||
|
|
enemy_data = eData;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return enemy_data;
|
||
|
|
},
|
||
|
|
//天梯是否开启
|
||
|
|
setLadderOpenStatus: function setLadderOpenStatus(status) {
|
||
|
|
this.ladderOpenStatus = status;
|
||
|
|
},
|
||
|
|
//天梯活动是否开启
|
||
|
|
getLadderIsOpen: function getLadderIsOpen() {
|
||
|
|
return this.ladderOpenStatus && this.ladderOpenStatus == 1;
|
||
|
|
},
|
||
|
|
//是否满足天梯功能开启条件 not_tips 不飘字提示
|
||
|
|
getLadderOpenStatus: function getLadderOpenStatus(not_tips) {
|
||
|
|
not_tips = not_tips || false;
|
||
|
|
var role_vo = RoleController.getInstance().getRoleVo();
|
||
|
|
var config = game.configs.sky_ladder_data.data_const.join_min_lev;
|
||
|
|
if (config && config.val <= role_vo.lev) {
|
||
|
|
return {
|
||
|
|
bool: false
|
||
|
|
};
|
||
|
|
} else {
|
||
|
|
if (!not_tips) {
|
||
|
|
nx.tbox(config.desc);
|
||
|
|
}
|
||
|
|
return {
|
||
|
|
bool: false,
|
||
|
|
desc: config.desc
|
||
|
|
};
|
||
|
|
}
|
||
|
|
},
|
||
|
|
//更新天梯红点
|
||
|
|
updateLadderRedStatus: function updateLadderRedStatus(bid, status) {
|
||
|
|
// RedMgr.getInstance().addCalHandler(function () {
|
||
|
|
// let _status = this.guildwar_red_list[bid];
|
||
|
|
// if (_status == status) return
|
||
|
|
// this.guildwar_red_list[bid] = status;
|
||
|
|
// //更新主界面图标红点
|
||
|
|
// let ladder_status = this.checkLadderRedStatus();
|
||
|
|
|
||
|
|
// //更新天梯界面红点
|
||
|
|
// gcore.GlobalEvent.fire(LadderEvent.UpdateLadderRedStatus, bid, status);
|
||
|
|
// }.bind(this), RedIds.Ladder)
|
||
|
|
},
|
||
|
|
checkRedIsShowByRedType: function checkRedIsShowByRedType(redType) {
|
||
|
|
return this.guildwar_red_list[redType] || false;
|
||
|
|
},
|
||
|
|
checkLadderRedStatus: function checkLadderRedStatus() {
|
||
|
|
for (var k in this.guildwar_red_list) {
|
||
|
|
var v = this.guildwar_red_list[k];
|
||
|
|
if (v == true) {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|