CreateCostumeItem.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. Object.defineProperty(i, "__esModule", {value: !0});
  5. const u = t("App"),
  6. p = t("CostumeController"),
  7. s = t("ItemBase");
  8. i.default = class extends s.ItemBase {
  9. constructor() {
  10. super(...arguments), (this.saveData = null), (this.query = null), (this.tempCostume = null);
  11. }
  12. setConfData(t) {
  13. super.setConfData(t), (this.query = this.parseRule(t.costume.rule));
  14. }
  15. getRuleByKey(t) {
  16. for (const e of this.data.specialCostume) if (e.key == t) return e;
  17. }
  18. getTempCostume() {
  19. var t, e, i;
  20. return (
  21. this.tempCostume ||
  22. ((i = this.data.costume.costumeId.split("_")),
  23. (t = parseInt(i[0])),
  24. (e = i[1] ? parseInt(i[1]) : 1),
  25. (i = i[2] ? parseInt(i[2]) : 1),
  26. (this.tempCostume = p.default.ins.getTempCostume(t, e, i))),
  27. this.tempCostume
  28. );
  29. }
  30. parseRule(e) {
  31. const i = [],
  32. s = e.split("|");
  33. var o = s.length;
  34. for (let t = 0; t < o; t++) {
  35. const e = s[t].split("_");
  36. i.push({weight: parseInt(e[1]), grade: parseInt(e[0])});
  37. }
  38. return i;
  39. }
  40. use(s = 1) {
  41. let o = [];
  42. const a = p.default.ins;
  43. t: for (let t = 0; t < s; t++) {
  44. let t = this.query,
  45. e = this.data.costume;
  46. var n = this.data.specialCostume;
  47. if (n && n.length) {
  48. var r = n.length;
  49. for (let t = 0; t < r; t++) {
  50. const s = n[t];
  51. var l = this.saveData.specialData[s.key];
  52. if (
  53. (isNaN(l) ? (this.saveData.specialData[s.key] = 1) : ++this.saveData.specialData[s.key]) >=
  54. s.cnt
  55. ) {
  56. this.saveData.specialData[s.key] = 0;
  57. (l = Object.values(p.default.ins.getModel().costumeCfg)),
  58. (l = u.default.RandomUtils.randomArray(l));
  59. o.push(a.createNewCostume(l.idx, s.grade, 1, !1));
  60. continue t;
  61. }
  62. }
  63. }
  64. let i = null;
  65. if (e.costumeId) {
  66. const s = e.costumeId.split("_"),
  67. u = parseInt(s[0]),
  68. p = s[1] ? parseInt(s[1]) : 1,
  69. d = s[2] ? parseInt(s[2]) : 1;
  70. (i = a.createNewCostume(u, p, d, !1)), o.push(i);
  71. } else if (this.data.suitcaseUpgrade) {
  72. const s = this.getGradeByUseCnt();
  73. Log.trace("suitcaseUpgrade:", s);
  74. var h = Object.values(p.default.ins.getModel().costumeCfg),
  75. c = u.default.RandomUtils.randomArray(h);
  76. (i = a.createNewCostume(c.idx, s.grade, 1, !1)), o.push(i);
  77. } else {
  78. h = u.default.RandomUtils.randomArrayByWeight(t);
  79. Log.trace("query:", t);
  80. (c = Object.values(p.default.ins.getModel().costumeCfg)), (c = u.default.RandomUtils.randomArray(c));
  81. (i = a.createNewCostume(c.idx, h.grade, 1, !1)), o.push(i);
  82. }
  83. if (n && n.length)
  84. for (const o of n)
  85. i.data.grade >= o.grade &&
  86. this.saveData.specialData[o.key] &&
  87. (this.saveData.specialData[o.key] = 0);
  88. this.saveData.useCnt++;
  89. }
  90. return a.checkRedpoint(), o;
  91. }
  92. getSpecialRuleCnt(t) {
  93. t = this.saveData.specialData[t];
  94. return isNaN(t) ? 0 : t;
  95. }
  96. setMemento(t) {
  97. t
  98. ? ((this.saveData = t), (this.cnt = t.cnt))
  99. : ((this.cnt = 0), (this.saveData = {cnt: 0, useCnt: 0, specialData: {}}));
  100. }
  101. createMemento() {
  102. return (this.saveData.cnt = this.cnt), this.saveData;
  103. }
  104. getCnt() {
  105. return 1;
  106. }
  107. getUseCnt() {
  108. return isNaN(this.saveData.useCnt) && (this.saveData.useCnt = 0), this.saveData.useCnt;
  109. }
  110. getGradeByUseCnt() {
  111. var t = this.getCurSuitcaseUpgradeCfg(),
  112. t = [
  113. {weight: t.grade_1, grade: 1},
  114. {weight: t.grade_2, grade: 2}
  115. ];
  116. return u.default.RandomUtils.randomArrayByWeight(t);
  117. }
  118. getCurSuitcaseUpgradeCfg() {
  119. var e = this.data.suitcaseUpgrade;
  120. let i = this.data.suitcaseUpgrade.length,
  121. s = e[0];
  122. for (let t = 1; t < i; t++)
  123. if (this.saveData.useCnt < e[t].upgrade_count) {
  124. s = -1 === e[t].upgrade_count ? e[t] : e[t - 1];
  125. break;
  126. }
  127. return s;
  128. }
  129. getNextSuitcaseUpgradeCfg() {
  130. var t = this.getCurSuitcaseUpgradeCfg();
  131. return -1 === t.upgrade_count ? null : this.data.suitcaseUpgrade[t.level];
  132. }
  133. };