UserMgr.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import { Node, Prefab, _decorator, assetManager, find, instantiate, sys } from 'cc';
  2. import { UserModel } from '../Model/UserModel';
  3. import { EventDispatcher } from 'db://assets/core_tgx/easy_ui_framework/EventDispatcher';
  4. import { GameEvent } from '../Enum/GameEvent';
  5. const { ccclass, property } = _decorator;
  6. @ccclass('UserManager')
  7. export class UserManager {
  8. private static _instance: UserManager | null = null;
  9. public static get instance(): UserManager {
  10. if (!this._instance) this._instance = new UserManager();
  11. return this._instance;
  12. }
  13. public userModel: UserModel = null;
  14. initilizeModel(): void {
  15. this.userModel = new UserModel();
  16. this.userModel.initialize();
  17. }
  18. /**
  19. * 增加体力
  20. * @param value 增加的数量
  21. * @returns 增加后的体力值
  22. */
  23. public addPower(value: number): number {
  24. // this.userModel.powerCurrent = Math.min(this.userModel.powerCurrent + value, this.userModel.powerMax);
  25. this.userModel.powerCurrent += value;
  26. EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO);
  27. return this.userModel.powerCurrent;
  28. }
  29. /**
  30. * 减少体力
  31. * @param value 减少的数量
  32. * @returns 是否成功减少
  33. */
  34. public reducePower(value: number): boolean {
  35. if (this.userModel.powerCurrent >= value) {
  36. this.userModel.powerCurrent -= value;
  37. EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO);
  38. return true;
  39. }
  40. return false;
  41. }
  42. /**
  43. * 增加雷达免费次数
  44. * @param value 增加的数量
  45. * @returns 增加后的次数
  46. */
  47. public addRadarFreeCount(value: number): number {
  48. this.userModel.radarFreeCount += value;
  49. EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO);
  50. return this.userModel.radarFreeCount;
  51. }
  52. /**
  53. * 减少雷达免费次数
  54. * @param value 减少的数量
  55. * @returns 是否成功减少
  56. */
  57. public reduceRadarFreeCount(value: number): boolean {
  58. if (this.userModel.radarFreeCount >= value) {
  59. this.userModel.radarFreeCount -= value;
  60. EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO);
  61. return true;
  62. }
  63. return false;
  64. }
  65. /**
  66. * 增加侦探免费次数
  67. * @param value 增加的数量
  68. * @returns 增加后的次数
  69. */
  70. public addFreeScreenShotCount(value: number): number {
  71. this.userModel.freeScreenShotCount += value;
  72. EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO);
  73. return this.userModel.freeScreenShotCount;
  74. }
  75. /**
  76. * 减少侦探免费次数
  77. * @param value 减少的数量
  78. * @returns 是否成功减少
  79. */
  80. public reduceFreeScreenShotCount(value: number): boolean {
  81. if (this.userModel.freeScreenShotCount >= value) {
  82. this.userModel.freeScreenShotCount -= value;
  83. EventDispatcher.instance.emit(GameEvent.EVENT_REFRESH_PLAYER_INFO);
  84. return true;
  85. }
  86. return false;
  87. }
  88. reset(): void {
  89. this.userModel.freeScreenShotCount = 0;
  90. this.userModel.radarFreeCount = 0;
  91. }
  92. }