import { _decorator, Component, Label, Node, ProgressBar } from 'cc'; import { GameMgr } from '../manager/GameMgr'; import { StorageUtil } from '../util/StorageUtil'; import { EventMgr } from '../manager/EventMgr'; import { EventType } from '../enum/EventType'; const { ccclass, property } = _decorator; @ccclass('UIItem/PassRewardItem') export class PassRewardItem extends Component { @property(ProgressBar) private progressBar: ProgressBar = null @property(Label) private lbProgress: Label = null protected onLoad(): void { EventMgr.on(EventType.GetPassReward, this.onUpdateState, this) } protected onDestroy(): void { EventMgr.off(EventType.GetPassReward, this.onUpdateState, this) } protected start(): void { this.onUpdateState() } private onUpdateState(): void { const passRewardLevel: number = StorageUtil.getItem('passRewardLevel', 0) const passLevel: number = GameMgr.CurPassedLevel let targetPassLevel: number = Math.ceil(passLevel / 5) * 5 if (passRewardLevel === targetPassLevel) targetPassLevel += 5 const progress: number = passLevel / targetPassLevel this.progressBar.progress = progress this.lbProgress.string = `${passLevel}/${targetPassLevel}` } }