PassRewardItem.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { _decorator, Component, Label, Node, ProgressBar } from 'cc';
  2. import { GameMgr } from '../manager/GameMgr';
  3. import { StorageUtil } from '../util/StorageUtil';
  4. import { EventMgr } from '../manager/EventMgr';
  5. import { EventType } from '../enum/EventType';
  6. const { ccclass, property } = _decorator;
  7. @ccclass('UIItem/PassRewardItem')
  8. export class PassRewardItem extends Component {
  9. @property(ProgressBar)
  10. private progressBar: ProgressBar = null
  11. @property(Label)
  12. private lbProgress: Label = null
  13. protected onLoad(): void {
  14. EventMgr.on(EventType.GetPassReward, this.onUpdateState, this)
  15. }
  16. protected onDestroy(): void {
  17. EventMgr.off(EventType.GetPassReward, this.onUpdateState, this)
  18. }
  19. protected start(): void {
  20. this.onUpdateState()
  21. }
  22. private onUpdateState(): void {
  23. const passRewardLevel: number = StorageUtil.getItem('passRewardLevel', 0)
  24. const passLevel: number = GameMgr.CurPassedLevel
  25. let targetPassLevel: number = Math.ceil(passLevel / 5) * 5
  26. if (passRewardLevel === targetPassLevel) targetPassLevel += 5
  27. const progress: number = passLevel / targetPassLevel
  28. this.progressBar.progress = progress
  29. this.lbProgress.string = `${passLevel}/${targetPassLevel}`
  30. }
  31. }