123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- var BuildingModel = require('./BuildingModel');
- // var BuildingInfoJson = require('../utils/buildingInfo');
- const bInfo = require('../data/buildingInfo');
- const bLevel = require('../data/buildingLevel');
- export default class BuildingManager {
- static _instance;
- _allBuildData = {};
- constructor() {
- // this._allBuildData = BuildingInfoJson.BuildingInfo;
- this._allBuildData = this.formatBuildingInfo();
- console.log(this._allBuildData);
- };
- static get instance() {
- if (!BuildingManager._instance) {
- BuildingManager._instance = new BuildingManager();
- }
- return BuildingManager._instance;
- };
- formatBuildingInfo() {
- let bInfoMap = {}
- bInfo.forEach(n => {
- bInfoMap[n.id] = n
- })
- // let bLevelMap = {}
- // bLevel.forEach(n => {
- // if(bLevelMap[n.buildingId] && bLevelMap[n.buildingId].length > 0) {
- // bLevelMap[n.buildingId].push(n)
- // } else {
- // bLevelMap[n.buildingId] = []
- // bLevelMap[n.buildingId].push(n)
- // }
- // })
- for (let i in bLevel) {
- let curLevel = bLevel[i]
- curLevel.forEach((item, index) => {
- for (var j in item) {
- item[j] = parseInt(item[j])
- }
- let nextObj = {
- nextRate: 0,
- nextRateUnit: 0,
- nextUpScore: 0,
- hasNext: 0
- };
- let staticObj = {
- cityId: bInfoMap[item.buildingId].cityId,
- type: bInfoMap[item.buildingId].type,
- name: bInfoMap[item.buildingId].name,
- jobId: bInfoMap[item.buildingId].jobId,
- };
- if (curLevel[index + 1] && curLevel[index + 1].buildingId == item.buildingId) {
- nextObj = {
- nextRate: parseInt(curLevel[index + 1].rate),
- nextRateUnit: parseInt(curLevel[index + 1].rateUnit),
- nextUpScore: parseInt(curLevel[index + 1].upScore),
- hasNext: 1,
- }
- staticObj['unlockScore'] = 0
- }
- item = Object.assign(item, staticObj, nextObj)
- })
- }
- for (let i in bLevel) {
- let tarObj = Object.assign({}, bLevel[i][0]);
- tarObj['unlockScore'] = bInfoMap[tarObj.buildingId].unlockScore;
- tarObj['level'] = 0;
- bLevel[i].unshift(tarObj);
- }
- return bLevel;
- }
- /**
- * 获取建筑的下一级信息
- * @param {ing} cityId
- * @param {int} buildingId
- * @param {int} level
- */
- getBuildingInfo(cityId, buildingId, level) {
- let building = this._allBuildData[buildingId];
- let buildObj = building.find(n => {
- return n.level == level;
- })
- let buildModel = new BuildingModel(buildObj);
- return buildModel;
- };
- /**
- * 获取对应建筑的最高等级
- * @param {*} buildingId
- */
- getLevelCount(buildingId) {
- let building = this._allBuildData[buildingId];
- return building.length - 1;
- };
- }
|