import { _decorator, Component, Node, utils } 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 { Utils } from '../../core/utils/Utils'; import { g } from '../../Data/g'; import { HttpErrorCode } from '../../Data/HttpErrorCode'; import { platform } from '../../Data/platform'; import { User } from '../../Data/User'; import { GetType } from '../GetWindow/GetType'; const { ccclass, property } = _decorator; @ccclass('FreeBox') export class FreeBox extends Component { @property({ type: Http }) http: Http; // @property({ type: OpenWindow }) openWindow: OpenWindow; /** * 免费活动宝箱点击 */ async onFreeBoxClick() { let result = await this.http.send("/api/ad/watchVideoAD"); if (result.code == 0) { platform.reportThinking("ad_init", JSON.stringify({ ad_id: "television", ad_time: Utils.formatDate(new Date()), id: g.userData.id, role_name: g.userData.nickName, level: g.userData.getLevel() })); //播放视频 let adData = await g.showRewardVideo(); if(adData){ this.onBoxVideoOver(); }else { //视频观看失败 WindowManager.showTips("视频观看时间不足"); } } else if (result.code == 106) { WindowManager.showTips("今日视频次数已用完,请明日再继续"); } else if (result.code == HttpErrorCode.VideoADCD) { WindowManager.showTips("请求频繁,请稍后再试"); } else { WindowManager.showTips("视频准备中,请稍后再试"); } } /** * 当免费活动宝箱视频观看完毕 */ async onBoxVideoOver() { let result = await this.http.send("/api/user/getBonus", { adData: g.adData }); if (result.code == 0) { platform.reportThinking("ad_end", JSON.stringify({ ad_id: "television", ad_time: Utils.formatDate(new Date()), id: g.userData.id, role_name: g.userData.nickName, level: g.userData.getLevel(), award: result.data })); platform.umUp("freeRewardAD");//免费宝箱埋点 platform.reportThinking("envelope_increase", JSON.stringify({ previous_number: g.userData.bonus, increase_number: result.data, current_number: g.userData.bonus + result.data, reasons: "freeBox" })); WindowManager.open("Prefabs/GetWindow", WindowOpenMode.CloseAndAdd, [{ count: result.data, type: GetType.RedBag, needBezierEffect: true }]); } else if (result.code == 106) { WindowManager.open("Prefabs/ShareAlertWindow/ShareAlertWindow", WindowOpenMode.NotCloseAndAdd); } } }