var reGameStates = require('GameStates'); cc.Class({ extends: cc.Component, properties: { //显示计算日期的label DateLabel: cc.Node, ManagerWorker: cc.Node, Tips: cc.Node, ManageAd: cc.Node, }, Init(_BFirstLoadGame) { this.CurrentMonth = GlobalD.GameData.GameMonth; this.CurrentYear = GlobalD.GameData.GameYear; this.SetDate(); //Update new day // this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameYear.toString() + '年 : ' + GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日'; var myDate = new Date(); myDate.setFullYear(GlobalD.GameData.GameYear, GlobalD.GameData.GameMonth, GlobalD.GameData.GameDay); var tempGameMonth = myDate.getMonth(); // var tempGameYear = myDate.getFullYear(); this.schedule(function () { myDate.setDate(myDate.getDate() + 1); GlobalD.GameData.GameYear = myDate.getFullYear(); GlobalD.GameData.GameMonth = myDate.getMonth(); GlobalD.GameData.GameDay = myDate.getDate(); cc.sys.localStorage.setItem('GameYear', GlobalD.GameData.GameYear); cc.sys.localStorage.setItem('GameMonth', GlobalD.GameData.GameMonth); cc.sys.localStorage.setItem('GameDay', GlobalD.GameData.GameDay); if (GlobalD.GameData.GameYear != 0) { this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameYear.toString() + '年 : ' + GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日'; } else if (GlobalD.GameData.GameMonth != 0) { this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日'; } else { this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameDay.toString() + '日'; } if (tempGameMonth != myDate.getMonth()) { tempGameMonth = myDate.getMonth(); } //过了一个月 if (this.CurrentMonth != GlobalD.GameData.GameMonth) { this.CurrentMonth = GlobalD.GameData.GameMonth; this.MonthEvent(); } //过了一年 if (this.CurrentYear != GlobalD.GameData.GameYear) { this.CurrentYear = GlobalD.GameData.GameYear; this.YearEvent(); } }.bind(this), 5, cc.repeatForever()); this._ManageAd = this.ManageAd.getComponent('ManageAd'); if (task.TaskIconCountClick != 14) return; setTimeout(() => { // console.log('第一次登录:',_BFirstLoadGame); //第二次登录时候,拿时间数据,计算时差,大于两小时的可以给看登录视频领取奖励 if (_BFirstLoadGame) { let oldDate = cc.sys.localStorage.getItem('loginRewardDate'); // console.log('oldDate:',oldDate, new Date(oldDate)); if (!oldDate) { //第二次登录没有记录时间的话 var date2 = new Date(); //开始时间 cc.sys.localStorage.setItem('loginRewardDate', date2); return; } var limitValue = 30;//分钟 var limitDValue = limitValue * 60 * 1000;//分钟内的毫秒数 var dateEnd = new Date(); //结束时间 var dateDValue = dateEnd.getTime() - new Date(oldDate).getTime() //时间差的毫秒数 //计算出小时数 var leave1 = dateDValue % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 var hours = Math.floor(leave1 / (3600 * 1000)) // console.log('当前时间:', hours); //计算出相差天数 var days = Math.floor(dateDValue / (24 * 3600 * 1000)) //计算相差分钟数 var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 var minutes = Math.floor(leave2 / (60 * 1000)) //计算相差秒数 var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 var seconds = Math.round(leave3 / 1000) console.log(" 相差 " + days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒") //用毫秒数比较如果时间大于30分钟 if (dateDValue >= limitDValue) { this.onloginGetVideoAd(); } else { this._ManageAd.onPlayBannerAd(); } } else { var date1 = new Date(); //开始时间 //第一次登录记录时间 cc.sys.localStorage.setItem('loginRewardDate', date1); // console.log('第一次登录记录时间:',date1); // this._ManageAd.onPlayBannerAd(); } }, 500); }, SetDate() { if (GlobalD.GameData.GameYear != 0) { this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameYear.toString() + '年 : ' + GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日'; } else if (GlobalD.GameData.GameMonth != 0) { this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日'; } else { this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameDay.toString() + '日'; } }, //观看视频获取奖励 onGetVideoAd() { //直接初始化,初始化一次 //预加载广告 // 'adunit-4f20955a953757b6',//视频激励广告3 AD.loadVideoAdFromIndex('ManageTimer', 2, (res) => { console.log('预加载广告回调:', res); }); this._ManageAd.onCloseBannerAd(); UtilsPrefabs.videoAdPrefab(); }, //登录时观看视频 onloginGetVideoAd() { //预加载广告 // 'adunit-4f20955a953757b6',//视频激励广告3 AD.loadVideoAdFromIndex('LoginReward', 4, (res) => { console.log('预加载广告回调:', res); }); this._ManageAd.onCloseBannerAd(); UtilsPrefabs.loginAdPrefab(() => { var date1 = new Date(); //开始时间 //设置在本地记录看视频日期 cc.sys.localStorage.setItem('loginRewardDate', date1); this._ManageAd.onPlayBannerAd(); }, () => { this._ManageAd.onPlayBannerAd(); }); }, MonthEvent() { //每月扣费 this._AllBuildingRuningCost(); this.WorkerSalary(); this.GiveMoney(); UtilsWX.getAllBuild(); UtilsWX.openWXSubContextView(true); setTimeout(function () { UtilsWX.openWXSubContextView(false); }.bind(this), 5000) // this.YearEvent(); GlobalD.GameData.PlusGolden(GlobalD.GameData.EveryGive[0]); GlobalD.GameData.PlusDiamond(GlobalD.GameData.EveryGive[1]); setTimeout(() => { //显示奖励 this.onGetVideoAd(); }, 6000); }, YearEvent() { //每年上报告 var data1 = { name: "Whoareme", openId: userData.openId, } UtilsWX.postMessage(data1); }, WorkerSalary() { let ManagerWorkerScript = this.ManagerWorker.getComponent('ManageWorker'); let Wages = ManagerWorkerScript.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()].Wages; Wages = parseInt(Wages); // cc.log('Wages='+Wages); let CanPayNum = GlobalD.GameData.GetGolden() / Wages; // cc.log('CanPayNum1111='+CanPayNum); CanPayNum = parseInt(CanPayNum); // cc.log('CanPayNum2222='+CanPayNum); // cc.log('GetWorkerNum='+GlobalD.GameData.GetWorkerNum()); GlobalD.GameData.PlusGolden(-(GlobalD.GameData.GetWorkerNum() * Wages)); let PayPersonNum = CanPayNum - GlobalD.GameData.GetWorkerNum(); // cc.log('PayPersonNum='+PayPersonNum); if (PayPersonNum > 0 || PayPersonNum == 0) return; let FirePersonNum = -PayPersonNum; ManagerWorkerScript.FirePerson(FirePersonNum); this.Tips.active = true; this.Tips.getChildByName('Detail').getComponent(cc.Label).string = ' ' + FirePersonNum + '名工人因发不出工资已经离职'; this.scheduleOnce( function () { this.Tips.active = false; }, 2 ) }, GiveMoney() { let ManagerWorkerScript = this.ManagerWorker.getComponent('ManageWorker'); let Wages = ManagerWorkerScript.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()].Wages; GlobalD.GameData.PlusGolden(parseInt(Wages)); }, onRuningCost() { this._AllBuildingRuningCost(); // GlobalD.GameData.PlusGolden(-1000105); }, onAddGolden() { GlobalD.GameData.PlusGolden(1000); GlobalD.GameData.PlusDiamond(1000); // GlobalD.GameData.SetWorkerLV(0); }, //每个月扣除可销售的全部建筑的 _AllBuildingRuningCost() { let buildsTildMapUnit = GlobalD.game.buildingsTiledMapUnit; let length = buildsTildMapUnit.length; GlobalD.GameData.GetGoldenCallBack((res) => { if (!res) { cc.warn('获取金币失败:', res); return; } // cc.log('获取金币:', res.resGolden); let _currentGolden = res.resGolden; for (let i = 0; i < length; i++) { // let _buildType = buildsTildMapUnit[i].getBuildingsInfo.buildInfo.buildType; // if (reGameStates.BuildType.Housing == _buildType // || reGameStates.BuildType.Special == _buildType // || reGameStates.BuildType.Factory == _buildType) { // continue; // } //reGameStates.BuildType.Shop !== _buildType //只要运营成本不为零,都会每个月扣钱 if (buildsTildMapUnit[i].getBuildingsInfo.buildInfo.RunningCost == 0) continue; let _runningCost = buildsTildMapUnit[i].getBuildingsInfo.buildInfo.RunningCost; // cc.log(_currentGolden, _runningCost); let _golden = _currentGolden - _runningCost; //交的起的,都交 if (_golden < 0) { // cc.log('不够钱交租啦,此建筑暂停营业:', buildsTildMapUnit[i].getBuildingsInfo.buildInfo.buildingName); buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItSaleable = false; buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItStopOperation = true; buildsTildMapUnit[i].getBuildingsInfo.onStopOperation(); GlobalD.game.onAddBuildingTipView(buildsTildMapUnit[i].getBuildingsInfo); } else { GlobalD.game.onRemoveBuildingTipView(buildsTildMapUnit[i].getBuildingsInfo); buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItStopOperation = false; buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItSaleable = true; GlobalD.GameData.PlusGolden(-_runningCost); // cc.log('商店:', buildsTildMapUnit[i].getBuildingsInfo.buildInfo.buildingName, '= 收费:', _runningCost); } //更新信息 // cc.log('更新信息'); GlobalD.game.updateBuilding(buildsTildMapUnit[i].getBuildingsInfo); _currentGolden = _golden; } }) } });