import { Data } from "../../../mk/data/Data"; import { ExpAddType, RewardType } from "../GameData"; /** * @description 奖励数据 * @author 邹勇 薛鸿潇 */ export class RewardData extends Data { /** 增加的红包币 */ public add_redbag_value: number = 0; private _data: Array = []; /** 奖励列表 */ set data(value: Array) { this._data = value; } get data(): Array { return this._data; } /** 回调函数 */ public callback = null; /** * 气泡子红包类型 * - 1 主界面气泡、关卡气泡 * - 2 关卡消除 */ subType: number = 1; //reward界面关闭回调 closeUICallBack: Function = null; /** * 奖励添加 */ public addReward() { const i_count = gData.reward.data.length; for (let i = 0; i < i_count; i++) { if (gData.reward.data[i].rewardType == RewardType.redBag) { if (gData.reward.data[i].rewardNum) { gData.gameData.addHb = gData.reward.data[i].rewardNum; gData.gameData.playerProp.redMoney += gData.reward.data[i].rewardNum; } } else if (gData.reward.data[i].rewardType == RewardType.rmb) { // ? } else if (gData.reward.data[i].rewardType == RewardType.pigRmb) { if (gData.reward.data[i].rewardNum) { gData.gameData.playerProp.piggyBank += gData.reward.data[i].rewardNum; } } } gData.reward.data = []; } public flyCoinAnim(world_Pos: cc.Vec2 = null) { if (!gData.reward.data || !gData.reward.data.length) return; let is_add_money = true; const i_count = gData.reward.data.length; for (let i = 0; i < i_count; i++) { if (gData.reward.data[i].rewardType === RewardType.rmb) continue; if (gData.reward.data[i].rewardNum == 0) continue; mk.audio.playEffect('redmoney'); let endPos = ''; let num = 10; let scale = -1; if (gData.reward.data[i].rewardType === RewardType.productTimes) { endPos = 'Canvas/主界面层/game/功能按钮/底部按钮/中间按钮'; num = 5; scale = 0.5; } mk.fly.PlayCoinAnim(gData.reward.data[i].rewardType, num, world_Pos, endPos, () => { is_add_money && this.addReward(); if (gData.gameData.popTipCallBack) { gData.gameData.popTipCallBack(); gData.gameData.popTipCallBack = null; } }, scale) } } public getReward(world_Pos: cc.Vec2) { //let world_Pos = this.node_hb.node.parent.convertToWorldSpaceAR(this.node_hb.node.getPosition()); this.flyCoinAnim(world_Pos); if (this.callback) { this.callback(); this.callback = null; } else { gData.farmGradeData.addGradeExp(ExpAddType.EAT_others, world_Pos); } } }