LevelClearLayer.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { _decorator, Component, Node, director } from 'cc';
  2. import BasePanel from '../core/component/BasePanel';
  3. import { audioMgr } from '../core/manager/AudioManager';
  4. import Data from '../core/manager/Data';
  5. import WindowManager from '../core/manager/WindowManager';
  6. import { Main } from '../game/Main';
  7. import { GameConst } from '../core/common/GameConst';
  8. import { levelsData } from '../user/LevelsData';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('LevelClearLayer')
  11. export class LevelClearLayer extends BasePanel {
  12. start() {
  13. this.SetText("lbl_lvv", "关卡" + Data.user.lv + "\n通过");
  14. Data.user.lv++;
  15. }
  16. onBtnClicked(event: any, customEventData: any) {
  17. if (!this.ok) return;
  18. audioMgr.playOneShot(GameConst.audios.btnclick);
  19. var btnName = event.target.name;
  20. switch (btnName) {
  21. case "btn_hall":
  22. Data.user.star += this.real_add_star;
  23. Data.save();
  24. this.close();
  25. Main.I.backHall();
  26. break;
  27. case "btn_next":
  28. Data.user.star += this.real_add_star;
  29. Data.save();
  30. this.close();
  31. Main.I.play();
  32. break;
  33. }
  34. }
  35. addstar = 0;
  36. real_add_star = 0;
  37. setAddStar(addstar: number) {
  38. this.real_add_star = addstar;
  39. this.addstar = addstar;
  40. this.cur = Data.user.star % 100;
  41. this.SetProgressBar("ProgressBar", this.cur / 100);
  42. this.SetText("lbl_pro", (Math.floor(this.cur / 100) * 100) + "%")
  43. }
  44. cur = 0;
  45. cdt = 0;
  46. ok = false;
  47. update(dt: number) {
  48. if (this.ok) return;
  49. this.cdt += dt;
  50. if (this.cdt < 0.01) return
  51. this.cdt = 0;
  52. if (this.addstar > 0) {
  53. this.addstar--;
  54. this.cur++;
  55. if (this.cur > 100) {
  56. this.cur = 100;
  57. this.ok = true;
  58. }
  59. }else {
  60. this.ok = true;
  61. }
  62. let OpenItems:Array<any> = levelsData.getModesNames();
  63. if (this.ok && this.cur >= 100 && Data.user.openIndex < OpenItems.length - 1) {
  64. //解锁新物品
  65. WindowManager.ins.open("NewPackOpenedLayer", Data.user.openIndex);
  66. }
  67. this.SetProgressBar("ProgressBar", this.cur / 100);
  68. this.SetText("lbl_pro", this.cur + "%")
  69. }
  70. }