import GamePlay from "../../../before/GamePlay"; import { AdFun } from "../../data/AdData"; import { BannerAdType, ExpAddType, GameProp, InterAdType, RewardType } from "../../data/GameData"; const { ccclass, property } = cc._decorator; /** * 盖子类型 */ enum LidType { /** 无盖子 */ none = 0, /** 幸运红包盖子 */ luck = 1, /** 通关红包盖子 */ mission = 2 } /** * 获取奖励界面-红包 * @author 薛鸿潇 */ @ccclass export default class Reward extends cc.Component { //新红包界面展示 @property({ displayName: '新红包节点', type: cc.Node }) private node_newRedBag: cc.Node = null; @property({ displayName: '新红包奖励数量', type: cc.Label }) private lbl_reward_num: cc.Label = null; @property({ displayName: '红包节点', type: cc.Sprite }) private node_hb: cc.Sprite = null; @property({ displayName: '描述', type: cc.Label }) private lbl_des: cc.Label = null; /** 当前阶段 */ private cur_stage: number = LidType.none; onLoad() { this.lbl_reward_num.string = 'x0'; // gData.reward.data = [{ rewardType: 3, rewardNum: 100 }]// 测试数据 this.watchVideoCall(); } start() { mk.audio.playEffect("congratulations"); } onEnable() { //gData.adData.checkPopInter(InterAdType.interstitial1_click_2); mk.ad.showNative(); gData.gameData.popTableScreenADLogic(1); mk.ad.showBanner(BannerAdType.banner_click_1); } onDisable() { // mk.ad.destoryBanner(); mk.ad.destroyNativeAd(); } lateUpdate() { gData.reward.add_redbag_value = 0; } /** * 看广告回调:开奖 */ private async watchVideoCall() { if (gData.adData.curRedBagAdFun == AdFun.bubble) { gData.adData.curSelQipao.active = false; } else if (gData.adData.curRedBagAdFun == AdFun.settlement) { GamePlay.Inst.nextLevel(); } if (gData.reward.adData) { // 气泡视频奖励 通关视频奖励 // gData.reward.adData.videoRedMoney.videoRewardList = [{ rewardType: 3, rewardNum: 1000 }, { rewardType: 1, rewardNum: 1000 }]// 测试数据 gData.reward.data = gData.reward.adData.videoRedMoney.videoRewardList; gData.reward.adData = null; } if (!gData.reward.data || !gData.reward.data.length) return; this.cur_stage = LidType.none; // 数据排序:多条奖励,只展示红包,把红包放在首位 const r_count = gData.reward.data.length; if (r_count >= 2) { for (let i = 0; i < r_count; i++) { if (gData.reward.data[i].rewardType === RewardType.redBag) { let new_data = gData.reward.data.splice(i, 1); gData.reward.data.unshift(new_data[0]); break; } } } // 图标展示 this.node_hb.spriteFrame = await mk.loader.load('game/texture/coin/' + gData.reward.data[0].rewardType, cc.SpriteFrame); if (gData.reward.data[0].rewardType === RewardType.productTimes) { this.node_hb.node.scale = 0.5; } else { this.node_hb.node.scale = 1; } let rewardNum: number = gData.reward.data[0].rewardNum || 0; if (gData.reward.data[0].rewardType === RewardType.pigRmb) { } else { if (gData.reward.data[0].rewardType != RewardType.productTimes) { rewardNum = Math.round(rewardNum / 100); this.lbl_des.string = '红包币' } else { this.lbl_des.string = '生产次数' } this.lbl_reward_num.string = `+${rewardNum}`; } // 底部进度动画 if (gData.reward.data[0].rewardType === RewardType.redBag) { gData.reward.add_redbag_value = gData.reward.data[0].rewardNum; } } /** * 点击获得奖励 */ private clickGetReward() { // cc.log('获取奖励:', gData.reward.data); // if (gData.reward.data[0].rewardType == RewardType.productTimes) { // let com = gData.gameData.playerProp.userFarmTaskInfo.completeCount; // let count = gData.gameData.playerProp.userFarmTaskInfo.taskCount; // let curDes = `继续生产,还有${count - com}次即可\n提现!`; // mk.guide.open(3, curDes); // } let world_Pos = this.node_hb.node.parent.convertToWorldSpaceAR(this.node_hb.node.getPosition()); gData.reward.flyCoinAnim(world_Pos); if (gData.reward.callback) { gData.reward.callback(); gData.reward.callback = null; } else { gData.farmGradeData.addGradeExp(ExpAddType.EAT_others, world_Pos); } this.onClickClose(); } /** * 提现操作 */ private clickCashOut() { gData.reward.addReward(); mk.ui.closePanel(this.node.name); let path = 'module/redBagCash/redBagCash'; mk.ui.openPanel(path); } onDestroy() { if (this.cur_stage === LidType.none) { mk.audio.playEffect("button"); } if (gData.reward.closeUICallBack) { gData.reward.closeUICallBack(); gData.reward.closeUICallBack = null; } } onClickClose() { // mk.ad.destoryBanner(); } }