SignData.ts 2.4 KB

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