"use strict"; cc._RF.push(module, '50728I/mu9Dq5gNFyfCbUPi', 'ladder_model'); // Scripts/mod/ladder/ladder_model.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 跨服天梯model //
Create: 2019-07-24 10:23:54 // -------------------------------------------------------------------- var RoleController = require("role_controller"); var MainSceneController = require("mainscene_controller"); var SceneConst = require("scene_const"); var LadderEvent = require("ladder_event"); var LadderModel = cc.Class({ "extends": BaseClass, 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 Config.sky_ladder_data.data_buy_num) { var v = Config.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 = config.sky_ladder_data.data_const.join_min_lev; if (config && config.val <= role_vo.lev) { return { bool: false }; } else { if (!not_tips) { message(config.desc); } return { bool: false, desc: config.desc }; } }, //更新天梯红点 updateLadderRedStatus: function updateLadderRedStatus(bid, status) { RedMgr.getInstance().addCalHandler(function () { var _status = this.guildwar_red_list[bid]; if (_status == status) return; this.guildwar_red_list[bid] = status; //更新主界面图标红点 var ladder_status = this.checkLadderRedStatus(); MainSceneController.getInstance().setBuildRedStatus(SceneConst.CenterSceneBuild.ladder, { bid: CrossgroundConst.Red_Type.ladder, status: ladder_status }); //更新天梯界面红点 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();