ManageTimer.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. var reGameStates = require('GameStates');
  2. cc.Class({
  3. extends: cc.Component,
  4. properties: {
  5. //显示计算日期的label
  6. DateLabel: cc.Node,
  7. ManagerWorker: cc.Node,
  8. Tips: cc.Node,
  9. },
  10. Init() {
  11. this.CurrentMonth = GlobalD.GameData.GameMonth;
  12. this.CurrentYear = GlobalD.GameData.GameYear;
  13. this.SetDate();
  14. //Update new day
  15. // this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameYear.toString() + '年 : ' + GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日';
  16. var myDate = new Date();
  17. myDate.setFullYear(GlobalD.GameData.GameYear, GlobalD.GameData.GameMonth, GlobalD.GameData.GameDay);
  18. var tempGameMonth = myDate.getMonth();
  19. var tempGameYear = myDate.getFullYear();
  20. this.schedule(function () {
  21. myDate.setDate(myDate.getDate() + 1);
  22. GlobalD.GameData.GameYear = myDate.getFullYear();
  23. GlobalD.GameData.GameMonth = myDate.getMonth();
  24. GlobalD.GameData.GameDay = myDate.getDate();
  25. cc.sys.localStorage.setItem('GameYear', GlobalD.GameData.GameYear);
  26. cc.sys.localStorage.setItem('GameMonth', GlobalD.GameData.GameMonth);
  27. cc.sys.localStorage.setItem('GameDay', GlobalD.GameData.GameDay);
  28. if (GlobalD.GameData.GameYear != 0) {
  29. this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameYear.toString() + '年 : ' + GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日';
  30. }
  31. else if (GlobalD.GameData.GameMonth != 0) {
  32. this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日';
  33. }
  34. else {
  35. this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameDay.toString() + '日';
  36. }
  37. if (tempGameMonth != myDate.getMonth()) {
  38. tempGameMonth = myDate.getMonth();
  39. }
  40. //过了一个月
  41. if (this.CurrentMonth != GlobalD.GameData.GameMonth) {
  42. this.CurrentMonth = GlobalD.GameData.GameMonth;
  43. this.MonthEvent();
  44. }
  45. //过了一年
  46. if (this.CurrentYear != GlobalD.GameData.GameYear) {
  47. this.CurrentYear = GlobalD.GameData.GameYear;
  48. this.YearEvent();
  49. }
  50. }.bind(this), 5, cc.repeatForever());
  51. },
  52. SetDate() {
  53. if (GlobalD.GameData.GameYear != 0) {
  54. this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameYear.toString() + '年 : ' + GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日';
  55. }
  56. else if (GlobalD.GameData.GameMonth != 0) {
  57. this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameMonth.toString() + '月 : ' + GlobalD.GameData.GameDay.toString() + '日';
  58. }
  59. else {
  60. this.DateLabel.getComponent(cc.Label).string = GlobalD.GameData.GameDay.toString() + '日';
  61. }
  62. },
  63. MonthEvent() {
  64. //每月扣费
  65. this._AllBuildingRuningCost();
  66. this.WorkerSalary();
  67. this.GiveMoney();
  68. UtilsWX.getAllBuild();
  69. UtilsWX.openWXSubContextView(true);
  70. setTimeout(function () {
  71. UtilsWX.openWXSubContextView(false);
  72. }.bind(this),5000)
  73. // this.YearEvent();
  74. GlobalD.GameData.PlusGolden(GlobalD.GameData.EveryGive[0]);
  75. GlobalD.GameData.PlusDiamond(GlobalD.GameData.EveryGive[1]);
  76. },
  77. YearEvent() {
  78. //每年上报告
  79. var data1 = {
  80. name: "Whoareme",
  81. openId : userData.openId,
  82. }
  83. UtilsWX.postMessage(data1);
  84. },
  85. WorkerSalary() {
  86. let ManagerWorkerScript = this.ManagerWorker.getComponent('ManageWorker');
  87. let Wages = ManagerWorkerScript.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()].Wages;
  88. Wages = parseInt(Wages);
  89. // cc.log('Wages='+Wages);
  90. let CanPayNum = GlobalD.GameData.GetGolden() / Wages;
  91. // cc.log('CanPayNum1111='+CanPayNum);
  92. CanPayNum = parseInt(CanPayNum);
  93. // cc.log('CanPayNum2222='+CanPayNum);
  94. // cc.log('GetWorkerNum='+GlobalD.GameData.GetWorkerNum());
  95. GlobalD.GameData.PlusGolden(-(GlobalD.GameData.GetWorkerNum() * Wages));
  96. let PayPersonNum = CanPayNum - GlobalD.GameData.GetWorkerNum();
  97. // cc.log('PayPersonNum='+PayPersonNum);
  98. if (PayPersonNum > 0 || PayPersonNum == 0) return;
  99. let FirePersonNum = -PayPersonNum;
  100. ManagerWorkerScript.FirePerson(FirePersonNum);
  101. this.Tips.active = true;
  102. this.Tips.getChildByName('Detail').getComponent(cc.Label).string = ' ' + FirePersonNum + '名工人因发不出工资已经离职';
  103. this.scheduleOnce(
  104. function () {
  105. this.Tips.active = false;
  106. }, 2
  107. )
  108. },
  109. GiveMoney() {
  110. let ManagerWorkerScript = this.ManagerWorker.getComponent('ManageWorker');
  111. let Wages = ManagerWorkerScript.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()].Wages;
  112. GlobalD.GameData.PlusGolden(parseInt(Wages));
  113. },
  114. onRuningCost() {
  115. this._AllBuildingRuningCost();
  116. // GlobalD.GameData.PlusGolden(-1000105);
  117. },
  118. onAddGolden() {
  119. GlobalD.GameData.PlusGolden(1000000);
  120. GlobalD.GameData.PlusDiamond(1000);
  121. // GlobalD.GameData.SetWorkerLV(0);
  122. },
  123. //每个月扣除可销售的全部建筑的
  124. _AllBuildingRuningCost() {
  125. let buildsTildMapUnit = GlobalD.game.buildingsTiledMapUnit;
  126. let length = buildsTildMapUnit.length;
  127. GlobalD.GameData.GetGoldenCallBack((res) => {
  128. if (!res) {
  129. cc.warn('获取金币失败:', res);
  130. return;
  131. }
  132. // cc.log('获取金币:', res.resGolden);
  133. let _currentGolden = res.resGolden;
  134. for (let i = 0; i < length; i++) {
  135. // let _buildType = buildsTildMapUnit[i].getBuildingsInfo.buildInfo.buildType;
  136. // if (reGameStates.BuildType.Housing == _buildType
  137. // || reGameStates.BuildType.Special == _buildType
  138. // || reGameStates.BuildType.Factory == _buildType) {
  139. // continue;
  140. // }
  141. //reGameStates.BuildType.Shop !== _buildType
  142. //只要运营成本不为零,都会每个月扣钱
  143. if (buildsTildMapUnit[i].getBuildingsInfo.buildInfo.RunningCost == 0) continue;
  144. let _runningCost = buildsTildMapUnit[i].getBuildingsInfo.buildInfo.RunningCost;
  145. // cc.log(_currentGolden, _runningCost);
  146. let _golden = _currentGolden - _runningCost;
  147. //交的起的,都交
  148. if (_golden < 0) {
  149. // cc.log('不够钱交租啦,此建筑暂停营业:', buildsTildMapUnit[i].getBuildingsInfo.buildInfo.buildingName);
  150. buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItSaleable = false;
  151. buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItStopOperation = true;
  152. buildsTildMapUnit[i].getBuildingsInfo.onStopOperation();
  153. GlobalD.game.onAddBuildingTipView(buildsTildMapUnit[i].getBuildingsInfo);
  154. } else {
  155. GlobalD.game.onRemoveBuildingTipView(buildsTildMapUnit[i].getBuildingsInfo);
  156. buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItStopOperation = false;
  157. buildsTildMapUnit[i].getBuildingsInfo.buildInfo.isItSaleable = true;
  158. GlobalD.GameData.PlusGolden(-_runningCost);
  159. // cc.log('商店:', buildsTildMapUnit[i].getBuildingsInfo.buildInfo.buildingName, '= 收费:', _runningCost);
  160. }
  161. //更新信息
  162. // cc.log('更新信息');
  163. GlobalD.game.updateBuilding(buildsTildMapUnit[i].getBuildingsInfo);
  164. _currentGolden = _golden;
  165. }
  166. })
  167. }
  168. });