SignData.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import { RewardState } from "../GameData";
  2. /**
  3. * @description 签到数据
  4. * @author 邹勇 薛鸿潇
  5. */
  6. export class SignData {
  7. /** 标志位:是否需要刷新数据 */
  8. public init_data: boolean = false;
  9. /** 配置数据 签到 */
  10. public c_sign = [];
  11. // 服务端数据 上次签到天数
  12. private _sign_last_bar = 3;
  13. set sign_last_bar(value: number) {
  14. this._sign_last_bar = value;
  15. this.init_data = true;
  16. }
  17. get sign_last_bar(): number {
  18. return this._sign_last_bar;
  19. }
  20. // 服务端数据 能够签到
  21. private _sign_can = 1;
  22. set sign_can(value: number) {
  23. this._sign_can = value;
  24. this.init_data = true;
  25. }
  26. get sign_can(): number {
  27. return this._sign_can;
  28. }
  29. /** 签到列表数据 */
  30. public list_data = [];
  31. /** 初始化列表数据 */
  32. public initListData() {
  33. if (!this.c_sign.length) this.c_sign = this.getSignConfig();
  34. let list_data = [];
  35. for (let i = 0; i < 30;) {
  36. let item_data = [];
  37. for (let j = 0; j < 3; j++) {
  38. let data = this.c_sign[i];
  39. item_data.push(data);
  40. i++;
  41. }
  42. list_data.push(item_data);
  43. }
  44. this.list_data = list_data;
  45. }
  46. /** 客户端造的假配置 */
  47. private getSignConfig() {
  48. let c_sign = [];
  49. for (let i = 0; i < 30; i++) {
  50. const id = i + 1;
  51. let data: any = {};
  52. data.id = id;
  53. data.reward_type = i % 3;
  54. data.count = id;
  55. data.login_day = id;
  56. data.video_limit = 0;
  57. c_sign.push(data);
  58. }
  59. return c_sign;
  60. }
  61. /**
  62. * 获取奖励状态
  63. * @param login_day 登陆日
  64. * @returns 状态123
  65. */
  66. public getStateByDay(login_day: number) {
  67. let _state = RewardState.none;
  68. if (login_day <= this.sign_last_bar) {
  69. _state = RewardState.none;
  70. } else if (login_day == (this.sign_last_bar + 1)) {
  71. if (!this.sign_can) {
  72. _state = RewardState.none;
  73. } else {
  74. _state = RewardState.unlock;
  75. }
  76. } else {
  77. _state = RewardState.lock;
  78. }
  79. return _state;
  80. }
  81. }