import { _decorator, Component, Node, Sprite, Label } from 'cc'; import { Http } from '../core/net/Http'; import { OpenWindow } from '../core/ui/window/OpenWindow'; import { WindowManager } from '../core/ui/window/WindowManager'; import { WindowOpenMode } from '../core/ui/window/WindowOpenMode'; import { ConfigData } from '../Data/ConfigData'; import { g } from '../Data/g'; import { LoginWaitWin } from './LoginWaitWin'; import { NoviceWindow } from './NoviceWindow'; const { ccclass, property } = _decorator; @ccclass('RedBoxLv') export class RedBoxLv extends Component { @property({ tooltip: "http服务", type: Http }) public http: Http; @property({ tooltip: "打开新窗口组件", type: OpenWindow }) public openNewWin: OpenWindow; @property({ tooltip: "用户名", type: Label }) public nameTxt: Label; @property({ tooltip: "新手手势", type: Sprite }) public handSprite: Sprite; public httpPath = "/api/lvRedPacket/GetLvRedPacketDiamond";//二级以上红包,获取可领取神石数值 start() { g.gameData.isPlayVideo = false; this.nameTxt.string = g.userData.nickName; if (NoviceWindow.isNovicing) { this.handSprite.node.active = true; NoviceWindow.isOpenLvRedpacket = true; } } public isSend = false; /** * 打开红包方法 */ public async openRed() { // console.log(g.gameData.lvRedPacket); if (g.gameData.lvRedPacket == g.userData.lv) { WindowManager.showTips("无可领取红包"); WindowManager.close(); return; } if (g.gameData.isPlayVideo) { return; } g.gameData.isPlayVideo = true; if (g.gameData.lvRedPacket == 1) { this.httpPath = ""; } else if (g.gameData.lvRedPacket < 1) { WindowManager.showTips("无可领取红包"); WindowManager.close(this.node); g.gameData.isPlayVideo = false; return; } let data = []; if (this.httpPath == "") {//二级红包,无需看视频 data[0] = ConfigData.configMap.get("systemConfig").twoLvRedPacketAddDiamond; data[1] = null; data[2] = 0; this.getRed(data);//播放红包动画 } else { let data0 = await this.http.send("/api/ad/WatchVideoAD"); switch (data0.code) { case 0: //播放视频 let adData = await g.showRewardVideo(); if (adData) { this.videoBack(); } else { //视频观看失败 WindowManager.showTips("视频观看时间不足"); } break; case 108: WindowManager.showTips("今日视频次数已用完,请明日再继续"); g.gameData.isPlayVideo = false; break; default: WindowManager.showTips("视频准备中,请稍后再试"); // WindowManager.showTips(g.CodeMsg[data0.code]); g.gameData.isPlayVideo = false; WindowManager.close(this.node); break; } } } //视频结束回调 public async videoBack() { let data = []; //#region 打开加载等待界面 let _window = await WindowManager.open("Prefabs/Windows/加载等待窗口", WindowOpenMode.NotCloseAndCover); //#endregion let data0 = await this.http.send(this.httpPath, { adData: g.adData }); _window.getComponent(LoginWaitWin).close();//关闭加载等待界面 switch (data0.code) { case 0: data[0] = data0.data.addDiamond; data[1] = null; data[2] = 1; this.getRed(data); break; default: data0.code && WindowManager.showTips(g.CodeMsg[data0.code]); break; } WindowManager.close(this.node); } /** * 打开神石领取界面 */ public getRed(data: any[]) { this.openNewWin.open(data); } onDestroy() { g.gameData.isPlayVideo = false; } }