import { Data } from "../../../mk/data/Data"; import { GameProp, RewardState } from "../GameData"; /** * @description 签到数据 * @author 邹勇 薛鸿潇 */ export class SignData extends Data { /** 标志位:是否需要刷新数据 */ public init_data: boolean = false; /** 配置数据 签到 */ public c_sign = []; // 服务端数据 上次签到天数 private _sign_last_bar = 3; set sign_last_bar(value: number) { this._sign_last_bar = value; this.init_data = true; } get sign_last_bar(): number { return this._sign_last_bar; } // 服务端数据 能够签到 private _sign_can = 1; set sign_can(value: number) { this._sign_can = value; this.init_data = true; } get sign_can(): number { return this._sign_can; } /** 签到列表数据 */ public list_data = []; /** 初始化列表数据 */ public initListData() { if (!this.c_sign.length) this.c_sign = this.getSignConfig(); let list_data = []; for (let i = 0; i < 30;) { let item_data = []; for (let j = 0; j < 3; j++) { let data = this.c_sign[i]; item_data.push(data); i++; } list_data.push(item_data); } this.list_data = list_data; } /** 客户端造的假配置 */ private getSignConfig() { let c_sign = []; for (let i = 0; i < 30; i++) { const id = i + 1; let data: any = {}; data.id = id; data.reward_type = i % 3; data.count = id; data.login_day = id; data.video_limit = 0; c_sign.push(data); } return c_sign; } /** * 获取奖励状态 * @param login_day 登陆日 * @returns 状态123 */ public getStateByDay(login_day: number) { let _state = 0; if (login_day <= this.sign_last_bar) { _state = RewardState.none; } else if (this.sign_can && login_day == (this.sign_last_bar + 1)) { _state = RewardState.unlock; } else { _state = RewardState.lock; } return _state; } /** * 存在可签到天数 * - 签到天数用完后将不可签到 */ public haveSignDay() { if (this.sign_last_bar >= this.c_sign.length) { return false; } else { return true; } } /** * 签到完成 */ public signComplete() { this.sign_can = 0; this.sign_last_bar++; let new_data = [ { key: GameProp.sign_can, value: this.sign_can }, { key: GameProp.sign_last_bar, value: this.sign_last_bar } ] gData.gameData.setProps(new_data); } }