| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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;
- }
- }
|