@malib/gear 0.15.0 → 0.15.1

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.
Files changed (4) hide show
  1. package/index.cjs +2 -2
  2. package/index.d.ts +1 -1
  3. package/index.js +318 -316
  4. package/package.json +1 -1
package/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class N{constructor(){this.base=0,this.bonus=0,this.upgrade=0,this.enchant=0}get empty(){return this.base===0&&this.bonus===0&&this.upgrade===0&&this.enchant===0}get sum(){return Math.max(0,this.base+this.bonus+this.upgrade+this.enchant)}get diff(){return this.bonus+this.upgrade+this.enchant}}var i=(t=>(t[t.incSTR=1]="incSTR",t[t.incSTRr=2]="incSTRr",t[t.incDEX=3]="incDEX",t[t.incDEXr=4]="incDEXr",t[t.incINT=5]="incINT",t[t.incINTr=6]="incINTr",t[t.incLUK=7]="incLUK",t[t.incLUKr=8]="incLUKr",t[t.incAllStat=9]="incAllStat",t[t.incMHP=10]="incMHP",t[t.incMMP=11]="incMMP",t[t.incMHPr=12]="incMHPr",t[t.incMMPr=13]="incMMPr",t[t.incMDF=14]="incMDF",t[t.incARC=15]="incARC",t[t.incAUT=16]="incAUT",t[t.incPAD=17]="incPAD",t[t.incMAD=18]="incMAD",t[t.incAD=19]="incAD",t[t.incPDD=20]="incPDD",t[t.incSpeed=21]="incSpeed",t[t.incJump=22]="incJump",t[t.knockback=23]="knockback",t[t.bdR=24]="bdR",t[t.incBDR=25]="incBDR",t[t.imdR=26]="imdR",t[t.incIMDR=27]="incIMDR",t[t.damR=28]="damR",t[t.nbdR=29]="nbdR",t[t.statR=30]="statR",t[t.incCHUC=31]="incCHUC",t[t.incPADr=100]="incPADr",t[t.incMADr=101]="incMADr",t[t.incPDDr=102]="incPDDr",t[t.incCr=103]="incCr",t[t.incDAMr=104]="incDAMr",t[t.RecoveryHP=105]="RecoveryHP",t[t.RecoveryMP=106]="RecoveryMP",t[t.face=107]="face",t[t.prop=108]="prop",t[t.time=109]="time",t[t.HP=110]="HP",t[t.MP=111]="MP",t[t.attackType=112]="attackType",t[t.ignoreTargetDEF=113]="ignoreTargetDEF",t[t.ignoreDAM=114]="ignoreDAM",t[t.ignoreDAMr=115]="ignoreDAMr",t[t.DAMreflect=116]="DAMreflect",t[t.mpconReduce=117]="mpconReduce",t[t.incMesoProp=118]="incMesoProp",t[t.incRewardProp=119]="incRewardProp",t[t.incAllskill=120]="incAllskill",t[t.RecoveryUP=121]="RecoveryUP",t[t.boss=122]="boss",t[t.level=123]="level",t[t.incTerR=124]="incTerR",t[t.incAsrR=125]="incAsrR",t[t.incEXPr=126]="incEXPr",t[t.reduceCooltime=127]="reduceCooltime",t[t.incSTRlv=128]="incSTRlv",t[t.incDEXlv=129]="incDEXlv",t[t.incINTlv=130]="incINTlv",t[t.incLUKlv=131]="incLUKlv",t[t.incMHPlv=132]="incMHPlv",t[t.incPADlv=133]="incPADlv",t[t.incMADlv=134]="incMADlv",t[t.incCriticaldamage=135]="incCriticaldamage",t[t.attackSpeed=200]="attackSpeed",t[t.setItemID=201]="setItemID",t[t.durability=202]="durability",t[t.reduceReq=203]="reduceReq",t[t.only=1100]="only",t[t.tradeBlock=1101]="tradeBlock",t[t.accountSharable=1102]="accountSharable",t[t.onlyEquip=1103]="onlyEquip",t[t.tradeAvailable=1104]="tradeAvailable",t[t.equipTradeBlock=1105]="equipTradeBlock",t[t.sharableOnce=1106]="sharableOnce",t[t.charismaEXP=1107]="charismaEXP",t[t.senseEXP=1108]="senseEXP",t[t.insightEXP=1109]="insightEXP",t[t.willEXP=1110]="willEXP",t[t.craftEXP=1111]="craftEXP",t[t.charmEXP=1112]="charmEXP",t[t.accountShareTag=1113]="accountShareTag",t[t.bossReward=1114]="bossReward",t[t.noPotential=1115]="noPotential",t[t.fixedPotential=1116]="fixedPotential",t[t.specialGrade=1117]="specialGrade",t[t.fixedGrade=1118]="fixedGrade",t[t.superiorEqp=1119]="superiorEqp",t[t.incPQEXPr=1120]="incPQEXPr",t[t.jokerToSetItem=1121]="jokerToSetItem",t[t.blockGoldHammer=1122]="blockGoldHammer",t[t.exceptUpgrade=1123]="exceptUpgrade",t[t.onlyUpgrade=1124]="onlyUpgrade",t[t.noLookChange=1125]="noLookChange",t[t.tucIgnoreForPotential=1126]="tucIgnoreForPotential",t))(i||{}),r=(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))(r||{}),v=(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))(v||{});class J{constructor(o){this.enchanted=!1,this.charge=0,this.chargeOption=new Map,this.gear=o}get can(){return D.isWeapon(this.gear.type)}get type(){return this.gear.option(i.incPAD).base>=this.gear.option(i.incMAD).base?i.incPAD:i.incMAD}enchant(){return this.enchanted||!this.can?!1:(this.enchanted=!0,this.soul=void 0,this.charge=0,this.chargeOption.clear(),!0)}disenchant(){return this.enchanted?(this.enchanted=!1,this.soul=void 0,this.charge=0,this.chargeOption.clear(),!0):!1}setCharge(o){return!this.enchanted||o<0||o>1e3?!1:(this.charge=o,this.updateChargeOption(),!0)}setSoul(o){return this.enchanted?(this.soul=o,this.updateChargeOption(),!0):!1}removeSoul(){return!this.enchanted||!this.soul?!1:(this.soul=void 0,this.updateChargeOption(),!0)}updateChargeOption(){return this.chargeOption.clear(),this.chargeOption.set(this.type,this.getChargeAD()),!0}getChargeAD(){if(!this.enchanted||this.charge===0)return 0;const o=Math.min(Math.ceil(this.charge/100)-1,5);if(this.soul){const s=this.soul.multiplier;return 10+o*s}return 5+o}}const U=class{constructor(){this.itemID=0,this.name="",this.desc="",this.type=0,this.props=new Map,this.options=new Map,this.exceptionalOptions=new Map,this.totalUpgradeCount=0,this.upgradeCount=0,this.upgradeFailCount=0,this.hammerCount=0,this.exceptionalTotalUpgradeCount=0,this.exceptionalUpgradeCount=0,this.maxStar=0,this.star=0,this.amazing=!1,this.canPotential=!1,this.grade=v.normal,this.potentials=[],this.additionalGrade=v.normal,this.additionalPotentials=[],this.soulWeapon=new J(this),this.icon={id:0},this.req={level:0,str:0,dex:0,int:0,luk:0,job:0,specJob:0}}get upgradeCountLeft(){return this.totalUpgradeCount+this.hammerCount-this.upgradeCount-this.upgradeFailCount}get exceptionalUpgradeCountLeft(){return this.exceptionalTotalUpgradeCount-this.exceptionalUpgradeCount}get diff(){let t=0;for(const[o,s]of this.options)t+=Math.floor(s.diff/U.getPropTypeWeight(o));return t}get isNewBonusType(){return!!([...this.options.values()].some(o=>o.bonus>0)&&this.getPropValue(i.tradeAvailable)!==1)}option(t){return this.options.has(t)||this.options.set(t,new N),this.options.get(t)}getPropValue(t){return this.props.get(t)??0}getBooleanValue(t){return(this.props.get(t)??0)>0}setAnvil(t){this.anvil=t}resetAnvil(){this.anvil=void 0}static isWeapon(t){return this.isLeftWeapon(t)||this.isDoubleHandWeapon(t)}static isLeftWeapon(t){return t>=121&&t<=139&&t!==r.katara||Math.floor(t/10)===121}static isDoubleHandWeapon(t){return t>=140&&t<=149||t>=152&&t<=159||Math.floor(t/10)===140}static isSubWeapon(t){switch(t){case r.katara:case r.shield:case r.demonShield:case r.soulShield:return!0;default:return Math.floor(t/1e3)===135}}static isShield(t){switch(t){case r.shield:case r.demonShield:case r.soulShield:return!0;default:return!1}}static isArmor(t){return t===100||t>=104&&t<=110||t===r.soulShield||t===r.demonShield}static isAccessory(t){return t>=101&&t<=103||t>=111&&t<=113||t===115}static isMechanicGear(t){return t>=161&&t<=165}static isDragonGear(t){return t>=194&&t<=197}static getGearType(t){switch(Math.floor(t/1e3)){case 1098:return r.soulShield;case 1099:return r.demonShield;case 1212:return r.shiningRod;case 1213:return r.tuner;case 1214:return r.breathShooter;case 1404:return r.chakram}if(Math.floor(t/1e4)===135)switch(Math.floor(t/100)){case 13522:case 13528:case 13529:case 13540:return Math.floor(t/10);default:return Math.floor(t/100)*10}if(Math.floor(t/1e4)===119)switch(Math.floor(t/100)){case 11902:return Math.floor(t/10)}return Math.floor(t/1e4)}static getMaxStar(t){if(t.totalUpgradeCount<=0||t.getBooleanValue(i.onlyUpgrade)||U.isMechanicGear(t.type)||U.isDragonGear(t.type))return 0;let o;const s=t.req.level;for(const a of U.starData)if(s>=a[0])o=a;else break;return o===void 0?0:t.getBooleanValue(i.superiorEqp)?o[2]:o[1]}static getPropTypeWeight(t){if(t<100)switch(t){case i.incSTR:case i.incDEX:case i.incINT:case i.incLUK:case i.incPAD:case i.incMAD:case i.incSpeed:case i.incJump:return 1;case i.incMHP:case i.incMMP:return 100;case i.incPDD:return 10;case i.incAD:return 2}return Number.MAX_VALUE}};let D=U;D.starData=[[0,5,3],[95,8,5],[110,10,8],[120,15,10],[130,20,12],[140,25,15]];class R{constructor(){this.code=0,this.optionType=0,this.reqLevel=0,this.summary="",this.option=new Map}get convertSummary(){const o=[...this.option.keys()];o.sort((a,u)=>i[u].length-i[a].length);let s=this.summary;for(const a of o)s=s.replace(`#${i[a]}`,(this.option.get(a)??0).toString());return s}static getPotentialLevel(o){return o<=0?1:o>=250?25:Math.floor((o+9)/10)}static checkOptionType(o,s){switch(o){case 0:return!0;case 10:return D.isWeapon(s)||D.isSubWeapon(s)||s===r.emblem;case 11:return!R.checkOptionType(10,s);case 20:return D.isSubWeapon(s)||s===r.cap||s===r.coat||s===r.longcoat||s===r.pants||s===r.shoes||s===r.glove||s===r.cape||s===r.belt||s===r.shoulder;case 40:return s===r.faceAccessory||s===r.eyeAccessory||s===r.earrings||s===r.ring||s===r.pendant;case 51:return s===r.cap;case 52:return s===r.coat||s===r.longcoat;case 53:return s===r.pants;case 54:return s===r.glove;case 55:return s===r.shoes;default:return!1}}}var d=(t=>(t[t.STR=0]="STR",t[t.DEX=1]="DEX",t[t.INT=2]="INT",t[t.LUK=3]="LUK",t[t.STR_DEX=4]="STR_DEX",t[t.STR_INT=5]="STR_INT",t[t.STR_LUK=6]="STR_LUK",t[t.DEX_INT=7]="DEX_INT",t[t.DEX_LUK=8]="DEX_LUK",t[t.INT_LUK=9]="INT_LUK",t[t.MHP=10]="MHP",t[t.MMP=11]="MMP",t[t.PAD=12]="PAD",t[t.MAD=13]="MAD",t[t.PDD=14]="PDD",t[t.speed=15]="speed",t[t.jump=16]="jump",t[t.damR=17]="damR",t[t.bdR=18]="bdR",t[t.allStatR=19]="allStatR",t[t.reduceReq=20]="reduceReq",t))(d||{});function c0(t,o,s){const a=Z(t,o,s);if(a.size===0)return!1;for(const[u,f]of a)t.option(u).bonus+=f;return!0}function Q(t){for(const[,o]of t.options)o.bonus=0;return!0}function Z(t,o,s){const a=u0(o),u=Y(t,o,s);return u===0?new Map:new Map(a.map(f=>[f,u]))}function Y(t,o,s){const a=t.req.level,u=t.getBooleanValue(i.bossReward),f=t.type;if(a<0||u&&s<3)return 0;switch(o){case d.STR:case d.DEX:case d.INT:case d.LUK:return q(a,s);case d.STR_DEX:case d.STR_INT:case d.STR_LUK:case d.DEX_INT:case d.DEX_LUK:case d.INT_LUK:return i0(a,s);case d.PDD:return q(a,s);case d.PAD:case d.MAD:return s0(a,s,o,t.type,u,t.option(i.incPAD).base,t.option(i.incMAD).base);case d.MHP:case d.MMP:return a0(a,s);case d.speed:case d.jump:return D.isWeapon(f)?0:s;case d.damR:return D.isWeapon(f)?s:0;case d.bdR:return a<90||!D.isWeapon(f)?0:2*s;case d.allStatR:return a<70&&!D.isWeapon(f)?0:s;case d.reduceReq:return r0(a,s);default:return 0}}function q(t,o){return t>=250?Math.floor(t/20)*o:(Math.floor(t/20)+1)*o}function i0(t,o){return(Math.floor(t/40)+1)*o}function s0(t,o,s,a,u,f,h){if(D.isWeapon(a)){const c=u?[0,0,1,1.4666,2.0166,2.663,3.4166]:[1,2.222,3.63,5.325,7.32,8.777,10.25];let n=f;if(a===r.heavySword||a===r.longSword){if(a===r.longSword)switch(n){case 100:n=102;break;case 103:n=105;break;case 105:n=107;break;case 112:n=114;break;case 117:n=121;break;case 135:n=139;break;case 169:n=173;break;case 203:n=207;break;case 293:n=297;break;case 337:n=342;break}const M=t>180?6:t>160?5:t>110?4:3;return Math.ceil(n*c[o-1]*M/100)}else if(s===d.MAD&&h>=n&&(n=h),u){const M=t>160?18:t>150?15:t>110?12:9;return Math.ceil(n*c[o-1]*M/100)}else{const M=t>110?4:3;return Math.ceil(n*c[o-1]*M/100)}}else if(t<60)return 0;return o}function a0(t,o){return t<10?3*o:t>=250?700*o:Math.floor(t/10)*30*o}function r0(t,o){return o*5}function u0(t){switch(t){case d.STR:return[i.incSTR];case d.DEX:return[i.incDEX];case d.INT:return[i.incINT];case d.LUK:return[i.incLUK];case d.STR_DEX:return[i.incSTR,i.incDEX];case d.STR_INT:return[i.incSTR,i.incINT];case d.STR_LUK:return[i.incSTR,i.incLUK];case d.DEX_INT:return[i.incDEX,i.incINT];case d.DEX_LUK:return[i.incDEX,i.incLUK];case d.INT_LUK:return[i.incINT,i.incLUK];case d.PDD:return[i.incPDD];case d.PAD:return[i.incPAD];case d.MAD:return[i.incMAD];case d.MHP:return[i.incMHP];case d.MMP:return[i.incMMP];case d.speed:return[i.incSpeed];case d.jump:return[i.incJump];case d.damR:return[i.damR];case d.bdR:return[i.bdR];case d.allStatR:return[i.statR];case d.reduceReq:return[i.reduceReq];default:return[]}}const f0=25,K=15;function l(t,o=!1){if(t.getBooleanValue(i.incCHUC))return!1;if(t.getBooleanValue(i.superiorEqp))return d0(t);if(t.star>=t.maxStar&&!o||t.star>=f0)return!1;t.star+=1;const s=t.star,a=g(t,!1,!1),u=g(t,!1,!0),f=D.isWeapon(t.type)||t.type===r.katara,h=[[i.incSTR,i.incDEX],[i.incINT,i.incLUK],[i.incDEX,i.incSTR],[i.incLUK,i.incDEX],[i.incSTR,i.incDEX]],c=[i.incSTR,i.incDEX,i.incINT,i.incLUK];let n;const M=t.req.job;if(M===0)n=new Set([i.incSTR,i.incDEX,i.incINT,i.incLUK]);else{n=new Set;for(let A=0;A<5;A++)if(M&1<<A)for(const b of h[A])n.add(b)}for(const A of c)(n.has(A)||s>15&&(t.option(A).base>0||t.option(A).upgrade>0))&&(t.option(A).enchant+=a[s]);if(f){const A=M===0||Math.floor(M/2)%2===1||t.option(i.incMAD).upgrade>0;if(s>15)t.option(i.incPAD).enchant+=u[s],A&&(t.option(i.incMAD).enchant+=u[s]);else{const b=t.option(i.incPAD).sum-t.option(i.incPAD).bonus;if(t.option(i.incPAD).enchant+=Math.floor(b/50)+1,A){const o0=t.option(i.incMAD).sum-t.option(i.incMAD).bonus;t.option(i.incMAD).enchant+=Math.floor(o0/50)+1}}}else t.option(i.incPAD).enchant+=u[s],t.option(i.incMAD).enchant+=u[s],t.type===r.glove&&(M===0?(t.option(i.incPAD).enchant+=X[s],t.option(i.incMAD).enchant+=X[s]):Math.floor(M/2)%2===1?t.option(i.incMAD).enchant+=X[s]:t.option(i.incPAD).enchant+=X[s]);if(!f&&t.type!==r.machineHeart){const A=t.option(i.incPDD).sum-t.option(i.incPDD).bonus;t.option(i.incPDD).enchant+=Math.floor(A/20)+1}const S=[r.cap,r.coat,r.longcoat,r.pants,r.cape,r.ring,r.pendant,r.belt,r.shoulder,r.shield];return f?(t.option(i.incMHP).enchant+=L[s],t.option(i.incMMP).enchant+=L[s]):S.includes(t.type)&&(t.option(i.incMHP).enchant+=L[s]),t.type===r.shoes&&(t.option(i.incSpeed).enchant+=k[s],t.option(i.incJump).enchant+=k[s]),!0}function d0(t){if(t.star>=t.maxStar)return!1;t.star+=1;const o=t.star,s=g(t,!1,!1),a=g(t,!1,!0),u=[i.incSTR,i.incDEX,i.incINT,i.incLUK];for(const c of u)t.option(c).base>0&&(t.option(c).enchant+=s[o]);const f=[i.incPAD,i.incMAD];for(const c of f)t.option(c).base>0&&(t.option(c).enchant+=a[o]);const h=t.option(i.incPDD).sum-t.option(i.incPDD).bonus;return t.option(i.incPDD).enchant+=Math.floor(h/20)+1,!0}function h0(t,o=!1,s=!1){if(t.getBooleanValue(i.incCHUC)||t.getBooleanValue(i.superiorEqp)||t.req.level>150||t.star>=t.maxStar&&!s||t.star>=K)return!1;t.amazing||(t.amazing=!0,t.maxStar=Math.min(t.maxStar,K)),t.star+=1;const a=t.star,u=g(t,!0,!1),f=g(t,!0,!0),h=D.isWeapon(t.type)||t.type===r.katara,c=[i.incSTR,i.incDEX,i.incINT,i.incLUK];for(const S of c)if(t.option(S).sum>0){let b=u[a];o&&D.isAccessory(t.type)&&(b+=a>5?2:1),t.option(S).enchant+=b}const n=[i.incPAD,i.incMAD];for(const S of n){const A=t.option(S).sum;if(A>0){h&&(t.option(S).enchant+=Math.floor(A/50)+1);let b=f[a];o&&(h||t.type===r.shield)&&(b+=1),t.option(S).enchant+=b}}o&&D.isArmor(t.type)&&(t.option(i.incMHP).enchant+=50);const M=t.option(i.incPDD).sum;return t.option(i.incPDD).enchant+=Math.floor(M/20)+1,!0}function H(t){if(t.getBooleanValue(i.incCHUC))return!1;t.star=0,t.amazing=!1,t.maxStar=D.getMaxStar(t);for(const[,o]of t.options)o.enchant=0;return!0}function D0(t){if(t.getBooleanValue(i.incCHUC)||t.amazing)return!1;const o=t.star;H(t);for(let s=0;s<o;s++)l(t,!0);return!0}function g(t,o,s){let a;t.getBooleanValue(i.superiorEqp)?s?a=A0:a=M0:o?s?a=R0:a=C0:s?D.isWeapon(t.type)||t.type===r.katara?a=b0:a=S0:a=v0;const u=t.req.level;for(const f of[...a].reverse())if(u>=f[0])return f;throw Error(`Gear has invalid reqLevel.
2
- `+t)}const A0=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[110,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0],[150,0,0,0,0,0,9,10,11,12,13,15,17,19,21,23]],M0=[[0,1,2,4,7,11,0,0,0,0,0,0,0,0,0,0],[80,2,3,5,8,12,0,0,0,0,0,0,0,0,0,0],[110,9,10,12,15,19,0,0,0,0,0,0,0,0,0,0],[150,19,20,22,25,29,0,0,0,0,0,0,0,0,0,0]],b0=[[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],[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],[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],[128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,9,10,11,29,30,31],[138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,9,10,11,12,30,31,32],[148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,9,9,10,11,12,13,31,32,33],[158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,10,11,12,13,14,32,33,34],[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],[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]],S0=[[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],[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],[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],[128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,9,10,11,12,14,16,18,20],[138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,9,10,11,12,13,15,17,19,21],[148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,10,11,12,13,14,16,18,20,22],[158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,11,12,13,14,15,17,19,21,23],[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],[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]],v0=[[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],[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],[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],[128,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,7,7,7,7,7,7,7,0,0,0],[138,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,9,9,9,9,9,9,9,0,0,0],[148,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,0,0,0],[158,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,13,13,13,13,13,13,13,0,0,0],[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],[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]],R0=[[0,0,0,0,0,0,1,2,3,4,5,6,8,10,12,14],[80,0,0,0,0,0,2,3,4,5,6,7,9,11,13,15],[90,0,0,0,0,0,3,4,5,6,7,8,10,12,14,16],[100,0,0,0,0,0,4,5,6,7,8,9,11,13,15,17],[110,0,0,0,0,0,5,6,7,8,9,10,12,14,16,18],[120,0,0,0,0,0,6,7,8,9,10,11,13,15,17,19],[130,0,0,0,0,0,7,8,9,10,11,12,14,16,18,20],[140,0,0,0,0,0,8,9,10,11,12,13,15,17,19,21],[150,0,0,0,0,0,9,10,11,12,13,14,16,18,20,22]],C0=[[0,1,2,4,7,11,0,0,0,0,0,0,0,0,0,0],[80,2,3,5,8,12,0,0,0,0,0,0,0,0,0,0],[85,3,4,6,9,13,0,0,0,0,0,0,0,0,0,0],[90,4,5,7,10,14,0,0,0,0,0,0,0,0,0,0],[95,5,6,8,11,15,0,0,0,0,0,0,0,0,0,0],[100,7,8,10,13,17,0,0,0,0,0,0,0,0,0,0],[105,8,9,11,14,18,0,0,0,0,0,0,0,0,0,0],[110,9,10,12,15,19,0,0,0,0,0,0,0,0,0,0],[115,10,11,13,16,20,0,0,0,0,0,0,0,0,0,0],[120,12,13,15,18,22,0,0,0,0,0,0,0,0,0,0],[125,13,14,16,19,23,0,0,0,0,0,0,0,0,0,0],[130,14,15,17,20,24,0,0,0,0,0,0,0,0,0,0],[135,15,16,18,21,25,0,0,0,0,0,0,0,0,0,0],[140,17,18,20,23,27,0,0,0,0,0,0,0,0,0,0],[145,18,19,21,24,28,0,0,0,0,0,0,0,0,0,0],[150,19,20,22,25,29,0,0,0,0,0,0,0,0,0,0]],X=[0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0],L=[0,5,5,5,10,10,15,15,20,20,25,25,25,25,25,25,0,0,0,0,0,0,0,0,0,0],k=[0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0];function w0(t,o){if(t.exceptionalUpgradeCountLeft<1)return!1;t.exceptionalUpgradeCount+=1;for(const[s,a]of o.option){const u=t.exceptionalOptions.get(s)??0;t.exceptionalOptions.set(s,u+a)}return!0}function P(t){return t.exceptionalUpgradeCount=0,t.exceptionalOptions.clear(),!0}function p(t,o,s){if(D.isWeapon(t.type)||t.type===r.katara)return x0(t,o,s);if(t.type===r.glove)return L0(t,o,s);if(D.isArmor(t.type)||t.type===r.shoulder)return X0(t,o,s);if(D.isAccessory(t.type))return N0(t,o,s);if(t.type===r.machineHeart)return l0(t,o,s)}const g0={100:[[1,0],[2,0],[3,1]],70:[[2,0],[3,1],[5,2]],30:[[3,1],[5,2],[7,3]],15:[[5,2],[7,3],[9,4]]},E0={100:[[1,5,1],[2,20,2],[3,30,3]],70:[[2,15,2],[3,40,4],[4,70,5]],30:[[3,30,4],[5,70,7],[7,120,10]],15:[[4,45,6],[7,110,10],[10,170,15]]},W={30:[1,2,3],15:[2,3,4]},j={30:[1,2,3]},U0={100:[0,1,1],70:[1,2,2],30:[2,3,3],15:[3,4,4]},F={100:[1,1,2],70:[2,2,3],30:[3,4,5]},V={100:[1,2,3],70:[2,3,5],30:[3,5,7]},I={[i.incSTR]:i.incPAD,[i.incDEX]:i.incPAD,[i.incINT]:i.incMAD,[i.incLUK]:i.incPAD,[i.incMHP]:i.incPAD,[i.incAllStat]:i.incPAD},E={[i.incSTR]:"힘",[i.incDEX]:"민첩",[i.incINT]:"지력",[i.incLUK]:"운",[i.incMHP]:"체력",[i.incAllStat]:"올스탯",[i.incPAD]:"공격력",[i.incMAD]:"마력"};function x(t){return t.req.level>110?2:t.req.level>70?1:0}function x0(t,o,s){if(o===i.incAllStat)return;const a=x(t);let[u,f]=g0[s][a];const h=I[o],c=E[h];return o===i.incMHP&&(f*=50),{name:f>0?`${s}% ${c}(${E[o]}) 주문서`:`${s}% ${c} 주문서`,option:new Map([[o,f],[h,u]])}}function X0(t,o,s){const a=x(t),[u,f,h]=E0[s][a];let c=[],n=[],M=[];if(o===i.incMHP)n=[[i.incMHP,f+u*50]];else if(n=[[i.incMHP,f]],o===i.incAllStat){if(!(s in W))return;const b=W[s][a];c=[[i.incSTR,b],[i.incDEX,b],[i.incINT,b],[i.incLUK,b]]}else c=[[o,u]];t.upgradeCount===3&&(t.req.job===0?M=[[i.incPAD,1],[i.incMAD,1]]:Math.floor(t.req.job/2)%2===1?M=[[i.incMAD,1]]:M=[[i.incPAD,1]]);const S=`${s}% ${E[o]} 주문서`,A=new Map([...c,...M,...n,[i.incPDD,h]]);return{name:S,option:A}}function L0(t,o,s){const a=x(t),u=U0[s][a];if(u===0)return{name:`${s}% 방어력 주문서`,option:new Map([[i.incPDD,3]])};{const f=I[o];return{name:`${s}% ${E[f]} 주문서`,option:new Map([[f,u]])}}}function N0(t,o,s){if(!(s in F))return;const a=x(t),u=F[s][a];let f=[];if(o===i.incMHP)f=[[i.incMHP,u*50]];else if(o===i.incAllStat){if(!(s in j))return;const n=j[s][a];f=[[i.incSTR,n],[i.incDEX,n],[i.incINT,n],[i.incLUK,n]]}else f=[[o,u]];const h=`${s}% ${E[o]} 주문서`,c=new Map(f);return{name:h,option:c}}function l0(t,o,s){if(!(s in V))return;const a=x(t),u=V[s][a],f=I[o];return{name:`${s}% ${E[o]} 주문서`,option:new Map([[f,u]])}}function H0(t){return t.getBooleanValue(i.blockGoldHammer)||t.getBooleanValue(i.onlyUpgrade)||t.totalUpgradeCount<=0||t.hammerCount>0?!1:(t.hammerCount=1,!0)}function y(t,o){if(t.upgradeCountLeft<1)return!1;t.upgradeCount+=1;for(const[s,a]of o.option)t.option(s).upgrade+=a;return!0}function I0(t,o,s){const a=p(t,o,s);return a?y(t,a):!1}function O0(t){return t.upgradeCountLeft<1?!1:(t.upgradeFailCount+=1,!0)}function q0(t){return t.upgradeFailCount<1?!1:(t.upgradeFailCount-=1,!0)}function m(t){t.upgradeCount=0,t.upgradeFailCount=0,t.hammerCount=0;for(const[,o]of t.options)o.upgrade=0;return!0}function T(t,o,s){const a=new D;if(a.itemID=o,a.type=D.getGearType(o),a.name=t.name,a.desc=t.desc??"",a.icon={id:t.icon},a.totalUpgradeCount=t.tuc??0,a.exceptionalTotalUpgradeCount=t.etuc??0,t.req&&(a.req={level:t.req.level??0,str:t.req.str??0,luk:t.req.luk??0,dex:t.req.dex??0,int:t.req.int??0,job:t.req.job??0,specJob:t.req.specJob??0}),t.options)for(const[h,c]of Object.entries(t.options)){const n=i[h];a.option(n).base=c}if(t.props)for(const[h,c]of Object.entries(t.props)){const n=i[h];a.props.set(n,c)}t.pots&&(a.potentials=t.pots.map(h=>s(h.option,h.level)).filter(h=>h!==void 0)),(a.totalUpgradeCount>0||K0(a.type)||D.isSubWeapon(a.type)||a.getBooleanValue(i.tucIgnoreForPotential)||k0(a.itemID))&&(a.canPotential=!0),(D.isMechanicGear(a.type)||D.isDragonGear(a.type))&&(a.canPotential=!1),a.getBooleanValue(i.noPotential)&&(a.canPotential=!1);let u;if(u=a.getPropValue(i.fixedGrade))switch(u){case 2:a.grade=v.rare;break;case 3:a.grade=v.epic;break;case 5:a.grade=v.unique;break;case 7:a.grade=v.legendary;break;default:a.grade=u-1;break}a.potentials.some(h=>h!==void 0)&&a.grade===v.normal&&(a.grade=v.rare),a.type===r.demonShield&&(u=a.option(i.incMMP).base,u>0&&(a.option(i.incMDF).base=u,a.option(i.incMMP).base=0)),a.maxStar=D.getMaxStar(a);const f=a.getPropValue(i.incCHUC);return f>0&&(a.star=f),a}function K0(t){switch(t){case r.soulShield:case r.demonShield:case r.katara:case r.magicArrow:case r.card:case r.orb:case r.dragonEssence:case r.soulRing:case r.magnum:case r.emblem:return!0;default:return!1}}function k0(t){switch(t){case 1113231:case 1114302:case 1114305:return!0;default:return!1}}class W0{constructor(o,s){this.gears=o,this.potentialRepository=s}ids(){return Object.keys(this.gears).map(o=>Number(o))}createGearFromId(o){if(o in this.gears)return T(this.gears[o],o,(s,a)=>this.potentialRepository.createPotentialFromCode(s,a))}}function e(t,o,s){const a=new R;a.code=o,a.optionType=t.optionType??0,a.reqLevel=t.reqLevel??0,a.summary=t.string;for(const[f,h]of Object.entries(t.level[s])){const c=i[f];typeof h=="number"&&a.option.set(c,h)}const u=a.option.get(i.incDAMr)??0;return u>0&&(a.option.get(i.boss)??0)>0&&(a.option.delete(i.incDAMr),a.option.delete(i.boss),a.option.set(i.incBDR,u),a.summary=a.summary.replace("#incDAMr","#incBDR")),a}class j0{constructor(o){this.itemOptions=o}createPotentialFromCode(o,s){if(o in this.itemOptions)return e(this.itemOptions[o],o,s)}}function G(t,o="PAD"){const s=t.magnificent?t.options[o]:t.option,a=new Map;for(const[u,f]of Object.entries(s)){const h=i[u];a.set(h,f)}return{name:t.name,skill:t.skill,multiplier:t.multiplier,option:a}}class F0{constructor(o){this.souls=o}ids(){return Object.keys(this.souls).map(o=>Number(o))}createSoulFromId(o,s="PAD"){if(o in this.souls)return G(this.souls[o],s)}}function V0(t,o,s){return z0(t,o,s?.ignorePropTypes),_0(t,o),$0(t,o),B0(t,o),J0(t,o),Q0(t,o),Z0(t,o,s?.getPotentialFunc),Y0(t,o),o}function z0(t,o,s){for(const[a,u]of t.props)s&&s.includes(a)||o.props.set(a,u);o.karma=t.karma}function _0(t,o){t.anvil!==void 0&&(o.anvil=t.anvil)}function $0(t,o){Q(o);for(const[s,a]of t.options)o.option(s).bonus=a.bonus}function B0(t,o){if(t.upgradeCount!==void 0&&t.upgradeFailCount!==void 0&&t.hammerCount!==void 0){m(o),o.upgradeCount=t.upgradeCount,o.upgradeFailCount=t.upgradeFailCount,o.hammerCount=t.hammerCount;for(const[s,a]of t.options)o.option(s).upgrade=a.upgrade}}function J0(t,o){if(t.star!==void 0&&t.star!==0)if(H(o),t.amazing){o.star=t.star,o.maxStar=t.maxStar,o.amazing=t.amazing;for(const[s,a]of t.options)o.option(s).enchant=a.enchant}else for(let s=0;s<t.star;s++)l(o,!0)}function Q0(t,o){t.exceptionalUpgradeCount!==void 0&&(P(o),o.exceptionalUpgradeCount=t.exceptionalUpgradeCount,o.exceptionalOptions=new Map(t.exceptionalOptions))}function Z0(t,o,s){const a=R.getPotentialLevel(o.req.level);function u(f){if(f===null)return null;if(s)return s(f.code,a)??null;{const h=new R;return h.code=f.code,h.option=new Map(f.option),h.optionType=f.optionType,h.reqLevel=f.reqLevel,h.summary=f.summary,h}}o.grade=t.grade,t.potentials.length!==0&&(o.potentials=t.potentials.map(u)),o.additionalGrade=t.additionalGrade,t.additionalPotentials.length!==0&&(o.additionalPotentials=t.additionalPotentials.map(u))}function Y0(t,o){o.soulWeapon.enchanted=t.soulWeapon.enchanted,t.soulWeapon.soul&&(o.soulWeapon.soul={...t.soulWeapon.soul}),o.soulWeapon.setCharge(t.soulWeapon.charge)}function t0(t){const o={};o.id=t.itemID,o.n=t.name,t.desc.length>0&&(o.d=t.desc),o.i=t.icon,t.anvil&&(o.an=t.anvil),o.t=t.type,o.r=t.req,o.pr=C(t.props,a=>a!==0),o.o=C(t.options,a=>!a.empty,P0),t.totalUpgradeCount>0&&(o.c=t.totalUpgradeCount),t.upgradeCount>0&&(o.up=t.upgradeCount),t.upgradeFailCount>0&&(o.f=t.upgradeFailCount),t.hammerCount>0&&(o.h=t.hammerCount),t.exceptionalTotalUpgradeCount>0&&(o.ec=t.exceptionalTotalUpgradeCount),t.exceptionalUpgradeCount>0&&(o.eu=t.exceptionalUpgradeCount),o.eo=C(t.exceptionalOptions,a=>a!==0),t.maxStar>0&&(o.m=t.maxStar),t.star>0&&(o.s=t.star),t.amazing&&(o.a=t.amazing),t.karma!==void 0&&(o.k=t.karma),t.canPotential&&(o.cp=t.canPotential),t.grade>0&&(o.g=t.grade),t.grade>0&&t.potentials.length>0&&(o.p=_(t.potentials,void 0,z)),t.additionalGrade>0&&(o.g2=t.additionalGrade),t.additionalGrade>0&&t.additionalPotentials.length>0&&(o.p2=_(t.additionalPotentials,void 0,z));const s=p0(t.soulWeapon);return s&&(o.w=s),o}function P0(t){return[t.base,t.bonus,t.upgrade,t.enchant]}function z(t){return t?{c:t.code,t:t.optionType,l:t.reqLevel,s:t.summary,o:C(t.option,o=>o!==0)}:null}function p0(t){const o={};if(t.enchanted&&(o.e=t.enchanted),t.soul&&(o.s=y0(t.soul)),t.charge>0&&(o.c=t.charge),t.chargeOption.size>0&&(o.o=C(t.chargeOption,s=>s!==0)),Object.keys(o).length>0)return o}function y0(t){return t?{n:t.name,s:t.skill,o:C(t.option,o=>o!==0),m:t.multiplier}:void 0}const n0=t=>{const o=c=>typeof c.id=="number"&&typeof c.n=="string"&&(c.d===void 0||typeof c.d=="string")&&typeof c.i=="object"&&c.i!==null&&typeof c.i.id=="number"&&(c.an===void 0||typeof c.an=="object"&&c.an!==null&&s(c.an))&&(c.t===100||c.t===101||c.t===102||c.t===103||c.t===104||c.t===105||c.t===106||c.t===107||c.t===108||c.t===110||c.t===111||c.t===112||c.t===113||c.t===114||c.t===115||c.t===116||c.t===118||c.t===166||c.t===167||c.t===109||c.t===119||c.t===119020||c.t===1212||c.t===1213||c.t===1214||c.t===122||c.t===123||c.t===124||c.t===126||c.t===127||c.t===128||c.t===129||c.t===130||c.t===131||c.t===132||c.t===133||c.t===134||c.t===136||c.t===137||c.t===138||c.t===140||c.t===1404||c.t===141||c.t===142||c.t===143||c.t===144||c.t===145||c.t===146||c.t===147||c.t===148||c.t===149||c.t===150||c.t===151||c.t===152||c.t===153||c.t===156||c.t===157||c.t===158||c.t===159||c.t===1098||c.t===1099||c.t===135200||c.t===135210||c.t===135220||c.t===135221||c.t===135222||c.t===135223||c.t===135224||c.t===135225||c.t===135226||c.t===135227||c.t===135228||c.t===135229||c.t===135240||c.t===135250||c.t===135260||c.t===135270||c.t===135290||c.t===135291||c.t===135292||c.t===135293||c.t===135294||c.t===135295||c.t===135296||c.t===135297||c.t===135298||c.t===135300||c.t===135310||c.t===135320||c.t===135330||c.t===135340||c.t===135350||c.t===135360||c.t===135370||c.t===135380||c.t===135400||c.t===135401||c.t===135402||c.t===135403||c.t===180||c.t===161||c.t===162||c.t===163||c.t===164||c.t===165||c.t===194||c.t===195||c.t===196||c.t===197)&&typeof c.r=="object"&&c.r!==null&&a(c.r)&&Array.isArray(c.pr)&&c.pr.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number")&&Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&Array.isArray(n[1])&&n[1].length===4&&typeof n[1][0]=="number"&&typeof n[1][1]=="number"&&typeof n[1][2]=="number"&&typeof n[1][3]=="number")&&(c.c===void 0||typeof c.c=="number")&&(c.up===void 0||typeof c.up=="number")&&(c.f===void 0||typeof c.f=="number")&&(c.h===void 0||typeof c.h=="number")&&(c.ec===void 0||typeof c.ec=="number")&&(c.eu===void 0||typeof c.eu=="number")&&(c.eo===void 0||Array.isArray(c.eo)&&c.eo.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number"))&&(c.m===void 0||typeof c.m=="number")&&(c.s===void 0||typeof c.s=="number")&&(c.a===void 0||typeof c.a=="boolean")&&(c.k===void 0||typeof c.k=="number")&&(c.cp===void 0||typeof c.cp=="boolean")&&(c.g===void 0||c.g===0||c.g===1||c.g===2||c.g===3||c.g===4||c.g===5)&&(c.p===void 0||Array.isArray(c.p)&&c.p.every(n=>n===null||typeof n=="object"&&n!==null&&u(n)))&&(c.g2===void 0||c.g2===0||c.g2===1||c.g2===2||c.g2===3||c.g2===4||c.g2===5)&&(c.p2===void 0||Array.isArray(c.p2)&&c.p2.every(n=>n===null||typeof n=="object"&&n!==null&&u(n)))&&(c.w===void 0||typeof c.w=="object"&&c.w!==null&&Array.isArray(c.w)===!1&&f(c.w)),s=c=>typeof c.name=="string"&&typeof c.icon=="object"&&c.icon!==null&&typeof c.icon.id=="number",a=c=>typeof c.level=="number"&&typeof c.str=="number"&&typeof c.luk=="number"&&typeof c.dex=="number"&&typeof c.int=="number"&&typeof c.job=="number"&&typeof c.specJob=="number",u=c=>typeof c.c=="number"&&typeof c.t=="number"&&typeof c.l=="number"&&typeof c.s=="string"&&Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number"),f=c=>(c.e===void 0||typeof c.e=="boolean")&&(c.s===void 0||typeof c.s=="object"&&c.s!==null&&h(c.s))&&(c.c===void 0||typeof c.c=="number")&&(c.o===void 0||Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number")),h=c=>typeof c.n=="string"&&typeof c.s=="string"&&Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number")&&typeof c.m=="number";return typeof t=="object"&&t!==null&&o(t)};function m0(t){return JSON.stringify(t0(t))}function T0(t){return O(JSON.parse(t))}function e0(t){try{const o=JSON.parse(t);if(n0(o))return O(o)}catch{}return null}function C(t,o,s){let a=[...t];return o&&(a=a.filter(u=>o(u[1]))),s?a.map(u=>[u[0],s(u[1])]):a}function _(t,o,s){let a=t;return o&&(a=a.filter(o)),s?a.map(s):a===t?[...t]:a}function w(t,o){return o?new Map(t.map(s=>[s[0],o(s[1])])):new Map(t)}function $(t,o){return o?[...t].map(o):[...t]}function O(t){const o=new D;return o.itemID=t.id,o.name=t.n,t.d&&(o.desc=t.d),o.icon=t.i,t.an&&(o.anvil=t.an),o.type=t.t,o.req=t.r,o.props=w(t.pr),o.options=w(t.o,G0),t.c&&(o.totalUpgradeCount=t.c),t.up&&(o.upgradeCount=t.up),t.f&&(o.upgradeFailCount=t.f),t.h&&(o.hammerCount=t.h),t.ec&&(o.exceptionalTotalUpgradeCount=t.ec),t.eu&&(o.exceptionalUpgradeCount=t.eu),t.eo&&(o.exceptionalOptions=w(t.eo)),t.m&&(o.maxStar=t.m),t.s&&(o.star=t.s),t.a&&(o.amazing=t.a),t.k&&(o.karma=t.k),t.cp&&(o.canPotential=t.cp),t.g&&(o.grade=t.g),t.p&&(o.potentials=$(t.p,B)),t.g2&&(o.additionalGrade=t.g2),t.p2&&(o.additionalPotentials=$(t.p2,B)),t1(t.w,o),o}function G0(t){const o=new N;return o.base=t[0],o.bonus=t[1],o.upgrade=t[2],o.enchant=t[3],o}function B(t){if(!t)return null;const o=new R;return o.code=t.c,o.optionType=t.t,o.reqLevel=t.l,o.summary=t.s,o.option=w(t.o),o}function t1(t,o){if(t){const s=o.soulWeapon;t?.e&&(s.enchanted=t.e),t?.s&&(s.soul=n1(t.s)),t?.c&&(s.charge=t.c),t?.o&&(s.chargeOption=w(t.o))}}function n1(t){if(t)return{name:t.n,skill:t.s,option:w(t.o),multiplier:t.m}}exports.BonusStatType=d;exports.Gear=D;exports.GearOption=N;exports.GearPropType=i;exports.GearRepository=W0;exports.GearType=r;exports.Potential=R;exports.PotentialGrade=v;exports.PotentialRepository=j0;exports.SoulRepository=F0;exports.SoulWeapon=J;exports.addAmazingEnhancement=h0;exports.addBonusStat=c0;exports.addStarforce=l;exports.addUpgradeFailCount=O0;exports.applyExceptionalEnchant=w0;exports.applyGoldHammer=H0;exports.applyScroll=y;exports.applySpellTrace=I0;exports.createGearFromNode=T;exports.createPotentialFromNode=e;exports.createSoulFromNode=G;exports.gearToPlain=t0;exports.getBonusStatOption=Z;exports.getBonusStatValue=Y;exports.getSpellTraceScroll=p;exports.isGearLike=n0;exports.migrate=V0;exports.parseGear=T0;exports.plainToGear=O;exports.recalculateStarforce=D0;exports.resetBonusStat=Q;exports.resetEnhancement=H;exports.resetExceptionalEnchant=P;exports.resetUpgrade=m;exports.restoreUpgradeCount=q0;exports.stringifyGear=m0;exports.validateParseGear=e0;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class N{constructor(){this.base=0,this.bonus=0,this.upgrade=0,this.enchant=0}get empty(){return this.base===0&&this.bonus===0&&this.upgrade===0&&this.enchant===0}get sum(){return Math.max(0,this.base+this.bonus+this.upgrade+this.enchant)}get diff(){return this.bonus+this.upgrade+this.enchant}}var s=(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))(s||{}),r=(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))(r||{}),S=(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))(S||{});class J{constructor(o){this.enchanted=!1,this.charge=0,this.chargeOption=new Map,this.gear=o}get can(){return D.isWeapon(this.gear.type)}get type(){return this.gear.option(s.incPAD).base>=this.gear.option(s.incMAD).base?s.incPAD:s.incMAD}enchant(){return this.enchanted||!this.can?!1:(this.enchanted=!0,this.soul=void 0,this.charge=0,this.chargeOption.clear(),!0)}disenchant(){return this.enchanted?(this.enchanted=!1,this.soul=void 0,this.charge=0,this.chargeOption.clear(),!0):!1}setCharge(o){return!this.enchanted||o<0||o>1e3?!1:(this.charge=o,this.updateChargeOption(),!0)}setSoul(o){return this.enchanted?(this.soul=o,this.updateChargeOption(),!0):!1}removeSoul(){return!this.enchanted||!this.soul?!1:(this.soul=void 0,this.updateChargeOption(),!0)}updateChargeOption(){return this.chargeOption.clear(),this.chargeOption.set(this.type,this.getChargeAD()),!0}getChargeAD(){if(!this.enchanted||this.charge===0)return 0;const o=Math.min(Math.ceil(this.charge/100)-1,5);if(this.soul){const i=this.soul.multiplier;return 10+o*i}return 5+o}}const U=class{constructor(){this.itemID=0,this.name="",this.desc="",this.type=0,this.props=new Map,this.options=new Map,this.exceptionalOptions=new Map,this.totalUpgradeCount=0,this.upgradeCount=0,this.upgradeFailCount=0,this.hammerCount=0,this.exceptionalTotalUpgradeCount=0,this.exceptionalUpgradeCount=0,this.maxStar=0,this.star=0,this.amazing=!1,this.canPotential=!1,this.grade=S.normal,this.potentials=[],this.additionalGrade=S.normal,this.additionalPotentials=[],this.soulWeapon=new J(this),this.icon={id:0},this.req={level:0,str:0,dex:0,int:0,luk:0,job:0,specJob:0}}get upgradeCountLeft(){return this.totalUpgradeCount+this.hammerCount-this.upgradeCount-this.upgradeFailCount}get exceptionalUpgradeCountLeft(){return this.exceptionalTotalUpgradeCount-this.exceptionalUpgradeCount}get diff(){let t=0;for(const[o,i]of this.options)t+=Math.floor(i.diff/U.getPropTypeWeight(o));return t}get isNewBonusType(){return!!([...this.options.values()].some(o=>o.bonus>0)&&this.getPropValue(s.tradeAvailable)!==1)}option(t){return this.options.has(t)||this.options.set(t,new N),this.options.get(t)}getPropValue(t){return this.props.get(t)??0}getBooleanValue(t){return(this.props.get(t)??0)>0}setAnvil(t){this.anvil=t}resetAnvil(){this.anvil=void 0}static isWeapon(t){return this.isLeftWeapon(t)||this.isDoubleHandWeapon(t)}static isLeftWeapon(t){return t>=121&&t<=139&&t!==r.katara||Math.floor(t/10)===121}static isDoubleHandWeapon(t){return t>=140&&t<=149||t>=152&&t<=159||Math.floor(t/10)===140}static isSubWeapon(t){switch(t){case r.katara:case r.shield:case r.demonShield:case r.soulShield:return!0;default:return Math.floor(t/1e3)===135}}static isShield(t){switch(t){case r.shield:case r.demonShield:case r.soulShield:return!0;default:return!1}}static isArmor(t){return t===100||t>=104&&t<=110||t===r.soulShield||t===r.demonShield}static isAccessory(t){return t>=101&&t<=103||t>=111&&t<=113||t===115}static isMechanicGear(t){return t>=161&&t<=165}static isDragonGear(t){return t>=194&&t<=197}static getGearType(t){switch(Math.floor(t/1e3)){case 1098:return r.soulShield;case 1099:return r.demonShield;case 1212:return r.shiningRod;case 1213:return r.tuner;case 1214:return r.breathShooter;case 1404:return r.chakram}if(Math.floor(t/1e4)===135)switch(Math.floor(t/100)){case 13522:case 13528:case 13529:case 13540:return Math.floor(t/10);default:return Math.floor(t/100)*10}if(Math.floor(t/1e4)===119)switch(Math.floor(t/100)){case 11902:return Math.floor(t/10)}return Math.floor(t/1e4)}static getMaxStar(t){if(t.totalUpgradeCount<=0||t.getBooleanValue(s.onlyUpgrade)||U.isMechanicGear(t.type)||U.isDragonGear(t.type))return 0;let o;const i=t.req.level;for(const a of U.starData)if(i>=a[0])o=a;else break;return o===void 0?0:t.getBooleanValue(s.superiorEqp)?o[2]:o[1]}static getPropTypeWeight(t){if(t<100)switch(t){case s.incSTR:case s.incDEX:case s.incINT:case s.incLUK:case s.incPAD:case s.incMAD:case s.incSpeed:case s.incJump:return 1;case s.incMHP:case s.incMMP:return 100;case s.incPDD:return 10;case s.incAD:return 2}return Number.MAX_VALUE}};let D=U;D.starData=[[0,5,3],[95,8,5],[110,10,8],[120,15,10],[130,20,12],[140,25,15]];class R{constructor(){this.code=0,this.optionType=0,this.reqLevel=0,this.summary="",this.option=new Map}get convertSummary(){const o=[...this.option.keys()];o.sort((a,u)=>s[u].length-s[a].length);let i=this.summary;for(const a of o)i=i.replace(`#${s[a]}`,(this.option.get(a)??0).toString());return i}static getPotentialLevel(o){return o<=0?1:o>=250?25:Math.floor((o+9)/10)}static checkOptionType(o,i){switch(o){case 0:return!0;case 10:return D.isWeapon(i)||D.isSubWeapon(i)||i===r.emblem;case 11:return!R.checkOptionType(10,i);case 20:return D.isSubWeapon(i)||i===r.cap||i===r.coat||i===r.longcoat||i===r.pants||i===r.shoes||i===r.glove||i===r.cape||i===r.belt||i===r.shoulder;case 40:return i===r.faceAccessory||i===r.eyeAccessory||i===r.earrings||i===r.ring||i===r.pendant;case 51:return i===r.cap;case 52:return i===r.coat||i===r.longcoat;case 53:return i===r.pants;case 54:return i===r.glove;case 55:return i===r.shoes;default:return!1}}}var d=(t=>(t[t.STR=0]="STR",t[t.DEX=1]="DEX",t[t.INT=2]="INT",t[t.LUK=3]="LUK",t[t.STR_DEX=4]="STR_DEX",t[t.STR_INT=5]="STR_INT",t[t.STR_LUK=6]="STR_LUK",t[t.DEX_INT=7]="DEX_INT",t[t.DEX_LUK=8]="DEX_LUK",t[t.INT_LUK=9]="INT_LUK",t[t.MHP=10]="MHP",t[t.MMP=11]="MMP",t[t.PAD=12]="PAD",t[t.MAD=13]="MAD",t[t.PDD=14]="PDD",t[t.speed=15]="speed",t[t.jump=16]="jump",t[t.damR=17]="damR",t[t.bdR=18]="bdR",t[t.allStatR=19]="allStatR",t[t.reduceReq=20]="reduceReq",t))(d||{});function s0(t,o,i){const a=Z(t,o,i);if(a.size===0)return!1;for(const[u,f]of a)t.option(u).bonus+=f;return!0}function Q(t){for(const[,o]of t.options)o.bonus=0;return!0}function Z(t,o,i){const a=f0(o),u=Y(t,o,i);return u===0?new Map:new Map(a.map(f=>[f,u]))}function Y(t,o,i){const a=t.req.level,u=t.getBooleanValue(s.bossReward),f=t.type;if(a<0||u&&i<3)return 0;switch(o){case d.STR:case d.DEX:case d.INT:case d.LUK:return O(a,i);case d.STR_DEX:case d.STR_INT:case d.STR_LUK:case d.DEX_INT:case d.DEX_LUK:case d.INT_LUK:return i0(a,i);case d.PDD:return O(a,i);case d.PAD:case d.MAD:return a0(a,i,o,t.type,u,t.option(s.incPAD).base,t.option(s.incMAD).base);case d.MHP:case d.MMP:return r0(a,i);case d.speed:case d.jump:return D.isWeapon(f)?0:i;case d.damR:return D.isWeapon(f)?i:0;case d.bdR:return a<90||!D.isWeapon(f)?0:2*i;case d.allStatR:return a<70&&!D.isWeapon(f)?0:i;case d.reduceReq:return u0(a,i);default:return 0}}function O(t,o){return t>=250?Math.floor(t/20)*o:(Math.floor(t/20)+1)*o}function i0(t,o){return(Math.floor(t/40)+1)*o}function a0(t,o,i,a,u,f,h){if(D.isWeapon(a)){const c=u?[0,0,1,1.4666,2.0166,2.663,3.4166]:[1,2.222,3.63,5.325,7.32,8.777,10.25];let n=f;if(a===r.heavySword||a===r.longSword){if(a===r.longSword)switch(n){case 100:n=102;break;case 103:n=105;break;case 105:n=107;break;case 112:n=114;break;case 117:n=121;break;case 135:n=139;break;case 169:n=173;break;case 203:n=207;break;case 293:n=297;break;case 337:n=342;break}const M=t>180?6:t>160?5:t>110?4:3;return Math.ceil(n*c[o-1]*M/100)}else if(i===d.MAD&&h>=n&&(n=h),u){const M=t>160?18:t>150?15:t>110?12:9;return Math.ceil(n*c[o-1]*M/100)}else{const M=t>110?4:3;return Math.ceil(n*c[o-1]*M/100)}}else if(t<60)return 0;return o}function r0(t,o){return t<10?3*o:t>=250?700*o:Math.floor(t/10)*30*o}function u0(t,o){return o*5}function f0(t){switch(t){case d.STR:return[s.incSTR];case d.DEX:return[s.incDEX];case d.INT:return[s.incINT];case d.LUK:return[s.incLUK];case d.STR_DEX:return[s.incSTR,s.incDEX];case d.STR_INT:return[s.incSTR,s.incINT];case d.STR_LUK:return[s.incSTR,s.incLUK];case d.DEX_INT:return[s.incDEX,s.incINT];case d.DEX_LUK:return[s.incDEX,s.incLUK];case d.INT_LUK:return[s.incINT,s.incLUK];case d.PDD:return[s.incPDD];case d.PAD:return[s.incPAD];case d.MAD:return[s.incMAD];case d.MHP:return[s.incMHP];case d.MMP:return[s.incMMP];case d.speed:return[s.incSpeed];case d.jump:return[s.incJump];case d.damR:return[s.damR];case d.bdR:return[s.bdR];case d.allStatR:return[s.statR];case d.reduceReq:return[s.reduceReq];default:return[]}}const d0=25,K=15;function l(t,o=!1){if(t.getBooleanValue(s.incCHUC))return!1;if(t.getBooleanValue(s.superiorEqp))return h0(t);if(t.star>=t.maxStar&&!o||t.star>=d0)return!1;t.star+=1;const i=t.star,a=g(t,!1,!1),u=g(t,!1,!0),f=D.isWeapon(t.type)||t.type===r.katara,h=[[s.incSTR,s.incDEX],[s.incINT,s.incLUK],[s.incDEX,s.incSTR],[s.incLUK,s.incDEX],[s.incSTR,s.incDEX]],c=[s.incSTR,s.incDEX,s.incINT,s.incLUK];let n;const M=t.req.job;if(M===0)n=new Set([s.incSTR,s.incDEX,s.incINT,s.incLUK]);else{n=new Set;for(let A=0;A<5;A++)if(M&1<<A)for(const b of h[A])n.add(b)}for(const A of c)(n.has(A)||i>15&&(t.option(A).base>0||t.option(A).upgrade>0))&&(t.option(A).enchant+=a[i]);if(f){const A=M===0||Math.floor(M/2)%2===1||t.option(s.incMAD).upgrade>0;if(i>15)t.option(s.incPAD).enchant+=u[i],A&&(t.option(s.incMAD).enchant+=u[i]);else{const b=t.option(s.incPAD).sum-t.option(s.incPAD).bonus;if(t.option(s.incPAD).enchant+=Math.floor(b/50)+1,A){const c0=t.option(s.incMAD).sum-t.option(s.incMAD).bonus;t.option(s.incMAD).enchant+=Math.floor(c0/50)+1}}}else t.option(s.incPAD).enchant+=u[i],t.option(s.incMAD).enchant+=u[i],t.type===r.glove&&(M===0?(t.option(s.incPAD).enchant+=X[i],t.option(s.incMAD).enchant+=X[i]):Math.floor(M/2)%2===1?t.option(s.incMAD).enchant+=X[i]:t.option(s.incPAD).enchant+=X[i]);if(!f&&t.type!==r.machineHeart){const A=t.option(s.incPDD).sum-t.option(s.incPDD).bonus;t.option(s.incPDD).enchant+=Math.floor(A/20)+1}const v=[r.cap,r.coat,r.longcoat,r.pants,r.cape,r.ring,r.pendant,r.belt,r.shoulder,r.shield];return f?(t.option(s.incMHP).enchant+=L[i],t.option(s.incMMP).enchant+=L[i]):v.includes(t.type)&&(t.option(s.incMHP).enchant+=L[i]),t.type===r.shoes&&(t.option(s.incSpeed).enchant+=k[i],t.option(s.incJump).enchant+=k[i]),!0}function h0(t){if(t.star>=t.maxStar)return!1;t.star+=1;const o=t.star,i=g(t,!1,!1),a=g(t,!1,!0),u=[s.incSTR,s.incDEX,s.incINT,s.incLUK];for(const c of u)t.option(c).base>0&&(t.option(c).enchant+=i[o]);const f=[s.incPAD,s.incMAD];for(const c of f)t.option(c).base>0&&(t.option(c).enchant+=a[o]);const h=t.option(s.incPDD).sum-t.option(s.incPDD).bonus;return t.option(s.incPDD).enchant+=Math.floor(h/20)+1,!0}function D0(t,o=!1,i=!1){if(t.getBooleanValue(s.incCHUC)||t.getBooleanValue(s.superiorEqp)||t.req.level>150||t.star>=t.maxStar&&!i||t.star>=K)return!1;t.amazing||(t.amazing=!0,t.maxStar=Math.min(t.maxStar,K)),t.star+=1;const a=t.star,u=g(t,!0,!1),f=g(t,!0,!0),h=D.isWeapon(t.type)||t.type===r.katara,c=[s.incSTR,s.incDEX,s.incINT,s.incLUK];for(const v of c)if(t.option(v).sum>0){let b=u[a];o&&D.isAccessory(t.type)&&(b+=a>5?2:1),t.option(v).enchant+=b}const n=[s.incPAD,s.incMAD];for(const v of n){const A=t.option(v).sum;if(A>0){h&&(t.option(v).enchant+=Math.floor(A/50)+1);let b=f[a];o&&(h||t.type===r.shield)&&(b+=1),t.option(v).enchant+=b}}o&&D.isArmor(t.type)&&(t.option(s.incMHP).enchant+=50);const M=t.option(s.incPDD).sum;return t.option(s.incPDD).enchant+=Math.floor(M/20)+1,!0}function H(t){if(t.getBooleanValue(s.incCHUC))return!1;t.star=0,t.amazing=!1,t.maxStar=D.getMaxStar(t);for(const[,o]of t.options)o.enchant=0;return!0}function A0(t){if(t.getBooleanValue(s.incCHUC)||t.amazing)return!1;const o=t.star;H(t);for(let i=0;i<o;i++)l(t,!0);return!0}function g(t,o,i){let a;t.getBooleanValue(s.superiorEqp)?i?a=M0:a=b0:o?i?a=C0:a=w0:i?D.isWeapon(t.type)||t.type===r.katara?a=v0:a=S0:a=R0;const u=t.req.level;for(const f of[...a].reverse())if(u>=f[0])return f;throw Error(`Gear has invalid reqLevel.
2
+ `+t)}const M0=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[110,0,0,0,0,0,5,6,7,0,0,0,0,0,0,0],[150,0,0,0,0,0,9,10,11,12,13,15,17,19,21,23]],b0=[[0,1,2,4,7,11,0,0,0,0,0,0,0,0,0,0],[80,2,3,5,8,12,0,0,0,0,0,0,0,0,0,0],[110,9,10,12,15,19,0,0,0,0,0,0,0,0,0,0],[150,19,20,22,25,29,0,0,0,0,0,0,0,0,0,0]],v0=[[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],[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],[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],[128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,9,10,11,29,30,31],[138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,9,10,11,12,30,31,32],[148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,9,9,10,11,12,13,31,32,33],[158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,10,11,12,13,14,32,33,34],[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],[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]],S0=[[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],[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],[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],[128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,9,10,11,12,14,16,18,20],[138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,9,10,11,12,13,15,17,19,21],[148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,10,11,12,13,14,16,18,20,22],[158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,11,12,13,14,15,17,19,21,23],[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],[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]],R0=[[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],[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],[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],[128,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,7,7,7,7,7,7,7,0,0,0],[138,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,9,9,9,9,9,9,9,0,0,0],[148,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,0,0,0],[158,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,13,13,13,13,13,13,13,0,0,0],[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],[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]],C0=[[0,0,0,0,0,0,1,2,3,4,5,6,8,10,12,14],[80,0,0,0,0,0,2,3,4,5,6,7,9,11,13,15],[90,0,0,0,0,0,3,4,5,6,7,8,10,12,14,16],[100,0,0,0,0,0,4,5,6,7,8,9,11,13,15,17],[110,0,0,0,0,0,5,6,7,8,9,10,12,14,16,18],[120,0,0,0,0,0,6,7,8,9,10,11,13,15,17,19],[130,0,0,0,0,0,7,8,9,10,11,12,14,16,18,20],[140,0,0,0,0,0,8,9,10,11,12,13,15,17,19,21],[150,0,0,0,0,0,9,10,11,12,13,14,16,18,20,22]],w0=[[0,1,2,4,7,11,0,0,0,0,0,0,0,0,0,0],[80,2,3,5,8,12,0,0,0,0,0,0,0,0,0,0],[85,3,4,6,9,13,0,0,0,0,0,0,0,0,0,0],[90,4,5,7,10,14,0,0,0,0,0,0,0,0,0,0],[95,5,6,8,11,15,0,0,0,0,0,0,0,0,0,0],[100,7,8,10,13,17,0,0,0,0,0,0,0,0,0,0],[105,8,9,11,14,18,0,0,0,0,0,0,0,0,0,0],[110,9,10,12,15,19,0,0,0,0,0,0,0,0,0,0],[115,10,11,13,16,20,0,0,0,0,0,0,0,0,0,0],[120,12,13,15,18,22,0,0,0,0,0,0,0,0,0,0],[125,13,14,16,19,23,0,0,0,0,0,0,0,0,0,0],[130,14,15,17,20,24,0,0,0,0,0,0,0,0,0,0],[135,15,16,18,21,25,0,0,0,0,0,0,0,0,0,0],[140,17,18,20,23,27,0,0,0,0,0,0,0,0,0,0],[145,18,19,21,24,28,0,0,0,0,0,0,0,0,0,0],[150,19,20,22,25,29,0,0,0,0,0,0,0,0,0,0]],X=[0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0],L=[0,5,5,5,10,10,15,15,20,20,25,25,25,25,25,25,0,0,0,0,0,0,0,0,0,0],k=[0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0];function g0(t,o){if(t.exceptionalUpgradeCountLeft<1)return!1;t.exceptionalUpgradeCount+=1;for(const[i,a]of o.option){const u=t.exceptionalOptions.get(i)??0;t.exceptionalOptions.set(i,u+a)}return!0}function P(t){return t.exceptionalUpgradeCount=0,t.exceptionalOptions.clear(),!0}function p(t,o,i){if(D.isWeapon(t.type)||t.type===r.katara)return X0(t,o,i);if(t.type===r.glove)return N0(t,o,i);if(D.isArmor(t.type)||t.type===r.shoulder)return L0(t,o,i);if(D.isAccessory(t.type))return l0(t,o,i);if(t.type===r.machineHeart)return H0(t,o,i)}const E0={100:[[1,0],[2,0],[3,1]],70:[[2,0],[3,1],[5,2]],30:[[3,1],[5,2],[7,3]],15:[[5,2],[7,3],[9,4]]},U0={100:[[1,5,1],[2,20,2],[3,30,3]],70:[[2,15,2],[3,40,4],[4,70,5]],30:[[3,30,4],[5,70,7],[7,120,10]],15:[[4,45,6],[7,110,10],[10,170,15]]},W={30:[1,2,3],15:[2,3,4]},j={30:[1,2,3]},x0={100:[0,1,1],70:[1,2,2],30:[2,3,3],15:[3,4,4]},F={100:[1,1,2],70:[2,2,3],30:[3,4,5]},V={100:[1,2,3],70:[2,3,5],30:[3,5,7]},I={[s.incSTR]:s.incPAD,[s.incDEX]:s.incPAD,[s.incINT]:s.incMAD,[s.incLUK]:s.incPAD,[s.incMHP]:s.incPAD,[s.incAllStat]:s.incPAD},E={[s.incSTR]:"힘",[s.incDEX]:"민첩",[s.incINT]:"지력",[s.incLUK]:"운",[s.incMHP]:"체력",[s.incAllStat]:"올스탯",[s.incPAD]:"공격력",[s.incMAD]:"마력"};function x(t){return t.req.level>110?2:t.req.level>70?1:0}function X0(t,o,i){if(o===s.incAllStat)return;const a=x(t);let[u,f]=E0[i][a];const h=I[o],c=E[h];return o===s.incMHP&&(f*=50),{name:f>0?`${i}% ${c}(${E[o]}) 주문서`:`${i}% ${c} 주문서`,option:new Map([[o,f],[h,u]])}}function L0(t,o,i){const a=x(t),[u,f,h]=U0[i][a];let c=[],n=[],M=[];if(o===s.incMHP)n=[[s.incMHP,f+u*50]];else if(n=[[s.incMHP,f]],o===s.incAllStat){if(!(i in W))return;const b=W[i][a];c=[[s.incSTR,b],[s.incDEX,b],[s.incINT,b],[s.incLUK,b]]}else c=[[o,u]];t.upgradeCount===3&&(t.req.job===0?M=[[s.incPAD,1],[s.incMAD,1]]:Math.floor(t.req.job/2)%2===1?M=[[s.incMAD,1]]:M=[[s.incPAD,1]]);const v=`${i}% ${E[o]} 주문서`,A=new Map([...c,...M,...n,[s.incPDD,h]]);return{name:v,option:A}}function N0(t,o,i){const a=x(t),u=x0[i][a];if(u===0)return{name:`${i}% 방어력 주문서`,option:new Map([[s.incPDD,3]])};{const f=I[o];return{name:`${i}% ${E[f]} 주문서`,option:new Map([[f,u]])}}}function l0(t,o,i){if(!(i in F))return;const a=x(t),u=F[i][a];let f=[];if(o===s.incMHP)f=[[s.incMHP,u*50]];else if(o===s.incAllStat){if(!(i in j))return;const n=j[i][a];f=[[s.incSTR,n],[s.incDEX,n],[s.incINT,n],[s.incLUK,n]]}else f=[[o,u]];const h=`${i}% ${E[o]} 주문서`,c=new Map(f);return{name:h,option:c}}function H0(t,o,i){if(!(i in V))return;const a=x(t),u=V[i][a],f=I[o];return{name:`${i}% ${E[o]} 주문서`,option:new Map([[f,u]])}}function I0(t){return t.getBooleanValue(s.blockGoldHammer)||t.getBooleanValue(s.onlyUpgrade)||t.totalUpgradeCount<=0||t.hammerCount>0?!1:(t.hammerCount=1,!0)}function m(t,o){if(t.upgradeCountLeft<1)return!1;t.upgradeCount+=1;for(const[i,a]of o.option)t.option(i).upgrade+=a;return!0}function q0(t,o,i){const a=p(t,o,i);return a?m(t,a):!1}function O0(t){return t.upgradeCountLeft<1?!1:(t.upgradeFailCount+=1,!0)}function K0(t){return t.upgradeFailCount<1?!1:(t.upgradeFailCount-=1,!0)}function y(t){t.upgradeCount=0,t.upgradeFailCount=0,t.hammerCount=0;for(const[,o]of t.options)o.upgrade=0;return!0}function T(t,o,i){const a=new D;if(a.itemID=o,a.type=D.getGearType(o),a.name=t.name,a.desc=t.desc??"",a.icon={id:t.icon},a.totalUpgradeCount=t.tuc??0,a.exceptionalTotalUpgradeCount=t.etuc??0,t.req&&(a.req={level:t.req.level??0,str:t.req.str??0,luk:t.req.luk??0,dex:t.req.dex??0,int:t.req.int??0,job:t.req.job??0,specJob:t.req.specJob??0}),t.options)for(const[h,c]of Object.entries(t.options)){const n=s[h];a.option(n).base=c}if(t.props)for(const[h,c]of Object.entries(t.props)){const n=s[h];a.props.set(n,c)}t.pots&&(a.potentials=t.pots.map(h=>i(h.option,h.level)).filter(h=>h!==void 0)),(a.totalUpgradeCount>0||k0(a.type)||D.isSubWeapon(a.type)||a.getBooleanValue(s.tucIgnoreForPotential)||W0(a.itemID))&&(a.canPotential=!0),(D.isMechanicGear(a.type)||D.isDragonGear(a.type))&&(a.canPotential=!1),a.getBooleanValue(s.noPotential)&&(a.canPotential=!1);let u;if(u=a.getPropValue(s.fixedGrade))switch(u){case 2:a.grade=S.rare;break;case 3:a.grade=S.epic;break;case 5:a.grade=S.unique;break;case 7:a.grade=S.legendary;break;default:a.grade=u-1;break}a.potentials.some(h=>h!==void 0)&&a.grade===S.normal&&(a.grade=S.rare),a.type===r.demonShield&&(u=a.option(s.incMMP).base,u>0&&(a.option(s.incMDF).base=u,a.option(s.incMMP).base=0)),a.maxStar=D.getMaxStar(a);const f=a.getPropValue(s.incCHUC);return f>0&&(a.star=f),a}function k0(t){switch(t){case r.soulShield:case r.demonShield:case r.katara:case r.magicArrow:case r.card:case r.orb:case r.dragonEssence:case r.soulRing:case r.magnum:case r.emblem:return!0;default:return!1}}function W0(t){switch(t){case 1113231:case 1114302:case 1114305:return!0;default:return!1}}class j0{constructor(o,i){this.gears=o,this.potentialRepository=i}ids(){return Object.keys(this.gears).map(o=>Number(o))}createGearFromId(o){if(o in this.gears)return T(this.gears[o],o,(i,a)=>this.potentialRepository.createPotentialFromCode(i,a))}}function e(t,o,i){const a=new R;a.code=o,a.optionType=t.optionType??0,a.reqLevel=t.reqLevel??0,a.summary=t.string;for(const[f,h]of Object.entries(t.level[i])){const c=s[f];typeof h=="number"&&a.option.set(c,h)}const u=a.option.get(s.incDAMr)??0;return u>0&&(a.option.get(s.boss)??0)>0&&(a.option.delete(s.incDAMr),a.option.delete(s.boss),a.option.set(s.incBDR,u),a.summary=a.summary.replace("#incDAMr","#incBDR")),a}class F0{constructor(o){this.itemOptions=o}createPotentialFromCode(o,i){if(o in this.itemOptions)return e(this.itemOptions[o],o,i)}}var G=(t=>(t.PAD="PAD",t.MAD="MAD",t.allStat="allStat",t.MHP="MHP",t.cr="cr",t.bdR="bdR",t.imdR="imdR",t))(G||{});function t0(t,o="PAD"){const i=t.magnificent?t.options[o]:t.option,a=new Map;for(const[u,f]of Object.entries(i)){const h=s[u];a.set(h,f)}return{name:t.name,skill:t.skill,multiplier:t.multiplier,option:a}}class V0{constructor(o){this.souls=o}ids(){return Object.keys(this.souls).map(o=>Number(o))}createSoulFromId(o,i="PAD"){if(o in this.souls)return t0(this.souls[o],i)}}function z0(t,o,i){return _0(t,o,i?.ignorePropTypes),$0(t,o),B0(t,o),J0(t,o),Q0(t,o),Z0(t,o),Y0(t,o,i?.getPotentialFunc),P0(t,o),o}function _0(t,o,i){for(const[a,u]of t.props)i&&i.includes(a)||o.props.set(a,u);o.karma=t.karma}function $0(t,o){t.anvil!==void 0&&(o.anvil=t.anvil)}function B0(t,o){Q(o);for(const[i,a]of t.options)o.option(i).bonus=a.bonus}function J0(t,o){if(t.upgradeCount!==void 0&&t.upgradeFailCount!==void 0&&t.hammerCount!==void 0){y(o),o.upgradeCount=t.upgradeCount,o.upgradeFailCount=t.upgradeFailCount,o.hammerCount=t.hammerCount;for(const[i,a]of t.options)o.option(i).upgrade=a.upgrade}}function Q0(t,o){if(t.star!==void 0&&t.star!==0)if(H(o),t.amazing){o.star=t.star,o.maxStar=t.maxStar,o.amazing=t.amazing;for(const[i,a]of t.options)o.option(i).enchant=a.enchant}else for(let i=0;i<t.star;i++)l(o,!0)}function Z0(t,o){t.exceptionalUpgradeCount!==void 0&&(P(o),o.exceptionalUpgradeCount=t.exceptionalUpgradeCount,o.exceptionalOptions=new Map(t.exceptionalOptions))}function Y0(t,o,i){const a=R.getPotentialLevel(o.req.level);function u(f){if(f===null)return null;if(i)return i(f.code,a)??null;{const h=new R;return h.code=f.code,h.option=new Map(f.option),h.optionType=f.optionType,h.reqLevel=f.reqLevel,h.summary=f.summary,h}}o.grade=t.grade,t.potentials.length!==0&&(o.potentials=t.potentials.map(u)),o.additionalGrade=t.additionalGrade,t.additionalPotentials.length!==0&&(o.additionalPotentials=t.additionalPotentials.map(u))}function P0(t,o){o.soulWeapon.enchanted=t.soulWeapon.enchanted,t.soulWeapon.soul&&(o.soulWeapon.soul={...t.soulWeapon.soul}),o.soulWeapon.setCharge(t.soulWeapon.charge)}function n0(t){const o={};o.id=t.itemID,o.n=t.name,t.desc.length>0&&(o.d=t.desc),o.i=t.icon,t.anvil&&(o.an=t.anvil),o.t=t.type,o.r=t.req,o.pr=C(t.props,a=>a!==0),o.o=C(t.options,a=>!a.empty,p0),t.totalUpgradeCount>0&&(o.c=t.totalUpgradeCount),t.upgradeCount>0&&(o.up=t.upgradeCount),t.upgradeFailCount>0&&(o.f=t.upgradeFailCount),t.hammerCount>0&&(o.h=t.hammerCount),t.exceptionalTotalUpgradeCount>0&&(o.ec=t.exceptionalTotalUpgradeCount),t.exceptionalUpgradeCount>0&&(o.eu=t.exceptionalUpgradeCount),o.eo=C(t.exceptionalOptions,a=>a!==0),t.maxStar>0&&(o.m=t.maxStar),t.star>0&&(o.s=t.star),t.amazing&&(o.a=t.amazing),t.karma!==void 0&&(o.k=t.karma),t.canPotential&&(o.cp=t.canPotential),t.grade>0&&(o.g=t.grade),t.grade>0&&t.potentials.length>0&&(o.p=_(t.potentials,void 0,z)),t.additionalGrade>0&&(o.g2=t.additionalGrade),t.additionalGrade>0&&t.additionalPotentials.length>0&&(o.p2=_(t.additionalPotentials,void 0,z));const i=m0(t.soulWeapon);return i&&(o.w=i),o}function p0(t){return[t.base,t.bonus,t.upgrade,t.enchant]}function z(t){return t?{c:t.code,t:t.optionType,l:t.reqLevel,s:t.summary,o:C(t.option,o=>o!==0)}:null}function m0(t){const o={};if(t.enchanted&&(o.e=t.enchanted),t.soul&&(o.s=y0(t.soul)),t.charge>0&&(o.c=t.charge),t.chargeOption.size>0&&(o.o=C(t.chargeOption,i=>i!==0)),Object.keys(o).length>0)return o}function y0(t){return t?{n:t.name,s:t.skill,o:C(t.option,o=>o!==0),m:t.multiplier}:void 0}const o0=t=>{const o=c=>typeof c.id=="number"&&typeof c.n=="string"&&(c.d===void 0||typeof c.d=="string")&&typeof c.i=="object"&&c.i!==null&&typeof c.i.id=="number"&&(c.an===void 0||typeof c.an=="object"&&c.an!==null&&i(c.an))&&(c.t===100||c.t===101||c.t===102||c.t===103||c.t===104||c.t===105||c.t===106||c.t===107||c.t===108||c.t===110||c.t===111||c.t===112||c.t===113||c.t===114||c.t===115||c.t===116||c.t===118||c.t===166||c.t===167||c.t===109||c.t===119||c.t===119020||c.t===1212||c.t===1213||c.t===1214||c.t===122||c.t===123||c.t===124||c.t===126||c.t===127||c.t===128||c.t===129||c.t===130||c.t===131||c.t===132||c.t===133||c.t===134||c.t===136||c.t===137||c.t===138||c.t===140||c.t===1404||c.t===141||c.t===142||c.t===143||c.t===144||c.t===145||c.t===146||c.t===147||c.t===148||c.t===149||c.t===150||c.t===151||c.t===152||c.t===153||c.t===156||c.t===157||c.t===158||c.t===159||c.t===1098||c.t===1099||c.t===135200||c.t===135210||c.t===135220||c.t===135221||c.t===135222||c.t===135223||c.t===135224||c.t===135225||c.t===135226||c.t===135227||c.t===135228||c.t===135229||c.t===135240||c.t===135250||c.t===135260||c.t===135270||c.t===135290||c.t===135291||c.t===135292||c.t===135293||c.t===135294||c.t===135295||c.t===135296||c.t===135297||c.t===135298||c.t===135300||c.t===135310||c.t===135320||c.t===135330||c.t===135340||c.t===135350||c.t===135360||c.t===135370||c.t===135380||c.t===135400||c.t===135401||c.t===135402||c.t===135403||c.t===180||c.t===161||c.t===162||c.t===163||c.t===164||c.t===165||c.t===194||c.t===195||c.t===196||c.t===197)&&typeof c.r=="object"&&c.r!==null&&a(c.r)&&Array.isArray(c.pr)&&c.pr.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number")&&Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&Array.isArray(n[1])&&n[1].length===4&&typeof n[1][0]=="number"&&typeof n[1][1]=="number"&&typeof n[1][2]=="number"&&typeof n[1][3]=="number")&&(c.c===void 0||typeof c.c=="number")&&(c.up===void 0||typeof c.up=="number")&&(c.f===void 0||typeof c.f=="number")&&(c.h===void 0||typeof c.h=="number")&&(c.ec===void 0||typeof c.ec=="number")&&(c.eu===void 0||typeof c.eu=="number")&&(c.eo===void 0||Array.isArray(c.eo)&&c.eo.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number"))&&(c.m===void 0||typeof c.m=="number")&&(c.s===void 0||typeof c.s=="number")&&(c.a===void 0||typeof c.a=="boolean")&&(c.k===void 0||typeof c.k=="number")&&(c.cp===void 0||typeof c.cp=="boolean")&&(c.g===void 0||c.g===0||c.g===1||c.g===2||c.g===3||c.g===4||c.g===5)&&(c.p===void 0||Array.isArray(c.p)&&c.p.every(n=>n===null||typeof n=="object"&&n!==null&&u(n)))&&(c.g2===void 0||c.g2===0||c.g2===1||c.g2===2||c.g2===3||c.g2===4||c.g2===5)&&(c.p2===void 0||Array.isArray(c.p2)&&c.p2.every(n=>n===null||typeof n=="object"&&n!==null&&u(n)))&&(c.w===void 0||typeof c.w=="object"&&c.w!==null&&Array.isArray(c.w)===!1&&f(c.w)),i=c=>typeof c.name=="string"&&typeof c.icon=="object"&&c.icon!==null&&typeof c.icon.id=="number",a=c=>typeof c.level=="number"&&typeof c.str=="number"&&typeof c.luk=="number"&&typeof c.dex=="number"&&typeof c.int=="number"&&typeof c.job=="number"&&typeof c.specJob=="number",u=c=>typeof c.c=="number"&&typeof c.t=="number"&&typeof c.l=="number"&&typeof c.s=="string"&&Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number"),f=c=>(c.e===void 0||typeof c.e=="boolean")&&(c.s===void 0||typeof c.s=="object"&&c.s!==null&&h(c.s))&&(c.c===void 0||typeof c.c=="number")&&(c.o===void 0||Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number")),h=c=>typeof c.n=="string"&&typeof c.s=="string"&&Array.isArray(c.o)&&c.o.every(n=>Array.isArray(n)&&n.length===2&&(n[0]===1||n[0]===2||n[0]===3||n[0]===4||n[0]===5||n[0]===6||n[0]===7||n[0]===8||n[0]===9||n[0]===10||n[0]===11||n[0]===12||n[0]===13||n[0]===14||n[0]===15||n[0]===16||n[0]===17||n[0]===18||n[0]===19||n[0]===20||n[0]===21||n[0]===22||n[0]===23||n[0]===24||n[0]===25||n[0]===26||n[0]===27||n[0]===28||n[0]===29||n[0]===30||n[0]===31||n[0]===100||n[0]===101||n[0]===102||n[0]===103||n[0]===104||n[0]===105||n[0]===106||n[0]===107||n[0]===108||n[0]===109||n[0]===110||n[0]===111||n[0]===112||n[0]===113||n[0]===114||n[0]===115||n[0]===116||n[0]===117||n[0]===118||n[0]===119||n[0]===120||n[0]===121||n[0]===122||n[0]===123||n[0]===124||n[0]===125||n[0]===126||n[0]===127||n[0]===128||n[0]===129||n[0]===130||n[0]===131||n[0]===132||n[0]===133||n[0]===134||n[0]===135||n[0]===200||n[0]===201||n[0]===202||n[0]===203||n[0]===1100||n[0]===1101||n[0]===1102||n[0]===1103||n[0]===1104||n[0]===1105||n[0]===1106||n[0]===1107||n[0]===1108||n[0]===1109||n[0]===1110||n[0]===1111||n[0]===1112||n[0]===1113||n[0]===1114||n[0]===1115||n[0]===1116||n[0]===1117||n[0]===1118||n[0]===1119||n[0]===1120||n[0]===1121||n[0]===1122||n[0]===1123||n[0]===1124||n[0]===1125||n[0]===1126)&&typeof n[1]=="number")&&typeof c.m=="number";return typeof t=="object"&&t!==null&&o(t)};function T0(t){return JSON.stringify(n0(t))}function e0(t){return q(JSON.parse(t))}function G0(t){try{const o=JSON.parse(t);if(o0(o))return q(o)}catch{}return null}function C(t,o,i){let a=[...t];return o&&(a=a.filter(u=>o(u[1]))),i?a.map(u=>[u[0],i(u[1])]):a}function _(t,o,i){let a=t;return o&&(a=a.filter(o)),i?a.map(i):a===t?[...t]:a}function w(t,o){return o?new Map(t.map(i=>[i[0],o(i[1])])):new Map(t)}function $(t,o){return o?[...t].map(o):[...t]}function q(t){const o=new D;return o.itemID=t.id,o.name=t.n,t.d&&(o.desc=t.d),o.icon=t.i,t.an&&(o.anvil=t.an),o.type=t.t,o.req=t.r,o.props=w(t.pr),o.options=w(t.o,t1),t.c&&(o.totalUpgradeCount=t.c),t.up&&(o.upgradeCount=t.up),t.f&&(o.upgradeFailCount=t.f),t.h&&(o.hammerCount=t.h),t.ec&&(o.exceptionalTotalUpgradeCount=t.ec),t.eu&&(o.exceptionalUpgradeCount=t.eu),t.eo&&(o.exceptionalOptions=w(t.eo)),t.m&&(o.maxStar=t.m),t.s&&(o.star=t.s),t.a&&(o.amazing=t.a),t.k&&(o.karma=t.k),t.cp&&(o.canPotential=t.cp),t.g&&(o.grade=t.g),t.p&&(o.potentials=$(t.p,B)),t.g2&&(o.additionalGrade=t.g2),t.p2&&(o.additionalPotentials=$(t.p2,B)),n1(t.w,o),o}function t1(t){const o=new N;return o.base=t[0],o.bonus=t[1],o.upgrade=t[2],o.enchant=t[3],o}function B(t){if(!t)return null;const o=new R;return o.code=t.c,o.optionType=t.t,o.reqLevel=t.l,o.summary=t.s,o.option=w(t.o),o}function n1(t,o){if(t){const i=o.soulWeapon;t?.e&&(i.enchanted=t.e),t?.s&&(i.soul=o1(t.s)),t?.c&&(i.charge=t.c),t?.o&&(i.chargeOption=w(t.o))}}function o1(t){if(t)return{name:t.n,skill:t.s,option:w(t.o),multiplier:t.m}}exports.BonusStatType=d;exports.Gear=D;exports.GearOption=N;exports.GearPropType=s;exports.GearRepository=j0;exports.GearType=r;exports.MagnificentSoulOptionType=G;exports.Potential=R;exports.PotentialGrade=S;exports.PotentialRepository=F0;exports.SoulRepository=V0;exports.SoulWeapon=J;exports.addAmazingEnhancement=D0;exports.addBonusStat=s0;exports.addStarforce=l;exports.addUpgradeFailCount=O0;exports.applyExceptionalEnchant=g0;exports.applyGoldHammer=I0;exports.applyScroll=m;exports.applySpellTrace=q0;exports.createGearFromNode=T;exports.createPotentialFromNode=e;exports.createSoulFromNode=t0;exports.gearToPlain=n0;exports.getBonusStatOption=Z;exports.getBonusStatValue=Y;exports.getSpellTraceScroll=p;exports.isGearLike=o0;exports.migrate=z0;exports.parseGear=e0;exports.plainToGear=q;exports.recalculateStarforce=A0;exports.resetBonusStat=Q;exports.resetEnhancement=H;exports.resetExceptionalEnchant=P;exports.resetUpgrade=y;exports.restoreUpgradeCount=K0;exports.stringifyGear=T0;exports.validateParseGear=G0;
package/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { Gear, type GearIcon, GearOption, GearPropType, type GearReq, GearType, Potential, PotentialGrade, type Soul, SoulWeapon, addBonusStat, getBonusStatOption, getBonusStatValue, resetBonusStat, type BonusStatGrade, BonusStatType, addStarforce, addAmazingEnhancement, resetEnhancement, recalculateStarforce, applyExceptionalEnchant, resetExceptionalEnchant, type ExceptionalParts, type Scroll, type SpellTraceProbability, type SpellTraceStatType, getSpellTraceScroll, applyGoldHammer, applyScroll, applySpellTrace, addUpgradeFailCount, restoreUpgradeCount, resetUpgrade, type IGearRepository, GearRepository, createGearFromNode, type IPotentialRepository, PotentialRepository, createPotentialFromNode, type ISoulRepository, SoulRepository, createSoulFromNode, type GearDataMap, type GearData, type ItemOptionMap, type ItemOption, type SoulDataMap, type SoulData, type SoulOption, type MagnificentSoulOption, type MagnificentSoulOptionType, migrate, plainToGear, gearToPlain, stringifyGear, parseGear, validateParseGear, isGearLike, type GearLike, type OptionLike as GearOptionLike, type PotLike as GearPotLike, type SoulWeaponLike, } from "./internal";
1
+ export { Gear, type GearIcon, GearOption, GearPropType, type GearReq, GearType, Potential, PotentialGrade, type Soul, SoulWeapon, addBonusStat, getBonusStatOption, getBonusStatValue, resetBonusStat, type BonusStatGrade, BonusStatType, addStarforce, addAmazingEnhancement, resetEnhancement, recalculateStarforce, applyExceptionalEnchant, resetExceptionalEnchant, type ExceptionalParts, type Scroll, type SpellTraceProbability, type SpellTraceStatType, getSpellTraceScroll, applyGoldHammer, applyScroll, applySpellTrace, addUpgradeFailCount, restoreUpgradeCount, resetUpgrade, type IGearRepository, GearRepository, createGearFromNode, type IPotentialRepository, PotentialRepository, createPotentialFromNode, type ISoulRepository, SoulRepository, createSoulFromNode, MagnificentSoulOptionType, type GearDataMap, type GearData, type ItemOptionMap, type ItemOption, type SoulDataMap, type SoulData, type SoulOption, type MagnificentSoulOption, migrate, plainToGear, gearToPlain, stringifyGear, parseGear, validateParseGear, isGearLike, type GearLike, type OptionLike as GearOptionLike, type PotLike as GearPotLike, type SoulWeaponLike, } from "./internal";