import { _decorator, Component, Node } from 'cc'; import SpineAnimationHandler from '../Base/SpineAnimationHandler'; import BoosterType from '../Enum/BoosterType'; import AudioManager from '../Manager/AudioManager'; import { BoosterBase } from './BoosterBase'; const { ccclass, property } = _decorator; @ccclass('CumulativeBooster') export class CumulativeBooster extends BoosterBase { @property(SpineAnimationHandler) private animationHandler: SpineAnimationHandler; public readonly type: BoosterType = BoosterType.CumulativeBar; protected onLoad(): void { super.onLoad(); this.animationHandler?.setNodeActive(false); } public async collect(collector: Node): Promise { super.collect(collector); AudioManager.setPlayRateBGM(1.5); await this.animationHandler?.setAnimationAsync('active'); this.animationHandler?.setNodeActive(false); } public end(): void { super.end(); AudioManager.setPlayRateBGM(1); } async onGet(): Promise { await super.onGet(); if (this.animationHandler) { this.animationHandler.setNodeActive(true); this.animationHandler.setAnimation('idle', { loop: true }); this.sprite.setNodeActive(false); } } onRelease(): void { super.onRelease(); this.animationHandler?.setNodeActive(false); } }