// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html import { SoundManager } from "../../component/SoundManager"; import { ADID, SoundName, WindowName } from "../../Global"; import { BattleManager } from "../../kernel/battle/BattleManager"; import ItemGrid from "../../prefabs/ItemGrid"; import { UIBase } from "../UIBase"; import { UIManager } from "../UIManager"; const { ccclass, property } = cc._decorator; @ccclass export default class UIBattleResult extends UIBase { @property(cc.Label) txtLevel: cc.Label = null; @property(cc.Label) txtScore: cc.Label = null; @property(cc.Node) btn_ad: cc.Node = null; @property(cc.Node) btn_start: cc.Node = null; @property(cc.Node) btn_bonus: cc.Node = null; private _finishedStar: number = -1; //#region LIFE-CYCLE CALLBACKS: openCount: number = 0; onLoad() { this._usePopUpEffect = false; this._useCloseEffect = false; } protected onEnable(): void { let aniNode = this.node.getChildByName('ani').getComponent(cc.Animation); aniNode.play(this.enableParam ? 'fx_game_win' : 'fx_game_lost', 0); let aniStar = this.node.getChildByName('aniStar').getComponent(cc.Animation); aniStar.node.active = this.enableParam; if (aniStar.node.active) { aniStar.on('finished', this.onStarAniFinished, this); this.onStarAniFinished(); } let aniShineNode = this.node.getChildByName('aniShine'); aniShineNode.active = this.enableParam; aniShineNode.active && aniShineNode.getComponent(cc.Animation).play('fx_game_win_star'); this.txtLevel.string = BattleManager.ins.curBattle.levelId.toString(); this.txtScore.string = BattleManager.ins.curBattle.mapData.curScore.toString(); let diamondGrid = this.node.getChildByName('ani').getChildByName('UI_Finish_tck1').getChildByName('diamondGrid'); diamondGrid.active = (BattleManager.ins.curBattle.profit.diamond > 0); diamondGrid.getComponent(ItemGrid).setNum(BattleManager.ins.curBattle.profit.diamond); SoundManager.ins.playEffect(this.enableParam ? SoundName.WIN : SoundName.LOSE); this.openCount++; if (this.openCount > 1) { this.BtnPos_Change(); } this.btn_ad.getChildByName('Background').getChildByName('UI_General_Btn_yellow_ckgg').active = true; this.btn_ad.getChildByName('Background').getChildByName('UI_Finish_kxsx').active = false; } //按钮位置轮换 BtnPos_Change() { let tempPos = this.btn_start.position; this.btn_start.position = this.btn_bonus.position; this.btn_bonus.position = this.btn_ad.position; this.btn_ad.position = tempPos; } protected onDisable(): void { let aniStar = this.node.getChildByName('aniStar').getComponent(cc.Animation); aniStar.off('finished', this.onStarAniFinished, this); this._finishedStar = -1; } // update (dt) {} //#endregion //#region public method //#endregion //#region event onBtnContineClick() { this.getReward(1); this.leave(); } onBtnDoubleClick() { //AD 放广告,放完后调用 // HeyGamePlatform.instance.showVideoAd(ADID.ADID_ADDCOIN, (_result) => { if (true) { this.getReward(2); this.leave(); } else { console.log('视频播放失败'); } // }); } onAdClick() { //AD 纯放广告 } private onStarAniFinished() { this._finishedStar++; if (this._finishedStar < BattleManager.ins.curBattle.profit.star) { let aniStar = this.node.getChildByName('aniStar').getComponent(cc.Animation); aniStar.play('fx_game_win' + (this._finishedStar + 1).toString(), 0); } } //#endregion //#region private method private leave() { BattleManager.ins.leaveBattle(); UIManager.ins.closeWindow(WindowName.BATTLE_RESULT); UIManager.ins.openScene('Main'); } private getReward(rate: number = 1) { if (this.enableParam) { //赢了才结算 BattleManager.ins.curBattle.profit.finish(rate); } } //#endregion }