playerModel.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. import { Vec3 } from "cc";
  2. import { msgac } from "../data/msgac";
  3. import { eventManager } from "../manager/eventManager";
  4. import { localStorageManager } from "../manager/localStorageManager";
  5. export class playerModel {
  6. private static _instance: playerModel;
  7. private constructor() { }
  8. public static get instance(): playerModel {
  9. if (!this._instance) {
  10. this._instance = new playerModel();
  11. }
  12. return this._instance;
  13. }
  14. data: any;
  15. // 金币飘动终点位置
  16. coinPosEnd: Vec3;
  17. init() {
  18. let data: any = localStorageManager.instance.getGameData();
  19. this.data = data;
  20. if (!data.level) {
  21. data.level = 1;
  22. }
  23. if (!data.levelAct) {
  24. // 实际关卡数据序号
  25. data.levelAct = 1;
  26. }
  27. if (!data.coin) {
  28. data.coin = 0;
  29. }
  30. if (!data.roleId) {
  31. data.roleId = 1;
  32. }
  33. if (!data.skillObj) {
  34. data.skillObj = {};
  35. }
  36. if (!data.levelEspIdArr) {
  37. data.levelEspIdArr = [];
  38. }
  39. if (!data.turnTableAwardIdArr) {
  40. data.turnTableAwardIdArr = [];
  41. }
  42. if (!data.equipWeaponId) {
  43. data.equipWeaponId = 1011;
  44. }
  45. if (!data.equipDressId) {
  46. data.equipDressId = 2011;
  47. }
  48. if (!data.equipIdArr) {
  49. // 默认有1级武器和1级装备
  50. data.equipIdArr = [data.equipWeaponId, data.equipDressId];
  51. }
  52. }
  53. getEquipDressId() {
  54. return this.data.equipDressId;
  55. }
  56. setEquipDressId(id: number) {
  57. this.data.equipDressId = id;
  58. this.saveData();
  59. }
  60. getEquipWeaponId() {
  61. return this.data.equipWeaponId;
  62. }
  63. setEquipWeaponId(id: number) {
  64. this.data.equipWeaponId = id;
  65. this.saveData();
  66. }
  67. getEquipIdArr() {
  68. return this.data.equipIdArr;
  69. }
  70. addEquipId(id: number) {
  71. if (this.data.equipIdArr.indexOf(id) != -1) {
  72. return;
  73. }
  74. this.data.equipIdArr.push(id);
  75. this.saveData();
  76. }
  77. // 是否已展示过引导小手 1:已显示过了
  78. getHandShow() {
  79. return this.data.handShow;
  80. }
  81. setHandShow(hand: number) {
  82. this.data.handShow = hand;
  83. this.saveData();
  84. }
  85. resetTurnTableAward() {
  86. this.data.turnTableAwardIdArr = [];
  87. this.saveData();
  88. }
  89. getTurnTableAwardIdArr() {
  90. return this.data.turnTableAwardIdArr;
  91. }
  92. addTurnTableAwardId(id: number) {
  93. if (this.data.turnTableAwardIdArr.indexOf(id) != -1) {
  94. return;
  95. }
  96. this.data.turnTableAwardIdArr.push(id);
  97. this.saveData();
  98. }
  99. getTurnTableFreeTime() {
  100. let turnTableFreeTime = this.data.turnTableFreeTime;
  101. if (typeof (turnTableFreeTime) == "string") {
  102. return new Date(turnTableFreeTime);
  103. }
  104. if (typeof (turnTableFreeTime) == "object") {
  105. return turnTableFreeTime;
  106. }
  107. return null;
  108. }
  109. setTurnTableFreeTime(date: object) {
  110. this.data.turnTableFreeTime = date;
  111. this.saveData();
  112. }
  113. isLevelEspUnlock(id: number) {
  114. if (this.data.levelEspIdArr.indexOf(id) != -1) {
  115. return true;
  116. }
  117. return false;
  118. }
  119. unlockLevelEsp(id: number) {
  120. if (this.data.levelEspIdArr.indexOf(id) == -1) {
  121. this.data.levelEspIdArr.push(id);
  122. this.saveData();
  123. }
  124. }
  125. getSkillById(id: number) {
  126. let skill = this.data.skillObj[id];
  127. if (!skill) {
  128. skill = {};
  129. skill.id = id;
  130. skill.num = 0;
  131. }
  132. return skill;
  133. }
  134. addSkillNumById(id: number, num?: number) {
  135. if (!num) {
  136. num = 1;
  137. }
  138. let skill = this.data.skillObj[id];
  139. if (!skill) {
  140. skill = {};
  141. skill.id = id;
  142. skill.num = 0;
  143. this.data.skillObj[id] = skill;
  144. }
  145. skill.num += num;
  146. this.saveData();
  147. }
  148. subSkillNumById(id: number) {
  149. let skill = this.data.skillObj[id];
  150. if (!skill) {
  151. return;
  152. }
  153. skill.num--;
  154. this.saveData();
  155. }
  156. getRoleId() {
  157. return this.data.roleId;
  158. }
  159. setRoleId(roleId: number) {
  160. this.data.roleId = roleId;
  161. this.saveData();
  162. }
  163. getLevel() {
  164. return this.data.level;
  165. }
  166. setLevel(level: number) {
  167. this.data.level = level;
  168. this.saveData();
  169. }
  170. getLevelAct() {
  171. return this.data.levelAct;
  172. }
  173. setLevelAct(levelAct: number) {
  174. this.data.levelAct = levelAct;
  175. this.saveData();
  176. }
  177. saveData() {
  178. localStorageManager.instance.setGameData(this.data);
  179. }
  180. getCoin() {
  181. return this.data.coin;
  182. }
  183. addCoin(num: number) {
  184. this.data.coin += num;
  185. this.saveData();
  186. // eventManager.instance.send(msgac.showNotice, localText.textObj.coin + "+" + num);
  187. eventManager.instance.send(msgac.coinChange);
  188. }
  189. subCoin(num: number) {
  190. this.data.coin -= num;
  191. this.saveData();
  192. // eventManager.instance.send(msgac.showNotice, localText.textObj.coin + "-" + num);
  193. eventManager.instance.send(msgac.coinChange);
  194. }
  195. }