BarracksGradeUp.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { _decorator, Component, Node, Label } from 'cc';
  2. import { DataSystem } from '../core/data/DataSystem';
  3. import { WindowSystem } from '../core/ui/window/WindowSystem';
  4. import { ConfigData } from '../data/ConfigData';
  5. import { UserData } from '../data/UserData';
  6. const { ccclass, property } = _decorator;
  7. /**兵营升级 */
  8. @ccclass('BarracksGradeUp')
  9. export class BarracksGradeUp extends Component {
  10. @property({ type: Label, tooltip: "当前兵营等级文本" }) nowLvLabel: Label;
  11. @property({ type: Label, tooltip: "当前等级文本" }) lvLabel: Label;
  12. @property({ type: Label, tooltip: "下一级文本" }) nextLvLabel: Label;
  13. @property({ type: Label, tooltip: "下一次解锁新武将等级" }) nextUnLockGeneralLv: Label;
  14. @property({ type: Label, tooltip: "解锁新武将数量" }) numLabel: Label;
  15. @property({ type: Node, tooltip: "解锁新武将信息节点" }) unLockInfoNode: Node;
  16. @property({ type: Node, tooltip: "没有可以解锁节点" }) finishedNode: Node;
  17. private barrackConfig: any;
  18. private unLockGeneralLv: number = 0;
  19. onLoad() {
  20. this.barrackConfig = DataSystem.getData(ConfigData).get('barrack');
  21. let userData = DataSystem.getData(UserData);
  22. this.nowLvLabel.string = 'Lv.' + userData.campLv;
  23. this.lvLabel.string = 'Lv.' + (userData.campLv - 1);
  24. this.nextLvLabel.string = `Lv.${userData.campLv}`;
  25. }
  26. private openHandler() {
  27. let userData = DataSystem.getData(UserData);
  28. if (this.unLockGeneralLv <= userData.campLv) {
  29. let generalsStr = this.getUnLockGeneralLv();
  30. if (generalsStr) {
  31. let arr = generalsStr.split(",");
  32. this.nextUnLockGeneralLv.string = `Lv.${this.unLockGeneralLv}`;
  33. this.numLabel.string = arr.length + '名';
  34. this.unLockInfoNode.active = true;
  35. } else {
  36. this.finishedNode.active = true;
  37. }
  38. }
  39. }
  40. private getUnLockGeneralLv() {
  41. let lv = DataSystem.getData(UserData).campLv;
  42. for (const key in this.barrackConfig) {
  43. if (Number(key) > lv) {
  44. if (this.barrackConfig[key].unlockHero) {
  45. this.unLockGeneralLv = Number(key);
  46. return this.barrackConfig[key].unlockHero;
  47. }
  48. }
  49. }
  50. return '';
  51. }
  52. }