| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- 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;
- }
- })
- }
- });
|