import { _decorator, Component, Label, Node, Button } from 'cc'; import { Http } from '../../core/net/Http'; import { CountDown } from '../../core/ui/CountDown'; 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 { FsUtils } from '../../FsUtils/FsUtils'; const { ccclass, property } = _decorator; /**切磋红包 */ @ccclass('BattleRedPacketWindow') export class BattleRedPacketWindow extends Component { @property({ type: Label, tooltip: "红包等级文本" }) lvLabel: Label; @property({ type: Label, tooltip: "倒计时文本" }) timeLabel: Label; @property({ type: Button, tooltip: "领取红包节点" }) getRedPacketNode: Button; @property({ type: CountDown, tooltip: "倒计时组件" }) redCountDown: CountDown; @property({ type: Http, tooltip: "消息控制" }) http: Http; private progress: number = 0; private data: any; start() { this.getRedPacketNode.enabled = false; } private onOpenHandler(data: any) { this.data = data.data; this.lvLabel.string = this.data.lv + '级切磋红包' if (this.data.time * 1000 > Date.now()) { this.redCountDown.value = this.data.time - Math.ceil(Date.now() / 1000); this.timeLabel.string = FsUtils.formatBattleTime(this.redCountDown.value) + '后可抢该红包';; this.redCountDown.play(); } else { this.getRedPacketNode.enabled = true; } } /**倒计时回调 */ public onInterval(progress) { this.timeLabel.string = FsUtils.formatBattleTime(progress) + '后可抢该红包'; } /**倒计时结束回调 */ public onComplete() { this.getRedPacketNode.enabled = true; } /**点击抢红包 */ private async getRedPacket() { let data = await this.http.send("/api/redPacket/OpenRedPacket", { redPacketID: this.data.redPacketID }); if (data.code == 0) { for (let i = 0; i < g.gameData.myRedPacketDatas.length; i++) { if (this.data.redPacketID == g.gameData.myRedPacketDatas[i].id) { g.gameData.myRedPacketDatas.splice(i, 1); break; } } if (data.data.openID == g.userData.id) {//打开红包 WindowManager.open("Prefabs/Windows/切磋红包奖品", WindowOpenMode.CloseAndAdd, [data.data.prizes]); g.gameData.hasNewRedPacketUpdate = true; // let _window = this.getComponent(OpenWindow); // _window.prefabPath = "Prefabs/Windows/切磋红包奖品"; // _window.open([data.data.prizes]); } else {//红包被抢 WindowManager.showTips('红包被抢了'); } } else { WindowManager.showTips(g.CodeMsg[data.code]); } } }