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