@malib/gear 0.0.1 → 0.1.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,10 +1,4 @@
1
- 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_incMHP25 = 9] = "incAllStat_incMHP25", t[t.incAllStat = 10] = "incAllStat", t[t.incMHP_incMMP = 11] = "incMHP_incMMP", t[t.incMHPr_incMMPr = 12] = "incMHPr_incMMPr", t[t.incMHP = 13] = "incMHP", t[t.incMMP = 14] = "incMMP", t[t.incMHPr = 15] = "incMHPr", t[t.incMMPr = 16] = "incMMPr", t[t.incMDF = 17] = "incMDF", t[t.incARC = 18] = "incARC", t[t.incAUT = 19] = "incAUT", t[t.incPAD_incMAD = 20] = "incPAD_incMAD", t[t.incPAD = 21] = "incPAD", t[t.incMAD = 22] = "incMAD", t[t.incAD = 23] = "incAD", t[t.incPDD_incMDD = 24] = "incPDD_incMDD", t[t.incPDD = 25] = "incPDD", t[t.incSpeed = 26] = "incSpeed", t[t.incJump = 27] = "incJump", t[t.knockback = 28] = "knockback", t[t.bdR = 29] = "bdR", t[t.incBDR = 30] = "incBDR", t[t.imdR = 31] = "imdR", t[t.incIMDR = 32] = "incIMDR", t[t.damR = 33] = "damR", t[t.nbdR = 34] = "nbdR", t[t.statR = 35] = "statR", t[t.incCHUC = 36] = "incCHUC", t[t.incPADr = 100] = "incPADr", t[t.incMADr = 101] = "incMADr", t[t.incPDDr = 102] = "incPDDr", t[t.incMDDr = 103] = "incMDDr", t[t.incACCr = 104] = "incACCr", t[t.incEVAr = 105] = "incEVAr", t[t.incCr = 106] = "incCr", t[t.incDAMr = 107] = "incDAMr", t[t.RecoveryHP = 108] = "RecoveryHP", t[t.RecoveryMP = 109] = "RecoveryMP", t[t.face = 110] = "face", t[t.prop = 111] = "prop", t[t.time = 112] = "time", t[t.HP = 113] = "HP", t[t.MP = 114] = "MP", t[t.attackType = 115] = "attackType", t[t.ignoreTargetDEF = 116] = "ignoreTargetDEF", t[t.ignoreDAM = 117] = "ignoreDAM", t[t.ignoreDAMr = 118] = "ignoreDAMr", t[t.DAMreflect = 119] = "DAMreflect", t[t.mpconReduce = 120] = "mpconReduce", t[t.mpRestore = 121] = "mpRestore", t[t.incMesoProp = 122] = "incMesoProp", t[t.incRewardProp = 123] = "incRewardProp", t[t.incAllskill = 124] = "incAllskill", t[t.RecoveryUP = 125] = "RecoveryUP", t[t.boss = 126] = "boss", t[t.level = 127] = "level", t[t.incTerR = 128] = "incTerR", t[t.incAsrR = 129] = "incAsrR", t[t.incEXPr = 130] = "incEXPr", t[t.reduceCooltime = 131] = "reduceCooltime", t[t.incCriticaldamageMax = 132] = "incCriticaldamageMax", t[t.incCriticaldamageMin = 133] = "incCriticaldamageMin", t[t.incSTRlv = 134] = "incSTRlv", t[t.incDEXlv = 135] = "incDEXlv", t[t.incINTlv = 136] = "incINTlv", t[t.incLUKlv = 137] = "incLUKlv", t[t.incMaxDamage = 138] = "incMaxDamage", t[t.incMHPlv = 139] = "incMHPlv", t[t.incPADlv = 140] = "incPADlv", t[t.incMADlv = 141] = "incMADlv", t[t.incCriticaldamage = 142] = "incCriticaldamage", t[t.attackSpeed = 200] = "attackSpeed", t[t.tuc = 201] = "tuc", t[t.setItemID = 202] = "setItemID", t[t.durability = 203] = "durability", t[t.reduceReq = 204] = "reduceReq", t[t.growthLevel = 205] = "growthLevel", t[t.growthExp = 206] = "growthExp", t[t.mastery = 300] = "mastery", t[t.reqLevel = 1e3] = "reqLevel", t[t.reqSTR = 1001] = "reqSTR", t[t.reqDEX = 1002] = "reqDEX", t[t.reqINT = 1003] = "reqINT", t[t.reqLUK = 1004] = "reqLUK", t[t.reqJob = 1005] = "reqJob", t[t.reqPOP = 1006] = "reqPOP", t[t.reqSpecJob = 1007] = "reqSpecJob", 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.tradeOnce = 1106] = "tradeOnce", t[t.sharableOnce = 1107] = "sharableOnce", t[t.charismaEXP = 1108] = "charismaEXP", t[t.senseEXP = 1109] = "senseEXP", t[t.insightEXP = 1110] = "insightEXP", t[t.willEXP = 1111] = "willEXP", t[t.craftEXP = 1112] = "craftEXP", t[t.charmEXP = 1113] = "charmEXP", t[t.accountShareTag = 1114] = "accountShareTag", t[t.bossReward = 1115] = "bossReward", t[t.noPotential = 1116] = "noPotential", t[t.fixedPotential = 1117] = "fixedPotential", t[t.specialGrade = 1118] = "specialGrade", t[t.fixedGrade = 1119] = "fixedGrade", t[t.superiorEqp = 1120] = "superiorEqp", t[t.incPQEXPr = 1121] = "incPQEXPr", t[t.jokerToSetItem = 1122] = "jokerToSetItem", t[t.blockGoldHammer = 1123] = "blockGoldHammer", t[t.exceptUpgrade = 1124] = "exceptUpgrade", t[t.onlyUpgrade = 1125] = "onlyUpgrade", t[t.noLookChange = 1126] = "noLookChange", t[t.tucIgnoreForPotential = 1127] = "tucIgnoreForPotential", t))(n || {}), a = /* @__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))(a || {}), x = /* @__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))(x || {});
2
- class q {
3
- constructor() {
4
- this.level = 0, this.str = 0, this.luk = 0, this.dex = 0, this.int = 0, this.job = 0, this.specJob = 0;
5
- }
6
- }
7
- class K {
1
+ class I {
8
2
  constructor() {
9
3
  this.base = 0, this.bonus = 0, this.upgrade = 0, this.enchant = 0;
10
4
  }
@@ -21,9 +15,42 @@ class K {
21
15
  return this.bonus + this.upgrade + this.enchant;
22
16
  }
23
17
  }
24
- const L = class {
18
+ 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 || {});
19
+ class K {
20
+ constructor() {
21
+ this.level = 0, this.str = 0, this.luk = 0, this.dex = 0, this.int = 0, this.job = 0, this.specJob = 0;
22
+ }
23
+ }
24
+ var i = /* @__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))(i || {}), U = /* @__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))(U || {});
25
+ class g {
26
+ constructor() {
27
+ this.enchanted = !1, this.charge = 0, this.chargeOption = /* @__PURE__ */ new Map();
28
+ }
29
+ }
30
+ class q {
31
+ constructor() {
32
+ this.name = "", this.skill = "", this.multiplier = 0, this.option = /* @__PURE__ */ new Map();
33
+ }
34
+ }
35
+ const v = class {
25
36
  constructor() {
26
- this.itemID = 0, this.name = "", this.desc = "", this.icon = 0, this.origin = [0, 0], this.type = 0, this.req = new q(), this.props = /* @__PURE__ */ new Map(), this.options = /* @__PURE__ */ new Map(), this.totalUpgradeCount = 0, this.upgradeCount = 0, this.failCount = 0, this.hammerCount = 0, this.maxStar = 0, this.star = 0, this.amazing = !1, this.canPotential = !1, this.grade = x.normal, this.potentials = [], this.additionalGrade = x.normal, this.additionalPotentials = [];
37
+ this.itemID = 0, this.name = "", this.desc = "", this.icon = 0, this.origin = [0, 0], this.type = 0, this.req = new K(), 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 = U.normal, this.potentials = [], this.additionalGrade = U.normal, this.additionalPotentials = [], this.soulSlot = new g();
38
+ }
39
+ /**
40
+ * 업그레이드 가능 횟수
41
+ */
42
+ get upgradeCountLeft() {
43
+ return this.totalUpgradeCount + this.hammerCount - this.upgradeCount - this.upgradeFailCount;
44
+ }
45
+ /**
46
+ * 현재 옵션과 기본 옵션의 차이를 가중치를 포함하여 계산합니다.
47
+ * @returns 가중치가 적용된 옵션 차이의 합
48
+ */
49
+ get diff() {
50
+ let t = 0;
51
+ for (const [c, s] of this.options)
52
+ t += Math.floor(s.diff / v.getPropTypeWeight(c));
53
+ return t;
27
54
  }
28
55
  /**
29
56
  * 장비 옵션을 반환합니다. 존재하지 않는 옵션은 장비에 추가됩니다.
@@ -31,7 +58,7 @@ const L = class {
31
58
  * @returns 장비 옵션 객체
32
59
  */
33
60
  option(t) {
34
- return this.options.has(t) || this.options.set(t, new K()), this.options.get(t);
61
+ return this.options.has(t) || this.options.set(t, new I()), this.options.get(t);
35
62
  }
36
63
  /**
37
64
  * 장비 속성의 값을 반환합니다.
@@ -49,38 +76,6 @@ const L = class {
49
76
  getBooleanValue(t) {
50
77
  return Boolean(this.props.get(t));
51
78
  }
52
- /**
53
- * 장비의 최대 강화 수치를 계산합니다.
54
- * @returns 최대 장비 강화 수치
55
- */
56
- getMaxStar() {
57
- if (this.totalUpgradeCount <= 0 || this.getBooleanValue(n.onlyUpgrade) || L.isMechanicGear(this.type) || L.isDragonGear(this.type))
58
- return 0;
59
- let t;
60
- const c = this.req.level;
61
- for (const i of L.starData)
62
- if (c >= i[0])
63
- t = i;
64
- else
65
- break;
66
- return t === void 0 ? 0 : this.getBooleanValue(n.superiorEqp) ? t[2] : t[1];
67
- }
68
- /**
69
- * 현재 옵션과 기본 옵션의 차이를 가중치를 포함하여 계산합니다.
70
- * @returns 가중치가 적용된 옵션 차이의 합
71
- */
72
- get diff() {
73
- let t = 0;
74
- for (const [c, i] of this.options)
75
- t += Math.floor(i.diff / L.getPropTypeWeight(c));
76
- return t;
77
- }
78
- /**
79
- * 업그레이드 가능 횟수
80
- */
81
- get upgradeLeft() {
82
- return this.totalUpgradeCount + this.hammerCount - this.upgradeCount - this.failCount;
83
- }
84
79
  /**
85
80
  * 장비가 주무기인지 여부를 나타내는 `boolean`값을 반환합니다. 블레이드(katara)는 포함되지 않습니다.
86
81
  * @param type 장비 분류
@@ -95,7 +90,7 @@ const L = class {
95
90
  * @returns 한손무기일 경우 `true`; 아닐 경우 `false`
96
91
  */
97
92
  static isLeftWeapon(t) {
98
- return t >= 121 && t <= 139 && t !== a.katara || Math.floor(t / 10) === 121;
93
+ return t >= 121 && t <= 139 && t !== i.katara || Math.floor(t / 10) === 121;
99
94
  }
100
95
  /**
101
96
  * 장비가 두손무기인지 여부를 나타내는 `boolean`값을 반환합니다.
@@ -112,10 +107,10 @@ const L = class {
112
107
  */
113
108
  static isSubWeapon(t) {
114
109
  switch (t) {
115
- case a.katara:
116
- case a.shield:
117
- case a.demonShield:
118
- case a.soulShield:
110
+ case i.katara:
111
+ case i.shield:
112
+ case i.demonShield:
113
+ case i.soulShield:
119
114
  return !0;
120
115
  default:
121
116
  return Math.floor(t / 1e3) === 135;
@@ -128,9 +123,9 @@ const L = class {
128
123
  */
129
124
  static isShield(t) {
130
125
  switch (t) {
131
- case a.shield:
132
- case a.demonShield:
133
- case a.soulShield:
126
+ case i.shield:
127
+ case i.demonShield:
128
+ case i.soulShield:
134
129
  return !0;
135
130
  default:
136
131
  return !1;
@@ -170,16 +165,16 @@ const L = class {
170
165
  }
171
166
  static specialCanPotential(t) {
172
167
  switch (t) {
173
- case a.soulShield:
174
- case a.demonShield:
175
- case a.katara:
176
- case a.magicArrow:
177
- case a.card:
178
- case a.orb:
179
- case a.dragonEssence:
180
- case a.soulRing:
181
- case a.magnum:
182
- case a.emblem:
168
+ case i.soulShield:
169
+ case i.demonShield:
170
+ case i.katara:
171
+ case i.magicArrow:
172
+ case i.card:
173
+ case i.orb:
174
+ case i.dragonEssence:
175
+ case i.soulRing:
176
+ case i.magnum:
177
+ case i.emblem:
183
178
  return !0;
184
179
  default:
185
180
  return !1;
@@ -193,17 +188,17 @@ const L = class {
193
188
  static getGearType(t) {
194
189
  switch (Math.floor(t / 1e3)) {
195
190
  case 1098:
196
- return a.soulShield;
191
+ return i.soulShield;
197
192
  case 1099:
198
- return a.demonShield;
193
+ return i.demonShield;
199
194
  case 1212:
200
- return a.shiningRod;
195
+ return i.shiningRod;
201
196
  case 1213:
202
- return a.tuner;
197
+ return i.tuner;
203
198
  case 1214:
204
- return a.breathShooter;
199
+ return i.breathShooter;
205
200
  case 1404:
206
- return a.chakram;
201
+ return i.chakram;
207
202
  }
208
203
  if (Math.floor(t / 1e4) === 135)
209
204
  switch (Math.floor(t / 100)) {
@@ -224,12 +219,29 @@ const L = class {
224
219
  }
225
220
  static GetGender(t) {
226
221
  switch (this.getGearType(t)) {
227
- case a.emblem:
228
- case a.powerSource:
222
+ case i.emblem:
223
+ case i.powerSource:
229
224
  return 2;
230
225
  }
231
226
  return Math.floor(t / 1e3) % 10;
232
227
  }
228
+ /**
229
+ * 장비의 최대 강화 수치를 계산합니다.
230
+ * @param gear 장비
231
+ * @returns 최대 장비 강화 수치
232
+ */
233
+ static getMaxStar(t) {
234
+ if (t.totalUpgradeCount <= 0 || t.getBooleanValue(n.onlyUpgrade) || v.isMechanicGear(t.type) || v.isDragonGear(t.type))
235
+ return 0;
236
+ let c;
237
+ const s = t.req.level;
238
+ for (const o of v.starData)
239
+ if (s >= o[0])
240
+ c = o;
241
+ else
242
+ break;
243
+ return c === void 0 ? 0 : t.getBooleanValue(n.superiorEqp) ? c[2] : c[1];
244
+ }
233
245
  static getPropTypeWeight(t) {
234
246
  if (t < 100)
235
247
  switch (t) {
@@ -245,20 +257,16 @@ const L = class {
245
257
  case n.incMHP:
246
258
  case n.incMMP:
247
259
  return 100;
248
- case n.incPDD_incMDD:
249
260
  case n.incPDD:
250
261
  return 10;
251
- case n.incPAD_incMAD:
252
262
  case n.incAD:
253
263
  return 2;
254
- case n.incMHP_incMMP:
255
- return 200;
256
264
  }
257
265
  return Number.MAX_VALUE;
258
266
  }
259
267
  };
260
- let S = L;
261
- S.starData = [
268
+ let M = v;
269
+ M.starData = [
262
270
  [0, 5, 3],
263
271
  [95, 8, 5],
264
272
  [110, 10, 8],
@@ -275,14 +283,14 @@ class C {
275
283
  */
276
284
  get convertSummary() {
277
285
  const c = [...this.option.keys()];
278
- c.sort((s, l) => n[l].length - n[s].length);
279
- let i = this.summary;
280
- for (const s of c)
281
- i = i.replace(
282
- `#${n[s]}`,
283
- (this.option.get(s) ?? 0).toString()
286
+ c.sort((o, a) => n[a].length - n[o].length);
287
+ let s = this.summary;
288
+ for (const o of c)
289
+ s = s.replace(
290
+ `#${n[o]}`,
291
+ (this.option.get(o) ?? 0).toString()
284
292
  );
285
- return i;
293
+ return s;
286
294
  }
287
295
  /**
288
296
  * 장비의 착용 가능 레벨로부터 잠재옵션의 레벨을 계산합니다.
@@ -298,512 +306,35 @@ class C {
298
306
  * @param gearType 장비 분류
299
307
  * @returns 잠재옵션 분류가 장비 분류에 적용 가능한 경우 `true`; 아닌 경우 `false`
300
308
  */
301
- static checkOptionType(c, i) {
309
+ static checkOptionType(c, s) {
302
310
  switch (c) {
303
311
  case 0:
304
312
  return !0;
305
313
  case 10:
306
- return S.isWeapon(i) || S.isSubWeapon(i) || i === a.emblem;
314
+ return M.isWeapon(s) || M.isSubWeapon(s) || s === i.emblem;
307
315
  case 11:
308
- return !C.checkOptionType(10, i);
316
+ return !C.checkOptionType(10, s);
309
317
  case 20:
310
- return S.isSubWeapon(i) || i === a.pants || i === a.shoes || i === a.cap || i === a.coat || i === a.longcoat || i === a.glove || i === a.cape || i === a.belt || i === a.shoulder;
318
+ return M.isSubWeapon(s) || s === i.cap || s === i.coat || s === i.longcoat || s === i.pants || s === i.shoes || s === i.glove || s === i.cape || s === i.belt || s === i.shoulder;
311
319
  case 40:
312
- return i === a.faceAccessory || i === a.eyeAccessory || i === a.ring || i === a.earrings || i === a.pendant;
320
+ return s === i.faceAccessory || s === i.eyeAccessory || s === i.earrings || s === i.ring || s === i.pendant;
313
321
  case 51:
314
- return i === a.cap;
322
+ return s === i.cap;
315
323
  case 52:
316
- return i === a.coat || i === a.longcoat;
324
+ return s === i.coat || s === i.longcoat;
317
325
  case 53:
318
- return i === a.pants;
326
+ return s === i.pants;
319
327
  case 54:
320
- return i === a.glove;
328
+ return s === i.glove;
321
329
  case 55:
322
- return i === a.shoes;
330
+ return s === i.shoes;
323
331
  default:
324
332
  return !1;
325
333
  }
326
334
  }
327
335
  }
328
- var e = /* @__PURE__ */ ((t) => (t.EX_PAD = "위대한 (공격력)", t.EX_MAD = "위대한 (마력)", t.EX_ALL = "위대한 (올스탯)", t.EX_MHP = "위대한 (최대 HP)", t.EX_CR = "위대한 (크리티컬 확률)", t.EX_IMD = "위대한 (몬스터 방어율 무시)", t.EX_BD = "위대한 (보스 몬스터 공격 시 데미지)", t.EX_AS = "위대한 (모든 스킬레벨)", t.STR = "기운찬", t.DEX = "날렵한", t.INT = "총명한", t.LUK = "놀라운", t.ALL = "화려한", t.PAD = "강력한", t.MAD = "빛나는", t.MHP = "강인한", t.MMP = "풍부한", t))(e || {});
329
- class U {
330
- constructor() {
331
- this.charge = 0, this.mobName = "", this.soulName = "", this.skillName = "", this.optionString = "", this.option = /* @__PURE__ */ new Map();
332
- }
333
- isEmpty() {
334
- return this.soulName === "";
335
- }
336
- /**
337
- * 소울 충전량으로 증가하는 공격력/마력
338
- */
339
- get chargeAD() {
340
- return this.isEmpty() ? Math.floor(Math.min(500, this.charge) / 100) * 2 : N.getSoulGrade(this.mobName) <= 6 ? Math.floor(Math.min(500, this.charge) / 100) * 4 : Math.floor(Math.min(500, this.charge) / 100) * 3;
341
- }
342
- /**
343
- * 몬스터 이름, 소울 종류로부터 소울을 생성합니다.
344
- * @param mobName 몬스터 이름
345
- * @param soulType 소울 종류
346
- * @returns 일치하는 소울; 존재하지 않을 경우 `undefined`
347
- */
348
- static createFromName(c, i) {
349
- const s = new U();
350
- s.mobName = c, s.soulName = N.getSoulName(c, i), s.skillName = N.getSkillName(c, i);
351
- const { option: l, optionString: r } = N.getSoulOption(
352
- c,
353
- i
354
- );
355
- return s.option = l, s.optionString = r, s;
356
- }
357
- }
358
- class N {
359
- static getSoulGrade(c) {
360
- return X[c].grade;
361
- }
362
- static hasPostfix(c) {
363
- return X[c].namePostfix;
364
- }
365
- static isGreatType(c) {
366
- return c === e.EX_PAD || c === e.EX_MAD || c === e.EX_ALL || c === e.EX_MHP || c === e.EX_CR || c === e.EX_IMD || c === e.EX_BD || c === e.EX_AS;
367
- }
368
- static getSoulName(c, i) {
369
- let s;
370
- N.isGreatType(i) ? s = "위대한" : s = i;
371
- let l;
372
- return N.hasPostfix(c) ? l = "의" : l = "", s + " " + c + l + " 소울";
373
- }
374
- static getSkillName(c, i) {
375
- return this.isGreatType(i) ? X[c].greatSkillName : X[c].normalSkillName;
376
- }
377
- static getSoulOption(c, i) {
378
- const s = /* @__PURE__ */ new Map(), l = this.getSoulOptionType(c, i), r = this.getSoulOptionValue(c, i), m = this.getSoulOptionString(l, r);
379
- return s.set(l, r), { option: s, optionString: m };
380
- }
381
- static getSoulOptionType(c, i) {
382
- const s = this.getSoulGrade(c) === 1;
383
- switch (i) {
384
- case e.EX_PAD:
385
- return s ? n.incPADr : n.incPAD;
386
- case e.EX_MAD:
387
- return s ? n.incMADr : n.incMAD;
388
- case e.EX_ALL:
389
- return s ? n.statR : n.incAllStat;
390
- case e.EX_MHP:
391
- return n.incMHP;
392
- case e.EX_CR:
393
- return n.incCr;
394
- case e.EX_IMD:
395
- return n.imdR;
396
- case e.EX_BD:
397
- return n.bdR;
398
- case e.EX_AS:
399
- return n.incAllskill;
400
- case e.STR:
401
- return n.incSTR;
402
- case e.DEX:
403
- return n.incDEX;
404
- case e.INT:
405
- return n.incINT;
406
- case e.LUK:
407
- return n.incLUK;
408
- case e.ALL:
409
- return n.incAllStat;
410
- case e.PAD:
411
- return n.incPAD;
412
- case e.MAD:
413
- return n.incMAD;
414
- case e.MHP:
415
- return n.incMHP;
416
- case e.MMP:
417
- return n.incMMP;
418
- default:
419
- throw Error();
420
- }
421
- }
422
- static getSoulOptionString(c, i) {
423
- switch (c) {
424
- case n.incSTR:
425
- return `STR : +${i}`;
426
- case n.incDEX:
427
- return `DEX : +${i}`;
428
- case n.incINT:
429
- return `INT : +${i}`;
430
- case n.incLUK:
431
- return `LUK : +${i}`;
432
- case n.incAllStat:
433
- return `올스탯 : +${i}`;
434
- case n.statR:
435
- return `올스탯 : +${i}%`;
436
- case n.incMHP:
437
- return `최대 HP : +${i}`;
438
- case n.incMMP:
439
- return `최대 MP : +${i}`;
440
- case n.incPAD:
441
- return `공격력 : +${i}`;
442
- case n.incPADr:
443
- return `공격력 : +${i}%`;
444
- case n.incMAD:
445
- return `마력 : +${i}`;
446
- case n.incMADr:
447
- return `마력 : +${i}%`;
448
- case n.imdR:
449
- return `몬스터 방어율 무시 : +${i}%`;
450
- case n.bdR:
451
- return `보스 몬스터 공격 시 데미지 : +${i}%`;
452
- case n.incCr:
453
- return `크리티컬 확률 : +${i}%`;
454
- case n.incAllskill:
455
- return `모든 스킬레벨 : +${i}(5차 제외, 스킬의 마스터 레벨까지만 증가)`;
456
- default:
457
- return "";
458
- }
459
- }
460
- static getSoulOptionValue(c, i) {
461
- if (this.isGreatType(i)) {
462
- if (c === "모카딘" && i === e.EX_PAD || c === "카리아인" && i === e.EX_MAD)
463
- return 10;
464
- if (c === "줄라이" && i === e.EX_MHP)
465
- return 1500;
466
- if (c === "CQ57" && i === e.EX_CR)
467
- return 10;
468
- if (c === "플레드" && i === e.EX_ALL)
469
- return 20;
470
- let s = this.getSoulGrade(c);
471
- s === 4 && c !== "반 레온" && (s = 3);
472
- let l;
473
- switch (i) {
474
- case e.EX_PAD:
475
- l = 0;
476
- break;
477
- case e.EX_MAD:
478
- l = 0;
479
- break;
480
- case e.EX_ALL:
481
- l = 1;
482
- break;
483
- case e.EX_MHP:
484
- l = 2;
485
- break;
486
- case e.EX_CR:
487
- l = 3;
488
- break;
489
- case e.EX_IMD:
490
- l = 4;
491
- break;
492
- case e.EX_BD:
493
- l = 4;
494
- break;
495
- case e.EX_AS:
496
- l = 5;
497
- break;
498
- default:
499
- return 0;
500
- }
501
- return $[s][l];
502
- } else {
503
- if (c === "모카딘" && i === e.STR || c === "카리아인" && i === e.INT || c === "줄라이" && i === e.DEX || c === "CQ57" && i === e.LUK)
504
- return 20;
505
- if (c === "플레드" && i === e.ALL)
506
- return 12;
507
- let s;
508
- switch (i) {
509
- case e.STR:
510
- s = 0;
511
- break;
512
- case e.DEX:
513
- s = 0;
514
- break;
515
- case e.INT:
516
- s = 0;
517
- break;
518
- case e.LUK:
519
- s = 0;
520
- break;
521
- case e.ALL:
522
- s = 1;
523
- break;
524
- case e.PAD:
525
- s = 2;
526
- break;
527
- case e.MAD:
528
- s = 2;
529
- break;
530
- case e.MHP:
531
- s = 3;
532
- break;
533
- case e.MMP:
534
- s = 3;
535
- break;
536
- default:
537
- return 0;
538
- }
539
- return V[this.getSoulGrade(c)][s];
540
- }
541
- }
542
- static getSoulMobNames() {
543
- return Object.keys(X);
544
- }
545
- }
546
- const X = {
547
- 시그너스: {
548
- grade: 1,
549
- namePostfix: !0,
550
- normalSkillName: "불꽃 여제",
551
- greatSkillName: "폭풍 여제"
552
- },
553
- 매그너스: {
554
- grade: 1,
555
- namePostfix: !0,
556
- normalSkillName: "진격! 그게 바로 나다",
557
- greatSkillName: "폭격! 그게 바로 나다"
558
- },
559
- 무르무르: {
560
- grade: 1,
561
- namePostfix: !0,
562
- normalSkillName: "무르무르의 이상한 동행",
563
- greatSkillName: "무르무르의 수상한 동행"
564
- },
565
- 블러디퀸: {
566
- grade: 1,
567
- namePostfix: !0,
568
- normalSkillName: "여왕의 마음은 갈대",
569
- greatSkillName: "여왕님이 함께 하셔!"
570
- },
571
- 벨룸: {
572
- grade: 1,
573
- namePostfix: !0,
574
- normalSkillName: "기가 벨룸 레이저",
575
- greatSkillName: "주니어 벨룸 소환!"
576
- },
577
- 스우: {
578
- grade: 1,
579
- namePostfix: !0,
580
- normalSkillName: "때렸스우~",
581
- greatSkillName: "화났스우~"
582
- },
583
- 데미안: {
584
- grade: 1,
585
- namePostfix: !0,
586
- normalSkillName: "사냥 개시",
587
- greatSkillName: "파멸의 검"
588
- },
589
- 루시드: {
590
- grade: 1,
591
- namePostfix: !0,
592
- normalSkillName: "악몽으로의 초대",
593
- greatSkillName: "악몽의 지배자"
594
- },
595
- 윌: {
596
- grade: 1,
597
- namePostfix: !0,
598
- normalSkillName: "파괴의 손아귀",
599
- greatSkillName: "거미의 왕"
600
- },
601
- "진 힐라": {
602
- grade: 1,
603
- namePostfix: !0,
604
- normalSkillName: "영혼 찢기",
605
- greatSkillName: "붉은 마녀"
606
- },
607
- 듄켈: {
608
- grade: 1,
609
- namePostfix: !0,
610
- normalSkillName: "지면 절단",
611
- greatSkillName: "지면 파쇄"
612
- },
613
- 칼로스: {
614
- grade: 1,
615
- namePostfix: !0,
616
- normalSkillName: "감시자의 포효",
617
- greatSkillName: "침입자 처단"
618
- },
619
- 핑크빈: {
620
- grade: 2,
621
- namePostfix: !0,
622
- normalSkillName: "까칠한 귀여움",
623
- greatSkillName: "치명적인 귀여움"
624
- },
625
- 피에르: {
626
- grade: 2,
627
- namePostfix: !0,
628
- normalSkillName: "피에르의 모자선물",
629
- greatSkillName: "깜짝 피에르!"
630
- },
631
- 반반: {
632
- grade: 2,
633
- namePostfix: !0,
634
- normalSkillName: "불닭의 따끔한 맛",
635
- greatSkillName: "치킨 날다!"
636
- },
637
- 우르스: {
638
- grade: 2,
639
- namePostfix: !0,
640
- normalSkillName: "파왕의 포효",
641
- greatSkillName: "파왕의 거친 포효"
642
- },
643
- 아카이럼: {
644
- grade: 3,
645
- namePostfix: !0,
646
- normalSkillName: "스네이크 사우론",
647
- greatSkillName: "메두사카이럼"
648
- },
649
- 모카딘: {
650
- grade: 3,
651
- namePostfix: !0,
652
- normalSkillName: "검은 기사 모카딘",
653
- greatSkillName: "어둠 기사 모카딘"
654
- },
655
- 카리아인: {
656
- grade: 3,
657
- namePostfix: !0,
658
- normalSkillName: "미친 마법사 카리아인",
659
- greatSkillName: "폭주 마법사 카리아인"
660
- },
661
- CQ57: {
662
- grade: 3,
663
- namePostfix: !0,
664
- normalSkillName: "돌격형 CQ57",
665
- greatSkillName: "상급 돌격형 CQ57"
666
- },
667
- 줄라이: {
668
- grade: 3,
669
- namePostfix: !0,
670
- normalSkillName: "인간 사냥꾼 줄라이",
671
- greatSkillName: "피의 사냥꾼 줄라이"
672
- },
673
- 플레드: {
674
- grade: 3,
675
- namePostfix: !0,
676
- normalSkillName: "싸움꾼 플레드",
677
- greatSkillName: "거친 싸움꾼 플레드"
678
- },
679
- "반 레온": {
680
- grade: 4,
681
- namePostfix: !0,
682
- normalSkillName: "야옹이 권법 : 할퀴기 초식",
683
- greatSkillName: "야옹이 권법 : 크로스 따귀 어택"
684
- },
685
- 힐라: {
686
- grade: 4,
687
- namePostfix: !0,
688
- normalSkillName: "마른 하늘에 번개 어택",
689
- greatSkillName: "마른 하늘에 벼락 어택"
690
- },
691
- 파풀라투스: {
692
- grade: 4,
693
- namePostfix: !0,
694
- normalSkillName: "공간의 지배자",
695
- greatSkillName: "시간의 지배자"
696
- },
697
- 자쿰: {
698
- grade: 5,
699
- namePostfix: !0,
700
- normalSkillName: "뜨거운 토템 투하",
701
- greatSkillName: "화끈한 토템 투하"
702
- },
703
- 발록: {
704
- grade: 6,
705
- namePostfix: !0,
706
- normalSkillName: "지옥불 트림",
707
- greatSkillName: "지옥불 재채기"
708
- },
709
- 돼지바: {
710
- grade: 6,
711
- namePostfix: !1,
712
- normalSkillName: "돼지바 스윙!",
713
- greatSkillName: "돼지바 드랍!"
714
- },
715
- 프리미엄PC방: {
716
- grade: 6,
717
- namePostfix: !1,
718
- normalSkillName: "PC방에서 메이플을 켰다!",
719
- greatSkillName: "프리미엄 PC방은 빵빵해"
720
- },
721
- 무공: {
722
- grade: 7,
723
- namePostfix: !0,
724
- normalSkillName: "회춘신공",
725
- greatSkillName: ""
726
- },
727
- 피아누스: {
728
- grade: 7,
729
- namePostfix: !0,
730
- normalSkillName: "공포의 마빡생선",
731
- greatSkillName: ""
732
- },
733
- "드래곤 라이더": {
734
- grade: 8,
735
- namePostfix: !0,
736
- normalSkillName: "손바닥 장풍",
737
- greatSkillName: ""
738
- },
739
- 렉스: {
740
- grade: 8,
741
- namePostfix: !0,
742
- normalSkillName: "내 앞길을 막지마",
743
- greatSkillName: ""
744
- },
745
- 에피네아: {
746
- grade: 9,
747
- namePostfix: !0,
748
- normalSkillName: "여왕의 향기는 나빌레라",
749
- greatSkillName: ""
750
- },
751
- 핑크몽: {
752
- grade: 9,
753
- namePostfix: !0,
754
- normalSkillName: "해피 뉴 에브리데이!",
755
- greatSkillName: ""
756
- },
757
- "락 스피릿": {
758
- grade: 10,
759
- namePostfix: !0,
760
- normalSkillName: "로큰롤 베이비",
761
- greatSkillName: ""
762
- },
763
- "교도관 아니": {
764
- grade: 10,
765
- namePostfix: !0,
766
- normalSkillName: "난 한놈만 패",
767
- greatSkillName: ""
768
- },
769
- 크세르크세스: {
770
- grade: 10,
771
- namePostfix: !0,
772
- normalSkillName: "특공 염소 어택",
773
- greatSkillName: ""
774
- },
775
- "블랙 슬라임": {
776
- grade: 10,
777
- namePostfix: !0,
778
- normalSkillName: "핑크빛 독안개",
779
- greatSkillName: ""
780
- }
781
- }, $ = [
782
- [],
783
- [3, 5, 2e3, 12, 7, 2],
784
- [10, 20, 1500, 10, 5, 1],
785
- [8, 17, 1300, 8, 4, 1],
786
- [7, 15, 1200, 7, 4, 1],
787
- [6, 12, 1100, 6, 3, 1],
788
- [5, 10, 1e3, 5, 3, 1]
789
- ], V = [
790
- [],
791
- [24, 15, 6, 960],
792
- [20, 12, 5, 800],
793
- [18, 10, 4, 700],
794
- [15, 8, 3, 600],
795
- [12, 8, 3, 500],
796
- [10, 7, 3, 400],
797
- [7, 5, 0, 300],
798
- [5, 3, 0, 200],
799
- [4, 2, 0, 180],
800
- [3, 2, 0, 150]
801
- ];
802
- function W() {
803
- return N.getSoulMobNames();
804
- }
805
336
  var u = /* @__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.PDD = 10] = "PDD", t[t.PAD = 11] = "PAD", t[t.MAD = 12] = "MAD", t[t.MHP = 13] = "MHP", t[t.MMP = 14] = "MMP", 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))(u || {});
806
- class _ {
337
+ class X {
807
338
  /**
808
339
  * 장비에 1개의 추가옵션을 추가합니다. 기존에 부여된 추가옵션에 더해집니다.
809
340
  * @param gear 추가옵션을 추가할 장비
@@ -811,12 +342,12 @@ class _ {
811
342
  * @param grade 추가옵션 등급; 1~7의 정수
812
343
  * @returns 추가옵션 부여애 성공했을 경우 `true`; 아닐 경우 `false`
813
344
  */
814
- addBonusStat(c, i, s) {
815
- const l = this.getBonusStatOption(c, i, s);
816
- if (l.size === 0)
345
+ addBonusStat(c, s, o) {
346
+ const a = this.getBonusStatOption(c, s, o);
347
+ if (a.size === 0)
817
348
  return !1;
818
- for (const [r, m] of l)
819
- c.option(r).bonus += m;
349
+ for (const [h, e] of a)
350
+ c.option(h).bonus += e;
820
351
  return !0;
821
352
  }
822
353
  /**
@@ -825,101 +356,101 @@ class _ {
825
356
  * @returns 추가옵션 초기화에 성공했을 경우 `true`; 아닐 경우 `false`
826
357
  */
827
358
  resetBonusStat(c) {
828
- for (const [, i] of c.options)
829
- i.bonus = 0;
359
+ for (const [, s] of c.options)
360
+ s.bonus = 0;
830
361
  return !0;
831
362
  }
832
- getBonusStatOption(c, i, s) {
833
- const l = _.getGearPropType(i), r = this.getBonusStatValue(c, i, s);
834
- return r === 0 ? /* @__PURE__ */ new Map() : new Map(l.map((m) => [m, r]));
363
+ getBonusStatOption(c, s, o) {
364
+ const a = X.getGearPropType(s), h = this.getBonusStatValue(c, s, o);
365
+ return h === 0 ? /* @__PURE__ */ new Map() : new Map(a.map((e) => [e, h]));
835
366
  }
836
- getBonusStatValue(c, i, s) {
837
- const l = c.req.level, r = c.getBooleanValue(n.bossReward), m = c.type;
838
- if (l < 0 || r && s < 3)
367
+ getBonusStatValue(c, s, o) {
368
+ const a = c.req.level, h = c.getBooleanValue(n.bossReward), e = c.type;
369
+ if (a < 0 || h && o < 3)
839
370
  return 0;
840
- switch (i) {
371
+ switch (s) {
841
372
  case u.STR:
842
373
  case u.DEX:
843
374
  case u.INT:
844
375
  case u.LUK:
845
- return (Math.floor(l / 20) + 1) * s;
376
+ return (Math.floor(a / 20) + 1) * o;
846
377
  case u.STR_DEX:
847
378
  case u.STR_INT:
848
379
  case u.STR_LUK:
849
380
  case u.DEX_INT:
850
381
  case u.DEX_LUK:
851
382
  case u.INT_LUK:
852
- return (Math.floor(l / 40) + 1) * s;
383
+ return (Math.floor(a / 40) + 1) * o;
853
384
  case u.PDD:
854
- return (Math.floor(l / 20) + 1) * s;
385
+ return (Math.floor(a / 20) + 1) * o;
855
386
  case u.PAD:
856
387
  case u.MAD:
857
- if (S.isWeapon(m)) {
858
- const M = r ? [0, 0, 1, 1.4666, 2.0166, 2.663, 3.4166] : [1, 2.222, 3.63, 5.325, 7.32, 8.777, 10.25];
859
- let o = c.option(n.incPAD).base;
860
- if (m === a.heavySword || m === a.longSword) {
861
- if (m === a.longSword)
862
- switch (o) {
388
+ if (M.isWeapon(e)) {
389
+ 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];
390
+ let l = c.option(n.incPAD).base;
391
+ if (e === i.heavySword || e === i.longSword) {
392
+ if (e === i.longSword)
393
+ switch (l) {
863
394
  case 100:
864
- o = 102;
395
+ l = 102;
865
396
  break;
866
397
  case 103:
867
- o = 105;
398
+ l = 105;
868
399
  break;
869
400
  case 105:
870
- o = 107;
401
+ l = 107;
871
402
  break;
872
403
  case 112:
873
- o = 114;
404
+ l = 114;
874
405
  break;
875
406
  case 117:
876
- o = 121;
407
+ l = 121;
877
408
  break;
878
409
  case 135:
879
- o = 139;
410
+ l = 139;
880
411
  break;
881
412
  case 169:
882
- o = 173;
413
+ l = 173;
883
414
  break;
884
415
  case 203:
885
- o = 207;
416
+ l = 207;
886
417
  break;
887
418
  case 293:
888
- o = 297;
419
+ l = 297;
889
420
  break;
890
421
  case 337:
891
- o = 342;
422
+ l = 342;
892
423
  break;
893
424
  }
894
- const f = l > 180 ? 6 : l > 160 ? 5 : l > 110 ? 4 : 3;
895
- return Math.ceil(o * M[s - 1] * f / 100);
425
+ const f = a > 180 ? 6 : a > 160 ? 5 : a > 110 ? 4 : 3;
426
+ return Math.ceil(l * r[o - 1] * f / 100);
896
427
  } else {
897
428
  const f = c.option(n.incMAD).base;
898
- if (i === u.MAD && f >= o && (o = f), r) {
899
- const d = l > 160 ? 18 : l > 150 ? 15 : l > 110 ? 12 : 9;
900
- return Math.ceil(o * M[s - 1] * d / 100);
429
+ if (s === u.MAD && f >= l && (l = f), h) {
430
+ const m = a > 160 ? 18 : a > 150 ? 15 : a > 110 ? 12 : 9;
431
+ return Math.ceil(l * r[o - 1] * m / 100);
901
432
  } else {
902
- const d = l > 110 ? 4 : 3;
903
- return Math.ceil(o * M[s - 1] * d / 100);
433
+ const m = a > 110 ? 4 : 3;
434
+ return Math.ceil(l * r[o - 1] * m / 100);
904
435
  }
905
436
  }
906
- } else if (l < 60)
437
+ } else if (a < 60)
907
438
  return 0;
908
- return s;
439
+ return o;
909
440
  case u.MHP:
910
441
  case u.MMP:
911
- return Math.floor(l / 10) * 30 * s;
442
+ return Math.floor(a / 10) * 30 * o;
912
443
  case u.speed:
913
444
  case u.jump:
914
- return S.isWeapon(m) ? 0 : s;
445
+ return M.isWeapon(e) ? 0 : o;
915
446
  case u.damR:
916
- return S.isWeapon(m) ? s : 0;
447
+ return M.isWeapon(e) ? o : 0;
917
448
  case u.bdR:
918
- return l < 90 || !S.isWeapon(m) ? 0 : 2 * s;
449
+ return a < 90 || !M.isWeapon(e) ? 0 : 2 * o;
919
450
  case u.allStatR:
920
- return l < 70 && !S.isWeapon(m) ? 0 : s;
451
+ return a < 70 && !M.isWeapon(e) ? 0 : o;
921
452
  case u.reduceReq:
922
- return Math.min(5 * s, l);
453
+ return Math.min(5 * o, a);
923
454
  default:
924
455
  return 0;
925
456
  }
@@ -990,66 +521,66 @@ const D = class {
990
521
  if (t.star >= t.maxStar && !c || t.star >= D.MAX_STARFORCE)
991
522
  return !1;
992
523
  t.star += 1;
993
- const i = t.star, s = D.getStatData(t, !1, !1), l = D.getStatData(t, !1, !0), r = S.isWeapon(t.type) || t.type === a.katara, m = [
524
+ const s = t.star, o = D.getStatData(t, !1, !1), a = D.getStatData(t, !1, !0), h = M.isWeapon(t.type) || t.type === i.katara, e = [
994
525
  [n.incSTR, n.incDEX],
995
526
  [n.incINT, n.incLUK],
996
527
  [n.incDEX, n.incSTR],
997
528
  [n.incLUK, n.incDEX],
998
529
  [n.incSTR, n.incDEX]
999
- ], M = [
530
+ ], r = [
1000
531
  n.incSTR,
1001
532
  n.incDEX,
1002
533
  n.incINT,
1003
534
  n.incLUK
1004
535
  ];
1005
- let o;
536
+ let l;
1006
537
  const f = t.req.job;
1007
538
  if (f === 0)
1008
- o = /* @__PURE__ */ new Set([
539
+ l = /* @__PURE__ */ new Set([
1009
540
  n.incSTR,
1010
541
  n.incDEX,
1011
542
  n.incINT,
1012
543
  n.incLUK
1013
544
  ]);
1014
545
  else {
1015
- o = /* @__PURE__ */ new Set();
1016
- for (let h = 0; h < 5; h++)
1017
- if (f & 1 << h)
1018
- for (const k of m[h])
1019
- o.add(k);
546
+ l = /* @__PURE__ */ new Set();
547
+ for (let d = 0; d < 5; d++)
548
+ if (f & 1 << d)
549
+ for (const A of e[d])
550
+ l.add(A);
1020
551
  }
1021
- for (const h of M)
1022
- (o.has(h) || i > 15 && (t.option(h).base > 0 || t.option(h).upgrade > 0)) && (t.option(h).enchant += s[i]);
1023
- if (r) {
1024
- const h = f === 0 || Math.floor(f / 2) % 2 === 1 || t.option(n.incMAD).upgrade > 0;
1025
- if (i > 15)
1026
- t.option(n.incPAD).enchant += l[i], h && (t.option(n.incMAD).enchant += l[i]);
552
+ for (const d of r)
553
+ (l.has(d) || s > 15 && (t.option(d).base > 0 || t.option(d).upgrade > 0)) && (t.option(d).enchant += o[s]);
554
+ if (h) {
555
+ const d = f === 0 || Math.floor(f / 2) % 2 === 1 || t.option(n.incMAD).upgrade > 0;
556
+ if (s > 15)
557
+ t.option(n.incPAD).enchant += a[s], d && (t.option(n.incMAD).enchant += a[s]);
1027
558
  else {
1028
- const k = t.option(n.incPAD).sum - t.option(n.incPAD).bonus;
1029
- if (t.option(n.incPAD).enchant += Math.floor(k / 50) + 1, h) {
1030
- const A = t.option(n.incMAD).sum - t.option(n.incMAD).bonus;
1031
- t.option(n.incMAD).enchant += Math.floor(A / 50) + 1;
559
+ const A = t.option(n.incPAD).sum - t.option(n.incPAD).bonus;
560
+ if (t.option(n.incPAD).enchant += Math.floor(A / 50) + 1, d) {
561
+ const S = t.option(n.incMAD).sum - t.option(n.incMAD).bonus;
562
+ t.option(n.incMAD).enchant += Math.floor(S / 50) + 1;
1032
563
  }
1033
564
  }
1034
565
  } else
1035
- t.option(n.incPAD).enchant += l[i], t.option(n.incMAD).enchant += l[i], t.type === a.glove && (f === 0 ? (t.option(n.incPAD).enchant += D.starforceGloveBonusAttData[i], t.option(n.incMAD).enchant += D.starforceGloveBonusAttData[i]) : Math.floor(f / 2) % 2 === 1 ? t.option(n.incMAD).enchant += D.starforceGloveBonusAttData[i] : t.option(n.incPAD).enchant += D.starforceGloveBonusAttData[i]);
1036
- if (!r && t.type !== a.machineHeart) {
1037
- const h = t.option(n.incPDD).sum - t.option(n.incPDD).bonus;
1038
- t.option(n.incPDD).enchant += Math.floor(h / 20) + 1;
566
+ t.option(n.incPAD).enchant += a[s], t.option(n.incMAD).enchant += a[s], t.type === i.glove && (f === 0 ? (t.option(n.incPAD).enchant += D.starforceGloveBonusAttData[s], t.option(n.incMAD).enchant += D.starforceGloveBonusAttData[s]) : Math.floor(f / 2) % 2 === 1 ? t.option(n.incMAD).enchant += D.starforceGloveBonusAttData[s] : t.option(n.incPAD).enchant += D.starforceGloveBonusAttData[s]);
567
+ if (!h && t.type !== i.machineHeart) {
568
+ const d = t.option(n.incPDD).sum - t.option(n.incPDD).bonus;
569
+ t.option(n.incPDD).enchant += Math.floor(d / 20) + 1;
1039
570
  }
1040
- const d = [
1041
- a.cap,
1042
- a.coat,
1043
- a.longcoat,
1044
- a.pants,
1045
- a.cape,
1046
- a.ring,
1047
- a.pendant,
1048
- a.belt,
1049
- a.shoulder,
1050
- a.shield
571
+ const m = [
572
+ i.cap,
573
+ i.coat,
574
+ i.longcoat,
575
+ i.pants,
576
+ i.cape,
577
+ i.ring,
578
+ i.pendant,
579
+ i.belt,
580
+ i.shoulder,
581
+ i.shield
1051
582
  ];
1052
- return r ? (t.option(n.incMHP).enchant += D.starforceMhpData[i], t.option(n.incMMP).enchant += D.starforceMhpData[i]) : d.includes(t.type) && (t.option(n.incMHP).enchant += D.starforceMhpData[i]), t.type === a.shoes && (t.option(n.incSpeed).enchant += D.starforceSpeedJumpData[i], t.option(n.incJump).enchant += D.starforceSpeedJumpData[i]), !0;
583
+ return h ? (t.option(n.incMHP).enchant += D.starforceMhpData[s], t.option(n.incMMP).enchant += D.starforceMhpData[s]) : m.includes(t.type) && (t.option(n.incMHP).enchant += D.starforceMhpData[s]), t.type === i.shoes && (t.option(n.incSpeed).enchant += D.starforceSpeedJumpData[s], t.option(n.incJump).enchant += D.starforceSpeedJumpData[s]), !0;
1053
584
  }
1054
585
  /**
1055
586
  * 슈페리얼 장비에 스타포스 강화를 1회 적용합니다.
@@ -1058,19 +589,19 @@ const D = class {
1058
589
  if (t.star >= t.maxStar)
1059
590
  return !1;
1060
591
  t.star += 1;
1061
- const c = t.star, i = D.getStatData(t, !1, !1), s = D.getStatData(t, !1, !0), l = [
592
+ const c = t.star, s = D.getStatData(t, !1, !1), o = D.getStatData(t, !1, !0), a = [
1062
593
  n.incSTR,
1063
594
  n.incDEX,
1064
595
  n.incINT,
1065
596
  n.incLUK
1066
597
  ];
1067
- for (const M of l)
1068
- t.option(M).base > 0 && (t.option(M).enchant += i[c]);
1069
- const r = [n.incPAD, n.incMAD];
1070
- for (const M of r)
1071
- t.option(M).base > 0 && (t.option(M).enchant += s[c]);
1072
- const m = t.option(n.incPDD).sum - t.option(n.incPDD).bonus;
1073
- return t.option(n.incPDD).enchant += Math.floor(m / 20) + 1, !0;
598
+ for (const r of a)
599
+ t.option(r).base > 0 && (t.option(r).enchant += s[c]);
600
+ const h = [n.incPAD, n.incMAD];
601
+ for (const r of h)
602
+ t.option(r).base > 0 && (t.option(r).enchant += o[c]);
603
+ const e = t.option(n.incPDD).sum - t.option(n.incPDD).bonus;
604
+ return t.option(n.incPDD).enchant += Math.floor(e / 20) + 1, !0;
1074
605
  }
1075
606
  /**
1076
607
  * 장비에 놀라운 장비강화 주문서를 1회 적용합니다.
@@ -1085,31 +616,31 @@ const D = class {
1085
616
  * - 주무기, 블레이드, 방패: 공격력, 마력 +1
1086
617
  * @returns 성공했을 경우 `true`; 아닐 경우 `false`
1087
618
  */
1088
- addAmazingEnhancement(t, c = !1, i = !1) {
1089
- if (t.getBooleanValue(n.incCHUC) || t.getBooleanValue(n.superiorEqp) || t.star >= t.maxStar && !i || t.star >= D.MAX_AMAZING)
619
+ addAmazingEnhancement(t, c = !1, s = !1) {
620
+ if (t.getBooleanValue(n.incCHUC) || t.getBooleanValue(n.superiorEqp) || t.star >= t.maxStar && !s || t.star >= D.MAX_AMAZING)
1090
621
  return !1;
1091
622
  t.amazing || (t.amazing = !0, t.maxStar = Math.min(t.maxStar, D.MAX_AMAZING)), t.star += 1;
1092
- const s = t.star, l = D.getStatData(t, !0, !1), r = D.getStatData(t, !0, !0), m = S.isWeapon(t.type) || t.type === a.katara, M = [
623
+ const o = t.star, a = D.getStatData(t, !0, !1), h = D.getStatData(t, !0, !0), e = M.isWeapon(t.type) || t.type === i.katara, r = [
1093
624
  n.incSTR,
1094
625
  n.incDEX,
1095
626
  n.incINT,
1096
627
  n.incLUK
1097
628
  ];
1098
- for (const d of M)
1099
- if (t.option(d).sum > 0) {
1100
- let k = l[s];
1101
- c && S.isAccessory(t.type) && (k += s > 5 ? 2 : 1), t.option(d).enchant += k;
629
+ for (const m of r)
630
+ if (t.option(m).sum > 0) {
631
+ let A = a[o];
632
+ c && M.isAccessory(t.type) && (A += o > 5 ? 2 : 1), t.option(m).enchant += A;
1102
633
  }
1103
- const o = [n.incPAD, n.incMAD];
1104
- for (const d of o) {
1105
- const h = t.option(d).sum;
1106
- if (h > 0) {
1107
- m && (t.option(d).enchant += Math.floor(h / 50) + 1);
1108
- let k = r[s];
1109
- c && (m || t.type === a.shield) && (k += 1), t.option(d).enchant += k;
634
+ const l = [n.incPAD, n.incMAD];
635
+ for (const m of l) {
636
+ const d = t.option(m).sum;
637
+ if (d > 0) {
638
+ e && (t.option(m).enchant += Math.floor(d / 50) + 1);
639
+ let A = h[o];
640
+ c && (e || t.type === i.shield) && (A += 1), t.option(m).enchant += A;
1110
641
  }
1111
642
  }
1112
- c && S.isArmor(t.type) && (t.option(n.incMHP).enchant += 50);
643
+ c && M.isArmor(t.type) && (t.option(n.incMHP).enchant += 50);
1113
644
  const f = t.option(n.incPDD).sum;
1114
645
  return t.option(n.incPDD).enchant += Math.floor(f / 20) + 1, !0;
1115
646
  }
@@ -1121,7 +652,7 @@ const D = class {
1121
652
  resetEnhancement(t) {
1122
653
  if (t.getBooleanValue(n.incCHUC))
1123
654
  return !1;
1124
- t.star = 0, t.amazing = !1, t.maxStar = t.getMaxStar();
655
+ t.star = 0, t.amazing = !1, t.maxStar = M.getMaxStar(t);
1125
656
  for (const [, c] of t.options)
1126
657
  c.enchant = 0;
1127
658
  return !0;
@@ -1138,37 +669,37 @@ const D = class {
1138
669
  return !1;
1139
670
  const c = t.star;
1140
671
  this.resetEnhancement(t);
1141
- for (let i = 0; i < c; i++)
672
+ for (let s = 0; s < c; s++)
1142
673
  this.addStarforce(t, !0);
1143
674
  return !0;
1144
675
  }
1145
- static getStatData(t, c, i) {
1146
- let s;
1147
- t.getBooleanValue(n.superiorEqp) ? i ? s = this.superiorAttData : s = this.superiorStatData : c ? i ? s = this.amazingAttData : s = this.amazingStatData : i ? S.isWeapon(t.type) || t.type === a.katara ? s = this.starforceWeaponAttData : s = this.starforceAttData : s = this.starforceStatData;
1148
- const l = t.req.level;
1149
- for (const r of [...s].reverse())
1150
- if (l >= r[0])
1151
- return r;
676
+ static getStatData(t, c, s) {
677
+ let o;
678
+ t.getBooleanValue(n.superiorEqp) ? s ? o = this.superiorAttData : o = this.superiorStatData : c ? s ? o = this.amazingAttData : o = this.amazingStatData : s ? M.isWeapon(t.type) || t.type === i.katara ? o = this.starforceWeaponAttData : o = this.starforceAttData : o = this.starforceStatData;
679
+ const a = t.req.level;
680
+ for (const h of [...o].reverse())
681
+ if (a >= h[0])
682
+ return h;
1152
683
  throw Error(`Gear has invalid reqLevel.
1153
684
  ` + t);
1154
685
  }
1155
686
  /* eslint-enable prettier/prettier */
1156
687
  };
1157
- let g = D;
1158
- g.MAX_STARFORCE = 25;
1159
- g.MAX_AMAZING = 15;
1160
- g.superiorAttData = [
688
+ let R = D;
689
+ R.MAX_STARFORCE = 25;
690
+ R.MAX_AMAZING = 15;
691
+ R.superiorAttData = [
1161
692
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1162
693
  [110, 0, 0, 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0],
1163
694
  [150, 0, 0, 0, 0, 0, 9, 10, 11, 12, 13, 15, 17, 19, 21, 23]
1164
695
  ];
1165
- g.superiorStatData = [
696
+ R.superiorStatData = [
1166
697
  [0, 1, 2, 4, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1167
698
  [80, 2, 3, 5, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1168
699
  [110, 9, 10, 12, 15, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1169
700
  [150, 19, 20, 22, 25, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1170
701
  ];
1171
- g.starforceWeaponAttData = [
702
+ R.starforceWeaponAttData = [
1172
703
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1173
704
  [108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 6, 7, 8, 9, 27, 28, 29],
1174
705
  [118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 7, 8, 9, 10, 28, 29, 30],
@@ -1179,7 +710,7 @@ g.starforceWeaponAttData = [
1179
710
  [198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 14, 14, 15, 16, 17, 34, 35, 36],
1180
711
  [248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 16, 16, 17, 18, 19, 36, 37, 38]
1181
712
  ];
1182
- g.starforceAttData = [
713
+ R.starforceAttData = [
1183
714
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1184
715
  [108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, 10, 12, 13, 15, 17],
1185
716
  [118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18],
@@ -1190,7 +721,7 @@ g.starforceAttData = [
1190
721
  [198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 19, 21, 23, 25],
1191
722
  [248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, 17, 18, 19, 21, 23, 25, 27]
1192
723
  ];
1193
- g.starforceStatData = [
724
+ R.starforceStatData = [
1194
725
  [0, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1195
726
  [108, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0],
1196
727
  [118, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0],
@@ -1201,7 +732,7 @@ g.starforceStatData = [
1201
732
  [198, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0],
1202
733
  [248, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0]
1203
734
  ];
1204
- g.amazingAttData = [
735
+ R.amazingAttData = [
1205
736
  [0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14],
1206
737
  [80, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 9, 11, 13, 15],
1207
738
  [90, 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16],
@@ -1212,7 +743,7 @@ g.amazingAttData = [
1212
743
  [140, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 15, 17, 19, 21],
1213
744
  [150, 0, 0, 0, 0, 0, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22]
1214
745
  ];
1215
- g.amazingStatData = [
746
+ R.amazingStatData = [
1216
747
  [0, 1, 2, 4, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1217
748
  [80, 2, 3, 5, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1218
749
  [85, 3, 4, 6, 9, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@@ -1230,7 +761,7 @@ g.amazingStatData = [
1230
761
  [145, 18, 19, 21, 24, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1231
762
  [150, 19, 20, 22, 25, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1232
763
  ];
1233
- g.starforceGloveBonusAttData = [
764
+ R.starforceGloveBonusAttData = [
1234
765
  0,
1235
766
  0,
1236
767
  0,
@@ -1258,7 +789,7 @@ g.starforceGloveBonusAttData = [
1258
789
  0,
1259
790
  0
1260
791
  ];
1261
- g.starforceMhpData = [
792
+ R.starforceMhpData = [
1262
793
  0,
1263
794
  5,
1264
795
  5,
@@ -1286,7 +817,7 @@ g.starforceMhpData = [
1286
817
  0,
1287
818
  0
1288
819
  ];
1289
- g.starforceSpeedJumpData = [
820
+ R.starforceSpeedJumpData = [
1290
821
  0,
1291
822
  0,
1292
823
  0,
@@ -1314,197 +845,261 @@ g.starforceSpeedJumpData = [
1314
845
  0,
1315
846
  0
1316
847
  ];
1317
- class E {
1318
- constructor(c = "", i) {
1319
- this.name = c, this.stat = i ?? /* @__PURE__ */ new Map();
848
+ class w {
849
+ constructor(c = "", s) {
850
+ this.name = c, this.stat = s ?? /* @__PURE__ */ new Map();
1320
851
  }
1321
852
  /**
1322
853
  * 주문의 흔적 `Scroll`을 반환합니다.
1323
854
  * @param gear 적용할 장비
1324
- * @param type 주문의 흔적 스탯 (`GearPropType`)
1325
- * @param probability 주문의 흔적 확률
855
+ * @param type 주문의 흔적 스탯 종류; 다음 값 중 하나입니다:
856
+ *
857
+ * `GearPropType.incSTR` / `GearPropType.incDEX` /
858
+ * `GearPropType.incINT` / `GearPropType.incLUK` /
859
+ * `GearPropType.incAllStat` / `GearPropType.incMHP`
860
+ * @param probability 주문의 흔적 성공 확률 %; 다음 값 중 하나입니다:
861
+ *
862
+ * `100` / `70` / `30` / `15`
1326
863
  * @returns 주문의 흔적 `Scroll`; 존재하지 않을 경우 `undefined`
1327
864
  */
1328
- static getSpellTraceScroll(c, i, s) {
1329
- const l = i === n.incINT ? n.incMAD : n.incPAD, r = c.req.level >= 115 ? 2 : c.req.level >= 75 ? 1 : 0;
1330
- let m;
1331
- const M = l === n.incMAD ? "마력" : "공격력";
1332
- switch (i) {
865
+ static getSpellTraceScroll(c, s, o) {
866
+ const a = s === n.incINT ? n.incMAD : n.incPAD, h = c.req.level >= 115 ? 2 : c.req.level >= 75 ? 1 : 0;
867
+ let e;
868
+ const r = a === n.incMAD ? "마력" : "공격력";
869
+ switch (s) {
1333
870
  case n.incSTR:
1334
- m = "힘";
871
+ e = "힘";
1335
872
  break;
1336
873
  case n.incDEX:
1337
- m = "민첩";
874
+ e = "민첩";
1338
875
  break;
1339
876
  case n.incINT:
1340
- m = "지력";
877
+ e = "지력";
1341
878
  break;
1342
879
  case n.incLUK:
1343
- m = "운";
880
+ e = "운";
1344
881
  break;
1345
882
  case n.incAllStat:
1346
- m = "올스탯";
883
+ e = "올스탯";
1347
884
  break;
1348
885
  case n.incMHP:
1349
- m = "체력";
886
+ e = "체력";
1350
887
  break;
1351
888
  }
1352
- if (S.isWeapon(c.type) || c.type === a.katara) {
1353
- if (i === n.incAllStat)
889
+ if (M.isWeapon(c.type) || c.type === i.katara) {
890
+ if (s === n.incAllStat)
1354
891
  return;
1355
- let o;
1356
- switch (s) {
892
+ let l;
893
+ switch (o) {
1357
894
  case 100:
1358
- o = [
895
+ l = [
1359
896
  [1, 0],
1360
897
  [2, 0],
1361
898
  [3, 1]
1362
899
  ];
1363
900
  break;
1364
901
  case 70:
1365
- o = [
902
+ l = [
1366
903
  [2, 0],
1367
904
  [3, 1],
1368
905
  [5, 2]
1369
906
  ];
1370
907
  break;
1371
908
  case 30:
1372
- o = [
909
+ l = [
1373
910
  [3, 1],
1374
911
  [5, 2],
1375
912
  [7, 3]
1376
913
  ];
1377
914
  break;
1378
915
  case 15:
1379
- o = [
916
+ l = [
1380
917
  [5, 2],
1381
918
  [7, 3],
1382
919
  [9, 4]
1383
920
  ];
1384
921
  break;
1385
922
  }
1386
- const f = o[r][0], d = o[r][1] * (i === n.incMHP ? 50 : 1), h = d > 0 ? `${s}% ${M}(${m}) 주문서` : `${s}% ${M} 주문서`, k = /* @__PURE__ */ new Map([
1387
- [i, d],
1388
- [l, f]
923
+ const f = l[h][0], m = l[h][1] * (s === n.incMHP ? 50 : 1), d = m > 0 ? `${o}% ${r}(${e}) 주문서` : `${o}% ${r} 주문서`, A = /* @__PURE__ */ new Map([
924
+ [s, m],
925
+ [a, f]
1389
926
  ]);
1390
- return new E(h, k);
1391
- } else if (s === 15)
927
+ return new w(d, A);
928
+ } else if (o === 15)
1392
929
  return;
1393
- if (c.type === a.glove) {
1394
- let o;
1395
- switch (s) {
930
+ if (c.type === i.glove) {
931
+ let l;
932
+ switch (o) {
1396
933
  case 100:
1397
- o = [0, 1, 1];
934
+ l = [0, 1, 1];
1398
935
  break;
1399
936
  case 70:
1400
- o = [1, 2, 2];
937
+ l = [1, 2, 2];
1401
938
  break;
1402
939
  case 30:
1403
- o = [2, 3, 3];
940
+ l = [2, 3, 3];
1404
941
  break;
1405
942
  }
1406
- const f = o[r];
1407
- let d, h;
1408
- return f === 0 ? (d = `${s}% 방어력 주문서`, h = /* @__PURE__ */ new Map([[n.incPDD, 3]])) : (d = `${s}% ${M} 주문서`, h = /* @__PURE__ */ new Map([[l, f]])), new E(d, h);
943
+ const f = l[h];
944
+ let m, d;
945
+ return f === 0 ? (m = `${o}% 방어력 주문서`, d = /* @__PURE__ */ new Map([[n.incPDD, 3]])) : (m = `${o}% ${r} 주문서`, d = /* @__PURE__ */ new Map([[a, f]])), new w(m, d);
1409
946
  }
1410
- if (S.isArmor(c.type) || c.type === a.shoulder) {
1411
- if (i === n.incAllStat) {
1412
- if (s !== 30)
947
+ if (M.isArmor(c.type) || c.type === i.shoulder) {
948
+ if (s === n.incAllStat) {
949
+ if (o !== 30)
1413
950
  return;
1414
- const w = [
951
+ const k = [
1415
952
  [1, 30, 4],
1416
953
  [2, 70, 7],
1417
954
  [3, 120, 10]
1418
- ], R = w[r][0], v = w[r][1], H = w[r][2], I = `${s}% ${m} 주문서`, b = /* @__PURE__ */ new Map([
1419
- [n.incSTR, R],
1420
- [n.incDEX, R],
1421
- [n.incINT, R],
1422
- [n.incLUK, R],
1423
- [n.incMHP, v],
955
+ ], b = k[h][0], L = k[h][1], H = k[h][2], N = `${o}% ${e} 주문서`, E = /* @__PURE__ */ new Map([
956
+ [n.incSTR, b],
957
+ [n.incDEX, b],
958
+ [n.incINT, b],
959
+ [n.incLUK, b],
960
+ [n.incMHP, L],
1424
961
  [n.incPDD, H]
1425
962
  ]);
1426
- return c.upgradeCount === 3 && (c.req.job === 0 ? (b.set(n.incMAD, 1), b.set(n.incPAD, 1)) : Math.floor(c.req.job / 2) % 2 === 1 ? b.set(n.incMAD, 1) : b.set(n.incPAD, 1)), new E(I, b);
963
+ return c.upgradeCount === 3 && (c.req.job === 0 ? (E.set(n.incMAD, 1), E.set(n.incPAD, 1)) : Math.floor(c.req.job / 2) % 2 === 1 ? E.set(n.incMAD, 1) : E.set(n.incPAD, 1)), new w(N, E);
1427
964
  }
1428
- let o;
1429
- switch (s) {
965
+ let l;
966
+ switch (o) {
1430
967
  case 100:
1431
- o = [
968
+ l = [
1432
969
  [1, 5, 1],
1433
970
  [2, 20, 2],
1434
971
  [3, 30, 3]
1435
972
  ];
1436
973
  break;
1437
974
  case 70:
1438
- o = [
975
+ l = [
1439
976
  [2, 15, 2],
1440
977
  [3, 40, 4],
1441
978
  [4, 70, 5]
1442
979
  ];
1443
980
  break;
1444
981
  case 30:
1445
- o = [
982
+ l = [
1446
983
  [3, 30, 4],
1447
984
  [5, 70, 7],
1448
985
  [7, 120, 10]
1449
986
  ];
1450
987
  break;
1451
988
  }
1452
- const f = i !== n.incMHP ? o[r][0] : 0, d = o[r][1] + (i === n.incMHP ? o[r][0] * 50 : 0), h = o[r][2], k = `${s}% ${m} 주문서`, A = /* @__PURE__ */ new Map([
1453
- [n.incMHP, d],
1454
- [n.incPDD, h]
989
+ const f = s !== n.incMHP ? l[h][0] : 0, m = l[h][1] + (s === n.incMHP ? l[h][0] * 50 : 0), d = l[h][2], A = `${o}% ${e} 주문서`, S = /* @__PURE__ */ new Map([
990
+ [n.incMHP, m],
991
+ [n.incPDD, d]
1455
992
  ]);
1456
- return f > 0 && A.set(i, f), 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 E(k, A);
993
+ return f > 0 && S.set(s, f), c.upgradeCount === 3 && (c.req.job === 0 ? (S.set(n.incMAD, 1), S.set(n.incPAD, 1)) : Math.floor(c.req.job / 2) % 2 === 1 ? S.set(n.incMAD, 1) : S.set(n.incPAD, 1)), new w(A, S);
1457
994
  }
1458
- if (S.isAccessory(c.type)) {
1459
- if (i === n.incAllStat) {
1460
- if (s !== 30)
995
+ if (M.isAccessory(c.type)) {
996
+ if (s === n.incAllStat) {
997
+ if (o !== 30)
1461
998
  return;
1462
- const A = [
999
+ const S = [
1463
1000
  [1, 30, 4],
1464
1001
  [2, 70, 7],
1465
1002
  [3, 120, 10]
1466
- ][r][0], w = `${s}% ${m} 주문서`, R = /* @__PURE__ */ new Map([
1467
- [n.incSTR, A],
1468
- [n.incDEX, A],
1469
- [n.incINT, A],
1470
- [n.incLUK, A]
1003
+ ][h][0], k = `${o}% ${e} 주문서`, b = /* @__PURE__ */ new Map([
1004
+ [n.incSTR, S],
1005
+ [n.incDEX, S],
1006
+ [n.incINT, S],
1007
+ [n.incLUK, S]
1471
1008
  ]);
1472
- return new E(w, R);
1009
+ return new w(k, b);
1473
1010
  }
1474
- let o;
1475
- switch (s) {
1011
+ let l;
1012
+ switch (o) {
1476
1013
  case 100:
1477
- o = [1, 1, 2];
1014
+ l = [1, 1, 2];
1478
1015
  break;
1479
1016
  case 70:
1480
- o = [2, 2, 3];
1017
+ l = [2, 2, 3];
1481
1018
  break;
1482
1019
  case 30:
1483
- o = [3, 4, 5];
1020
+ l = [3, 4, 5];
1484
1021
  break;
1485
1022
  }
1486
- const f = o[r] * (i === n.incMHP ? 50 : 1), d = `${s}% ${m} 주문서`, h = /* @__PURE__ */ new Map([[i, f]]);
1487
- return new E(d, h);
1023
+ const f = l[h] * (s === n.incMHP ? 50 : 1), m = `${o}% ${e} 주문서`, d = /* @__PURE__ */ new Map([[s, f]]);
1024
+ return new w(m, d);
1488
1025
  }
1489
- if (c.type === a.machineHeart) {
1490
- let o;
1491
- switch (s) {
1026
+ if (c.type === i.machineHeart) {
1027
+ let l;
1028
+ switch (o) {
1492
1029
  case 100:
1493
- o = [1, 2, 3];
1030
+ l = [1, 2, 3];
1494
1031
  break;
1495
1032
  case 70:
1496
- o = [2, 3, 5];
1033
+ l = [2, 3, 5];
1497
1034
  break;
1498
1035
  case 30:
1499
- o = [3, 5, 7];
1036
+ l = [3, 5, 7];
1500
1037
  break;
1501
1038
  }
1502
- const f = o[r], d = `${s}% ${m} 주문서`, h = /* @__PURE__ */ new Map([[l, f]]);
1503
- return new E(d, h);
1039
+ const f = l[h], m = `${o}% ${e} 주문서`, d = /* @__PURE__ */ new Map([[a, f]]);
1040
+ return new w(m, d);
1041
+ }
1042
+ }
1043
+ }
1044
+ class W {
1045
+ /**
1046
+ * 무기를 소울웨폰으로 변환합니다.
1047
+ * @param gear 적용할 장비
1048
+ * @returns 소울웨폰으로 변환되었을 경우 `true`; 아닐 경우 `false`
1049
+ */
1050
+ enchant(c) {
1051
+ return c.soulSlot.enchanted || !M.isWeapon(c.type) ? !1 : (c.soulSlot.enchanted = !0, c.soulSlot.soul = void 0, c.soulSlot.charge = 0, c.soulSlot.chargeOption.clear(), !0);
1052
+ }
1053
+ /**
1054
+ * 소울웨폰을 원래의 무기로 되돌립니다.
1055
+ * @param gear 되돌릴 장비
1056
+ * @returns 되돌렸을 경우 `true`; 아닐 경우 `false`
1057
+ */
1058
+ disenchant(c) {
1059
+ return c.soulSlot.enchanted ? (c.soulSlot.enchanted = !1, c.soulSlot.soul = void 0, c.soulSlot.charge = 0, c.soulSlot.chargeOption.clear(), !0) : !1;
1060
+ }
1061
+ /**
1062
+ * 소울웨폰에 소울을 장착합니다.
1063
+ * @param gear 소울을 장착할 장비
1064
+ * @param soul 장착할 소울
1065
+ * @returns 장착했을 경우 `true`; 아닐 경우 `false`
1066
+ */
1067
+ setSoul(c, s) {
1068
+ return c.soulSlot.enchanted ? (c.soulSlot.soul = s, this.setCharge(c, c.soulSlot.charge), !0) : !1;
1069
+ }
1070
+ /**
1071
+ * 소울이 장착된 소울웨폰에서 소울을 제거합니다.
1072
+ * @param gear 소울을 제거할 장비
1073
+ * @returns 제거했을 경우 `true`; 아닐 경우 `false`
1074
+ */
1075
+ removeSoul(c) {
1076
+ return !c.soulSlot.enchanted || !c.soulSlot.soul ? !1 : (c.soulSlot.soul = void 0, this.setCharge(c, c.soulSlot.charge), !0);
1077
+ }
1078
+ /**
1079
+ * 소울웨폰의 소울 충전량을 설정하고 옵션을 적용합니다.
1080
+ * 0부터 1000까지의 값으로 설정할 수 있습니다.
1081
+ * @param gear 소울 충전량을 설정할 장비
1082
+ * @param charge 소울 충전량
1083
+ * @returns 적용했을 경우 `true`; 아닐 경우 `false`
1084
+ */
1085
+ setCharge(c, s) {
1086
+ if (!c.soulSlot.enchanted || s < 0 || s > 1e3)
1087
+ return !1;
1088
+ c.soulSlot.charge = s;
1089
+ const a = c.option(n.incPAD).base < c.option(n.incMAD).base ? n.incMAD : n.incPAD;
1090
+ return c.soulSlot.chargeOption.clear(), c.soulSlot.chargeOption.set(a, this.getChargeAD(c.soulSlot)), !0;
1091
+ }
1092
+ getChargeAD(c) {
1093
+ if (!c.enchanted)
1094
+ return 0;
1095
+ if (c.soul) {
1096
+ const s = c.soul.multiplier;
1097
+ return 10 + Math.min(Math.ceil(c.charge / 100), 5) * s;
1504
1098
  }
1099
+ return 5 + Math.min(Math.ceil(c.charge / 100), 5);
1505
1100
  }
1506
1101
  }
1507
- class O {
1102
+ class x {
1508
1103
  /**
1509
1104
  * 장비에 황금망치를 적용합니다.
1510
1105
  * @param gear 황금망치를 적용할 장비
@@ -1515,49 +1110,50 @@ class O {
1515
1110
  }
1516
1111
  /**
1517
1112
  * 장비에 주문서를 1회 적용합니다.
1518
- *
1519
1113
  * @param gear 주문서를 적용할 장비
1520
1114
  * @param scroll 적용할 주문서
1521
1115
  * @returns 주문서가 적용됐을 경우 `true`; 아닐 경우 `false`
1522
1116
  */
1523
- applyScroll(c, i) {
1524
- if (c.upgradeLeft < 1)
1117
+ applyScroll(c, s) {
1118
+ if (c.upgradeCountLeft < 1)
1525
1119
  return !1;
1526
1120
  c.upgradeCount += 1;
1527
- for (const [s, l] of i.stat)
1528
- c.option(s).upgrade += l;
1121
+ for (const [o, a] of s.stat)
1122
+ c.option(o).upgrade += a;
1529
1123
  return !0;
1530
1124
  }
1531
1125
  /**
1532
1126
  * 장비에 주문의 흔적 강화를 1회 적용합니다.
1533
1127
  * @param gear 강화를 적용할 장비
1534
- * @param type 주문의 흔적 스탯 종류
1535
- * @param probability 주문의 흔적 성공 확률 %
1128
+ * @param type 주문의 흔적 스탯 종류; 다음 값 중 하나입니다:
1129
+ *
1130
+ * `GearPropType.incSTR` / `GearPropType.incDEX` /
1131
+ * `GearPropType.incINT` / `GearPropType.incLUK` /
1132
+ * `GearPropType.incAllStat` / `GearPropType.incMHP`
1133
+ * @param probability 주문의 흔적 성공 확률 %; 다음 값 중 하나입니다:
1134
+ *
1135
+ * `100` / `70` / `30` / `15`
1536
1136
  * @returns 주문서가 적용됐을 경우 `true`; 아닐 경우 `false`
1537
1137
  */
1538
- applySpellTrace(c, i, s) {
1539
- const l = E.getSpellTraceScroll(c, i, s);
1540
- return l ? this.applyScroll(c, l) : !1;
1138
+ applySpellTrace(c, s, o) {
1139
+ const a = w.getSpellTraceScroll(c, s, o);
1140
+ return a ? this.applyScroll(c, a) : !1;
1541
1141
  }
1542
1142
  /**
1543
- * 장비의 업그레이드 가능 횟수를 1회 감소합니다.
1544
- *
1545
- * 주문서가 실패한 것과 동일한 효과입니다.
1143
+ * 장비의 업그레이드 가능 횟수를 실패로 1회 감소합니다.
1546
1144
  * @param gear 감소할 장비
1547
1145
  * @returns 감소됐을 경우 `true`; 아닐 경우 `false`
1548
1146
  */
1549
- addUpgradeFail(c) {
1550
- return c.upgradeLeft < 1 ? !1 : (c.failCount += 1, !0);
1147
+ addUpgradeFailCount(c) {
1148
+ return c.upgradeCountLeft < 1 ? !1 : (c.upgradeFailCount += 1, !0);
1551
1149
  }
1552
1150
  /**
1553
- * 장비의 업그레이드 가능 횟수를 1회 복구합니다.
1554
- *
1555
- * 장비의 최대 업그레이드 가능 횟수를 초과하지 않습니다.
1151
+ * 장비의 실패한 업그레이드 가능 횟수를 1회 복구합니다.
1556
1152
  * @param gear 복구할 장비
1557
1153
  * @returns 복구했을 경우 `true`; 아닐 경우 `false`
1558
1154
  */
1559
- restoreUpgradeFail(c) {
1560
- return c.failCount < 1 ? !1 : (c.failCount -= 1, !0);
1155
+ restoreUpgradeCount(c) {
1156
+ return c.upgradeFailCount < 1 ? !1 : (c.upgradeFailCount -= 1, !0);
1561
1157
  }
1562
1158
  /**
1563
1159
  * 장비의 주문서, 황금망치 관련 속성을 초기화합니다.
@@ -1567,26 +1163,26 @@ class O {
1567
1163
  * @returns 초기화했을 경우 `true`; 아닐 경우 `false`
1568
1164
  */
1569
1165
  resetUpgrade(c) {
1570
- c.upgradeCount = 0, c.failCount = 0, c.hammerCount = 0;
1571
- for (const [, i] of c.options)
1572
- i.upgrade = 0;
1166
+ c.upgradeCount = 0, c.upgradeFailCount = 0, c.hammerCount = 0;
1167
+ for (const [, s] of c.options)
1168
+ s.upgrade = 0;
1573
1169
  return !0;
1574
1170
  }
1575
1171
  }
1576
1172
  export {
1577
- _ as BonusStatLogic,
1173
+ X as BonusStatLogic,
1578
1174
  u as BonusStatType,
1579
- g as EnhancementLogic,
1580
- S as Gear,
1581
- K as GearOption,
1175
+ R as EnhancementLogic,
1176
+ M as Gear,
1177
+ I as GearOption,
1582
1178
  n as GearPropType,
1583
- q as GearReq,
1584
- a as GearType,
1179
+ K as GearReq,
1180
+ i as GearType,
1585
1181
  C as Potential,
1586
- x as PotentialGrade,
1587
- E as Scroll,
1588
- U as Soul,
1589
- e as SoulType,
1590
- O as UpgradeLogic,
1591
- W as getSoulMobNames
1182
+ U as PotentialGrade,
1183
+ w as Scroll,
1184
+ q as Soul,
1185
+ W as SoulLogic,
1186
+ g as SoulSlot,
1187
+ x as UpgradeLogic
1592
1188
  };