@malib/gear 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +2 -2
- package/index.d.ts +1 -1
- package/index.js +583 -488
- package/internal.d.ts +5 -0
- package/lib/gear.d.ts +4 -4
- package/lib/serialize/fromplain.d.ts +8 -0
- package/lib/serialize/interface.d.ts +82 -0
- package/lib/serialize/toplain.d.ts +8 -0
- package/lib/serialize/util.d.ts +27 -0
- package/lib/serialize/validate.d.ts +7 -0
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
1
|
+
class W {
|
|
2
2
|
constructor() {
|
|
3
3
|
this.base = 0, this.bonus = 0, this.upgrade = 0, this.enchant = 0;
|
|
4
4
|
}
|
|
@@ -15,10 +15,10 @@ class H {
|
|
|
15
15
|
return this.bonus + this.upgrade + this.enchant;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
var
|
|
19
|
-
class
|
|
20
|
-
constructor(
|
|
21
|
-
this.enchanted = !1, this.charge = 0, this.chargeOption = /* @__PURE__ */ new Map(), this.gear =
|
|
18
|
+
var i = /* @__PURE__ */ ((t) => (t[t.incSTR = 1] = "incSTR", t[t.incSTRr = 2] = "incSTRr", t[t.incDEX = 3] = "incDEX", t[t.incDEXr = 4] = "incDEXr", t[t.incINT = 5] = "incINT", t[t.incINTr = 6] = "incINTr", t[t.incLUK = 7] = "incLUK", t[t.incLUKr = 8] = "incLUKr", t[t.incAllStat = 9] = "incAllStat", t[t.incMHP = 10] = "incMHP", t[t.incMMP = 11] = "incMMP", t[t.incMHPr = 12] = "incMHPr", t[t.incMMPr = 13] = "incMMPr", t[t.incMDF = 14] = "incMDF", t[t.incARC = 15] = "incARC", t[t.incAUT = 16] = "incAUT", t[t.incPAD = 17] = "incPAD", t[t.incMAD = 18] = "incMAD", t[t.incAD = 19] = "incAD", t[t.incPDD = 20] = "incPDD", t[t.incSpeed = 21] = "incSpeed", t[t.incJump = 22] = "incJump", t[t.knockback = 23] = "knockback", t[t.bdR = 24] = "bdR", t[t.incBDR = 25] = "incBDR", t[t.imdR = 26] = "imdR", t[t.incIMDR = 27] = "incIMDR", t[t.damR = 28] = "damR", t[t.nbdR = 29] = "nbdR", t[t.statR = 30] = "statR", t[t.incCHUC = 31] = "incCHUC", t[t.incPADr = 100] = "incPADr", t[t.incMADr = 101] = "incMADr", t[t.incPDDr = 102] = "incPDDr", t[t.incCr = 103] = "incCr", t[t.incDAMr = 104] = "incDAMr", t[t.RecoveryHP = 105] = "RecoveryHP", t[t.RecoveryMP = 106] = "RecoveryMP", t[t.face = 107] = "face", t[t.prop = 108] = "prop", t[t.time = 109] = "time", t[t.HP = 110] = "HP", t[t.MP = 111] = "MP", t[t.attackType = 112] = "attackType", t[t.ignoreTargetDEF = 113] = "ignoreTargetDEF", t[t.ignoreDAM = 114] = "ignoreDAM", t[t.ignoreDAMr = 115] = "ignoreDAMr", t[t.DAMreflect = 116] = "DAMreflect", t[t.mpconReduce = 117] = "mpconReduce", t[t.incMesoProp = 118] = "incMesoProp", t[t.incRewardProp = 119] = "incRewardProp", t[t.incAllskill = 120] = "incAllskill", t[t.RecoveryUP = 121] = "RecoveryUP", t[t.boss = 122] = "boss", t[t.level = 123] = "level", t[t.incTerR = 124] = "incTerR", t[t.incAsrR = 125] = "incAsrR", t[t.incEXPr = 126] = "incEXPr", t[t.reduceCooltime = 127] = "reduceCooltime", t[t.incSTRlv = 128] = "incSTRlv", t[t.incDEXlv = 129] = "incDEXlv", t[t.incINTlv = 130] = "incINTlv", t[t.incLUKlv = 131] = "incLUKlv", t[t.incMHPlv = 132] = "incMHPlv", t[t.incPADlv = 133] = "incPADlv", t[t.incMADlv = 134] = "incMADlv", t[t.incCriticaldamage = 135] = "incCriticaldamage", t[t.attackSpeed = 200] = "attackSpeed", t[t.setItemID = 201] = "setItemID", t[t.durability = 202] = "durability", t[t.reduceReq = 203] = "reduceReq", t[t.only = 1100] = "only", t[t.tradeBlock = 1101] = "tradeBlock", t[t.accountSharable = 1102] = "accountSharable", t[t.onlyEquip = 1103] = "onlyEquip", t[t.tradeAvailable = 1104] = "tradeAvailable", t[t.equipTradeBlock = 1105] = "equipTradeBlock", t[t.sharableOnce = 1106] = "sharableOnce", t[t.charismaEXP = 1107] = "charismaEXP", t[t.senseEXP = 1108] = "senseEXP", t[t.insightEXP = 1109] = "insightEXP", t[t.willEXP = 1110] = "willEXP", t[t.craftEXP = 1111] = "craftEXP", t[t.charmEXP = 1112] = "charmEXP", t[t.accountShareTag = 1113] = "accountShareTag", t[t.bossReward = 1114] = "bossReward", t[t.noPotential = 1115] = "noPotential", t[t.fixedPotential = 1116] = "fixedPotential", t[t.specialGrade = 1117] = "specialGrade", t[t.fixedGrade = 1118] = "fixedGrade", t[t.superiorEqp = 1119] = "superiorEqp", t[t.incPQEXPr = 1120] = "incPQEXPr", t[t.jokerToSetItem = 1121] = "jokerToSetItem", t[t.blockGoldHammer = 1122] = "blockGoldHammer", t[t.exceptUpgrade = 1123] = "exceptUpgrade", t[t.onlyUpgrade = 1124] = "onlyUpgrade", t[t.noLookChange = 1125] = "noLookChange", t[t.tucIgnoreForPotential = 1126] = "tucIgnoreForPotential", t))(i || {}), f = /* @__PURE__ */ ((t) => (t[t.cap = 100] = "cap", t[t.faceAccessory = 101] = "faceAccessory", t[t.eyeAccessory = 102] = "eyeAccessory", t[t.earrings = 103] = "earrings", t[t.coat = 104] = "coat", t[t.longcoat = 105] = "longcoat", t[t.pants = 106] = "pants", t[t.shoes = 107] = "shoes", t[t.glove = 108] = "glove", t[t.cape = 110] = "cape", t[t.ring = 111] = "ring", t[t.pendant = 112] = "pendant", t[t.belt = 113] = "belt", t[t.medal = 114] = "medal", t[t.shoulder = 115] = "shoulder", t[t.pocket = 116] = "pocket", t[t.badge = 118] = "badge", t[t.android = 166] = "android", t[t.machineHeart = 167] = "machineHeart", t[t.shield = 109] = "shield", t[t.emblem = 119] = "emblem", t[t.powerSource = 119020] = "powerSource", t[t.shiningRod = 1212] = "shiningRod", t[t.tuner = 1213] = "tuner", t[t.breathShooter = 1214] = "breathShooter", t[t.soulShooter = 122] = "soulShooter", t[t.desperado = 123] = "desperado", t[t.energySword = 124] = "energySword", t[t.espLimiter = 126] = "espLimiter", t[t.chain = 127] = "chain", t[t.magicGauntlet = 128] = "magicGauntlet", t[t.ritualFan = 129] = "ritualFan", t[t.ohSword = 130] = "ohSword", t[t.ohAxe = 131] = "ohAxe", t[t.ohBlunt = 132] = "ohBlunt", t[t.dagger = 133] = "dagger", t[t.katara = 134] = "katara", t[t.cane = 136] = "cane", t[t.wand = 137] = "wand", t[t.staff = 138] = "staff", t[t.thSword = 140] = "thSword", t[t.chakram = 1404] = "chakram", t[t.thAxe = 141] = "thAxe", t[t.thBlunt = 142] = "thBlunt", t[t.spear = 143] = "spear", t[t.polearm = 144] = "polearm", t[t.bow = 145] = "bow", t[t.crossbow = 146] = "crossbow", t[t.claw = 147] = "claw", t[t.knuckle = 148] = "knuckle", t[t.gun = 149] = "gun", t[t.shovel = 150] = "shovel", t[t.pickaxe = 151] = "pickaxe", t[t.dualBowguns = 152] = "dualBowguns", t[t.handCannon = 153] = "handCannon", t[t.heavySword = 156] = "heavySword", t[t.longSword = 157] = "longSword", t[t.gauntletRevolver = 158] = "gauntletRevolver", t[t.ancientBow = 159] = "ancientBow", t[t.soulShield = 1098] = "soulShield", t[t.demonShield = 1099] = "demonShield", t[t.magicArrow = 135200] = "magicArrow", t[t.card = 135210] = "card", t[t.medallion = 135220] = "medallion", t[t.rosary = 135221] = "rosary", t[t.ironChain = 135222] = "ironChain", t[t.magicBook1 = 135223] = "magicBook1", t[t.magicBook2 = 135224] = "magicBook2", t[t.magicBook3 = 135225] = "magicBook3", t[t.arrowFletching = 135226] = "arrowFletching", t[t.bowThimble = 135227] = "bowThimble", t[t.daggerScabbard = 135228] = "daggerScabbard", t[t.charm = 135229] = "charm", t[t.orb = 135240] = "orb", t[t.dragonEssence = 135250] = "dragonEssence", t[t.soulRing = 135260] = "soulRing", t[t.magnum = 135270] = "magnum", t[t.wristBand = 135290] = "wristBand", t[t.farSight = 135291] = "farSight", t[t.powderKeg = 135292] = "powderKeg", t[t.mass = 135293] = "mass", t[t.document = 135294] = "document", t[t.magicMarble = 135295] = "magicMarble", t[t.arrowhead = 135296] = "arrowhead", t[t.jewel = 135297] = "jewel", t[t.powderKeg2 = 135298] = "powderKeg2", t[t.controller = 135300] = "controller", t[t.foxMarble = 135310] = "foxMarble", t[t.chessPiece = 135320] = "chessPiece", t[t.transmitter = 135330] = "transmitter", t[t.charge = 135340] = "charge", t[t.magicWing = 135350] = "magicWing", t[t.pathOfAbyss = 135360] = "pathOfAbyss", t[t.relic = 135370] = "relic", t[t.fanTassel = 135380] = "fanTassel", t[t.bracelet = 135400] = "bracelet", t[t.weaponBelt = 135401] = "weaponBelt", t[t.ornament = 135402] = "ornament", t[t.hexSeeker = 135403] = "hexSeeker", t[t.petEquip = 180] = "petEquip", t[t.machineEngine = 161] = "machineEngine", t[t.machineArms = 162] = "machineArms", t[t.machineLegs = 163] = "machineLegs", t[t.machineBody = 164] = "machineBody", t[t.machineTransistors = 165] = "machineTransistors", t[t.dragonMask = 194] = "dragonMask", t[t.dragonPendant = 195] = "dragonPendant", t[t.dragonWings = 196] = "dragonWings", t[t.dragonTail = 197] = "dragonTail", t))(f || {}), k = /* @__PURE__ */ ((t) => (t[t.normal = 0] = "normal", t[t.rare = 1] = "rare", t[t.epic = 2] = "epic", t[t.unique = 3] = "unique", t[t.legendary = 4] = "legendary", t[t.special = 5] = "special", t))(k || {});
|
|
19
|
+
class O {
|
|
20
|
+
constructor(s) {
|
|
21
|
+
this.enchanted = !1, this.charge = 0, this.chargeOption = /* @__PURE__ */ new Map(), this.gear = s;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* 소울 인챈트를 적용합니다.
|
|
@@ -26,7 +26,7 @@ class I {
|
|
|
26
26
|
* 이미 소울 인챈트 상태이거나 장비 분류가 무기가 아닐 경우 `false`를 반환합니다.
|
|
27
27
|
*/
|
|
28
28
|
enchant() {
|
|
29
|
-
return this.enchanted || !
|
|
29
|
+
return this.enchanted || !A.isWeapon(this.gear.type) ? !1 : (this.enchanted = !0, this.soul = void 0, this.charge = 0, this.chargeOption.clear(), !0);
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* 소울 인챈트를 해제합니다.
|
|
@@ -44,8 +44,8 @@ class I {
|
|
|
44
44
|
* @returns 장착했을 경우 `true`; 아닐 경우 `false`.
|
|
45
45
|
* 소울 인챈트 상태가 아닐 경우 `false`를 반환합니다.
|
|
46
46
|
*/
|
|
47
|
-
setSoul(
|
|
48
|
-
return this.enchanted ? (this.soul =
|
|
47
|
+
setSoul(s) {
|
|
48
|
+
return this.enchanted ? (this.soul = s, this.setCharge(this.charge), !0) : !1;
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* 장착된 소울을 제거합니다.
|
|
@@ -63,27 +63,27 @@ class I {
|
|
|
63
63
|
* @returns 적용했을 경우 `true`; 아닐 경우 `false`.
|
|
64
64
|
* 소울 인챈트 상태가 아니거나 설정할 소울 충전량이 0과 1000 사이의 값이 아닐 경우 `false`를 반환합니다.
|
|
65
65
|
*/
|
|
66
|
-
setCharge(
|
|
67
|
-
if (!this.enchanted ||
|
|
66
|
+
setCharge(s) {
|
|
67
|
+
if (!this.enchanted || s < 0 || s > 1e3)
|
|
68
68
|
return !1;
|
|
69
|
-
this.charge =
|
|
70
|
-
const
|
|
71
|
-
return this.chargeOption.clear(), this.chargeOption.set(
|
|
69
|
+
this.charge = s;
|
|
70
|
+
const a = this.gear.option(i.incPAD).base < this.gear.option(i.incMAD).base ? i.incMAD : i.incPAD;
|
|
71
|
+
return this.chargeOption.clear(), this.chargeOption.set(a, this.getChargeAD()), !0;
|
|
72
72
|
}
|
|
73
73
|
getChargeAD() {
|
|
74
74
|
if (!this.enchanted || this.charge === 0)
|
|
75
75
|
return 0;
|
|
76
|
-
const
|
|
76
|
+
const s = Math.min(Math.ceil(this.charge / 100) - 1, 5);
|
|
77
77
|
if (this.soul) {
|
|
78
|
-
const
|
|
79
|
-
return 10 +
|
|
78
|
+
const o = this.soul.multiplier;
|
|
79
|
+
return 10 + s * o;
|
|
80
80
|
}
|
|
81
|
-
return 5 +
|
|
81
|
+
return 5 + s;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
const
|
|
84
|
+
const g = class {
|
|
85
85
|
constructor() {
|
|
86
|
-
this.itemID = 0, this.name = "", this.desc = "", this.type = 0, this.props = /* @__PURE__ */ new Map(), this.options = /* @__PURE__ */ new Map(), this.totalUpgradeCount = 0, this.upgradeCount = 0, this.upgradeFailCount = 0, this.hammerCount = 0, this.maxStar = 0, this.star = 0, this.amazing = !1, this.canPotential = !1, this.grade =
|
|
86
|
+
this.itemID = 0, this.name = "", this.desc = "", this.type = 0, this.props = /* @__PURE__ */ new Map(), this.options = /* @__PURE__ */ new Map(), this.totalUpgradeCount = 0, this.upgradeCount = 0, this.upgradeFailCount = 0, this.hammerCount = 0, this.maxStar = 0, this.star = 0, this.amazing = !1, this.canPotential = !1, this.grade = k.normal, this.potentials = [], this.additionalGrade = k.normal, this.additionalPotentials = [], this.soulWeapon = new O(this), this.icon = {
|
|
87
87
|
id: 0,
|
|
88
88
|
origin: [0, 0]
|
|
89
89
|
}, this.req = {
|
|
@@ -106,10 +106,10 @@ const k = class {
|
|
|
106
106
|
* 가중치를 포함하여 계산한 현재 옵션과 기본 옵션의 차이
|
|
107
107
|
*/
|
|
108
108
|
get diff() {
|
|
109
|
-
let
|
|
110
|
-
for (const [
|
|
111
|
-
|
|
112
|
-
return
|
|
109
|
+
let t = 0;
|
|
110
|
+
for (const [s, o] of this.options)
|
|
111
|
+
t += Math.floor(o.diff / g.getPropTypeWeight(s));
|
|
112
|
+
return t;
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* 장비를 처음 획득했을 때 추가옵션이 존재했는지 여부
|
|
@@ -119,39 +119,39 @@ const k = class {
|
|
|
119
119
|
* 장비 아이콘 왼쪽 위의 원이 채워져있으면 `true`; 아니면 `false`입니다.
|
|
120
120
|
*/
|
|
121
121
|
get isNewBonusType() {
|
|
122
|
-
return !!([...this.options.values()].some((
|
|
122
|
+
return !!([...this.options.values()].some((s) => s.bonus > 0) && this.getPropValue(i.tradeAvailable) !== 1);
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
125
|
* 지정된 장비 옵션 종류과 연결된 옵션을 가져옵니다.
|
|
126
126
|
* @param type 장비 옵션 종류.
|
|
127
127
|
* @returns 장비 옵션 객체. 존재하지 않을 경우 장비에 추가한 뒤 반환합니다.
|
|
128
128
|
*/
|
|
129
|
-
option(
|
|
130
|
-
return this.options.has(
|
|
129
|
+
option(t) {
|
|
130
|
+
return this.options.has(t) || this.options.set(t, new W()), this.options.get(t);
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* 지정된 장비 속성 종류과 연결된 값을 가져옵니다.
|
|
134
134
|
* @param type 장비 속성 종류.
|
|
135
135
|
* @returns 속성의 값. 장비에 존재하지 않을 경우 추가하지 않고 `0`을 반환합니다.
|
|
136
136
|
*/
|
|
137
|
-
getPropValue(
|
|
138
|
-
return this.props.get(
|
|
137
|
+
getPropValue(t) {
|
|
138
|
+
return this.props.get(t) ?? 0;
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
141
141
|
* 지정된 장비 속성 종류과 연결된 `boolean` 값을 가져옵니다.
|
|
142
142
|
* @param type 장비 속성 종류.
|
|
143
143
|
* @returns 속성이 존재하고 값이 `0` 이상일 경우 `true`; 아닐 경우 `false`.
|
|
144
144
|
*/
|
|
145
|
-
getBooleanValue(
|
|
146
|
-
return (this.props.get(
|
|
145
|
+
getBooleanValue(t) {
|
|
146
|
+
return (this.props.get(t) ?? 0) > 0;
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* 장비에 신비의 모루 외형을 적용합니다.
|
|
150
|
-
* @param icon 외형
|
|
151
|
-
* @param name 외형
|
|
150
|
+
* @param icon 외형 아이콘.
|
|
151
|
+
* @param name 외형 장비명.
|
|
152
152
|
*/
|
|
153
|
-
setAnvil(
|
|
154
|
-
this.anvilIcon =
|
|
153
|
+
setAnvil(t, s) {
|
|
154
|
+
this.anvilIcon = t, this.anvilName = s;
|
|
155
155
|
}
|
|
156
156
|
/**
|
|
157
157
|
* 장비에 적용된 신비의 모루 외형을 제거합니다.
|
|
@@ -164,39 +164,39 @@ const k = class {
|
|
|
164
164
|
* @param type 장비 분류.
|
|
165
165
|
* @returns 주무기일 경우 `true`; 아닐 경우 `false`.
|
|
166
166
|
*/
|
|
167
|
-
static isWeapon(
|
|
168
|
-
return this.isLeftWeapon(
|
|
167
|
+
static isWeapon(t) {
|
|
168
|
+
return this.isLeftWeapon(t) || this.isDoubleHandWeapon(t);
|
|
169
169
|
}
|
|
170
170
|
/**
|
|
171
171
|
* 장비 분류가 한손무기인지 여부를 확인합니다. 블레이드(`katara`)는 포함되지 않습니다.
|
|
172
172
|
* @param type 장비 분류.
|
|
173
173
|
* @returns 한손무기일 경우 `true`; 아닐 경우 `false`.
|
|
174
174
|
*/
|
|
175
|
-
static isLeftWeapon(
|
|
176
|
-
return
|
|
175
|
+
static isLeftWeapon(t) {
|
|
176
|
+
return t >= 121 && t <= 139 && t !== f.katara || Math.floor(t / 10) === 121;
|
|
177
177
|
}
|
|
178
178
|
/**
|
|
179
179
|
* 장비 분류가 두손무기인지 여부를 확인합니다.
|
|
180
180
|
* @param type 장비 분류.
|
|
181
181
|
* @returns 두손무기일 경우 `true`; 아닐 경우 `false`.
|
|
182
182
|
*/
|
|
183
|
-
static isDoubleHandWeapon(
|
|
184
|
-
return
|
|
183
|
+
static isDoubleHandWeapon(t) {
|
|
184
|
+
return t >= 140 && t <= 149 || t >= 152 && t <= 159 || Math.floor(t / 10) === 140;
|
|
185
185
|
}
|
|
186
186
|
/**
|
|
187
187
|
* 장비 분류가 보조무기인지 여부를 확인합니다. 블레이드(`katara`), 방패류가 포함됩니다.
|
|
188
188
|
* @param type 장비 분류.
|
|
189
189
|
* @returns 보조무기일 경우 `true`; 아닐 경우 `false`.
|
|
190
190
|
*/
|
|
191
|
-
static isSubWeapon(
|
|
192
|
-
switch (
|
|
193
|
-
case
|
|
194
|
-
case
|
|
195
|
-
case
|
|
196
|
-
case
|
|
191
|
+
static isSubWeapon(t) {
|
|
192
|
+
switch (t) {
|
|
193
|
+
case f.katara:
|
|
194
|
+
case f.shield:
|
|
195
|
+
case f.demonShield:
|
|
196
|
+
case f.soulShield:
|
|
197
197
|
return !0;
|
|
198
198
|
default:
|
|
199
|
-
return Math.floor(
|
|
199
|
+
return Math.floor(t / 1e3) === 135;
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
/**
|
|
@@ -204,11 +204,11 @@ const k = class {
|
|
|
204
204
|
* @param type 장비 분류.
|
|
205
205
|
* @returns 방패일 경우 `true`; 아닐 경우 `false`.
|
|
206
206
|
*/
|
|
207
|
-
static isShield(
|
|
208
|
-
switch (
|
|
209
|
-
case
|
|
210
|
-
case
|
|
211
|
-
case
|
|
207
|
+
static isShield(t) {
|
|
208
|
+
switch (t) {
|
|
209
|
+
case f.shield:
|
|
210
|
+
case f.demonShield:
|
|
211
|
+
case f.soulShield:
|
|
212
212
|
return !0;
|
|
213
213
|
default:
|
|
214
214
|
return !1;
|
|
@@ -219,69 +219,69 @@ const k = class {
|
|
|
219
219
|
* @param type 장비 분류.
|
|
220
220
|
* @returns 방어구일 경우 `true`; 아닐 경우 `false`.
|
|
221
221
|
*/
|
|
222
|
-
static isArmor(
|
|
223
|
-
return
|
|
222
|
+
static isArmor(t) {
|
|
223
|
+
return t === 100 || t >= 104 && t <= 110 || t === f.soulShield || t === f.demonShield;
|
|
224
224
|
}
|
|
225
225
|
/**
|
|
226
226
|
* 장비 분류가 장신구인지 여부를 확인합니다. 어깨장식이 포함됩니다.
|
|
227
227
|
* @param type 장비 분류.
|
|
228
228
|
* @returns 장신구일 경우 `true`; 아닐 경우 `false`.
|
|
229
229
|
*/
|
|
230
|
-
static isAccessory(
|
|
231
|
-
return
|
|
230
|
+
static isAccessory(t) {
|
|
231
|
+
return t >= 101 && t <= 103 || t >= 111 && t <= 113 || t === 115;
|
|
232
232
|
}
|
|
233
233
|
/**
|
|
234
234
|
* 장비 분류가 메카닉 장비인지 여부를 확인합니다.
|
|
235
235
|
* @param type 장비 분류.
|
|
236
236
|
* @returns 메카닉 장비일 경우 `true`; 아닐 경우 `false`.
|
|
237
237
|
*/
|
|
238
|
-
static isMechanicGear(
|
|
239
|
-
return
|
|
238
|
+
static isMechanicGear(t) {
|
|
239
|
+
return t >= 161 && t <= 165;
|
|
240
240
|
}
|
|
241
241
|
/**
|
|
242
242
|
* 장비 분류가 에반 드래곤 장비인지 여부를 확인합니다.
|
|
243
243
|
* @param type 장비 분류.
|
|
244
244
|
* @returns 에반 드래곤 장비일 경우 `true`; 아닐 경우 `false`.
|
|
245
245
|
*/
|
|
246
|
-
static isDragonGear(
|
|
247
|
-
return
|
|
246
|
+
static isDragonGear(t) {
|
|
247
|
+
return t >= 194 && t <= 197;
|
|
248
248
|
}
|
|
249
249
|
/**
|
|
250
250
|
* 장비 ID로부터 장비 분류를 계산합니다.
|
|
251
251
|
* @param gearID 장비 ID.
|
|
252
252
|
* @returns 장비 분류.
|
|
253
253
|
*/
|
|
254
|
-
static getGearType(
|
|
255
|
-
switch (Math.floor(
|
|
254
|
+
static getGearType(t) {
|
|
255
|
+
switch (Math.floor(t / 1e3)) {
|
|
256
256
|
case 1098:
|
|
257
|
-
return
|
|
257
|
+
return f.soulShield;
|
|
258
258
|
case 1099:
|
|
259
|
-
return
|
|
259
|
+
return f.demonShield;
|
|
260
260
|
case 1212:
|
|
261
|
-
return
|
|
261
|
+
return f.shiningRod;
|
|
262
262
|
case 1213:
|
|
263
|
-
return
|
|
263
|
+
return f.tuner;
|
|
264
264
|
case 1214:
|
|
265
|
-
return
|
|
265
|
+
return f.breathShooter;
|
|
266
266
|
case 1404:
|
|
267
|
-
return
|
|
267
|
+
return f.chakram;
|
|
268
268
|
}
|
|
269
|
-
if (Math.floor(
|
|
270
|
-
switch (Math.floor(
|
|
269
|
+
if (Math.floor(t / 1e4) === 135)
|
|
270
|
+
switch (Math.floor(t / 100)) {
|
|
271
271
|
case 13522:
|
|
272
272
|
case 13528:
|
|
273
273
|
case 13529:
|
|
274
274
|
case 13540:
|
|
275
|
-
return Math.floor(
|
|
275
|
+
return Math.floor(t / 10);
|
|
276
276
|
default:
|
|
277
|
-
return Math.floor(
|
|
277
|
+
return Math.floor(t / 100) * 10;
|
|
278
278
|
}
|
|
279
|
-
if (Math.floor(
|
|
280
|
-
switch (Math.floor(
|
|
279
|
+
if (Math.floor(t / 1e4) === 119)
|
|
280
|
+
switch (Math.floor(t / 100)) {
|
|
281
281
|
case 11902:
|
|
282
|
-
return Math.floor(
|
|
282
|
+
return Math.floor(t / 10);
|
|
283
283
|
}
|
|
284
|
-
return Math.floor(
|
|
284
|
+
return Math.floor(t / 1e4);
|
|
285
285
|
}
|
|
286
286
|
/**
|
|
287
287
|
* 장비의 최대 강화 수치를 계산합니다.
|
|
@@ -289,43 +289,43 @@ const k = class {
|
|
|
289
289
|
* @returns 장비의 최대 강화 수치.
|
|
290
290
|
* 최대 업그레이드 가능 횟수가 `0`이거나 `onlyUpgrade` 속성이 존재하거나 메카닉 장비 또는 드래곤 장비일 경우 `0`입니다.
|
|
291
291
|
*/
|
|
292
|
-
static getMaxStar(
|
|
293
|
-
if (
|
|
292
|
+
static getMaxStar(t) {
|
|
293
|
+
if (t.totalUpgradeCount <= 0 || t.getBooleanValue(i.onlyUpgrade) || g.isMechanicGear(t.type) || g.isDragonGear(t.type))
|
|
294
294
|
return 0;
|
|
295
|
-
let
|
|
296
|
-
const
|
|
297
|
-
for (const
|
|
298
|
-
if (
|
|
299
|
-
|
|
295
|
+
let s;
|
|
296
|
+
const o = t.req.level;
|
|
297
|
+
for (const a of g.starData)
|
|
298
|
+
if (o >= a[0])
|
|
299
|
+
s = a;
|
|
300
300
|
else
|
|
301
301
|
break;
|
|
302
|
-
return
|
|
302
|
+
return s === void 0 ? 0 : t.getBooleanValue(i.superiorEqp) ? s[2] : s[1];
|
|
303
303
|
}
|
|
304
|
-
static getPropTypeWeight(
|
|
305
|
-
if (
|
|
306
|
-
switch (
|
|
307
|
-
case
|
|
308
|
-
case
|
|
309
|
-
case
|
|
310
|
-
case
|
|
311
|
-
case
|
|
312
|
-
case
|
|
313
|
-
case
|
|
314
|
-
case
|
|
304
|
+
static getPropTypeWeight(t) {
|
|
305
|
+
if (t < 100)
|
|
306
|
+
switch (t) {
|
|
307
|
+
case i.incSTR:
|
|
308
|
+
case i.incDEX:
|
|
309
|
+
case i.incINT:
|
|
310
|
+
case i.incLUK:
|
|
311
|
+
case i.incPAD:
|
|
312
|
+
case i.incMAD:
|
|
313
|
+
case i.incSpeed:
|
|
314
|
+
case i.incJump:
|
|
315
315
|
return 1;
|
|
316
|
-
case
|
|
317
|
-
case
|
|
316
|
+
case i.incMHP:
|
|
317
|
+
case i.incMMP:
|
|
318
318
|
return 100;
|
|
319
|
-
case
|
|
319
|
+
case i.incPDD:
|
|
320
320
|
return 10;
|
|
321
|
-
case
|
|
321
|
+
case i.incAD:
|
|
322
322
|
return 2;
|
|
323
323
|
}
|
|
324
324
|
return Number.MAX_VALUE;
|
|
325
325
|
}
|
|
326
326
|
};
|
|
327
|
-
let
|
|
328
|
-
|
|
327
|
+
let A = g;
|
|
328
|
+
A.starData = [
|
|
329
329
|
[0, 5, 3],
|
|
330
330
|
[95, 8, 5],
|
|
331
331
|
[110, 10, 8],
|
|
@@ -333,7 +333,7 @@ D.starData = [
|
|
|
333
333
|
[130, 20, 12],
|
|
334
334
|
[140, 25, 15]
|
|
335
335
|
];
|
|
336
|
-
class
|
|
336
|
+
class N {
|
|
337
337
|
constructor() {
|
|
338
338
|
this.code = 0, this.optionType = 0, this.reqLevel = 0, this.summary = "", this.option = /* @__PURE__ */ new Map();
|
|
339
339
|
}
|
|
@@ -341,23 +341,23 @@ class X {
|
|
|
341
341
|
* 장비에 표시되는 문자열
|
|
342
342
|
*/
|
|
343
343
|
get convertSummary() {
|
|
344
|
-
const
|
|
345
|
-
|
|
346
|
-
let
|
|
347
|
-
for (const
|
|
348
|
-
|
|
349
|
-
`#${
|
|
350
|
-
(this.option.get(
|
|
344
|
+
const s = [...this.option.keys()];
|
|
345
|
+
s.sort((a, d) => i[d].length - i[a].length);
|
|
346
|
+
let o = this.summary;
|
|
347
|
+
for (const a of s)
|
|
348
|
+
o = o.replace(
|
|
349
|
+
`#${i[a]}`,
|
|
350
|
+
(this.option.get(a) ?? 0).toString()
|
|
351
351
|
);
|
|
352
|
-
return
|
|
352
|
+
return o;
|
|
353
353
|
}
|
|
354
354
|
/**
|
|
355
355
|
* 장비의 착용 가능 레벨로부터 잠재옵션의 레벨을 계산합니다.
|
|
356
356
|
* @param gearReqLevel 장비의 착용 가능 레벨.
|
|
357
357
|
* @returns 잠재옵션 레벨. 1부터 25까지의 값입니다.
|
|
358
358
|
*/
|
|
359
|
-
static getPotentialLevel(
|
|
360
|
-
return
|
|
359
|
+
static getPotentialLevel(s) {
|
|
360
|
+
return s <= 0 ? 1 : s >= 250 ? 25 : Math.floor((s + 9) / 10);
|
|
361
361
|
}
|
|
362
362
|
/**
|
|
363
363
|
* 잠재옵션 분류와 장비 분류를 비교합니다.
|
|
@@ -365,343 +365,343 @@ class X {
|
|
|
365
365
|
* @param gearType 장비 분류.
|
|
366
366
|
* @returns 잠재옵션 분류가 장비 분류에 적용 가능한 경우 `true`; 아닌 경우 `false`.
|
|
367
367
|
*/
|
|
368
|
-
static checkOptionType(
|
|
369
|
-
switch (
|
|
368
|
+
static checkOptionType(s, o) {
|
|
369
|
+
switch (s) {
|
|
370
370
|
case 0:
|
|
371
371
|
return !0;
|
|
372
372
|
case 10:
|
|
373
|
-
return
|
|
373
|
+
return A.isWeapon(o) || A.isSubWeapon(o) || o === f.emblem;
|
|
374
374
|
case 11:
|
|
375
|
-
return !
|
|
375
|
+
return !N.checkOptionType(10, o);
|
|
376
376
|
case 20:
|
|
377
|
-
return
|
|
377
|
+
return A.isSubWeapon(o) || o === f.cap || o === f.coat || o === f.longcoat || o === f.pants || o === f.shoes || o === f.glove || o === f.cape || o === f.belt || o === f.shoulder;
|
|
378
378
|
case 40:
|
|
379
|
-
return
|
|
379
|
+
return o === f.faceAccessory || o === f.eyeAccessory || o === f.earrings || o === f.ring || o === f.pendant;
|
|
380
380
|
case 51:
|
|
381
|
-
return
|
|
381
|
+
return o === f.cap;
|
|
382
382
|
case 52:
|
|
383
|
-
return
|
|
383
|
+
return o === f.coat || o === f.longcoat;
|
|
384
384
|
case 53:
|
|
385
|
-
return
|
|
385
|
+
return o === f.pants;
|
|
386
386
|
case 54:
|
|
387
|
-
return
|
|
387
|
+
return o === f.glove;
|
|
388
388
|
case 55:
|
|
389
|
-
return
|
|
389
|
+
return o === f.shoes;
|
|
390
390
|
default:
|
|
391
391
|
return !1;
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
|
-
var
|
|
396
|
-
function
|
|
397
|
-
const
|
|
398
|
-
if (
|
|
395
|
+
var h = /* @__PURE__ */ ((t) => (t[t.STR = 0] = "STR", t[t.DEX = 1] = "DEX", t[t.INT = 2] = "INT", t[t.LUK = 3] = "LUK", t[t.STR_DEX = 4] = "STR_DEX", t[t.STR_INT = 5] = "STR_INT", t[t.STR_LUK = 6] = "STR_LUK", t[t.DEX_INT = 7] = "DEX_INT", t[t.DEX_LUK = 8] = "DEX_LUK", t[t.INT_LUK = 9] = "INT_LUK", t[t.MHP = 10] = "MHP", t[t.MMP = 11] = "MMP", t[t.PAD = 12] = "PAD", t[t.MAD = 13] = "MAD", t[t.PDD = 14] = "PDD", t[t.speed = 15] = "speed", t[t.jump = 16] = "jump", t[t.damR = 17] = "damR", t[t.bdR = 18] = "bdR", t[t.allStatR = 19] = "allStatR", t[t.reduceReq = 20] = "reduceReq", t))(h || {});
|
|
396
|
+
function h0(t, s, o) {
|
|
397
|
+
const a = F(t, s, o);
|
|
398
|
+
if (a.size === 0)
|
|
399
399
|
return !1;
|
|
400
|
-
for (const [
|
|
401
|
-
|
|
400
|
+
for (const [d, u] of a)
|
|
401
|
+
t.option(d).bonus += u;
|
|
402
402
|
return !0;
|
|
403
403
|
}
|
|
404
|
-
function
|
|
405
|
-
for (const [,
|
|
406
|
-
|
|
404
|
+
function d0(t) {
|
|
405
|
+
for (const [, s] of t.options)
|
|
406
|
+
s.bonus = 0;
|
|
407
407
|
return !0;
|
|
408
408
|
}
|
|
409
|
-
function
|
|
410
|
-
const
|
|
411
|
-
return
|
|
409
|
+
function F(t, s, o) {
|
|
410
|
+
const a = B(s), d = J(t, s, o);
|
|
411
|
+
return d === 0 ? /* @__PURE__ */ new Map() : new Map(a.map((u) => [u, d]));
|
|
412
412
|
}
|
|
413
|
-
function
|
|
414
|
-
const
|
|
415
|
-
if (
|
|
413
|
+
function J(t, s, o) {
|
|
414
|
+
const a = t.req.level, d = t.getBooleanValue(i.bossReward), u = t.type;
|
|
415
|
+
if (a < 0 || d && o < 3)
|
|
416
416
|
return 0;
|
|
417
|
-
switch (
|
|
418
|
-
case
|
|
419
|
-
case
|
|
420
|
-
case
|
|
421
|
-
case
|
|
422
|
-
return (Math.floor(
|
|
423
|
-
case
|
|
424
|
-
case
|
|
425
|
-
case
|
|
426
|
-
case
|
|
427
|
-
case
|
|
428
|
-
case
|
|
429
|
-
return (Math.floor(
|
|
430
|
-
case
|
|
431
|
-
return (Math.floor(
|
|
432
|
-
case
|
|
433
|
-
case
|
|
434
|
-
if (
|
|
435
|
-
const
|
|
436
|
-
let
|
|
437
|
-
if (
|
|
438
|
-
if (
|
|
439
|
-
switch (
|
|
417
|
+
switch (s) {
|
|
418
|
+
case h.STR:
|
|
419
|
+
case h.DEX:
|
|
420
|
+
case h.INT:
|
|
421
|
+
case h.LUK:
|
|
422
|
+
return (Math.floor(a / 20) + 1) * o;
|
|
423
|
+
case h.STR_DEX:
|
|
424
|
+
case h.STR_INT:
|
|
425
|
+
case h.STR_LUK:
|
|
426
|
+
case h.DEX_INT:
|
|
427
|
+
case h.DEX_LUK:
|
|
428
|
+
case h.INT_LUK:
|
|
429
|
+
return (Math.floor(a / 40) + 1) * o;
|
|
430
|
+
case h.PDD:
|
|
431
|
+
return (Math.floor(a / 20) + 1) * o;
|
|
432
|
+
case h.PAD:
|
|
433
|
+
case h.MAD:
|
|
434
|
+
if (A.isWeapon(u)) {
|
|
435
|
+
const v = d ? [0, 0, 1, 1.4666, 2.0166, 2.663, 3.4166] : [1, 2.222, 3.63, 5.325, 7.32, 8.777, 10.25];
|
|
436
|
+
let c = t.option(i.incPAD).base;
|
|
437
|
+
if (u === f.heavySword || u === f.longSword) {
|
|
438
|
+
if (u === f.longSword)
|
|
439
|
+
switch (c) {
|
|
440
440
|
case 100:
|
|
441
|
-
|
|
441
|
+
c = 102;
|
|
442
442
|
break;
|
|
443
443
|
case 103:
|
|
444
|
-
|
|
444
|
+
c = 105;
|
|
445
445
|
break;
|
|
446
446
|
case 105:
|
|
447
|
-
|
|
447
|
+
c = 107;
|
|
448
448
|
break;
|
|
449
449
|
case 112:
|
|
450
|
-
|
|
450
|
+
c = 114;
|
|
451
451
|
break;
|
|
452
452
|
case 117:
|
|
453
|
-
|
|
453
|
+
c = 121;
|
|
454
454
|
break;
|
|
455
455
|
case 135:
|
|
456
|
-
|
|
456
|
+
c = 139;
|
|
457
457
|
break;
|
|
458
458
|
case 169:
|
|
459
|
-
|
|
459
|
+
c = 173;
|
|
460
460
|
break;
|
|
461
461
|
case 203:
|
|
462
|
-
|
|
462
|
+
c = 207;
|
|
463
463
|
break;
|
|
464
464
|
case 293:
|
|
465
|
-
|
|
465
|
+
c = 297;
|
|
466
466
|
break;
|
|
467
467
|
case 337:
|
|
468
|
-
|
|
468
|
+
c = 342;
|
|
469
469
|
break;
|
|
470
470
|
}
|
|
471
|
-
const
|
|
472
|
-
return Math.ceil(
|
|
471
|
+
const n = a > 180 ? 6 : a > 160 ? 5 : a > 110 ? 4 : 3;
|
|
472
|
+
return Math.ceil(c * v[o - 1] * n / 100);
|
|
473
473
|
} else {
|
|
474
|
-
const
|
|
475
|
-
if (
|
|
476
|
-
const
|
|
477
|
-
return Math.ceil(
|
|
474
|
+
const n = t.option(i.incMAD).base;
|
|
475
|
+
if (s === h.MAD && n >= c && (c = n), d) {
|
|
476
|
+
const r = a > 160 ? 18 : a > 150 ? 15 : a > 110 ? 12 : 9;
|
|
477
|
+
return Math.ceil(c * v[o - 1] * r / 100);
|
|
478
478
|
} else {
|
|
479
|
-
const
|
|
480
|
-
return Math.ceil(
|
|
479
|
+
const r = a > 110 ? 4 : 3;
|
|
480
|
+
return Math.ceil(c * v[o - 1] * r / 100);
|
|
481
481
|
}
|
|
482
482
|
}
|
|
483
|
-
} else if (
|
|
483
|
+
} else if (a < 60)
|
|
484
484
|
return 0;
|
|
485
|
-
return
|
|
486
|
-
case
|
|
487
|
-
case
|
|
488
|
-
return
|
|
489
|
-
case
|
|
490
|
-
case
|
|
491
|
-
return
|
|
492
|
-
case
|
|
493
|
-
return
|
|
494
|
-
case
|
|
495
|
-
return
|
|
496
|
-
case
|
|
497
|
-
return
|
|
498
|
-
case
|
|
499
|
-
return 5 *
|
|
485
|
+
return o;
|
|
486
|
+
case h.MHP:
|
|
487
|
+
case h.MMP:
|
|
488
|
+
return a < 10 ? 3 * o : Math.floor(a / 10) * 30 * o;
|
|
489
|
+
case h.speed:
|
|
490
|
+
case h.jump:
|
|
491
|
+
return A.isWeapon(u) ? 0 : o;
|
|
492
|
+
case h.damR:
|
|
493
|
+
return A.isWeapon(u) ? o : 0;
|
|
494
|
+
case h.bdR:
|
|
495
|
+
return a < 90 || !A.isWeapon(u) ? 0 : 2 * o;
|
|
496
|
+
case h.allStatR:
|
|
497
|
+
return a < 70 && !A.isWeapon(u) ? 0 : o;
|
|
498
|
+
case h.reduceReq:
|
|
499
|
+
return 5 * o;
|
|
500
500
|
default:
|
|
501
501
|
return 0;
|
|
502
502
|
}
|
|
503
503
|
}
|
|
504
|
-
function
|
|
505
|
-
switch (
|
|
506
|
-
case
|
|
507
|
-
return [
|
|
508
|
-
case
|
|
509
|
-
return [
|
|
510
|
-
case
|
|
511
|
-
return [
|
|
512
|
-
case
|
|
513
|
-
return [
|
|
514
|
-
case
|
|
515
|
-
return [
|
|
516
|
-
case
|
|
517
|
-
return [
|
|
518
|
-
case
|
|
519
|
-
return [
|
|
520
|
-
case
|
|
521
|
-
return [
|
|
522
|
-
case
|
|
523
|
-
return [
|
|
524
|
-
case
|
|
525
|
-
return [
|
|
526
|
-
case
|
|
527
|
-
return [
|
|
528
|
-
case
|
|
529
|
-
return [
|
|
530
|
-
case
|
|
531
|
-
return [
|
|
532
|
-
case
|
|
533
|
-
return [
|
|
534
|
-
case
|
|
535
|
-
return [
|
|
536
|
-
case
|
|
537
|
-
return [
|
|
538
|
-
case
|
|
539
|
-
return [
|
|
540
|
-
case
|
|
541
|
-
return [
|
|
542
|
-
case
|
|
543
|
-
return [
|
|
544
|
-
case
|
|
545
|
-
return [
|
|
546
|
-
case
|
|
547
|
-
return [
|
|
504
|
+
function B(t) {
|
|
505
|
+
switch (t) {
|
|
506
|
+
case h.STR:
|
|
507
|
+
return [i.incSTR];
|
|
508
|
+
case h.DEX:
|
|
509
|
+
return [i.incDEX];
|
|
510
|
+
case h.INT:
|
|
511
|
+
return [i.incINT];
|
|
512
|
+
case h.LUK:
|
|
513
|
+
return [i.incLUK];
|
|
514
|
+
case h.STR_DEX:
|
|
515
|
+
return [i.incSTR, i.incDEX];
|
|
516
|
+
case h.STR_INT:
|
|
517
|
+
return [i.incSTR, i.incINT];
|
|
518
|
+
case h.STR_LUK:
|
|
519
|
+
return [i.incSTR, i.incLUK];
|
|
520
|
+
case h.DEX_INT:
|
|
521
|
+
return [i.incDEX, i.incINT];
|
|
522
|
+
case h.DEX_LUK:
|
|
523
|
+
return [i.incDEX, i.incLUK];
|
|
524
|
+
case h.INT_LUK:
|
|
525
|
+
return [i.incINT, i.incLUK];
|
|
526
|
+
case h.PDD:
|
|
527
|
+
return [i.incPDD];
|
|
528
|
+
case h.PAD:
|
|
529
|
+
return [i.incPAD];
|
|
530
|
+
case h.MAD:
|
|
531
|
+
return [i.incMAD];
|
|
532
|
+
case h.MHP:
|
|
533
|
+
return [i.incMHP];
|
|
534
|
+
case h.MMP:
|
|
535
|
+
return [i.incMMP];
|
|
536
|
+
case h.speed:
|
|
537
|
+
return [i.incSpeed];
|
|
538
|
+
case h.jump:
|
|
539
|
+
return [i.incJump];
|
|
540
|
+
case h.damR:
|
|
541
|
+
return [i.damR];
|
|
542
|
+
case h.bdR:
|
|
543
|
+
return [i.bdR];
|
|
544
|
+
case h.allStatR:
|
|
545
|
+
return [i.statR];
|
|
546
|
+
case h.reduceReq:
|
|
547
|
+
return [i.reduceReq];
|
|
548
548
|
default:
|
|
549
549
|
return [];
|
|
550
550
|
}
|
|
551
551
|
}
|
|
552
|
-
const
|
|
553
|
-
function
|
|
554
|
-
if (
|
|
552
|
+
const Q = 25, I = 15;
|
|
553
|
+
function Z(t, s = !1) {
|
|
554
|
+
if (t.getBooleanValue(i.incCHUC))
|
|
555
555
|
return !1;
|
|
556
|
-
if (
|
|
557
|
-
return
|
|
558
|
-
if (
|
|
556
|
+
if (t.getBooleanValue(i.superiorEqp))
|
|
557
|
+
return Y(t);
|
|
558
|
+
if (t.star >= t.maxStar && !s || t.star >= Q)
|
|
559
559
|
return !1;
|
|
560
|
-
|
|
561
|
-
const
|
|
562
|
-
[
|
|
563
|
-
[
|
|
564
|
-
[
|
|
565
|
-
[
|
|
566
|
-
[
|
|
567
|
-
],
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
560
|
+
t.star += 1;
|
|
561
|
+
const o = t.star, a = R(t, !1, !1), d = R(t, !1, !0), u = A.isWeapon(t.type) || t.type === f.katara, v = [
|
|
562
|
+
[i.incSTR, i.incDEX],
|
|
563
|
+
[i.incINT, i.incLUK],
|
|
564
|
+
[i.incDEX, i.incSTR],
|
|
565
|
+
[i.incLUK, i.incDEX],
|
|
566
|
+
[i.incSTR, i.incDEX]
|
|
567
|
+
], c = [
|
|
568
|
+
i.incSTR,
|
|
569
|
+
i.incDEX,
|
|
570
|
+
i.incINT,
|
|
571
|
+
i.incLUK
|
|
572
572
|
];
|
|
573
|
-
let
|
|
574
|
-
const
|
|
575
|
-
if (
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
573
|
+
let n;
|
|
574
|
+
const r = t.req.job;
|
|
575
|
+
if (r === 0)
|
|
576
|
+
n = /* @__PURE__ */ new Set([
|
|
577
|
+
i.incSTR,
|
|
578
|
+
i.incDEX,
|
|
579
|
+
i.incINT,
|
|
580
|
+
i.incLUK
|
|
581
581
|
]);
|
|
582
582
|
else {
|
|
583
|
-
|
|
584
|
-
for (let
|
|
585
|
-
if (
|
|
586
|
-
for (const
|
|
587
|
-
|
|
583
|
+
n = /* @__PURE__ */ new Set();
|
|
584
|
+
for (let D = 0; D < 5; D++)
|
|
585
|
+
if (r & 1 << D)
|
|
586
|
+
for (const M of v[D])
|
|
587
|
+
n.add(M);
|
|
588
588
|
}
|
|
589
|
-
for (const
|
|
590
|
-
(
|
|
591
|
-
if (
|
|
592
|
-
const
|
|
593
|
-
if (
|
|
594
|
-
|
|
589
|
+
for (const D of c)
|
|
590
|
+
(n.has(D) || o > 15 && (t.option(D).base > 0 || t.option(D).upgrade > 0)) && (t.option(D).enchant += a[o]);
|
|
591
|
+
if (u) {
|
|
592
|
+
const D = r === 0 || Math.floor(r / 2) % 2 === 1 || t.option(i.incMAD).upgrade > 0;
|
|
593
|
+
if (o > 15)
|
|
594
|
+
t.option(i.incPAD).enchant += d[o], D && (t.option(i.incMAD).enchant += d[o]);
|
|
595
595
|
else {
|
|
596
|
-
const
|
|
597
|
-
if (
|
|
598
|
-
const
|
|
599
|
-
|
|
596
|
+
const M = t.option(i.incPAD).sum - t.option(i.incPAD).bonus;
|
|
597
|
+
if (t.option(i.incPAD).enchant += Math.floor(M / 50) + 1, D) {
|
|
598
|
+
const S = t.option(i.incMAD).sum - t.option(i.incMAD).bonus;
|
|
599
|
+
t.option(i.incMAD).enchant += Math.floor(S / 50) + 1;
|
|
600
600
|
}
|
|
601
601
|
}
|
|
602
602
|
} else
|
|
603
|
-
|
|
604
|
-
if (!
|
|
605
|
-
const
|
|
606
|
-
|
|
603
|
+
t.option(i.incPAD).enchant += d[o], t.option(i.incMAD).enchant += d[o], t.type === f.glove && (r === 0 ? (t.option(i.incPAD).enchant += C[o], t.option(i.incMAD).enchant += C[o]) : Math.floor(r / 2) % 2 === 1 ? t.option(i.incMAD).enchant += C[o] : t.option(i.incPAD).enchant += C[o]);
|
|
604
|
+
if (!u && t.type !== f.machineHeart) {
|
|
605
|
+
const D = t.option(i.incPDD).sum - t.option(i.incPDD).bonus;
|
|
606
|
+
t.option(i.incPDD).enchant += Math.floor(D / 20) + 1;
|
|
607
607
|
}
|
|
608
|
-
const
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
608
|
+
const b = [
|
|
609
|
+
f.cap,
|
|
610
|
+
f.coat,
|
|
611
|
+
f.longcoat,
|
|
612
|
+
f.pants,
|
|
613
|
+
f.cape,
|
|
614
|
+
f.ring,
|
|
615
|
+
f.pendant,
|
|
616
|
+
f.belt,
|
|
617
|
+
f.shoulder,
|
|
618
|
+
f.shield
|
|
619
619
|
];
|
|
620
|
-
return
|
|
620
|
+
return u ? (t.option(i.incMHP).enchant += L[o], t.option(i.incMMP).enchant += L[o]) : b.includes(t.type) && (t.option(i.incMHP).enchant += L[o]), t.type === f.shoes && (t.option(i.incSpeed).enchant += H[o], t.option(i.incJump).enchant += H[o]), !0;
|
|
621
621
|
}
|
|
622
|
-
function
|
|
623
|
-
if (
|
|
622
|
+
function Y(t) {
|
|
623
|
+
if (t.star >= t.maxStar)
|
|
624
624
|
return !1;
|
|
625
|
-
|
|
626
|
-
const
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
625
|
+
t.star += 1;
|
|
626
|
+
const s = t.star, o = R(t, !1, !1), a = R(t, !1, !0), d = [
|
|
627
|
+
i.incSTR,
|
|
628
|
+
i.incDEX,
|
|
629
|
+
i.incINT,
|
|
630
|
+
i.incLUK
|
|
631
631
|
];
|
|
632
|
-
for (const
|
|
633
|
-
|
|
634
|
-
const
|
|
635
|
-
for (const
|
|
636
|
-
|
|
637
|
-
const
|
|
638
|
-
return
|
|
632
|
+
for (const c of d)
|
|
633
|
+
t.option(c).base > 0 && (t.option(c).enchant += o[s]);
|
|
634
|
+
const u = [i.incPAD, i.incMAD];
|
|
635
|
+
for (const c of u)
|
|
636
|
+
t.option(c).base > 0 && (t.option(c).enchant += a[s]);
|
|
637
|
+
const v = t.option(i.incPDD).sum - t.option(i.incPDD).bonus;
|
|
638
|
+
return t.option(i.incPDD).enchant += Math.floor(v / 20) + 1, !0;
|
|
639
639
|
}
|
|
640
|
-
function
|
|
641
|
-
if (
|
|
640
|
+
function u0(t, s = !1, o = !1) {
|
|
641
|
+
if (t.getBooleanValue(i.incCHUC) || t.getBooleanValue(i.superiorEqp) || t.req.level > 150 || t.star >= t.maxStar && !o || t.star >= I)
|
|
642
642
|
return !1;
|
|
643
|
-
|
|
644
|
-
const
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
643
|
+
t.amazing || (t.amazing = !0, t.maxStar = Math.min(t.maxStar, I)), t.star += 1;
|
|
644
|
+
const a = t.star, d = R(t, !0, !1), u = R(t, !0, !0), v = A.isWeapon(t.type) || t.type === f.katara, c = [
|
|
645
|
+
i.incSTR,
|
|
646
|
+
i.incDEX,
|
|
647
|
+
i.incINT,
|
|
648
|
+
i.incLUK
|
|
649
649
|
];
|
|
650
|
-
for (const
|
|
651
|
-
if (
|
|
652
|
-
let
|
|
653
|
-
|
|
650
|
+
for (const b of c)
|
|
651
|
+
if (t.option(b).sum > 0) {
|
|
652
|
+
let M = d[a];
|
|
653
|
+
s && A.isAccessory(t.type) && (M += a > 5 ? 2 : 1), t.option(b).enchant += M;
|
|
654
654
|
}
|
|
655
|
-
const
|
|
656
|
-
for (const
|
|
657
|
-
const
|
|
658
|
-
if (
|
|
659
|
-
|
|
660
|
-
let
|
|
661
|
-
|
|
655
|
+
const n = [i.incPAD, i.incMAD];
|
|
656
|
+
for (const b of n) {
|
|
657
|
+
const D = t.option(b).sum;
|
|
658
|
+
if (D > 0) {
|
|
659
|
+
v && (t.option(b).enchant += Math.floor(D / 50) + 1);
|
|
660
|
+
let M = u[a];
|
|
661
|
+
s && (v || t.type === f.shield) && (M += 1), t.option(b).enchant += M;
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
|
-
|
|
665
|
-
const
|
|
666
|
-
return
|
|
664
|
+
s && A.isArmor(t.type) && (t.option(i.incMHP).enchant += 50);
|
|
665
|
+
const r = t.option(i.incPDD).sum;
|
|
666
|
+
return t.option(i.incPDD).enchant += Math.floor(r / 20) + 1, !0;
|
|
667
667
|
}
|
|
668
|
-
function
|
|
669
|
-
if (
|
|
668
|
+
function l(t) {
|
|
669
|
+
if (t.getBooleanValue(i.incCHUC))
|
|
670
670
|
return !1;
|
|
671
|
-
|
|
672
|
-
for (const [,
|
|
673
|
-
|
|
671
|
+
t.star = 0, t.amazing = !1, t.maxStar = A.getMaxStar(t);
|
|
672
|
+
for (const [, s] of t.options)
|
|
673
|
+
s.enchant = 0;
|
|
674
674
|
return !0;
|
|
675
675
|
}
|
|
676
|
-
function
|
|
677
|
-
if (
|
|
676
|
+
function r0(t) {
|
|
677
|
+
if (t.getBooleanValue(i.incCHUC) || t.amazing)
|
|
678
678
|
return !1;
|
|
679
|
-
const
|
|
680
|
-
|
|
681
|
-
for (let
|
|
682
|
-
|
|
679
|
+
const s = t.star;
|
|
680
|
+
l(t);
|
|
681
|
+
for (let o = 0; o < s; o++)
|
|
682
|
+
Z(t, !0);
|
|
683
683
|
return !0;
|
|
684
684
|
}
|
|
685
|
-
function
|
|
686
|
-
let
|
|
687
|
-
|
|
688
|
-
const
|
|
689
|
-
for (const
|
|
690
|
-
if (
|
|
691
|
-
return
|
|
685
|
+
function R(t, s, o) {
|
|
686
|
+
let a;
|
|
687
|
+
t.getBooleanValue(i.superiorEqp) ? o ? a = P : a = m : s ? o ? a = p : a = e : o ? A.isWeapon(t.type) || t.type === f.katara ? a = y : a = T : a = G;
|
|
688
|
+
const d = t.req.level;
|
|
689
|
+
for (const u of [...a].reverse())
|
|
690
|
+
if (d >= u[0])
|
|
691
|
+
return u;
|
|
692
692
|
throw Error(`Gear has invalid reqLevel.
|
|
693
|
-
` +
|
|
693
|
+
` + t);
|
|
694
694
|
}
|
|
695
|
-
const
|
|
695
|
+
const P = [
|
|
696
696
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
697
697
|
[110, 0, 0, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0],
|
|
698
698
|
[150, 0, 0, 0, 0, 0, 9, 10, 11, 12, 13, 15, 17, 19, 21, 23]
|
|
699
|
-
],
|
|
699
|
+
], m = [
|
|
700
700
|
[0, 1, 2, 4, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
701
701
|
[80, 2, 3, 5, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
702
702
|
[110, 9, 10, 12, 15, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
703
703
|
[150, 19, 20, 22, 25, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
704
|
-
],
|
|
704
|
+
], y = [
|
|
705
705
|
[
|
|
706
706
|
0,
|
|
707
707
|
0,
|
|
@@ -954,7 +954,7 @@ const F = [
|
|
|
954
954
|
37,
|
|
955
955
|
38
|
|
956
956
|
]
|
|
957
|
-
],
|
|
957
|
+
], T = [
|
|
958
958
|
[
|
|
959
959
|
0,
|
|
960
960
|
0,
|
|
@@ -1207,7 +1207,7 @@ const F = [
|
|
|
1207
1207
|
25,
|
|
1208
1208
|
27
|
|
1209
1209
|
]
|
|
1210
|
-
],
|
|
1210
|
+
], G = [
|
|
1211
1211
|
[
|
|
1212
1212
|
0,
|
|
1213
1213
|
2,
|
|
@@ -1460,7 +1460,7 @@ const F = [
|
|
|
1460
1460
|
0,
|
|
1461
1461
|
0
|
|
1462
1462
|
]
|
|
1463
|
-
],
|
|
1463
|
+
], p = [
|
|
1464
1464
|
[0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14],
|
|
1465
1465
|
[80, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 9, 11, 13, 15],
|
|
1466
1466
|
[90, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16],
|
|
@@ -1470,7 +1470,7 @@ const F = [
|
|
|
1470
1470
|
[130, 0, 0, 0, 0, 0, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20],
|
|
1471
1471
|
[140, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 15, 17, 19, 21],
|
|
1472
1472
|
[150, 0, 0, 0, 0, 0, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22]
|
|
1473
|
-
],
|
|
1473
|
+
], e = [
|
|
1474
1474
|
[0, 1, 2, 4, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
1475
1475
|
[80, 2, 3, 5, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
1476
1476
|
[85, 3, 4, 6, 9, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
@@ -1487,7 +1487,7 @@ const F = [
|
|
|
1487
1487
|
[140, 17, 18, 20, 23, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
1488
1488
|
[145, 18, 19, 21, 24, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
1489
1489
|
[150, 19, 20, 22, 25, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
1490
|
-
],
|
|
1490
|
+
], C = [
|
|
1491
1491
|
0,
|
|
1492
1492
|
0,
|
|
1493
1493
|
0,
|
|
@@ -1514,7 +1514,7 @@ const F = [
|
|
|
1514
1514
|
0,
|
|
1515
1515
|
0,
|
|
1516
1516
|
0
|
|
1517
|
-
],
|
|
1517
|
+
], L = [
|
|
1518
1518
|
0,
|
|
1519
1519
|
5,
|
|
1520
1520
|
5,
|
|
@@ -1541,7 +1541,7 @@ const F = [
|
|
|
1541
1541
|
0,
|
|
1542
1542
|
0,
|
|
1543
1543
|
0
|
|
1544
|
-
],
|
|
1544
|
+
], H = [
|
|
1545
1545
|
0,
|
|
1546
1546
|
0,
|
|
1547
1547
|
0,
|
|
@@ -1569,233 +1569,328 @@ const F = [
|
|
|
1569
1569
|
0,
|
|
1570
1570
|
0
|
|
1571
1571
|
];
|
|
1572
|
-
function
|
|
1573
|
-
const
|
|
1574
|
-
let
|
|
1575
|
-
const
|
|
1576
|
-
switch (
|
|
1577
|
-
case
|
|
1578
|
-
|
|
1572
|
+
function t0(t, s, o) {
|
|
1573
|
+
const a = s === i.incINT ? i.incMAD : i.incPAD, d = t.req.level >= 115 ? 2 : t.req.level >= 75 ? 1 : 0;
|
|
1574
|
+
let u;
|
|
1575
|
+
const v = a === i.incMAD ? "마력" : "공격력";
|
|
1576
|
+
switch (s) {
|
|
1577
|
+
case i.incSTR:
|
|
1578
|
+
u = "힘";
|
|
1579
1579
|
break;
|
|
1580
|
-
case
|
|
1581
|
-
|
|
1580
|
+
case i.incDEX:
|
|
1581
|
+
u = "민첩";
|
|
1582
1582
|
break;
|
|
1583
|
-
case
|
|
1584
|
-
|
|
1583
|
+
case i.incINT:
|
|
1584
|
+
u = "지력";
|
|
1585
1585
|
break;
|
|
1586
|
-
case
|
|
1587
|
-
|
|
1586
|
+
case i.incLUK:
|
|
1587
|
+
u = "운";
|
|
1588
1588
|
break;
|
|
1589
|
-
case
|
|
1590
|
-
|
|
1589
|
+
case i.incAllStat:
|
|
1590
|
+
u = "올스탯";
|
|
1591
1591
|
break;
|
|
1592
|
-
case
|
|
1593
|
-
|
|
1592
|
+
case i.incMHP:
|
|
1593
|
+
u = "체력";
|
|
1594
1594
|
break;
|
|
1595
1595
|
}
|
|
1596
|
-
if (
|
|
1597
|
-
if (
|
|
1596
|
+
if (A.isWeapon(t.type) || t.type === f.katara) {
|
|
1597
|
+
if (s === i.incAllStat)
|
|
1598
1598
|
return;
|
|
1599
|
-
let
|
|
1600
|
-
switch (
|
|
1599
|
+
let c;
|
|
1600
|
+
switch (o) {
|
|
1601
1601
|
case 100:
|
|
1602
|
-
|
|
1602
|
+
c = [
|
|
1603
1603
|
[1, 0],
|
|
1604
1604
|
[2, 0],
|
|
1605
1605
|
[3, 1]
|
|
1606
1606
|
];
|
|
1607
1607
|
break;
|
|
1608
1608
|
case 70:
|
|
1609
|
-
|
|
1609
|
+
c = [
|
|
1610
1610
|
[2, 0],
|
|
1611
1611
|
[3, 1],
|
|
1612
1612
|
[5, 2]
|
|
1613
1613
|
];
|
|
1614
1614
|
break;
|
|
1615
1615
|
case 30:
|
|
1616
|
-
|
|
1616
|
+
c = [
|
|
1617
1617
|
[3, 1],
|
|
1618
1618
|
[5, 2],
|
|
1619
1619
|
[7, 3]
|
|
1620
1620
|
];
|
|
1621
1621
|
break;
|
|
1622
1622
|
case 15:
|
|
1623
|
-
|
|
1623
|
+
c = [
|
|
1624
1624
|
[5, 2],
|
|
1625
1625
|
[7, 3],
|
|
1626
1626
|
[9, 4]
|
|
1627
1627
|
];
|
|
1628
1628
|
break;
|
|
1629
1629
|
}
|
|
1630
|
-
const
|
|
1631
|
-
return { name:
|
|
1632
|
-
[
|
|
1633
|
-
[
|
|
1630
|
+
const n = c[d][0], r = c[d][1] * (s === i.incMHP ? 50 : 1);
|
|
1631
|
+
return { name: r > 0 ? `${o}% ${v}(${u}) 주문서` : `${o}% ${v} 주문서`, stat: /* @__PURE__ */ new Map([
|
|
1632
|
+
[s, r],
|
|
1633
|
+
[a, n]
|
|
1634
1634
|
]) };
|
|
1635
|
-
} else if (
|
|
1635
|
+
} else if (o === 15)
|
|
1636
1636
|
return;
|
|
1637
|
-
if (
|
|
1638
|
-
let
|
|
1639
|
-
switch (
|
|
1637
|
+
if (t.type === f.glove) {
|
|
1638
|
+
let c;
|
|
1639
|
+
switch (o) {
|
|
1640
1640
|
case 100:
|
|
1641
|
-
|
|
1641
|
+
c = [0, 1, 1];
|
|
1642
1642
|
break;
|
|
1643
1643
|
case 70:
|
|
1644
|
-
|
|
1644
|
+
c = [1, 2, 2];
|
|
1645
1645
|
break;
|
|
1646
1646
|
case 30:
|
|
1647
|
-
|
|
1647
|
+
c = [2, 3, 3];
|
|
1648
1648
|
break;
|
|
1649
1649
|
}
|
|
1650
|
-
const
|
|
1651
|
-
let
|
|
1652
|
-
return
|
|
1650
|
+
const n = c[d];
|
|
1651
|
+
let r, b;
|
|
1652
|
+
return n === 0 ? (r = `${o}% 방어력 주문서`, b = /* @__PURE__ */ new Map([[i.incPDD, 3]])) : (r = `${o}% ${v} 주문서`, b = /* @__PURE__ */ new Map([[a, n]])), { name: r, stat: b };
|
|
1653
1653
|
}
|
|
1654
|
-
if (
|
|
1655
|
-
if (
|
|
1656
|
-
if (
|
|
1654
|
+
if (A.isArmor(t.type) || t.type === f.shoulder) {
|
|
1655
|
+
if (s === i.incAllStat) {
|
|
1656
|
+
if (o !== 30)
|
|
1657
1657
|
return;
|
|
1658
|
-
const
|
|
1658
|
+
const S = [
|
|
1659
1659
|
[1, 30, 4],
|
|
1660
1660
|
[2, 70, 7],
|
|
1661
1661
|
[3, 120, 10]
|
|
1662
|
-
],
|
|
1663
|
-
[
|
|
1664
|
-
[
|
|
1665
|
-
[
|
|
1666
|
-
[
|
|
1667
|
-
[
|
|
1668
|
-
[
|
|
1662
|
+
], w = S[d][0], j = S[d][1], $ = S[d][2], z = `${o}% ${u} 주문서`, E = /* @__PURE__ */ new Map([
|
|
1663
|
+
[i.incSTR, w],
|
|
1664
|
+
[i.incDEX, w],
|
|
1665
|
+
[i.incINT, w],
|
|
1666
|
+
[i.incLUK, w],
|
|
1667
|
+
[i.incMHP, j],
|
|
1668
|
+
[i.incPDD, $]
|
|
1669
1669
|
]);
|
|
1670
|
-
return
|
|
1670
|
+
return t.upgradeCount === 3 && (t.req.job === 0 ? (E.set(i.incMAD, 1), E.set(i.incPAD, 1)) : Math.floor(t.req.job / 2) % 2 === 1 ? E.set(i.incMAD, 1) : E.set(i.incPAD, 1)), { name: z, stat: E };
|
|
1671
1671
|
}
|
|
1672
|
-
let
|
|
1673
|
-
switch (
|
|
1672
|
+
let c;
|
|
1673
|
+
switch (o) {
|
|
1674
1674
|
case 100:
|
|
1675
|
-
|
|
1675
|
+
c = [
|
|
1676
1676
|
[1, 5, 1],
|
|
1677
1677
|
[2, 20, 2],
|
|
1678
1678
|
[3, 30, 3]
|
|
1679
1679
|
];
|
|
1680
1680
|
break;
|
|
1681
1681
|
case 70:
|
|
1682
|
-
|
|
1682
|
+
c = [
|
|
1683
1683
|
[2, 15, 2],
|
|
1684
1684
|
[3, 40, 4],
|
|
1685
1685
|
[4, 70, 5]
|
|
1686
1686
|
];
|
|
1687
1687
|
break;
|
|
1688
1688
|
case 30:
|
|
1689
|
-
|
|
1689
|
+
c = [
|
|
1690
1690
|
[3, 30, 4],
|
|
1691
1691
|
[5, 70, 7],
|
|
1692
1692
|
[7, 120, 10]
|
|
1693
1693
|
];
|
|
1694
1694
|
break;
|
|
1695
1695
|
}
|
|
1696
|
-
const
|
|
1697
|
-
[
|
|
1698
|
-
[
|
|
1696
|
+
const n = s !== i.incMHP ? c[d][0] : 0, r = c[d][1] + (s === i.incMHP ? c[d][0] * 50 : 0), b = c[d][2], D = `${o}% ${u} 주문서`, M = /* @__PURE__ */ new Map([
|
|
1697
|
+
[i.incMHP, r],
|
|
1698
|
+
[i.incPDD, b]
|
|
1699
1699
|
]);
|
|
1700
|
-
return
|
|
1700
|
+
return n > 0 && M.set(s, n), t.upgradeCount === 3 && (t.req.job === 0 ? (M.set(i.incMAD, 1), M.set(i.incPAD, 1)) : Math.floor(t.req.job / 2) % 2 === 1 ? M.set(i.incMAD, 1) : M.set(i.incPAD, 1)), { name: D, stat: M };
|
|
1701
1701
|
}
|
|
1702
|
-
if (
|
|
1703
|
-
if (
|
|
1704
|
-
if (
|
|
1702
|
+
if (A.isAccessory(t.type)) {
|
|
1703
|
+
if (s === i.incAllStat) {
|
|
1704
|
+
if (o !== 30)
|
|
1705
1705
|
return;
|
|
1706
|
-
const
|
|
1706
|
+
const M = [
|
|
1707
1707
|
[1, 30, 4],
|
|
1708
1708
|
[2, 70, 7],
|
|
1709
1709
|
[3, 120, 10]
|
|
1710
|
-
][
|
|
1711
|
-
[
|
|
1712
|
-
[
|
|
1713
|
-
[
|
|
1714
|
-
[
|
|
1710
|
+
][d][0], S = `${o}% ${u} 주문서`, w = /* @__PURE__ */ new Map([
|
|
1711
|
+
[i.incSTR, M],
|
|
1712
|
+
[i.incDEX, M],
|
|
1713
|
+
[i.incINT, M],
|
|
1714
|
+
[i.incLUK, M]
|
|
1715
1715
|
]);
|
|
1716
|
-
return { name:
|
|
1716
|
+
return { name: S, stat: w };
|
|
1717
1717
|
}
|
|
1718
|
-
let
|
|
1719
|
-
switch (
|
|
1718
|
+
let c;
|
|
1719
|
+
switch (o) {
|
|
1720
1720
|
case 100:
|
|
1721
|
-
|
|
1721
|
+
c = [1, 1, 2];
|
|
1722
1722
|
break;
|
|
1723
1723
|
case 70:
|
|
1724
|
-
|
|
1724
|
+
c = [2, 2, 3];
|
|
1725
1725
|
break;
|
|
1726
1726
|
case 30:
|
|
1727
|
-
|
|
1727
|
+
c = [3, 4, 5];
|
|
1728
1728
|
break;
|
|
1729
1729
|
}
|
|
1730
|
-
const
|
|
1731
|
-
return { name: `${
|
|
1730
|
+
const n = c[d] * (s === i.incMHP ? 50 : 1);
|
|
1731
|
+
return { name: `${o}% ${u} 주문서`, stat: /* @__PURE__ */ new Map([[s, n]]) };
|
|
1732
1732
|
}
|
|
1733
|
-
if (
|
|
1734
|
-
let
|
|
1735
|
-
switch (
|
|
1733
|
+
if (t.type === f.machineHeart) {
|
|
1734
|
+
let c;
|
|
1735
|
+
switch (o) {
|
|
1736
1736
|
case 100:
|
|
1737
|
-
|
|
1737
|
+
c = [1, 2, 3];
|
|
1738
1738
|
break;
|
|
1739
1739
|
case 70:
|
|
1740
|
-
|
|
1740
|
+
c = [2, 3, 5];
|
|
1741
1741
|
break;
|
|
1742
1742
|
case 30:
|
|
1743
|
-
|
|
1743
|
+
c = [3, 5, 7];
|
|
1744
1744
|
break;
|
|
1745
1745
|
}
|
|
1746
|
-
const
|
|
1747
|
-
return { name: `${
|
|
1746
|
+
const n = c[d];
|
|
1747
|
+
return { name: `${o}% ${u} 주문서`, stat: /* @__PURE__ */ new Map([[a, n]]) };
|
|
1748
1748
|
}
|
|
1749
1749
|
}
|
|
1750
|
-
function
|
|
1751
|
-
return
|
|
1750
|
+
function D0(t) {
|
|
1751
|
+
return t.getBooleanValue(i.blockGoldHammer) || t.getBooleanValue(i.onlyUpgrade) || t.totalUpgradeCount <= 0 || t.hammerCount > 0 ? !1 : (t.hammerCount = 1, !0);
|
|
1752
1752
|
}
|
|
1753
|
-
function
|
|
1754
|
-
if (
|
|
1753
|
+
function n0(t, s) {
|
|
1754
|
+
if (t.upgradeCountLeft < 1)
|
|
1755
1755
|
return !1;
|
|
1756
|
-
|
|
1757
|
-
for (const [
|
|
1758
|
-
|
|
1756
|
+
t.upgradeCount += 1;
|
|
1757
|
+
for (const [o, a] of s.stat)
|
|
1758
|
+
t.option(o).upgrade += a;
|
|
1759
1759
|
return !0;
|
|
1760
1760
|
}
|
|
1761
|
-
function
|
|
1762
|
-
const
|
|
1763
|
-
return
|
|
1761
|
+
function M0(t, s, o) {
|
|
1762
|
+
const a = t0(t, s, o);
|
|
1763
|
+
return a ? n0(t, a) : !1;
|
|
1764
1764
|
}
|
|
1765
|
-
function
|
|
1766
|
-
return
|
|
1765
|
+
function A0(t) {
|
|
1766
|
+
return t.upgradeCountLeft < 1 ? !1 : (t.upgradeFailCount += 1, !0);
|
|
1767
1767
|
}
|
|
1768
|
-
function
|
|
1769
|
-
return
|
|
1768
|
+
function b0(t) {
|
|
1769
|
+
return t.upgradeFailCount < 1 ? !1 : (t.upgradeFailCount -= 1, !0);
|
|
1770
1770
|
}
|
|
1771
|
-
function
|
|
1772
|
-
|
|
1773
|
-
for (const [,
|
|
1774
|
-
|
|
1771
|
+
function v0(t) {
|
|
1772
|
+
t.upgradeCount = 0, t.upgradeFailCount = 0, t.hammerCount = 0;
|
|
1773
|
+
for (const [, s] of t.options)
|
|
1774
|
+
s.upgrade = 0;
|
|
1775
1775
|
return !0;
|
|
1776
1776
|
}
|
|
1777
|
+
function c0(t) {
|
|
1778
|
+
const s = {};
|
|
1779
|
+
s.id = t.itemID, s.n = t.name, t.desc.length > 0 && (s.d = t.desc), s.i = t.icon, t.anvilIcon && (s.i2 = t.anvilIcon), t.anvilName && (s.n2 = t.anvilName), s.t = t.type, s.r = t.req, s.pr = U(t.props, (a) => a !== 0), s.o = U(t.options, (a) => !a.empty, s0), t.totalUpgradeCount > 0 && (s.c = t.totalUpgradeCount), t.upgradeCount > 0 && (s.up = t.upgradeCount), t.upgradeFailCount > 0 && (s.f = t.upgradeFailCount), t.hammerCount > 0 && (s.h = t.hammerCount), t.maxStar > 0 && (s.m = t.maxStar), t.star > 0 && (s.s = t.star), t.amazing && (s.a = t.amazing), t.karma !== void 0 && (s.k = t.karma), t.canPotential && (s.cp = t.canPotential), t.grade > 0 && (s.g = t.grade), t.grade > 0 && t.potentials.length > 0 && (s.p = K(t.potentials, void 0, q)), t.additionalGrade > 0 && (s.g2 = t.additionalGrade), t.additionalGrade > 0 && t.additionalPotentials.length > 0 && (s.p2 = K(
|
|
1780
|
+
t.additionalPotentials,
|
|
1781
|
+
void 0,
|
|
1782
|
+
q
|
|
1783
|
+
));
|
|
1784
|
+
const o = i0(t.soulWeapon);
|
|
1785
|
+
return o && (s.w = o), s;
|
|
1786
|
+
}
|
|
1787
|
+
function s0(t) {
|
|
1788
|
+
return [t.base, t.bonus, t.upgrade, t.enchant];
|
|
1789
|
+
}
|
|
1790
|
+
function q(t) {
|
|
1791
|
+
return t ? {
|
|
1792
|
+
c: t.code,
|
|
1793
|
+
t: t.optionType,
|
|
1794
|
+
l: t.reqLevel,
|
|
1795
|
+
s: t.summary,
|
|
1796
|
+
o: U(t.option, (s) => s !== 0)
|
|
1797
|
+
} : null;
|
|
1798
|
+
}
|
|
1799
|
+
function i0(t) {
|
|
1800
|
+
const s = {};
|
|
1801
|
+
if (t.enchanted && (s.e = t.enchanted), t.soul && (s.s = t.soul), t.charge > 0 && (s.c = t.charge), t.chargeOption.size > 0 && (s.o = U(t.chargeOption, (o) => o !== 0)), Object.keys(s).length > 0)
|
|
1802
|
+
return s;
|
|
1803
|
+
}
|
|
1804
|
+
const o0 = (t) => {
|
|
1805
|
+
const s = (c) => typeof c.id == "number" && typeof c.n == "string" && (c.d === void 0 || typeof c.d == "string") && typeof c.i == "object" && c.i !== null && o(c.i) && (c.i2 === void 0 || typeof c.i2 == "object" && c.i2 !== null && o(c.i2)) && (c.n2 === void 0 || typeof c.n2 == "string") && (c.t === 100 || c.t === 101 || c.t === 102 || c.t === 103 || c.t === 104 || c.t === 105 || c.t === 106 || c.t === 107 || c.t === 108 || c.t === 110 || c.t === 111 || c.t === 112 || c.t === 113 || c.t === 114 || c.t === 115 || c.t === 116 || c.t === 118 || c.t === 166 || c.t === 167 || c.t === 109 || c.t === 119 || c.t === 119020 || c.t === 1212 || c.t === 1213 || c.t === 1214 || c.t === 122 || c.t === 123 || c.t === 124 || c.t === 126 || c.t === 127 || c.t === 128 || c.t === 129 || c.t === 130 || c.t === 131 || c.t === 132 || c.t === 133 || c.t === 134 || c.t === 136 || c.t === 137 || c.t === 138 || c.t === 140 || c.t === 1404 || c.t === 141 || c.t === 142 || c.t === 143 || c.t === 144 || c.t === 145 || c.t === 146 || c.t === 147 || c.t === 148 || c.t === 149 || c.t === 150 || c.t === 151 || c.t === 152 || c.t === 153 || c.t === 156 || c.t === 157 || c.t === 158 || c.t === 159 || c.t === 1098 || c.t === 1099 || c.t === 135200 || c.t === 135210 || c.t === 135220 || c.t === 135221 || c.t === 135222 || c.t === 135223 || c.t === 135224 || c.t === 135225 || c.t === 135226 || c.t === 135227 || c.t === 135228 || c.t === 135229 || c.t === 135240 || c.t === 135250 || c.t === 135260 || c.t === 135270 || c.t === 135290 || c.t === 135291 || c.t === 135292 || c.t === 135293 || c.t === 135294 || c.t === 135295 || c.t === 135296 || c.t === 135297 || c.t === 135298 || c.t === 135300 || c.t === 135310 || c.t === 135320 || c.t === 135330 || c.t === 135340 || c.t === 135350 || c.t === 135360 || c.t === 135370 || c.t === 135380 || c.t === 135400 || c.t === 135401 || c.t === 135402 || c.t === 135403 || c.t === 180 || c.t === 161 || c.t === 162 || c.t === 163 || c.t === 164 || c.t === 165 || c.t === 194 || c.t === 195 || c.t === 196 || c.t === 197) && typeof c.r == "object" && c.r !== null && a(c.r) && Array.isArray(c.pr) && c.pr.every(
|
|
1806
|
+
(n) => Array.isArray(n) && n.length === 2 && (n[0] === 1 || n[0] === 2 || n[0] === 3 || n[0] === 4 || n[0] === 5 || n[0] === 6 || n[0] === 7 || n[0] === 8 || n[0] === 9 || n[0] === 10 || n[0] === 11 || n[0] === 12 || n[0] === 13 || n[0] === 14 || n[0] === 15 || n[0] === 16 || n[0] === 17 || n[0] === 18 || n[0] === 19 || n[0] === 20 || n[0] === 21 || n[0] === 22 || n[0] === 23 || n[0] === 24 || n[0] === 25 || n[0] === 26 || n[0] === 27 || n[0] === 28 || n[0] === 29 || n[0] === 30 || n[0] === 31 || n[0] === 100 || n[0] === 101 || n[0] === 102 || n[0] === 103 || n[0] === 104 || n[0] === 105 || n[0] === 106 || n[0] === 107 || n[0] === 108 || n[0] === 109 || n[0] === 110 || n[0] === 111 || n[0] === 112 || n[0] === 113 || n[0] === 114 || n[0] === 115 || n[0] === 116 || n[0] === 117 || n[0] === 118 || n[0] === 119 || n[0] === 120 || n[0] === 121 || n[0] === 122 || n[0] === 123 || n[0] === 124 || n[0] === 125 || n[0] === 126 || n[0] === 127 || n[0] === 128 || n[0] === 129 || n[0] === 130 || n[0] === 131 || n[0] === 132 || n[0] === 133 || n[0] === 134 || n[0] === 135 || n[0] === 200 || n[0] === 201 || n[0] === 202 || n[0] === 203 || n[0] === 1100 || n[0] === 1101 || n[0] === 1102 || n[0] === 1103 || n[0] === 1104 || n[0] === 1105 || n[0] === 1106 || n[0] === 1107 || n[0] === 1108 || n[0] === 1109 || n[0] === 1110 || n[0] === 1111 || n[0] === 1112 || n[0] === 1113 || n[0] === 1114 || n[0] === 1115 || n[0] === 1116 || n[0] === 1117 || n[0] === 1118 || n[0] === 1119 || n[0] === 1120 || n[0] === 1121 || n[0] === 1122 || n[0] === 1123 || n[0] === 1124 || n[0] === 1125 || n[0] === 1126) && typeof n[1] == "number"
|
|
1807
|
+
) && Array.isArray(c.o) && c.o.every(
|
|
1808
|
+
(n) => Array.isArray(n) && n.length === 2 && (n[0] === 1 || n[0] === 2 || n[0] === 3 || n[0] === 4 || n[0] === 5 || n[0] === 6 || n[0] === 7 || n[0] === 8 || n[0] === 9 || n[0] === 10 || n[0] === 11 || n[0] === 12 || n[0] === 13 || n[0] === 14 || n[0] === 15 || n[0] === 16 || n[0] === 17 || n[0] === 18 || n[0] === 19 || n[0] === 20 || n[0] === 21 || n[0] === 22 || n[0] === 23 || n[0] === 24 || n[0] === 25 || n[0] === 26 || n[0] === 27 || n[0] === 28 || n[0] === 29 || n[0] === 30 || n[0] === 31 || n[0] === 100 || n[0] === 101 || n[0] === 102 || n[0] === 103 || n[0] === 104 || n[0] === 105 || n[0] === 106 || n[0] === 107 || n[0] === 108 || n[0] === 109 || n[0] === 110 || n[0] === 111 || n[0] === 112 || n[0] === 113 || n[0] === 114 || n[0] === 115 || n[0] === 116 || n[0] === 117 || n[0] === 118 || n[0] === 119 || n[0] === 120 || n[0] === 121 || n[0] === 122 || n[0] === 123 || n[0] === 124 || n[0] === 125 || n[0] === 126 || n[0] === 127 || n[0] === 128 || n[0] === 129 || n[0] === 130 || n[0] === 131 || n[0] === 132 || n[0] === 133 || n[0] === 134 || n[0] === 135 || n[0] === 200 || n[0] === 201 || n[0] === 202 || n[0] === 203 || n[0] === 1100 || n[0] === 1101 || n[0] === 1102 || n[0] === 1103 || n[0] === 1104 || n[0] === 1105 || n[0] === 1106 || n[0] === 1107 || n[0] === 1108 || n[0] === 1109 || n[0] === 1110 || n[0] === 1111 || n[0] === 1112 || n[0] === 1113 || n[0] === 1114 || n[0] === 1115 || n[0] === 1116 || n[0] === 1117 || n[0] === 1118 || n[0] === 1119 || n[0] === 1120 || n[0] === 1121 || n[0] === 1122 || n[0] === 1123 || n[0] === 1124 || n[0] === 1125 || n[0] === 1126) && Array.isArray(n[1]) && n[1].length === 4 && typeof n[1][0] == "number" && typeof n[1][1] == "number" && typeof n[1][2] == "number" && typeof n[1][3] == "number"
|
|
1809
|
+
) && (c.c === void 0 || typeof c.c == "number") && (c.up === void 0 || typeof c.up == "number") && (c.f === void 0 || typeof c.f == "number") && (c.h === void 0 || typeof c.h == "number") && (c.m === void 0 || typeof c.m == "number") && (c.s === void 0 || typeof c.s == "number") && (c.a === void 0 || typeof c.a == "boolean") && (c.k === void 0 || typeof c.k == "number") && (c.cp === void 0 || typeof c.cp == "boolean") && (c.g === void 0 || c.g === 0 || c.g === 1 || c.g === 2 || c.g === 3 || c.g === 4 || c.g === 5) && (c.p === void 0 || Array.isArray(c.p) && c.p.every(
|
|
1810
|
+
(n) => n === null || typeof n == "object" && n !== null && d(n)
|
|
1811
|
+
)) && (c.g2 === void 0 || c.g2 === 0 || c.g2 === 1 || c.g2 === 2 || c.g2 === 3 || c.g2 === 4 || c.g2 === 5) && (c.p2 === void 0 || Array.isArray(c.p2) && c.p2.every(
|
|
1812
|
+
(n) => n === null || typeof n == "object" && n !== null && d(n)
|
|
1813
|
+
)) && typeof c.w == "object" && c.w !== null && Array.isArray(c.w) === !1 && u(c.w), o = (c) => typeof c.id == "number" && Array.isArray(c.origin) && c.origin.length === 2 && typeof c.origin[0] == "number" && typeof c.origin[1] == "number", a = (c) => typeof c.level == "number" && typeof c.str == "number" && typeof c.luk == "number" && typeof c.dex == "number" && typeof c.int == "number" && typeof c.job == "number" && typeof c.specJob == "number", d = (c) => typeof c.c == "number" && typeof c.t == "number" && typeof c.l == "number" && typeof c.s == "string" && Array.isArray(c.o) && c.o.every(
|
|
1814
|
+
(n) => Array.isArray(n) && n.length === 2 && (n[0] === 1 || n[0] === 2 || n[0] === 3 || n[0] === 4 || n[0] === 5 || n[0] === 6 || n[0] === 7 || n[0] === 8 || n[0] === 9 || n[0] === 10 || n[0] === 11 || n[0] === 12 || n[0] === 13 || n[0] === 14 || n[0] === 15 || n[0] === 16 || n[0] === 17 || n[0] === 18 || n[0] === 19 || n[0] === 20 || n[0] === 21 || n[0] === 22 || n[0] === 23 || n[0] === 24 || n[0] === 25 || n[0] === 26 || n[0] === 27 || n[0] === 28 || n[0] === 29 || n[0] === 30 || n[0] === 31 || n[0] === 100 || n[0] === 101 || n[0] === 102 || n[0] === 103 || n[0] === 104 || n[0] === 105 || n[0] === 106 || n[0] === 107 || n[0] === 108 || n[0] === 109 || n[0] === 110 || n[0] === 111 || n[0] === 112 || n[0] === 113 || n[0] === 114 || n[0] === 115 || n[0] === 116 || n[0] === 117 || n[0] === 118 || n[0] === 119 || n[0] === 120 || n[0] === 121 || n[0] === 122 || n[0] === 123 || n[0] === 124 || n[0] === 125 || n[0] === 126 || n[0] === 127 || n[0] === 128 || n[0] === 129 || n[0] === 130 || n[0] === 131 || n[0] === 132 || n[0] === 133 || n[0] === 134 || n[0] === 135 || n[0] === 200 || n[0] === 201 || n[0] === 202 || n[0] === 203 || n[0] === 1100 || n[0] === 1101 || n[0] === 1102 || n[0] === 1103 || n[0] === 1104 || n[0] === 1105 || n[0] === 1106 || n[0] === 1107 || n[0] === 1108 || n[0] === 1109 || n[0] === 1110 || n[0] === 1111 || n[0] === 1112 || n[0] === 1113 || n[0] === 1114 || n[0] === 1115 || n[0] === 1116 || n[0] === 1117 || n[0] === 1118 || n[0] === 1119 || n[0] === 1120 || n[0] === 1121 || n[0] === 1122 || n[0] === 1123 || n[0] === 1124 || n[0] === 1125 || n[0] === 1126) && typeof n[1] == "number"
|
|
1815
|
+
), u = (c) => (c.e === void 0 || typeof c.e == "boolean") && (c.s === void 0 || typeof c.s == "object" && c.s !== null && v(c.s)) && (c.c === void 0 || typeof c.c == "number") && (c.o === void 0 || Array.isArray(c.o) && c.o.every(
|
|
1816
|
+
(n) => Array.isArray(n) && n.length === 2 && (n[0] === 1 || n[0] === 2 || n[0] === 3 || n[0] === 4 || n[0] === 5 || n[0] === 6 || n[0] === 7 || n[0] === 8 || n[0] === 9 || n[0] === 10 || n[0] === 11 || n[0] === 12 || n[0] === 13 || n[0] === 14 || n[0] === 15 || n[0] === 16 || n[0] === 17 || n[0] === 18 || n[0] === 19 || n[0] === 20 || n[0] === 21 || n[0] === 22 || n[0] === 23 || n[0] === 24 || n[0] === 25 || n[0] === 26 || n[0] === 27 || n[0] === 28 || n[0] === 29 || n[0] === 30 || n[0] === 31 || n[0] === 100 || n[0] === 101 || n[0] === 102 || n[0] === 103 || n[0] === 104 || n[0] === 105 || n[0] === 106 || n[0] === 107 || n[0] === 108 || n[0] === 109 || n[0] === 110 || n[0] === 111 || n[0] === 112 || n[0] === 113 || n[0] === 114 || n[0] === 115 || n[0] === 116 || n[0] === 117 || n[0] === 118 || n[0] === 119 || n[0] === 120 || n[0] === 121 || n[0] === 122 || n[0] === 123 || n[0] === 124 || n[0] === 125 || n[0] === 126 || n[0] === 127 || n[0] === 128 || n[0] === 129 || n[0] === 130 || n[0] === 131 || n[0] === 132 || n[0] === 133 || n[0] === 134 || n[0] === 135 || n[0] === 200 || n[0] === 201 || n[0] === 202 || n[0] === 203 || n[0] === 1100 || n[0] === 1101 || n[0] === 1102 || n[0] === 1103 || n[0] === 1104 || n[0] === 1105 || n[0] === 1106 || n[0] === 1107 || n[0] === 1108 || n[0] === 1109 || n[0] === 1110 || n[0] === 1111 || n[0] === 1112 || n[0] === 1113 || n[0] === 1114 || n[0] === 1115 || n[0] === 1116 || n[0] === 1117 || n[0] === 1118 || n[0] === 1119 || n[0] === 1120 || n[0] === 1121 || n[0] === 1122 || n[0] === 1123 || n[0] === 1124 || n[0] === 1125 || n[0] === 1126) && typeof n[1] == "number"
|
|
1817
|
+
)), v = (c) => typeof c.name == "string" && typeof c.skill == "string" && c.option instanceof Map && [...c.option].every(
|
|
1818
|
+
(n) => Array.isArray(n) && n.length === 2 && (n[0] === 1 || n[0] === 2 || n[0] === 3 || n[0] === 4 || n[0] === 5 || n[0] === 6 || n[0] === 7 || n[0] === 8 || n[0] === 9 || n[0] === 10 || n[0] === 11 || n[0] === 12 || n[0] === 13 || n[0] === 14 || n[0] === 15 || n[0] === 16 || n[0] === 17 || n[0] === 18 || n[0] === 19 || n[0] === 20 || n[0] === 21 || n[0] === 22 || n[0] === 23 || n[0] === 24 || n[0] === 25 || n[0] === 26 || n[0] === 27 || n[0] === 28 || n[0] === 29 || n[0] === 30 || n[0] === 31 || n[0] === 100 || n[0] === 101 || n[0] === 102 || n[0] === 103 || n[0] === 104 || n[0] === 105 || n[0] === 106 || n[0] === 107 || n[0] === 108 || n[0] === 109 || n[0] === 110 || n[0] === 111 || n[0] === 112 || n[0] === 113 || n[0] === 114 || n[0] === 115 || n[0] === 116 || n[0] === 117 || n[0] === 118 || n[0] === 119 || n[0] === 120 || n[0] === 121 || n[0] === 122 || n[0] === 123 || n[0] === 124 || n[0] === 125 || n[0] === 126 || n[0] === 127 || n[0] === 128 || n[0] === 129 || n[0] === 130 || n[0] === 131 || n[0] === 132 || n[0] === 133 || n[0] === 134 || n[0] === 135 || n[0] === 200 || n[0] === 201 || n[0] === 202 || n[0] === 203 || n[0] === 1100 || n[0] === 1101 || n[0] === 1102 || n[0] === 1103 || n[0] === 1104 || n[0] === 1105 || n[0] === 1106 || n[0] === 1107 || n[0] === 1108 || n[0] === 1109 || n[0] === 1110 || n[0] === 1111 || n[0] === 1112 || n[0] === 1113 || n[0] === 1114 || n[0] === 1115 || n[0] === 1116 || n[0] === 1117 || n[0] === 1118 || n[0] === 1119 || n[0] === 1120 || n[0] === 1121 || n[0] === 1122 || n[0] === 1123 || n[0] === 1124 || n[0] === 1125 || n[0] === 1126) && typeof n[1] == "number"
|
|
1819
|
+
) && typeof c.multiplier == "number";
|
|
1820
|
+
return typeof t == "object" && t !== null && s(t);
|
|
1821
|
+
};
|
|
1822
|
+
function S0(t) {
|
|
1823
|
+
return JSON.stringify(c0(t));
|
|
1824
|
+
}
|
|
1825
|
+
function w0(t) {
|
|
1826
|
+
return _(JSON.parse(t));
|
|
1827
|
+
}
|
|
1828
|
+
function R0(t) {
|
|
1829
|
+
const s = JSON.parse(t);
|
|
1830
|
+
return o0(s) ? _(s) : null;
|
|
1831
|
+
}
|
|
1832
|
+
function U(t, s, o) {
|
|
1833
|
+
let a = [...t];
|
|
1834
|
+
return s && (a = a.filter((d) => s(d[1]))), o ? a.map((d) => [d[0], o(d[1])]) : a;
|
|
1835
|
+
}
|
|
1836
|
+
function K(t, s, o) {
|
|
1837
|
+
let a = t;
|
|
1838
|
+
return s && (a = a.filter(s)), o ? a.map(o) : a === t ? [...t] : a;
|
|
1839
|
+
}
|
|
1840
|
+
function X(t, s) {
|
|
1841
|
+
return s ? new Map(t.map((o) => [o[0], s(o[1])])) : new Map(t);
|
|
1842
|
+
}
|
|
1843
|
+
function x(t, s) {
|
|
1844
|
+
return s ? [...t].map(s) : [...t];
|
|
1845
|
+
}
|
|
1846
|
+
function _(t) {
|
|
1847
|
+
const s = new A();
|
|
1848
|
+
return s.itemID = t.id, s.name = t.n, t.d && (s.desc = t.d), s.icon = t.i, t.i2 && t.n2 && (s.anvilIcon = t.i2, s.anvilName = t.n2), s.type = t.t, s.req = t.r, s.props = X(t.pr), s.options = X(t.o, a0), t.c && (s.totalUpgradeCount = t.c), t.up && (s.upgradeCount = t.up), t.f && (s.upgradeFailCount = t.f), t.h && (s.hammerCount = t.h), t.m && (s.maxStar = t.m), t.s && (s.star = t.s), t.a && (s.amazing = t.a), t.k && (s.karma = t.k), t.cp && (s.canPotential = t.cp), t.g && (s.grade = t.g), t.p && (s.potentials = x(t.p, V)), t.g2 && (s.additionalGrade = t.g2), t.p2 && (s.additionalPotentials = x(t.p2, V)), f0(t.w, s), s;
|
|
1849
|
+
}
|
|
1850
|
+
function a0(t) {
|
|
1851
|
+
const s = new W();
|
|
1852
|
+
return s.base = t[0], s.bonus = t[1], s.upgrade = t[2], s.enchant = t[3], s;
|
|
1853
|
+
}
|
|
1854
|
+
function V(t) {
|
|
1855
|
+
if (!t)
|
|
1856
|
+
return null;
|
|
1857
|
+
const s = new N();
|
|
1858
|
+
return s.code = t.c, s.optionType = t.t, s.reqLevel = t.l, s.summary = t.s, s.option = X(t.o), s;
|
|
1859
|
+
}
|
|
1860
|
+
function f0(t, s) {
|
|
1861
|
+
if (t) {
|
|
1862
|
+
const o = s.soulWeapon;
|
|
1863
|
+
t?.e && (o.enchanted = t.e), t?.s && (o.soul = t.s), t?.c && (o.charge = t.c), t?.o && (o.chargeOption = X(t.o));
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1777
1866
|
export {
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1867
|
+
h as BonusStatType,
|
|
1868
|
+
A as Gear,
|
|
1869
|
+
W as GearOption,
|
|
1870
|
+
i as GearPropType,
|
|
1871
|
+
f as GearType,
|
|
1872
|
+
N as Potential,
|
|
1873
|
+
k as PotentialGrade,
|
|
1874
|
+
O as SoulWeapon,
|
|
1875
|
+
u0 as addAmazingEnhancement,
|
|
1876
|
+
h0 as addBonusStat,
|
|
1877
|
+
Z as addStarforce,
|
|
1878
|
+
A0 as addUpgradeFailCount,
|
|
1879
|
+
D0 as applyGoldHammer,
|
|
1880
|
+
n0 as applyScroll,
|
|
1881
|
+
M0 as applySpellTrace,
|
|
1882
|
+
c0 as gearToPlain,
|
|
1883
|
+
F as getBonusStatOption,
|
|
1884
|
+
J as getBonusStatValue,
|
|
1885
|
+
t0 as getSpellTraceScroll,
|
|
1886
|
+
o0 as isGearLike,
|
|
1887
|
+
w0 as parseGear,
|
|
1888
|
+
_ as plainToGear,
|
|
1889
|
+
r0 as recalculateStarforce,
|
|
1890
|
+
d0 as resetBonusStat,
|
|
1891
|
+
l as resetEnhancement,
|
|
1892
|
+
v0 as resetUpgrade,
|
|
1893
|
+
b0 as restoreUpgradeCount,
|
|
1894
|
+
S0 as stringifyGear,
|
|
1895
|
+
R0 as validateParseGear
|
|
1801
1896
|
};
|