Files
fc/dev/project/library/imports/50/5072823f-9aef-43ab-980d-1727c26d43e2.js
2026-05-24 10:21:26 +08:00

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