@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.cjs +2 -2
- package/index.d.ts +1 -1
- package/index.js +541 -562
- package/internal.d.ts +0 -2
- package/lib/gear.d.ts +29 -2
- package/lib/logic/scroll.d.ts +10 -11
- package/lib/soul.d.ts +12 -12
- package/package.json +1 -1
- package/lib/gearicon.d.ts +0 -9
- package/lib/gearreq.d.ts +0 -19
package/index.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
class
|
|
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
|
|
24
|
-
class
|
|
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 || !
|
|
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
|
|
82
|
-
return this.chargeOption.clear(), this.chargeOption.set(
|
|
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
|
|
84
|
+
const k = class {
|
|
96
85
|
constructor() {
|
|
97
|
-
this.name = "", this.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
|
109
|
+
let n = 0;
|
|
115
110
|
for (const [c, i] of this.options)
|
|
116
|
-
|
|
117
|
-
return
|
|
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(
|
|
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(
|
|
135
|
-
return this.options.has(
|
|
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(
|
|
143
|
-
return this.props.get(
|
|
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(
|
|
151
|
-
return (this.props.get(
|
|
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(
|
|
159
|
-
this.anvilIcon =
|
|
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(
|
|
173
|
-
return this.isLeftWeapon(
|
|
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(
|
|
181
|
-
return
|
|
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(
|
|
189
|
-
return
|
|
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(
|
|
197
|
-
switch (
|
|
198
|
-
case
|
|
199
|
-
case
|
|
200
|
-
case
|
|
201
|
-
case
|
|
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(
|
|
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(
|
|
213
|
-
switch (
|
|
214
|
-
case
|
|
215
|
-
case
|
|
216
|
-
case
|
|
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(
|
|
228
|
-
return
|
|
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(
|
|
236
|
-
return
|
|
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(
|
|
244
|
-
return
|
|
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(
|
|
252
|
-
return
|
|
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(
|
|
260
|
-
switch (Math.floor(
|
|
254
|
+
static getGearType(n) {
|
|
255
|
+
switch (Math.floor(n / 1e3)) {
|
|
261
256
|
case 1098:
|
|
262
|
-
return
|
|
257
|
+
return s.soulShield;
|
|
263
258
|
case 1099:
|
|
264
|
-
return
|
|
259
|
+
return s.demonShield;
|
|
265
260
|
case 1212:
|
|
266
|
-
return
|
|
261
|
+
return s.shiningRod;
|
|
267
262
|
case 1213:
|
|
268
|
-
return
|
|
263
|
+
return s.tuner;
|
|
269
264
|
case 1214:
|
|
270
|
-
return
|
|
265
|
+
return s.breathShooter;
|
|
271
266
|
case 1404:
|
|
272
|
-
return
|
|
267
|
+
return s.chakram;
|
|
273
268
|
}
|
|
274
|
-
if (Math.floor(
|
|
275
|
-
switch (Math.floor(
|
|
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(
|
|
275
|
+
return Math.floor(n / 10);
|
|
281
276
|
default:
|
|
282
|
-
return Math.floor(
|
|
277
|
+
return Math.floor(n / 100) * 10;
|
|
283
278
|
}
|
|
284
|
-
if (Math.floor(
|
|
285
|
-
switch (Math.floor(
|
|
279
|
+
if (Math.floor(n / 1e4) === 119)
|
|
280
|
+
switch (Math.floor(n / 100)) {
|
|
286
281
|
case 11902:
|
|
287
|
-
return Math.floor(
|
|
282
|
+
return Math.floor(n / 10);
|
|
288
283
|
}
|
|
289
|
-
return Math.floor(
|
|
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(
|
|
298
|
-
if (
|
|
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 =
|
|
302
|
-
for (const
|
|
303
|
-
if (i >=
|
|
304
|
-
c =
|
|
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 :
|
|
302
|
+
return c === void 0 ? 0 : n.getBooleanValue(t.superiorEqp) ? c[2] : c[1];
|
|
308
303
|
}
|
|
309
|
-
static getPropTypeWeight(
|
|
310
|
-
if (
|
|
311
|
-
switch (
|
|
312
|
-
case
|
|
313
|
-
case
|
|
314
|
-
case
|
|
315
|
-
case
|
|
316
|
-
case
|
|
317
|
-
case
|
|
318
|
-
case
|
|
319
|
-
case
|
|
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
|
|
322
|
-
case
|
|
316
|
+
case t.incMHP:
|
|
317
|
+
case t.incMMP:
|
|
323
318
|
return 100;
|
|
324
|
-
case
|
|
319
|
+
case t.incPDD:
|
|
325
320
|
return 10;
|
|
326
|
-
case
|
|
321
|
+
case t.incAD:
|
|
327
322
|
return 2;
|
|
328
323
|
}
|
|
329
324
|
return Number.MAX_VALUE;
|
|
330
325
|
}
|
|
331
326
|
};
|
|
332
|
-
let
|
|
333
|
-
|
|
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
|
|
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((
|
|
345
|
+
c.sort((o, h) => t[h].length - t[o].length);
|
|
351
346
|
let i = this.summary;
|
|
352
|
-
for (const
|
|
347
|
+
for (const o of c)
|
|
353
348
|
i = i.replace(
|
|
354
|
-
`#${
|
|
355
|
-
(this.option.get(
|
|
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
|
|
373
|
+
return D.isWeapon(i) || D.isSubWeapon(i) || i === s.emblem;
|
|
379
374
|
case 11:
|
|
380
|
-
return !
|
|
375
|
+
return !X.checkOptionType(10, i);
|
|
381
376
|
case 20:
|
|
382
|
-
return
|
|
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 ===
|
|
379
|
+
return i === s.faceAccessory || i === s.eyeAccessory || i === s.earrings || i === s.ring || i === s.pendant;
|
|
385
380
|
case 51:
|
|
386
|
-
return i ===
|
|
381
|
+
return i === s.cap;
|
|
387
382
|
case 52:
|
|
388
|
-
return i ===
|
|
383
|
+
return i === s.coat || i === s.longcoat;
|
|
389
384
|
case 53:
|
|
390
|
-
return i ===
|
|
385
|
+
return i === s.pants;
|
|
391
386
|
case 54:
|
|
392
|
-
return i ===
|
|
387
|
+
return i === s.glove;
|
|
393
388
|
case 55:
|
|
394
|
-
return i ===
|
|
389
|
+
return i === s.shoes;
|
|
395
390
|
default:
|
|
396
391
|
return !1;
|
|
397
392
|
}
|
|
398
393
|
}
|
|
399
394
|
}
|
|
400
|
-
var
|
|
401
|
-
function
|
|
402
|
-
const
|
|
403
|
-
if (
|
|
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 [
|
|
406
|
-
|
|
400
|
+
for (const [h, a] of o)
|
|
401
|
+
n.option(h).bonus += a;
|
|
407
402
|
return !0;
|
|
408
403
|
}
|
|
409
|
-
function
|
|
410
|
-
for (const [, c] of
|
|
404
|
+
function T(n) {
|
|
405
|
+
for (const [, c] of n.options)
|
|
411
406
|
c.bonus = 0;
|
|
412
407
|
return !0;
|
|
413
408
|
}
|
|
414
|
-
function
|
|
415
|
-
const
|
|
416
|
-
return
|
|
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
|
|
419
|
-
const
|
|
420
|
-
if (
|
|
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
|
|
424
|
-
case
|
|
425
|
-
case
|
|
426
|
-
case
|
|
427
|
-
return (Math.floor(
|
|
428
|
-
case
|
|
429
|
-
case
|
|
430
|
-
case
|
|
431
|
-
case
|
|
432
|
-
case
|
|
433
|
-
case
|
|
434
|
-
return (Math.floor(
|
|
435
|
-
case
|
|
436
|
-
return (Math.floor(
|
|
437
|
-
case
|
|
438
|
-
case
|
|
439
|
-
if (
|
|
440
|
-
const
|
|
441
|
-
let
|
|
442
|
-
if (a ===
|
|
443
|
-
if (a ===
|
|
444
|
-
switch (
|
|
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
|
-
|
|
441
|
+
l = 102;
|
|
447
442
|
break;
|
|
448
443
|
case 103:
|
|
449
|
-
|
|
444
|
+
l = 105;
|
|
450
445
|
break;
|
|
451
446
|
case 105:
|
|
452
|
-
|
|
447
|
+
l = 107;
|
|
453
448
|
break;
|
|
454
449
|
case 112:
|
|
455
|
-
|
|
450
|
+
l = 114;
|
|
456
451
|
break;
|
|
457
452
|
case 117:
|
|
458
|
-
|
|
453
|
+
l = 121;
|
|
459
454
|
break;
|
|
460
455
|
case 135:
|
|
461
|
-
|
|
456
|
+
l = 139;
|
|
462
457
|
break;
|
|
463
458
|
case 169:
|
|
464
|
-
|
|
459
|
+
l = 173;
|
|
465
460
|
break;
|
|
466
461
|
case 203:
|
|
467
|
-
|
|
462
|
+
l = 207;
|
|
468
463
|
break;
|
|
469
464
|
case 293:
|
|
470
|
-
|
|
465
|
+
l = 297;
|
|
471
466
|
break;
|
|
472
467
|
case 337:
|
|
473
|
-
|
|
468
|
+
l = 342;
|
|
474
469
|
break;
|
|
475
470
|
}
|
|
476
|
-
const
|
|
477
|
-
return Math.ceil(
|
|
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
|
|
480
|
-
if (c ===
|
|
481
|
-
const
|
|
482
|
-
return Math.ceil(
|
|
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
|
|
485
|
-
return Math.ceil(
|
|
479
|
+
const d = o > 110 ? 4 : 3;
|
|
480
|
+
return Math.ceil(l * r[i - 1] * d / 100);
|
|
486
481
|
}
|
|
487
482
|
}
|
|
488
|
-
} else if (
|
|
483
|
+
} else if (o < 60)
|
|
489
484
|
return 0;
|
|
490
485
|
return i;
|
|
491
|
-
case
|
|
492
|
-
case
|
|
493
|
-
return
|
|
494
|
-
case
|
|
495
|
-
case
|
|
496
|
-
return
|
|
497
|
-
case
|
|
498
|
-
return
|
|
499
|
-
case
|
|
500
|
-
return
|
|
501
|
-
case
|
|
502
|
-
return
|
|
503
|
-
case
|
|
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
|
|
510
|
-
switch (
|
|
511
|
-
case
|
|
512
|
-
return [
|
|
513
|
-
case
|
|
514
|
-
return [
|
|
515
|
-
case
|
|
516
|
-
return [
|
|
517
|
-
case
|
|
518
|
-
return [
|
|
519
|
-
case
|
|
520
|
-
return [
|
|
521
|
-
case
|
|
522
|
-
return [
|
|
523
|
-
case
|
|
524
|
-
return [
|
|
525
|
-
case
|
|
526
|
-
return [
|
|
527
|
-
case
|
|
528
|
-
return [
|
|
529
|
-
case
|
|
530
|
-
return [
|
|
531
|
-
case
|
|
532
|
-
return [
|
|
533
|
-
case
|
|
534
|
-
return [
|
|
535
|
-
case
|
|
536
|
-
return [
|
|
537
|
-
case
|
|
538
|
-
return [
|
|
539
|
-
case
|
|
540
|
-
return [
|
|
541
|
-
case
|
|
542
|
-
return [
|
|
543
|
-
case
|
|
544
|
-
return [
|
|
545
|
-
case
|
|
546
|
-
return [
|
|
547
|
-
case
|
|
548
|
-
return [
|
|
549
|
-
case
|
|
550
|
-
return [
|
|
551
|
-
case
|
|
552
|
-
return [
|
|
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
|
|
558
|
-
function
|
|
559
|
-
if (
|
|
552
|
+
const V = 25, U = 15;
|
|
553
|
+
function x(n, c = !1) {
|
|
554
|
+
if (n.getBooleanValue(t.incCHUC))
|
|
560
555
|
return !1;
|
|
561
|
-
if (
|
|
562
|
-
return
|
|
563
|
-
if (
|
|
556
|
+
if (n.getBooleanValue(t.superiorEqp))
|
|
557
|
+
return _(n);
|
|
558
|
+
if (n.star >= n.maxStar && !c || n.star >= V)
|
|
564
559
|
return !1;
|
|
565
|
-
|
|
566
|
-
const i =
|
|
567
|
-
[
|
|
568
|
-
[
|
|
569
|
-
[
|
|
570
|
-
[
|
|
571
|
-
[
|
|
572
|
-
],
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
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
|
|
579
|
-
const
|
|
580
|
-
if (
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
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
|
-
|
|
589
|
-
for (let
|
|
590
|
-
if (
|
|
591
|
-
for (const
|
|
592
|
-
|
|
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
|
|
595
|
-
(
|
|
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
|
|
592
|
+
const e = d === 0 || Math.floor(d / 2) % 2 === 1 || n.option(t.incMAD).upgrade > 0;
|
|
598
593
|
if (i > 15)
|
|
599
|
-
|
|
594
|
+
n.option(t.incPAD).enchant += h[i], e && (n.option(t.incMAD).enchant += h[i]);
|
|
600
595
|
else {
|
|
601
|
-
const
|
|
602
|
-
if (
|
|
603
|
-
const A =
|
|
604
|
-
|
|
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
|
-
|
|
609
|
-
if (!a &&
|
|
610
|
-
const
|
|
611
|
-
|
|
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
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
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 ? (
|
|
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
|
|
628
|
-
if (
|
|
622
|
+
function _(n) {
|
|
623
|
+
if (n.star >= n.maxStar)
|
|
629
624
|
return !1;
|
|
630
|
-
|
|
631
|
-
const c =
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
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
|
|
638
|
-
|
|
639
|
-
const a = [
|
|
640
|
-
for (const
|
|
641
|
-
|
|
642
|
-
const
|
|
643
|
-
return
|
|
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
|
|
646
|
-
if (
|
|
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
|
-
|
|
649
|
-
const
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
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
|
|
656
|
-
if (
|
|
657
|
-
let
|
|
658
|
-
c &&
|
|
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
|
|
661
|
-
for (const
|
|
662
|
-
const
|
|
663
|
-
if (
|
|
664
|
-
|
|
665
|
-
let
|
|
666
|
-
c && (
|
|
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 &&
|
|
670
|
-
const
|
|
671
|
-
return
|
|
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
|
|
674
|
-
if (
|
|
668
|
+
function $(n) {
|
|
669
|
+
if (n.getBooleanValue(t.incCHUC))
|
|
675
670
|
return !1;
|
|
676
|
-
|
|
677
|
-
for (const [, c] of
|
|
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
|
|
682
|
-
if (
|
|
676
|
+
function G(n) {
|
|
677
|
+
if (n.getBooleanValue(t.incCHUC) || n.amazing)
|
|
683
678
|
return !1;
|
|
684
|
-
const c =
|
|
685
|
-
|
|
679
|
+
const c = n.star;
|
|
680
|
+
$(n);
|
|
686
681
|
for (let i = 0; i < c; i++)
|
|
687
|
-
|
|
682
|
+
x(n, !0);
|
|
688
683
|
return !0;
|
|
689
684
|
}
|
|
690
|
-
function b(
|
|
691
|
-
let
|
|
692
|
-
|
|
693
|
-
const
|
|
694
|
-
for (const a of [...
|
|
695
|
-
if (
|
|
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
|
-
` +
|
|
693
|
+
` + n);
|
|
699
694
|
}
|
|
700
|
-
const
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
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
|
-
|
|
1584
|
-
|
|
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
|
|
1595
|
-
|
|
1601
|
+
case 100:
|
|
1602
|
+
l = [
|
|
1603
|
+
[1, 0],
|
|
1604
|
+
[2, 0],
|
|
1605
|
+
[3, 1]
|
|
1606
|
+
];
|
|
1596
1607
|
break;
|
|
1597
|
-
case
|
|
1598
|
-
|
|
1608
|
+
case 70:
|
|
1609
|
+
l = [
|
|
1610
|
+
[2, 0],
|
|
1611
|
+
[3, 1],
|
|
1612
|
+
[5, 2]
|
|
1613
|
+
];
|
|
1599
1614
|
break;
|
|
1600
|
-
case
|
|
1601
|
-
|
|
1615
|
+
case 30:
|
|
1616
|
+
l = [
|
|
1617
|
+
[3, 1],
|
|
1618
|
+
[5, 2],
|
|
1619
|
+
[7, 3]
|
|
1620
|
+
];
|
|
1602
1621
|
break;
|
|
1603
|
-
case
|
|
1604
|
-
|
|
1622
|
+
case 15:
|
|
1623
|
+
l = [
|
|
1624
|
+
[5, 2],
|
|
1625
|
+
[7, 3],
|
|
1626
|
+
[9, 4]
|
|
1627
|
+
];
|
|
1605
1628
|
break;
|
|
1606
|
-
|
|
1607
|
-
|
|
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
|
|
1610
|
-
|
|
1646
|
+
case 30:
|
|
1647
|
+
l = [2, 3, 3];
|
|
1611
1648
|
break;
|
|
1612
1649
|
}
|
|
1613
|
-
|
|
1614
|
-
|
|
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
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
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
|
|
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
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
[
|
|
1677
|
-
[
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
[
|
|
1683
|
-
[
|
|
1684
|
-
[
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
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
|
|
1716
|
+
return { name: A, stat: R };
|
|
1718
1717
|
}
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
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
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
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
|
|
1769
|
-
return
|
|
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
|
|
1772
|
-
if (
|
|
1753
|
+
function Y(n, c) {
|
|
1754
|
+
if (n.upgradeCountLeft < 1)
|
|
1773
1755
|
return !1;
|
|
1774
|
-
|
|
1775
|
-
for (const [i,
|
|
1776
|
-
|
|
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
|
|
1780
|
-
const
|
|
1781
|
-
return
|
|
1761
|
+
function n0(n, c, i) {
|
|
1762
|
+
const o = Z(n, c, i);
|
|
1763
|
+
return o ? Y(n, o) : !1;
|
|
1782
1764
|
}
|
|
1783
|
-
function
|
|
1784
|
-
return
|
|
1765
|
+
function t0(n) {
|
|
1766
|
+
return n.upgradeCountLeft < 1 ? !1 : (n.upgradeFailCount += 1, !0);
|
|
1785
1767
|
}
|
|
1786
|
-
function
|
|
1787
|
-
return
|
|
1768
|
+
function i0(n) {
|
|
1769
|
+
return n.upgradeFailCount < 1 ? !1 : (n.upgradeFailCount -= 1, !0);
|
|
1788
1770
|
}
|
|
1789
|
-
function
|
|
1790
|
-
|
|
1791
|
-
for (const [, c] of
|
|
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
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
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
|
};
|