TimeControl.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import { App } from "./Manager/App";
  2. import hallModel from "./model/hallModel";
  3. const { ccclass, property } = cc._decorator;
  4. @ccclass
  5. export default class TimeControl extends cc.Component {
  6. public static _instance;
  7. private currentTimeCount = 60;//_当前倒计时秒数
  8. private timeCount = 60;//体力倒计时长
  9. private consumeTili = -1;// 每局消耗体力
  10. private tiliMax: number = 10;//体力最大值
  11. private currentTili: number = 10;//当前体力
  12. public static get instance() {
  13. return TimeControl._instance;
  14. }
  15. public static set instance(value) {
  16. TimeControl._instance = value
  17. }
  18. onLoad(): void {
  19. TimeControl.instance = this;
  20. App.Facade.registerModel(hallModel);
  21. this.InitTimeLocal();
  22. }
  23. /**
  24. * 初始化当前缓存
  25. */
  26. InitTimeLocal(): void {
  27. var SausageCountTime = App.LocalStorageUtil.getNumber(App.LocalStorageUtil.lst_CountTime);
  28. if (!SausageCountTime) App.LocalStorageUtil.setNumber(App.LocalStorageUtil.lst_CountTime, Date.parse(new Date().toString()));
  29. var SausageCountSecond = App.LocalStorageUtil.getNumber(App.LocalStorageUtil.lst_CountSecond);
  30. if (!SausageCountSecond) App.LocalStorageUtil.setNumber(App.LocalStorageUtil.lst_CountSecond, 0);
  31. var SausageTili = App.LocalStorageUtil.getNumber(App.LocalStorageUtil.lst_Tili);
  32. if (!SausageTili) App.LocalStorageUtil.setNumber(App.LocalStorageUtil.lst_Tili, TimeControl.instance.currentTili);
  33. else this.currentTili = Number(SausageTili);
  34. }
  35. private CountTili() {//倒计时体力
  36. App.Facade.getModel(hallModel).updateTiliNumber();
  37. if (App.DataManager.TimeFlag) return;
  38. App.DataManager.TimeFlag = true;
  39. this.schedule(this.CountFunc, 1);
  40. }
  41. private CountFunc() {
  42. if (this.currentTili >= this.tiliMax) {
  43. this.StopCount();
  44. return;
  45. }
  46. this.currentTimeCount -= 1;
  47. App.Facade.getModel(hallModel).updateTiliJishi(true, App.DataManager.TimeChange(this.currentTimeCount));
  48. if (this.currentTimeCount <= 0) {
  49. this.currentTimeCount = this.timeCount;
  50. App.DataManager.UpdateTili(1);
  51. App.Facade.getModel(hallModel).updateTiliNumber();
  52. }
  53. }
  54. private OfflineTime() {
  55. var _currentTime = Date.parse(new Date().toString());
  56. var _lastTime = App.LocalStorageUtil.getNumber(App.LocalStorageUtil.lst_CountTime);
  57. var _miaoshu = App.LocalStorageUtil.getNumber(App.LocalStorageUtil.lst_CountSecond);
  58. this.currentTimeCount = Number(_miaoshu);
  59. var timeInterval = (_currentTime - Number(_lastTime)) / 1000;
  60. var _temp = timeInterval - this.currentTimeCount;
  61. if (_temp < 0) {
  62. this.currentTimeCount = Math.abs(_temp);
  63. } else {
  64. if (_temp < this.timeCount) {
  65. App.DataManager.UpdateTili(1);
  66. this.currentTimeCount = this.timeCount - _temp;
  67. } else {
  68. var _temp2 = Math.floor(_temp / this.timeCount);
  69. var _temp3 = Math.floor(_temp % this.timeCount);
  70. var tempTili = this.currentTili + _temp2;
  71. if (tempTili >= this.tiliMax) {
  72. this.currentTili = this.tiliMax;
  73. App.DataManager.SaveMessage();
  74. } else {
  75. App.DataManager.UpdateTili(_temp2);
  76. }
  77. App.Facade.getModel(hallModel).updateTiliNumber();
  78. this.currentTimeCount = this.timeCount - _temp3;
  79. }
  80. if (this.currentTili >= this.tiliMax) {
  81. this.StopCount();
  82. }
  83. }
  84. // console.log('OfflineTime:this.currentTimeCount', this.currentTimeCount, typeof (this.currentTimeCount));
  85. }
  86. private StopCount() {
  87. this.currentTimeCount = this.timeCount;
  88. this.unschedule(this.CountFunc);
  89. App.Facade.getModel(hallModel).updateTiliJishi(false);
  90. App.DataManager.TimeFlag = false;
  91. console.log('StopCount:隐藏倒计时文本********************', App.DataManager.TimeFlag);
  92. }
  93. }