UserModel.ts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import Utils from "../../core/utils/Utils";
  2. import { ITEM_TYPE } from '../../core/common/GameConst';
  3. let savepars = [];
  4. function save(target: any, propertyKey: string) {
  5. savepars.push(propertyKey);
  6. }
  7. export type SignInfo = {
  8. sign_index: number;
  9. sign_time: number;
  10. sign_beisu: number;
  11. }
  12. //用户数据模型
  13. export default class UserModel {
  14. public js_code: string = ""
  15. @save public nickName: string = "";
  16. @save public avatarUrl: string = "";
  17. @save public openid: string = "";
  18. @save public magnet = 0;//道具 磁铁
  19. @save public frozen = 0;//道具 冰冻时间
  20. @save public hint = 0;
  21. @save public time = 0;
  22. @save public soundVolume: number = 1;
  23. @save public vibration: number = 1;
  24. @save public lvboxDrawInfo = {}; //等级宝箱领取状态
  25. @save public starboxDrawInfo = {}; //等级宝箱领取状态
  26. //每10关
  27. public hasLvBox() {
  28. let key = Math.floor(this.lv / 10)
  29. return (key != 0) && !this.lvboxDrawInfo[key];
  30. }
  31. public hasStarBox() {
  32. let key = Math.floor(this.star / 1000)
  33. return (key != 0) && !this.starboxDrawInfo[key];
  34. }
  35. public useMagnet = false;
  36. public useTime = false;
  37. public addItem(type: ITEM_TYPE, num: number = 1) {
  38. switch (type) {
  39. case ITEM_TYPE.Coin:
  40. this.coin += num;
  41. break;
  42. case ITEM_TYPE.Magnet:
  43. this.magnet += num;
  44. break;
  45. case ITEM_TYPE.Hint:
  46. this.hint += num;
  47. break;
  48. case ITEM_TYPE.Frozen:
  49. this.frozen += num;
  50. break;
  51. case ITEM_TYPE.Time:
  52. this.time += num;
  53. break;
  54. default:
  55. debugger;
  56. break;
  57. }
  58. }
  59. @save life = 5;
  60. @save coin = 500;
  61. @save lv = 1;
  62. @save star = 0;
  63. @save openIndex = 0;
  64. @save life_cost_time = 0;
  65. self_rank: number = -1;//自己排行榜位置
  66. @save public invite_draw_info = {};
  67. //检查每日邀请是否领取奖励
  68. checkDayInviteIsDraw(cn: number) {
  69. if (!this.invite_draw_info["day"]) this.invite_draw_info["day"] = {};
  70. return this.invite_draw_info["day"][cn] == 1;
  71. }
  72. inviteDayDraw(cn: number) {
  73. if (!this.invite_draw_info["day"]) this.invite_draw_info["day"] = {};
  74. return this.invite_draw_info["day"][cn] = 1;
  75. }
  76. //检查新邀请是否领取奖励
  77. checkNewInviteIsDraw(cn: number) {
  78. if (!this.invite_draw_info["new"]) this.invite_draw_info["new"] = {};
  79. return this.invite_draw_info["new"][cn] == 1;
  80. }
  81. inviteNewDraw(cn: number) {
  82. if (!this.invite_draw_info["new"]) this.invite_draw_info["new"] = {};
  83. return this.invite_draw_info["new"][cn] = 1;
  84. }
  85. @save public storeup = false;//是否搜藏游戏
  86. public launch_from_my_minigame = false;//本次启动是否从我的小程序启动
  87. public query = null;//启动查询参数
  88. @save public signinfo: SignInfo = { sign_index: 0, sign_time: 0, sign_beisu: 1 }
  89. //在线奖励
  90. @save public lastlogintime: number = 0;//最近一次登陆时间
  91. @save public onlineTime: number = 0;// 秒 在线时间 update++
  92. @save public drawed_online_reward_ids = [];//已经领取了在线奖励ID
  93. public serverTime = 0;
  94. public getUploadData(): object {
  95. var data = {}
  96. this.serverTime = Date.now();
  97. for (var i = 0; i < savepars.length; ++i) {
  98. data[savepars[i]] = this[savepars[i]];
  99. }
  100. return data;
  101. }
  102. public setData(data: any) {
  103. //初始化下数据
  104. if (!data) {
  105. return;
  106. }
  107. for (var i = 0; i < savepars.length; ++i) {
  108. const element = data[savepars[i]];
  109. if (element != null || element != undefined) {
  110. if (Object.prototype.toString.call(element) == "[object Object]") {
  111. for (const key in element) {
  112. this[savepars[i]][key] = element[key];
  113. }
  114. }
  115. else
  116. this[savepars[i]] = element;
  117. }
  118. }
  119. }
  120. }