import { _decorator, Component, Node } from "cc"; import BaseUI from "../../scripts/base/BaseUI"; import UserM, { GiftItemInfo } from "../../scripts/api/UserM"; import { Tips } from "../../scripts/mgr/Tips"; import GameM from "../../scripts/api/GameM"; import { GoodsId } from "../../scripts/api/GoodsId"; const { ccclass, property } = _decorator; @ccclass("PlayGamePassReward") export class PlayGamePassReward extends BaseUI { private data: GiftItemInfo; private gameId: number; private onClaimSuccess: () => void; async init(gameId: number, data: GiftItemInfo, onClaimSuccess: () => void) { this.data = data; this.gameId = gameId; this.onClaimSuccess = onClaimSuccess; this.setText("lbl_game_pass_reward", this.data.rewardMsg); this.FindNode("btn_game_pass_claim").active = this.data.canClaim > 0; } protected simpleOnBtnClick(name: string): void { switch (name) { case "btn_game_pass_claim": this.requestClaimGamePassGift(); break; } } async requestClaimGamePassGift() { if (UserM.ins.getGamePassCount() <= 0) { Tips.show("Insufficient Game Pass"); return; } let result = await GameM.ins.claimGamePassGift( this.gameId, this.data.giftId ); if (result) { this.onClaimSuccess(); } } }