import User from "../../FrameWork/User/User"; import Common5 from "../../Platform/th/Common5"; import TaskManager, { MainTaskIdEnum } from "../JuQingChat/TaskManager"; const {ccclass, property} = cc._decorator; @ccclass export default class KaiKuangDataManage{ public static curMountingConfig = null public static setCurMountingConfig(config){ this.curMountingConfig = config } public static getCurMountingConfig(){ return this.curMountingConfig } public static curMountingPrice = null public static setCurMountingPrice(price){ this.curMountingPrice = price } public static getCurMountingPrice(){ return this.curMountingPrice } //所有山峰配置 public static getAllMountingConfig(){ return Common5.AllMountingConfig } //根据价格类型获取山峰 public static getMountingConfigByType(typeStr){ let allMountingConfig = this.getAllMountingConfig() let tempArr = [] for(var i=0;i<allMountingConfig.length;i++){ if(typeStr == allMountingConfig[i].priceType){ tempArr.push(allMountingConfig[i]) } } return tempArr } //根据id获取山峰 public static getMountingConfigById(id){ let allMountingConfig = this.getAllMountingConfig() for(var i=0;i<allMountingConfig.length;i++){ if(id == allMountingConfig[i].id){ return allMountingConfig[i] } } } //随机出需要显示的山峰(类型,数量) public static randomNeedShowMounting(typeStr,count){ let topMountingArr = this.getMountingConfigByType(typeStr) let tempIndexArr = this.getNumberFromArray(0,topMountingArr.length,count) let tempArr = [] for(var i=0;i<tempIndexArr.length;i++){ tempArr.push(topMountingArr[tempIndexArr[i]].id) } return tempArr } public static randomNeedShowMounting2(typeStr,count){ let topMountingArr = this.getMountingConfigByType(typeStr) let tempIndexArr = this.getNumberFromArray(0,topMountingArr.length,count) let tempArr = [] for(var i=0;i<tempIndexArr.length;i++){ tempArr.push(topMountingArr[tempIndexArr[i]].id) } let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id return tempArr } //从min到max中随机取出n个值 public static getNumberFromArray(min,max,count){ //原数组 var arr = []; for (var i = min; i < max; i++) { arr.push(i) } //输出数组 let temp = [] let length = arr.length while(count >0){ var index = Math.floor(Math.random()*length) temp.push(arr[index]) arr.splice(index,1) length-- count-- } // console.log("temp==",temp) return temp } //获取显示山峰 public static getShowMounting(){ let topArr = [] let midArr = [] let bottomArr = [] let leftMounting = User.getCurDayMountingArr() if(leftMounting.length <= 0){ topArr = this.randomNeedShowMounting2("高",2) midArr = this.randomNeedShowMounting("中",3) bottomArr = this.randomNeedShowMounting("低",3) for(var i=0;i<topArr.length;i++){ this.saveDataToStorage(topArr[i],false) } for(var i=0;i<midArr.length;i++){ this.saveDataToStorage(midArr[i],false) } for(var i=0;i<bottomArr.length;i++){ this.saveDataToStorage(bottomArr[i],false) } console.log("内存中没有剩余山峰") } return leftMounting } //保存至内存 public static saveDataToStorage(id,isFinish){ let mountingArr = User.getCurDayMountingArr() let arr = {id:id,isFinish:isFinish} for(var i=0;i<mountingArr.length;i++){ if(mountingArr[i].id == id){ mountingArr[i] = arr return } } mountingArr.push(arr) User.setCurDayMountingArr(mountingArr) } //获取分类后的山峰信息 public static getMountingInfo(){ let leftMounting = this.getShowMounting() let topArr = [] let midArr = [] let bottomArr = [] for(var i=0;i<leftMounting.length;i++){ let mountingConfig = KaiKuangDataManage.getMountingConfigById(leftMounting[i].id) if(mountingConfig.priceType == "高"){ topArr.push({id:leftMounting[i].id,isFinish:leftMounting[i].isFinish}) }else if(mountingConfig.priceType == "中"){ midArr.push({id:leftMounting[i].id,isFinish:leftMounting[i].isFinish}) }else if(mountingConfig.priceType == "低"){ bottomArr.push({id:leftMounting[i].id,isFinish:leftMounting[i].isFinish}) } } return {"高":topArr,"中":midArr,"低":bottomArr} } //所有矿石配置 public static getAllMineralsConfig(){ return Common5.AllMineralsConfig } //所有矿石配置 public static getMineralsConfigById(id){ let allMineralsConfig = this.getAllMineralsConfig() for(var i=0;i<allMineralsConfig.length;i++){ if(id == allMineralsConfig[i].id){ return allMineralsConfig[i] } } } //随机得到勘探出的矿石 public static getKanTanMineralsConfig(){ //随机得到产出的矿石id let mineralsIdArr = null let mineralsRateArr = null mineralsIdArr = this.curMountingConfig.getMineralsIdArr mineralsRateArr = this.curMountingConfig.getMineralsRateArr let randomIndex = Math.floor(Math.random()*100) let sum = 0 let selectId = 0 for(var i=0;i<mineralsRateArr.length;i++){ sum += mineralsRateArr[i] if(randomIndex < sum){ selectId = mineralsIdArr[i] break } } //获取矿石的配置 let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id if(mainId == MainTaskIdEnum.MainTask_535 && Common5.kaiKuangVDIndex>=1){ Common5.kaiKuangVDIndex = 0 return null } let allMineralsConfig = this.getAllMineralsConfig() for(var i=0;i<allMineralsConfig.length;i++){ if(selectId == allMineralsConfig[i].id){ console.log(allMineralsConfig[i], '1111111111111') return allMineralsConfig[i] } } return null } public static clearAllRecord(){ User.setCurDayMountingArr([]) } }