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