var reGameStates = require('GameStates'); var AConfig = require('../Config'); //全局数据类 cc.Class({ extends: cc.Component, properties: { //记录全部道路的index GameData_highwayIndex: { default: [], type: [cc.Integer], visible: false, serializable: false, }, //记录建筑物存储的信息 GameData_buildings: { default: [], visible: false, serializable: false, }, HighWayPrefabs: cc.Prefab, //MyMapNode //建筑物的节点 BuildingsParent: { default: null, type: cc.Node, }, ManageUI: { default: null, type: cc.Node, }, GameVersion: { default: -1, type: cc.Integer, }, //读取数据 readData: { default: null, visible: false, } }, onLoad() { //初始化GameData全局变量 GlobalD.GameData = this; this.GameConfig(); }, start() { this._tiledMap = GlobalD.TiledMap._tiledMap; //老铁 请选择 游戏模式 //true 每次进入清除数据模式 //false 正常带网络存档模式 this.isDebugMode(false); // return; }, //设置游戏模式 isDebugMode: function (b) { if (b) { // 清除 this.onClearAllData(function () { this.getData(); }.bind(this)); } else { // 正常游戏 this.getData(); } }, getData: function () { //如果开局没有读取到网络数据,就这里初始化 if (userData.readData == null) { //开局初始化的数据 this.getNetworkData((res) => { //获取网络数据后处理 if (res.code == 0) { //记录读取的数据到内存里面 this.readData = res.data.userdata; console.log("获取数据this.ReadData:", res); //不管网络数据回调成功或者失败。都会进行初始化操作 //后面初始化失败,是要进行其他操作的; this.Init(); this.InitSceneInfo(); } else { //失败 cc.log('读取网络数据失败!', res); this.readData = null; //todo //打出提示,网络状态,考虑重新登录等。 //不管网络数据回调成功或者失败。都会进行初始化操作 //后面初始化失败,是要进行其他操作的; this.Init(); this.InitSceneInfo(); } }); } else { this.readData = userData.readData; cc.log('读取到数据?:', this.readData) this.Init(); this.InitSceneInfo(); } }, GameConfig() { this.AddBuildingCost = 5; this.RemoveBuildingCost = 5; }, InitSceneInfo() { let _BFirstLoadGame = this.readData ? this.readData.BFirstLoadGame : false; //根据顺序生成 //初始化道路 this.onSpawnHighway(); //初始化时间ui cc.find("GameNode/ManageTimer").getComponent('ManageTimer').Init(_BFirstLoadGame); //初始化金钱ui cc.find("GameNode/ManageGolden").getComponent('ManageGolden').InitManageGlodenUI(); //初始化地图物件 cc.find("GameNode/ManageMap").getComponent('ManageMap').InitManageMap(); //初始化生成房屋 this.ManageUI.getComponent('ManageBuildings').InitBuildings(); //初始化生成人物 cc.find('GameNode/ManageWorker').getComponent('ManageWorker').InitWorkerAI(); //初始化新手教学 GlobalD.ManageTask.InitTask(_BFirstLoadGame); this.ManageUI.getComponent('ManageUI').Init(); // 自动存储数据 this.AutoSaveData = function () { // this.onAutoSaveData(); this.pushData(); }; this.schedule(this.AutoSaveData, 5); }, //InitData Init: function () { // let BFirstLoadGame = parseInt(cc.sys.localStorage.getItem('BFirstLoadGame')); let _BFirstLoadGame = this.readData ? this.readData.BFirstLoadGame : false; //date this.GameYear = 0; this.GameMonth = 0; this.GameDay = 0; this.GameDate = '0000/00/01'; this.Golden = 210; this.Diamond = 5; this.WorkerLV = 0; this.WorkerNum = 0; this.CharacterInfoArray = []; this.WorkerCapacity = 5; this.TerritoryStateArray = [1, 1, 1, 1, 1, 1, 1, 1];//测试,全开地图 // this.BuildingStateArray = [ // 0, //公路 // 0, //路铲 // 1, //拆迁 // 1, //农舍 // 0, //单元楼 // 0, //别墅 // 1, //农田 // 0, //伐木场 // 0, //矿坑 // 0, //加工厂 // 1, //便利店 // 0, //鲜花店 // 0, //甜品店 // 0, //汉堡店 // 0, //咖啡店 // 0, //洋装店 // 0, //酒吧 // 1, //绿化带 // 0, //喷泉 // 0, //游乐场 // 0, //医院 // 0,//警察局 // 0];//银行 this.BuildingStateArray = [ 1,//公路 1, //路铲 1, //拆迁 1, //农舍 1, //单元楼 1, //别墅 1, //农田 1, //伐木场 1, //矿坑 1, //加工厂 1, //便利店 1,//鲜花店 1, //甜品店 1, //汉堡店 1, //咖啡店 1, //洋装店 1,//酒吧 1,//绿化带 1, //喷泉 1,//游乐场 0, //医院 0, //警察局 0];//银行 this.BuildingLockStateArray = [ 1, //公路 1, //路铲 1, //拆迁 1, //农舍 0, //单元楼 0, //别墅 1, //农田 0,//伐木场 0, //矿坑 1, //加工厂 1,//便利店 0,//鲜花店 0,//甜品店 0,//汉堡店 0, //咖啡店 0,//洋装店 0, //酒吧 1,//绿化带 0, //喷泉 0, //游乐场 0,//医院 0, //警察局 0];//银行 // this.BuildingLockStateArray = [ // 1, //公路 // 1, //路铲 // 1, //拆迁 // 1, //农舍 // 1, //单元楼 // 1, //别墅 // 1, //农田 // 1,//伐木场 // 1,//矿坑 // 1, //加工厂 // 1,//便利店 // 1,//鲜花店 // 1,//甜品店 // 1, //汉堡店 // 1,//咖啡店 // 1, //洋装店 // 1, //酒吧 // 1, //绿化带 // 1,//喷泉 // 1,//游乐场 // 0, //医院 // 0,//警察局 // 0];//银行 this.BuildingNumArray = [ 0,//公路 0, //路铲 0, //拆迁 4, //农舍 1, //单元楼 1, //别墅 4, //农田 1, //伐木场 1, //矿坑 2,//加工厂 2, //便利店 1, //鲜花店 1, //甜品店 1, //汉堡店 1, //咖啡店 1,//洋装店 1, //酒吧 1,//绿化带 1,//喷泉 1, //游乐场 0,//医院 0,//警察局 0];//银行 // this.BuildingNumArray = [ // 0, //公路 // 0, //路铲 // 0, //拆迁 // 10, //农舍 // 10, //单元楼 // 10, //别墅 // 10, //农田 // 10, //伐木场 // 10, //矿坑 // 10, //加工厂 // 10, //便利店 // 9, //鲜花店 // 8, //甜品店 // 7,//汉堡店 // 6,//咖啡店 // 5,//洋装店 // 4, //酒吧 // 10, //绿化带 // 10,//喷泉 // 10, //游乐场 // 0, //医院 // 0, //警察局 // 0];//银行 //钻石消耗默认值 this.DiamondNumArray = AConfig.DiamondArray; // cc.log('钻石消耗默认值',this.DiamondNumArray); this.EveryDayRewardsArray = [0, 0, 0, 0, 0, 0, 0]; this.LastTimeEveryDayRewardsDate = '0000/00/00'; this.LastTimeLuckDate = '0000/00/00'; this.FoodTradeState = 1; this.WoodTradeState = 1; this.MineralTradeState = 1; //转盘分享给钻石金币 this.shareGive = [200, 50]; //签到分享给钻石金币 this.signInGive = [200, 50]; //每个月 给的 低保 this.EveryGive = [500, 10]; //公共分享 this.publicGive = [200, 50]; //观看视频给予的奖励 this.videoAdGive = [2000, 50]; //解锁视频时候视频给予的奖励 this.manageUIVideoAdGive = [800, 15]; //第二次登录给的奖励 this.secondLoginAdGive = [1000, 15]; //每天抽奖次数 this.LotteryTimes = 10; // if (!_BFirstLoadGame) { // cc.sys.localStorage.setItem('BFirstLoadGame', 1); // // init date // this.InitDateFirst(); // this.InitGoldenFirst(); // this.InitDiamondFirst(); // this.InitWorkerLVFirst(); // this.InitWorkerNumFirst(); // this.InitWorkerCapacityFirst(); // this.InitTerritoryStateArrayFirst(); // this.InitBuildingStateArrayFirst(); // this.InitBuildingLockStateArrayFirst(); // this.InitBuildingNumArrayFirst(); // this.InitEveryDayRewardsArrayFirst(); // this.InitLastTimeEveryDayRewardsDateFirst(); // this.InitFoodTradeStateFirst(); // this.InitWoodTradeStateFirst(); // this.InitMineralTradeStateFirst(); // } // else { // this.InitDate(); // this.InitGolden(); // this.InitDiamond(); // this.InitWorkerLV(); // this.InitWorkerNum(); // this.InitWorkerCapacity(); // this.InitTerritoryStateArray(); // this.InitBuildingStateArray(); // this.InitBuildingLockStateArray(); // this.InitBuildingNumArray(); // this.InitEveryDayRewardsArray(); // this.InitLastTimeEveryDayRewardsDate(); // this.InitFoodTradeState(); // this.InitWoodTradeState(); // this.InitMineralTradeState(); // } if (_BFirstLoadGame) { cc.log('初始化网络数据'); //读取日期数据 this.GameYear = this.readData.GameYear; this.GameMonth = this.readData.GameMonth; this.GameDay = this.readData.GameDay; //读取金币 this.Golden = this.readData.Golden; //读取钻石 this.Diamond = this.readData.Diamond; // cc.log('this.readData.Diamond', this.readData.Diamond); //读取工人等级 this.WorkerLV = this.readData.WorkerLV; //工人数量 this.WorkerNum = this.readData.WorkerNum; //工人容量 this.WorkerCapacity = this.readData.WorkerCapacity; this.GameDate = this.readData.GameDate; this.LastTimeEveryDayRewardsDate = this.readData.LastTimeEveryDayRewardsDate; this.LastTimeLuckDate = this.readData.LastTimeLuckDate; this.EveryDayRewardsArray = this.readData.EveryDayRewardsArray.split('_'); this.TerritoryStateArray = this.readData.TerritoryStateArray.split('_'); //面板状态 this.BuildingStateArray = this.readData.BuildingStateArray.split('_'); this.BuildingLockStateArray = this.readData.BuildingLockStateArray.split('_'); this.BuildingNumArray = this.readData.BuildingNumArray.split('_'); //既然价格是定死的,就不用读取了 this.DiamondNumArray = AConfig.DiamondArray;//this.readData.DiamondNumArray.split('_'); this.FoodTradeState = this.readData.FoodTradeState; this.WoodTradeState = this.readData.WoodTradeState; this.MineralTradeState = this.readData.MineralTradeState; //工人工作信息 this.CharacterInfoArray = this.readData.characterInfoArray; //道路数据 this.GameData_highwayIndex = this.readData.highwayIndex; //建筑物数据 this.GameData_buildings = this.readData.buildingsInfo; this.LotteryTimes = this.readData.LotteryTimes; //任务 task.TaskIconCountClick = this.readData.TaskIconCountClick; //测试5W // this.PlusDiamond(50000); } // //初始化工人信息 // let characterInfo = cc.sys.localStorage.getItem('CharacterInfoArray'); // if (characterInfo) { // this.CharacterInfoArray = JSON.parse(characterInfo); // } // //初始化存储的建筑信息 // let getbuildingsData = cc.sys.localStorage.getItem('Buildings'); // if (getbuildingsData) // this.GameData_buildings = JSON.parse(getbuildingsData); // // cc.log('getbuildingsData= '+getbuildingsData); }, InitDateFirst: function () { cc.sys.localStorage.setItem('GameYear', this.GameYear); cc.sys.localStorage.setItem('GameMonth', this.GameMonth); cc.sys.localStorage.setItem('GameDay', this.GameDay); }, InitDate: function () { if (cc.sys.localStorage.getItem('GameYear')) { this.GameYear = cc.sys.localStorage.getItem('GameYear'); this.GameMonth = cc.sys.localStorage.getItem('GameMonth'); this.GameDay = cc.sys.localStorage.getItem('GameDay'); } else { this.InitDateFirst(); } }, InitGameDateFirst: function () { cc.sys.localStorage.setItem('GameDate', this.GameDate); }, InitGameDate: function () { if (cc.sys.localStorage.getItem('GameDate')) { this.GameDate = cc.sys.localStorage.getItem('GameDate'); } else { this.InitGameDateFirst(); } }, InitGoldenFirst: function () { cc.sys.localStorage.setItem('Golden', this.Golden); }, InitGolden: function () { if (cc.sys.localStorage.getItem('Golden')) { this.Golden = parseInt(cc.sys.localStorage.getItem('Golden')); } else { this.InitGoldenFirst(); } }, InitDiamondFirst: function () { cc.sys.localStorage.setItem('Diamond', this.Diamond); }, InitDiamond: function () { if (cc.sys.localStorage.getItem('Diamond')) { this.Diamond = parseInt(cc.sys.localStorage.getItem('Diamond')); } else { this.InitDiamondFirst(); } }, InitWorkerLVFirst: function () { cc.sys.localStorage.setItem('WorkerLV', this.WorkerLV); }, InitWorkerLV: function () { if (cc.sys.localStorage.getItem('WorkerLV')) { this.WorkerLV = parseInt(cc.sys.localStorage.getItem('WorkerLV')); } else { this.InitWorkerNumFirst(); } }, InitWorkerNumFirst: function () { cc.sys.localStorage.setItem('WorkerNum', this.WorkerNum); }, InitWorkerNum: function () { if (cc.sys.localStorage.getItem('WorkerNum')) this.WorkerNum = parseInt(cc.sys.localStorage.getItem('WorkerNum')); else cc.warn('没有 workerNum 数据!'); }, InitWorkerCapacityFirst: function () { cc.sys.localStorage.setItem('WorkerCapacity', this.WorkerCapacity); }, InitWorkerCapacity: function () { if (cc.sys.localStorage.getItem('WorkerCapacity')) { this.WorkerCapacity = parseInt(cc.sys.localStorage.getItem('WorkerCapacity')); } else { this.InitWorkerCapacityFirst(); } }, InitTerritoryStateArrayFirst: function () { cc.sys.localStorage.setItem('TerritoryStateArray', this.TerritoryStateArray.join('_')); }, InitTerritoryStateArray: function () { if (cc.sys.localStorage.getItem('TerritoryStateArray')) { this.TerritoryStateArray = cc.sys.localStorage.getItem('TerritoryStateArray').split('_'); } else { this.InitTerritoryStateArrayFirst(); } }, InitBuildingStateArrayFirst: function () { cc.sys.localStorage.setItem('BuildingStateArray', this.BuildingStateArray.join('_')); }, InitBuildingStateArray: function () { if (cc.sys.localStorage.getItem('BuildingStateArray')) { this.BuildingStateArray = cc.sys.localStorage.getItem('BuildingStateArray').split('_'); } else { this.InitBuildingStateArrayFirst(); } }, InitBuildingLockStateArrayFirst: function () { cc.sys.localStorage.setItem('BuildingLockStateArray', this.BuildingLockStateArray.join('_')); }, InitBuildingLockStateArray: function () { if (cc.sys.localStorage.getItem('BuildingLockStateArray')) { this.BuildingLockStateArray = cc.sys.localStorage.getItem('BuildingLockStateArray').split('_'); } else { this.InitBuildingLockStateArrayFirst(); } }, InitBuildingNumArrayFirst: function () { cc.sys.localStorage.setItem('BuildingNumArray', this.BuildingNumArray.join('_')); }, InitBuildingNumArray: function () { if (cc.sys.localStorage.getItem('BuildingNumArray')) { this.BuildingNumArray = cc.sys.localStorage.getItem('BuildingNumArray').split('_'); } else { this.InitBuildingNumArrayFirst(); } }, InitEveryDayRewardsArrayFirst: function () { cc.sys.localStorage.setItem('EveryDayRewardsArray', this.EveryDayRewardsArray.join('_')); }, InitEveryDayRewardsArray: function () { if (cc.sys.localStorage.getItem('EveryDayRewardsArray')) { this.EveryDayRewardsArray = cc.sys.localStorage.getItem('EveryDayRewardsArray').split('_'); } else { this.InitEveryDayRewardsArrayFirst(); } }, InitLastTimeEveryDayRewardsDateFirst: function () { cc.sys.localStorage.setItem('LastTimeEveryDayRewardsDate', this.LastTimeEveryDayRewardsDate); // cc.log('111111111111==='+cc.sys.localStorage.getItem('LastTimeEveryDayRewardsDate')); }, InitLastTimeEveryDayRewardsDate: function () { if (cc.sys.localStorage.getItem('LastTimeEveryDayRewardsDate')) this.LastTimeEveryDayRewardsDate = cc.sys.localStorage.getItem('LastTimeEveryDayRewardsDate'); else cc.warn('没有 LastTimeEveryDayRewardsDate 数据!'); }, InitFoodTradeStateFirst: function () { cc.sys.localStorage.setItem('FoodTradeState', this.FoodTradeState); }, InitFoodTradeState: function () { if (cc.sys.localStorage.getItem('FoodTradeState')) { this.FoodTradeState = parseInt(cc.sys.localStorage.getItem('FoodTradeState')); } else { this.InitFoodTradeStateFirst(); } }, InitWoodTradeStateFirst: function () { cc.sys.localStorage.setItem('WoodTradeState', this.WoodTradeState); }, InitWoodTradeState: function () { if (cc.sys.localStorage.getItem('WoodTradeState')) { this.WoodTradeState = parseInt(cc.sys.localStorage.getItem('WoodTradeState')); } else { this.InitWoodTradeStateFirst(); } }, InitMineralTradeStateFirst: function () { cc.sys.localStorage.setItem('MineralTradeState', this.MineralTradeState); }, InitMineralTradeState: function () { if (cc.sys.localStorage.getItem('MineralTradeState')) { this.MineralTradeState = parseInt(cc.sys.localStorage.getItem('MineralTradeState')); } else { this.InitMineralTradeStateFirst(); } }, InitLotteryTimes: function () { if (cc.sys.localStorage.getItem('MineralTradeState')) { this.MineralTradeState = parseInt(cc.sys.localStorage.getItem('MineralTradeState')); } else { this.InitMineralTradeStateFirst(); } }, //GET / SET /Plus GetGameDate: function () { // if (!cc.sys.localStorage.getItem('GameDate')) { // this.InitGameDateFirst(); // } return this.GameDate; }, SetGameDate: function (num) { this.GameDate = num; // cc.sys.localStorage.setItem('GameDate', this.GameDate); // this.Goldenlabel.getComponent(cc.Label).string = this.Golden; }, PlusGameDate: function (num) { this.GameDate += num; // cc.sys.localStorage.setItem('GameDate', this.GameDate); // this.Goldenlabel.getComponent(cc.Label).string = this.Golden; }, GetGolden: function () { // if (!cc.sys.localStorage.getItem('Golden')) { // this.InitGoldenFirst(); // } return parseInt(this.Golden); }, GetGoldenCallBack(_CallBack) { // if (!cc.sys.localStorage.getItem('Golden')) { // this.InitGoldenFirst(); // cc.log('GetGoldenCallBack1'); // } if (_CallBack) _CallBack({ resGolden: parseInt(this.Golden) }); }, SetGolden: function (Num) { let LastMoney = this.Golden; this.Golden = Num; let CurrentMoney = Num; // var data1 = { // name: "Whoareyou", // openId : userData.openId, // // } // UtilsWX.postMessage(data1); // UtilsWX.setUserData("score", Num); // cc.sys.localStorage.setItem('Golden', this.Golden); // this.Goldenlabel.getComponent(cc.Label).string = this.Golden; this.ManageUI.getComponent('ManageUI').GoldenChangeCallBack(this.GetGolden(), LastMoney, CurrentMoney); }, PlusGolden: function (Num) { if (this.Golden + Num < 0) { this.SetGolden(0); } else { this.SetGolden(this.Golden + Num); } // task.task50W(); }, GetDiamond: function () { // if (!cc.sys.localStorage.getItem('Diamond')) { // this.InitDiamondFirst(); // } return parseInt(this.Diamond); }, SetDiamond: function (num) { let LastMoney = this.Diamond; this.Diamond = num; let CurrentMoney = num; // cc.sys.localStorage.setItem('Diamond', this.Diamond); this.ManageUI.getComponent('ManageUI').DiamondChangeCallBack(this.GetDiamond(), LastMoney, CurrentMoney); }, PlusDiamond: function (num) { if (this.Diamond + num < 0) { this.SetDiamond(0); } else { this.SetDiamond(this.Diamond + num); } }, GetWorkerLV: function () { // if (!cc.sys.localStorage.getItem('WorkerLV')) { // this.InitWorkerLVFirst(); // } return parseInt(this.WorkerLV); }, SetWorkerLV: function (num) { this.WorkerLV = num; // cc.sys.localStorage.setItem('WorkerLV', this.WorkerLV); }, PlusWorkerLV: function (num) { this.WorkerLV += num; // cc.sys.localStorage.setItem('WorkerLV', this.WorkerLV); }, GetWorkerNum: function () { // if (!cc.sys.localStorage.getItem('WorkerNum')) { // this.InitWorkerNumFirst(); // } // cc.log('get', this.WorkerNum); return parseInt(this.WorkerNum); }, SetWorkerNum: function (num) { this.WorkerNum = num; // cc.sys.localStorage.setItem('WorkerNum', this.WorkerNum); }, PlusWorkerNum: function (num) { this.WorkerNum += num; // cc.log('set', this.WorkerNum); // cc.sys.localStorage.setItem('WorkerNum', this.WorkerNum); }, GetLastTimeEveryDayRewardsDate: function () { // if (!cc.sys.localStorage.getItem('LastTimeEveryDayRewardsDate')) { // this.InitLastTimeEveryDayRewardsDateFirst(); // } // cc.log('get', this.WorkerNum); return this.LastTimeEveryDayRewardsDate; }, //获取转盘 时间 GetLastTimeLuckDate: function () { // if (!cc.sys.localStorage.getItem('LastTimeEveryDayRewardsDate')) { // this.InitLastTimeEveryDayRewardsDateFirst(); // } // cc.log('get', this.WorkerNum); return this.LastTimeLuckDate; }, //设置转盘时间 SetLastTimeLuckDate: function (DateString) { this.LastTimeLuckDate = DateString; // cc.sys.localStorage.setItem('LastTimeEveryDayRewardsDate', this.LastTimeEveryDayRewardsDate); }, SetLastTimeEveryDayRewardsDate: function (DateString) { this.LastTimeEveryDayRewardsDate = DateString; // cc.sys.localStorage.setItem('LastTimeEveryDayRewardsDate', this.LastTimeEveryDayRewardsDate); }, //工人信息数组 GetWorkerCharacterInfoArray: function () { return this.CharacterInfoArray; }, SetWorkerCharacterInfoArray: function (item) { this.CharacterInfoArray = item; // cc.log('更新的数据:', this.CharacterInfoArray); //Init自动存储 todo }, /*** */ GetWorkerCapacity: function () { // if (!cc.sys.localStorage.getItem('WorkerCapacity')) { // this.InitWorkerCapacityFirst(); // } return parseInt((this.WorkerCapacity)); }, SetWorkerCapacity: function (num) { this.WorkerCapacity = num; // cc.sys.localStorage.setItem('WorkerCapacity', this.WorkerCapacity); }, PlusWorkerCapacity: function (num) { this.WorkerCapacity += num; // cc.sys.localStorage.setItem('WorkerCapacity', this.WorkerCapacity); }, GetTerritoryStateArray: function () { // if (!cc.sys.localStorage.getItem('TerritoryStateArray')) { // this.InitTerritoryStateArrayFirst(); // } return this.TerritoryStateArray; }, SetTerritoryStateArray: function (aTerritoryStateArray) { this.TerritoryStateArray = aTerritoryStateArray; // cc.sys.localStorage.setItem('TerritoryStateArray', this.TerritoryStateArray.join('_')); }, PlusTerritoryStateArray: function (Item) { this.TerritoryStateArray.push(Item); // cc.sys.localStorage.setItem('TerritoryStateArray', this.TerritoryStateArray.join('_')); }, GetBuildingStateArray: function () { // if (!cc.sys.localStorage.getItem('BuildingStateArray')) { // this.InitBuildingStateArrayFirst(); // } return this.BuildingStateArray; }, SetBuildingStateArray: function (aBuildingStateArray) { this.BuildingStateArray = aBuildingStateArray; // cc.sys.localStorage.setItem('BuildingStateArray', this.BuildingStateArray.join('_')); }, PlusBuildingStateArray: function (Item) { this.BuildingStateArray.push(Item); // cc.sys.localStorage.setItem('BuildingStateArray', this.BuildingStateArray.join('_')); }, GetBuildingLockStateArray: function () { // if (!cc.sys.localStorage.getItem('BuildingLockStateArray')) { // this.InitBuildingLockStateArrayFirst(); // } return this.BuildingLockStateArray; }, SetBuildingLockStateArray: function (aArray) { this.BuildingLockStateArray = aArray; // cc.sys.localStorage.setItem('BuildingLockStateArray', this.BuildingLockStateArray.join('_')); }, PlusBuildingLockStateArray: function (Item) { this.BuildingLockStateArray.push(Item); // cc.sys.localStorage.setItem('BuildingLockStateArray', this.BuildingLockStateArray.join('_')); }, GetBuildingNumArray: function () { // if (!cc.sys.localStorage.getItem('BuildingNumArray')) { // this.InitBuildingNumArrayFirst(); // } return this.BuildingNumArray; }, SetBuildingNumArray: function (aBuildingNumArray) { this.BuildingNumArray = aBuildingNumArray; // cc.sys.localStorage.setItem('BuildingNumArray', this.BuildingNumArray.join('_')); }, PlusBuildingNumArray: function (Item) { this.BuildingNumArray.push(Item); // cc.sys.localStorage.setItem('BuildingNumArray', this.BuildingNumArray.join('_')); }, //操作钻石数据 GetDiamondNumArray: function () { return this.DiamondNumArray; }, SetDiamondNumArray: function (aDiamondNumArray) { this.DiamondNumArray = aDiamondNumArray; }, GetEveryDayRewardsArray: function () { // if (!cc.sys.localStorage.getItem('EveryDayRewardsArray')) { // this.InitEveryDayRewardsArrayFirst(); // } return this.EveryDayRewardsArray; }, SetEveryDayRewardsArray: function (aArray) { this.EveryDayRewardsArray = aArray; // cc.sys.localStorage.setItem('EveryDayRewardsArray', this.EveryDayRewardsArray.join('_')); }, PlusEveryDayRewardsArray: function (Item) { this.EveryDayRewardsArray.push(Item); // cc.sys.localStorage.setItem('EveryDayRewardsArray', this.EveryDayRewardsArray.join('_')); }, GetFoodTradeState: function () { // if (!cc.sys.localStorage.getItem('FoodTradeState')) { // this.InitFoodTradeStateFirst(); // } return parseInt((this.FoodTradeState)); }, SetFoodTradeState: function (num) { this.FoodTradeState = num; // cc.sys.localStorage.setItem('FoodTradeState', this.FoodTradeState); }, PlusFoodTradeState: function (num) { this.FoodTradeState += num; // cc.sys.localStorage.setItem('FoodTradeState', this.FoodTradeState); }, GetWoodTradeState: function () { // if (!cc.sys.localStorage.getItem('WoodTradeState')) { // this.InitWoodTradeStateFirst(); // } return parseInt((this.WoodTradeState)); }, SetWoodTradeState: function (num) { this.WoodTradeState = num; // cc.sys.localStorage.setItem('WoodTradeState', this.WoodTradeState); }, PlusWoodTradeState: function (num) { this.WoodTradeState += num; // cc.sys.localStorage.setItem('WoodTradeState', this.WoodTradeState); }, GetMineralTradeState: function () { // if (!cc.sys.localStorage.getItem('MineralTradeState')) { // this.InitMineralTradeStateFirst(); // } return parseInt((this.MineralTradeState)); }, SetMineralTradeState: function (num) { this.MineralTradeState = num; // cc.sys.localStorage.setItem('MineralTradeState', this.MineralTradeState); }, PlusMineralTradeState: function (num) { this.MineralTradeState += num; // cc.sys.localStorage.setItem('MineralTradeState', this.MineralTradeState); }, GetLotteryTimes: function () { return parseInt((this.LotteryTimes)); }, SetLotteryTimes: function (num) { this.LotteryTimes = num; }, PlusLotteryTimes: function (num) { this.LotteryTimes += num; }, //Reset ResetFirstLoadGame: function () { cc.sys.localStorage.removeItem('BFirstLoadGame'); }, ResetDate: function () { cc.sys.localStorage.removeItem('GameDay'); cc.sys.localStorage.removeItem('GameMonth'); cc.sys.localStorage.removeItem('GameDay'); }, ResetGameDate: function () { cc.sys.localStorage.removeItem('GameDate'); }, ResetGold: function () { cc.sys.localStorage.removeItem('Golden'); }, ResetDiamond: function () { cc.sys.localStorage.removeItem('Diamond'); }, ResetWorkerLV: function () { cc.sys.localStorage.removeItem('WorkerLV'); }, ResetWorkerNum: function () { cc.sys.localStorage.removeItem('WorkerNum'); }, ResetWorkerCapacity: function () { cc.sys.localStorage.removeItem('WorkerCapacity'); }, ResetTerritoryStateArray: function () { cc.sys.localStorage.removeItem('TerritoryStateArray'); }, ResetBuildingStateArray: function () { cc.sys.localStorage.removeItem('BuildingStateArray'); }, ResetBuildingLockStateArray: function () { cc.sys.localStorage.removeItem('BuildingLockStateArray'); }, ResetBuildingNumArray: function () { cc.sys.localStorage.removeItem('BuildingNumArray'); }, ResetEveryDayRewardsArray: function () { cc.sys.localStorage.removeItem('EveryDayRewardsArray'); }, ResetLastTimeEveryDayRewardsDate: function () { cc.sys.localStorage.removeItem('LastTimeEveryDayRewardsDate'); }, ResetFoodTradeState: function () { cc.sys.localStorage.removeItem('FoodTradeState'); }, ResetWoodTradeState: function () { cc.sys.localStorage.removeItem('WoodTradeState'); }, ResetMineralTradeState: function () { cc.sys.localStorage.removeItem('MineralTradeState'); }, ResetLotteryTimes: function () { cc.sys.localStorage.removeItem('LotteryTimes'); }, //RestAll ResetAll: function () { this.ResetFirstLoadGame(); this.ResetDate(); this.ResetGameDate() this.ResetGold(); this.ResetDiamond(); this.ResetWorkerLV(); this.ResetWorkerNum(); this.ResetWorkerCapacity(); this.ResetTerritoryStateArray(); this.ResetBuildingStateArray(); this.ResetBuildingLockStateArray(); this.ResetBuildingNumArray(); this.ResetEveryDayRewardsArray(); this.ResetLastTimeEveryDayRewardsDate(); this.ResetFoodTradeState(); this.ResetWoodTradeState(); this.ResetMineralTradeState(); this.ResetLotteryTimes(); }, ResetDate: function () { this.FullDate = [0, 0, 0]; cc.sys.localStorage.setItem('Date', this.FullDate); }, onSaveData() { this.onAutoSaveData(); }, //自动保存的数据,在init调用,这是保存到本地硬盘中 onAutoSaveData() { //保存金币 cc.sys.localStorage.setItem('Golden', this.Golden); //保存钻石 cc.sys.localStorage.setItem('Diamond', this.Diamond); //工人等级 cc.sys.localStorage.setItem('WorkerLV', this.WorkerLV); //工人数量 cc.sys.localStorage.setItem('WorkerNum', this.WorkerNum); //工人最大容量 cc.sys.localStorage.setItem('WorkerCapacity', this.WorkerCapacity); //游戏日期 cc.sys.localStorage.setItem('GameDate', this.GameDate); //最后一次领奖日期 cc.sys.localStorage.setItem('LastTimeEveryDayRewardsDate', this.LastTimeEveryDayRewardsDate); //每日奖励数组 cc.sys.localStorage.setItem('EveryDayRewardsArray', this.EveryDayRewardsArray.join('_')); //区域状态数组 cc.sys.localStorage.setItem('TerritoryStateArray', this.TerritoryStateArray.join('_')); //面板 //建筑状态数组 cc.sys.localStorage.setItem('BuildingStateArray', this.BuildingStateArray.join('_')); //可以建造的建筑数量数组 cc.sys.localStorage.setItem('BuildingNumArray', this.BuildingNumArray.join('_')); //食物销售状态 cc.sys.localStorage.setItem('FoodTradeState', this.FoodTradeState); //木材销售状态 cc.sys.localStorage.setItem('WoodTradeState', this.WoodTradeState); //矿石销售状态 cc.sys.localStorage.setItem('MineralTradeState', this.MineralTradeState); //抽奖次数 cc.sys.localStorage.setItem('LotteryTimes', this.LotteryTimes); //工人工作的信息 if (this.CharacterInfoArray) { // cc.log('自动保存数据:', this.CharacterInfoArray); cc.sys.localStorage.setItem('CharacterInfoArray', JSON.stringify(this.CharacterInfoArray)); } //道路数据 let hightway = { highwayIndex: this.GameData_highwayIndex, AllHighwayStylesAndIndex: GlobalD.game.AllHighwayStylesAndIndex, }; // cc.log('道路数据:', (hightway)); cc.sys.localStorage.setItem('highway', JSON.stringify(hightway)); //建筑物数据 cc.sys.localStorage.setItem('Buildings', JSON.stringify(this.GameData_buildings)); let getbuildingsData = cc.sys.localStorage.getItem('Buildings'); if (getbuildingsData) this.GameData_buildings = JSON.parse(getbuildingsData); // cc.log('getbuildingsData2222= '+getbuildingsData); }, //清除所有的数据 onClearAllData(callback) { this.pushCleaData(callback); //清空首次登陆时间记录 //记录二次登陆视频奖励 cc.sys.localStorage.removeItem('loginRewardDate'); //公路数据 cc.sys.localStorage.removeItem('highway'); //建筑数据 cc.sys.localStorage.removeItem('Buildings'); //人物信息数据 cc.sys.localStorage.removeItem('CharacterInfoArray'); //任务索引 cc.sys.localStorage.removeItem('TaskIconCountClick'); this.ResetAll(); }, onClearAndGotoLogin() { this.onClearAllData(() => { this.unschedule(this.AutoSaveData); cc.director.loadScene('Login', function () { task.showPointerNode = null; }.bind(this)); }); }, //初始化道路 onSpawnHighway() { // 获取InitPoint层 let InitPos = this._tiledMap.getLayer('InitPoint'); InitPos.enabled = false; // //道路数据 // highwayIndex: this.GameData_highwayIndex, // allHighwayStylesAndIndex: GlobalD.game.AllHighwayStylesAndIndex, // var highwayTemp = cc.sys.localStorage.getItem('highway'); //创建公路数据 if (this.readData) { //保存到内存中 this.GameData_highwayIndex = this.readData.highwayIndex; //先赋值道路的对象数组 let _AllHighwayAIndex = GlobalD.game.AllHighwayStylesAndIndex = this.readData.allHighwayStylesAndIndex; //获取最后建造公路的层级 this.HighwayLayer = this._tiledMap.getLayer('Highway'); for (let i = 0; i < _AllHighwayAIndex.length; i++) { let highwayTemp = cc.instantiate(this.HighWayPrefabs); highwayTemp.parent = this.HighwayLayer.node; let tiledTile = highwayTemp.addComponent('TiledTile'); let _tiledPos = GlobalD.TiledMap.analyticalIndexData(_AllHighwayAIndex[i].highwayInfoIndex); tiledTile.x = _tiledPos.x; tiledTile.y = _tiledPos.y; //地图设置可行走区域公路设置 AStar.setMapSolid(_tiledPos.x, _tiledPos.y, 0); // _buildId ==0 是公路 let _buildId = 0; let occupyTemp = cc.v2(_buildId, _AllHighwayAIndex[i].highwayInfoIndex); GlobalD.game.OccupyArray.push(occupyTemp); highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(_AllHighwayAIndex[i].highwayInfoType); } } else { //如果用户没有存储数据 //根据InitPoint 的数据,创建初始化的地图数据 的初始化数据 this.HighwayLayer = this._tiledMap.getLayer('Highway'); for (var i = 0; i < 29; i++) { for (var j = 0; j < 32; j++) { let tilesPos = cc.v2(i, j); if (InitPos.getTileGIDAt(tilesPos)) { let index = GlobalD.TiledMap.getIndex(tilesPos); this.GameData_highwayIndex.push(index); let highwayTemp = cc.instantiate(this.HighWayPrefabs); highwayTemp.parent = this.HighwayLayer.node; let tiledTile = highwayTemp.addComponent('TiledTile'); tiledTile.x = tilesPos.x; tiledTile.y = tilesPos.y; // cc.log('onSpawnHighway2'); //地图设置可行走区域公路设置 AStar.setMapSolid(tilesPos.x, tilesPos.y, 0); // _buildId ==0 是公路 let _buildId = 0; let occupyTemp = cc.v2(_buildId, index); GlobalD.game.OccupyArray.push(occupyTemp); let tile = InitPos.getTiledTileAt(tilesPos.x, tilesPos.y, true); let _MoveType = reGameStates.HighwayType.moveX; // if (tile.gid == 15) { // _MoveType = reGameStates.HighwayType.moveX; // } else if (tile.gid == 16) { _MoveType = reGameStates.HighwayType.moveY; } else if (tile.gid == 11) { _MoveType = reGameStates.HighwayType.ZebraCrossingX; } else if (tile.gid == 12) { _MoveType = reGameStates.HighwayType.ZebraCrossingY; } // return; //更换公路样式 GlobalD.game.onCreateDifferentRoadStyles({ _buildId: _buildId, _highwayType: _MoveType, _roadIndex: index, _hightwayNode: highwayTemp }); } } } } //外面的两条路 let initRoad = this._tiledMap.getLayer('Road'); initRoad.enabled = false; for (var i = 29; i < 31; i++) { for (var j = 0; j < 32; j++) { let tilesPos = cc.v2(i, j); // cc.log('road tilesPos',tilesPos) if (initRoad.getTileGIDAt(tilesPos)) { let index = GlobalD.TiledMap.getIndex(tilesPos); this.GameData_highwayIndex.push(index); let highwayTemp = cc.instantiate(this.HighWayPrefabs); highwayTemp.parent = this.HighwayLayer.node; let tiledTile = highwayTemp.addComponent('TiledTile'); tiledTile.x = tilesPos.x; tiledTile.y = tilesPos.y; // cc.log('initRoad'); //地图设置可行走区域公路设置 AStar.setMapSolid(tilesPos.x, tilesPos.y, 0); let _buildId = 0; let occupyTemp = cc.v2(_buildId, index); GlobalD.game.OccupyArray.push(occupyTemp); //更换公路样式 if (j >= 25 && j <= 27 || j >= 19 && j <= 21 || j >= 9 && j <= 11) highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.none); else highwayTemp.getComponent('HighwayInfo').onChangeHighwayStyles(reGameStates.HighwayType.moveY); } } } }, //上传清空数据的请求 pushCleaData(callback) { var data = []; data["openid"] = userData.openId; data["userdata"] = ""; httpUtils.Post(httpUtils.setUserData, data, function (resData) { // console.log("push清空成功", resData); if (resData.code == 0) { // this.getText.string = data.data.userdata; } if (callback != null) { callback(); } }.bind(this), function (resData) { // console.log("失败", resData); if (callback != null) { callback(); } }.bind(this)); }, //保存数据请求 pushData: function () { // cc.log(this.EveryDayRewardsArray); var datas = { version: this.GameVersion, BFirstLoadGame: 1,//只要push数据,就证明已经开始第一次游戏了 //时间 GameYear: this.GameYear, GameMonth: this.GameMonth, GameDay: this.GameDay, Golden: this.Golden, Diamond: this.Diamond, WorkerLV: this.WorkerLV, WorkerNum: this.WorkerNum, WorkerCapacity: this.WorkerCapacity, GameDate: this.GameDate, LastTimeEveryDayRewardsDate: this.LastTimeEveryDayRewardsDate, LastTimeLuckDate: this.LastTimeLuckDate, EveryDayRewardsArray: this.EveryDayRewardsArray.join('_'), TerritoryStateArray: this.TerritoryStateArray.join('_'), //面板状态 BuildingStateArray: this.BuildingStateArray.join('_'), BuildingLockStateArray: this.BuildingLockStateArray.join('_'), BuildingNumArray: this.BuildingNumArray.join('_'), DiamondNumArray: this.DiamondNumArray.join('_'), FoodTradeState: this.FoodTradeState, WoodTradeState: this.WoodTradeState, MineralTradeState: this.MineralTradeState, LotteryTimes: this.LotteryTimes, //工人工作信息 characterInfoArray: this.CharacterInfoArray, //道路数据 highwayIndex: this.GameData_highwayIndex, allHighwayStylesAndIndex: GlobalD.game.AllHighwayStylesAndIndex, //建筑物数据 buildingsInfo: this.GameData_buildings, //任务 TaskIconCountClick: task.TaskIconCountClick } var data = []; data["openid"] = userData.openId; data["userdata"] = JSON.stringify(datas); // console.log("提交的数据是", datas); httpUtils.Post(httpUtils.setUserData, data, function (resData) { // let _userData = resData.data.userdata; // let _JsonData = JSON.parse(_userData); // console.log("push成功", resData, _JsonData); // if (resData.code == 0) { // this.getText.string = data.data.userdata; // } }.bind(this), function (resData) { // console.log("失败", resData); }.bind(this)); }, getNetworkData: function (callback) { // console.log("获取数据成功:", data); // var datas = { // money: 3254857, // lv: 99 // } var data = []; data["openid"] = userData.openId; // data["userdata"] = JSON.stringify(datas); httpUtils.Post(httpUtils.getUserData, data, function (data) { callback(data); }.bind(this), function (data) { // console.log("失败", data); callback(data); }.bind(this)); }, onSetTaskIconCountClick() { task.TaskIconCountClick = 0; } });