@malib/gear 0.8.0 → 0.9.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 CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class g{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 n=(t=>(t[t.incSTR=1]="incSTR",t[t.incSTRr=2]="incSTRr",t[t.incDEX=3]="incDEX",t[t.incDEXr=4]="incDEXr",t[t.incINT=5]="incINT",t[t.incINTr=6]="incINTr",t[t.incLUK=7]="incLUK",t[t.incLUKr=8]="incLUKr",t[t.incAllStat=9]="incAllStat",t[t.incMHP=10]="incMHP",t[t.incMMP=11]="incMMP",t[t.incMHPr=12]="incMHPr",t[t.incMMPr=13]="incMMPr",t[t.incMDF=14]="incMDF",t[t.incARC=15]="incARC",t[t.incAUT=16]="incAUT",t[t.incPAD=17]="incPAD",t[t.incMAD=18]="incMAD",t[t.incAD=19]="incAD",t[t.incPDD=20]="incPDD",t[t.incSpeed=21]="incSpeed",t[t.incJump=22]="incJump",t[t.knockback=23]="knockback",t[t.bdR=24]="bdR",t[t.incBDR=25]="incBDR",t[t.imdR=26]="imdR",t[t.incIMDR=27]="incIMDR",t[t.damR=28]="damR",t[t.nbdR=29]="nbdR",t[t.statR=30]="statR",t[t.incCHUC=31]="incCHUC",t[t.incPADr=100]="incPADr",t[t.incMADr=101]="incMADr",t[t.incPDDr=102]="incPDDr",t[t.incCr=103]="incCr",t[t.incDAMr=104]="incDAMr",t[t.RecoveryHP=105]="RecoveryHP",t[t.RecoveryMP=106]="RecoveryMP",t[t.face=107]="face",t[t.prop=108]="prop",t[t.time=109]="time",t[t.HP=110]="HP",t[t.MP=111]="MP",t[t.attackType=112]="attackType",t[t.ignoreTargetDEF=113]="ignoreTargetDEF",t[t.ignoreDAM=114]="ignoreDAM",t[t.ignoreDAMr=115]="ignoreDAMr",t[t.DAMreflect=116]="DAMreflect",t[t.mpconReduce=117]="mpconReduce",t[t.incMesoProp=118]="incMesoProp",t[t.incRewardProp=119]="incRewardProp",t[t.incAllskill=120]="incAllskill",t[t.RecoveryUP=121]="RecoveryUP",t[t.boss=122]="boss",t[t.level=123]="level",t[t.incTerR=124]="incTerR",t[t.incAsrR=125]="incAsrR",t[t.incEXPr=126]="incEXPr",t[t.reduceCooltime=127]="reduceCooltime",t[t.incSTRlv=128]="incSTRlv",t[t.incDEXlv=129]="incDEXlv",t[t.incINTlv=130]="incINTlv",t[t.incLUKlv=131]="incLUKlv",t[t.incMHPlv=132]="incMHPlv",t[t.incPADlv=133]="incPADlv",t[t.incMADlv=134]="incMADlv",t[t.incCriticaldamage=135]="incCriticaldamage",t[t.attackSpeed=200]="attackSpeed",t[t.setItemID=201]="setItemID",t[t.durability=202]="durability",t[t.reduceReq=203]="reduceReq",t[t.only=1100]="only",t[t.tradeBlock=1101]="tradeBlock",t[t.accountSharable=1102]="accountSharable",t[t.onlyEquip=1103]="onlyEquip",t[t.tradeAvailable=1104]="tradeAvailable",t[t.equipTradeBlock=1105]="equipTradeBlock",t[t.sharableOnce=1106]="sharableOnce",t[t.charismaEXP=1107]="charismaEXP",t[t.senseEXP=1108]="senseEXP",t[t.insightEXP=1109]="insightEXP",t[t.willEXP=1110]="willEXP",t[t.craftEXP=1111]="craftEXP",t[t.charmEXP=1112]="charmEXP",t[t.accountShareTag=1113]="accountShareTag",t[t.bossReward=1114]="bossReward",t[t.noPotential=1115]="noPotential",t[t.fixedPotential=1116]="fixedPotential",t[t.specialGrade=1117]="specialGrade",t[t.fixedGrade=1118]="fixedGrade",t[t.superiorEqp=1119]="superiorEqp",t[t.incPQEXPr=1120]="incPQEXPr",t[t.jokerToSetItem=1121]="jokerToSetItem",t[t.blockGoldHammer=1122]="blockGoldHammer",t[t.exceptUpgrade=1123]="exceptUpgrade",t[t.onlyUpgrade=1124]="onlyUpgrade",t[t.noLookChange=1125]="noLookChange",t[t.tucIgnoreForPotential=1126]="tucIgnoreForPotential",t))(n||{}),s=(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))(s||{}),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 L{constructor(c){this.enchanted=!1,this.charge=0,this.chargeOption=new Map,this.gear=c}enchant(){return this.enchanted||!D.isWeapon(this.gear.type)?!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}setSoul(c){return this.enchanted?(this.soul=c,this.setCharge(this.charge),!0):!1}removeSoul(){return!this.enchanted||!this.soul?!1:(this.soul=void 0,this.setCharge(this.charge),!0)}setCharge(c){if(!this.enchanted||c<0||c>1e3)return!1;this.charge=c;const o=this.gear.option(n.incPAD).base<this.gear.option(n.incMAD).base?n.incMAD:n.incPAD;return this.chargeOption.clear(),this.chargeOption.set(o,this.getChargeAD()),!0}getChargeAD(){if(!this.enchanted||this.charge===0)return 0;const c=Math.min(Math.ceil(this.charge/100)-1,5);if(this.soul){const i=this.soul.multiplier;return 10+c*i}return 5+c}}const k=class{constructor(){this.itemID=0,this.name="",this.desc="",this.type=0,this.props=new Map,this.options=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=v.normal,this.potentials=[],this.additionalGrade=v.normal,this.additionalPotentials=[],this.soulWeapon=new L(this),this.icon={id:0,origin:[0,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 diff(){let t=0;for(const[c,i]of this.options)t+=Math.floor(i.diff/k.getPropTypeWeight(c));return t}get isNewBonusType(){return!!([...this.options.values()].some(c=>c.bonus>0)&&this.getPropValue(n.tradeAvailable)!==1)}option(t){return this.options.has(t)||this.options.set(t,new g),this.options.get(t)}getPropValue(t){return this.props.get(t)??0}getBooleanValue(t){return(this.props.get(t)??0)>0}setAnvil(t,c){this.anvilIcon=t,this.anvilName=c}resetAnvil(){this.anvilIcon=void 0,this.anvilName=void 0}static isWeapon(t){return this.isLeftWeapon(t)||this.isDoubleHandWeapon(t)}static isLeftWeapon(t){return t>=121&&t<=139&&t!==s.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 s.katara:case s.shield:case s.demonShield:case s.soulShield:return!0;default:return Math.floor(t/1e3)===135}}static isShield(t){switch(t){case s.shield:case s.demonShield:case s.soulShield:return!0;default:return!1}}static isArmor(t){return t===100||t>=104&&t<=110||t===s.soulShield||t===s.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 s.soulShield;case 1099:return s.demonShield;case 1212:return s.shiningRod;case 1213:return s.tuner;case 1214:return s.breathShooter;case 1404:return s.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(n.onlyUpgrade)||k.isMechanicGear(t.type)||k.isDragonGear(t.type))return 0;let c;const i=t.req.level;for(const o of k.starData)if(i>=o[0])c=o;else break;return c===void 0?0:t.getBooleanValue(n.superiorEqp)?c[2]:c[1]}static getPropTypeWeight(t){if(t<100)switch(t){case n.incSTR:case n.incDEX:case n.incINT:case n.incLUK:case n.incPAD:case n.incMAD:case n.incSpeed:case n.incJump:return 1;case n.incMHP:case n.incMMP:return 100;case n.incPDD:return 10;case n.incAD:return 2}return Number.MAX_VALUE}};let D=k;D.starData=[[0,5,3],[95,8,5],[110,10,8],[120,15,10],[130,20,12],[140,25,15]];class U{constructor(){this.code=0,this.optionType=0,this.reqLevel=0,this.summary="",this.option=new Map}get convertSummary(){const c=[...this.option.keys()];c.sort((o,h)=>n[h].length-n[o].length);let i=this.summary;for(const o of c)i=i.replace(`#${n[o]}`,(this.option.get(o)??0).toString());return i}static getPotentialLevel(c){return c<=0?1:c>=250?25:Math.floor((c+9)/10)}static checkOptionType(c,i){switch(c){case 0:return!0;case 10:return D.isWeapon(i)||D.isSubWeapon(i)||i===s.emblem;case 11:return!U.checkOptionType(10,i);case 20: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;case 40:return i===s.faceAccessory||i===s.eyeAccessory||i===s.earrings||i===s.ring||i===s.pendant;case 51:return i===s.cap;case 52:return i===s.coat||i===s.longcoat;case 53:return i===s.pants;case 54:return i===s.glove;case 55:return i===s.shoes;default:return!1}}}var u=(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))(u||{});function F(t,c,i){const o=H(t,c,i);if(o.size===0)return!1;for(const[h,a]of o)t.option(h).bonus+=a;return!0}function $(t){for(const[,c]of t.options)c.bonus=0;return!0}function H(t,c,i){const o=O(c),h=N(t,c,i);return h===0?new Map:new Map(o.map(a=>[a,h]))}function N(t,c,i){const o=t.req.level,h=t.getBooleanValue(n.bossReward),a=t.type;if(o<0||h&&i<3)return 0;switch(c){case u.STR:case u.DEX:case u.INT:case u.LUK:return(Math.floor(o/20)+1)*i;case u.STR_DEX:case u.STR_INT:case u.STR_LUK:case u.DEX_INT:case u.DEX_LUK:case u.INT_LUK:return(Math.floor(o/40)+1)*i;case u.PDD:return(Math.floor(o/20)+1)*i;case u.PAD:case u.MAD:if(D.isWeapon(a)){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];let l=t.option(n.incPAD).base;if(a===s.heavySword||a===s.longSword){if(a===s.longSword)switch(l){case 100:l=102;break;case 103:l=105;break;case 105:l=107;break;case 112:l=114;break;case 117:l=121;break;case 135:l=139;break;case 169:l=173;break;case 203:l=207;break;case 293:l=297;break;case 337:l=342;break}const e=o>180?6:o>160?5:o>110?4:3;return Math.ceil(l*r[i-1]*e/100)}else{const e=t.option(n.incMAD).base;if(c===u.MAD&&e>=l&&(l=e),h){const d=o>160?18:o>150?15:o>110?12:9;return Math.ceil(l*r[i-1]*d/100)}else{const d=o>110?4:3;return Math.ceil(l*r[i-1]*d/100)}}}else if(o<60)return 0;return i;case u.MHP:case u.MMP:return o<10?3*i:Math.floor(o/10)*30*i;case u.speed:case u.jump:return D.isWeapon(a)?0:i;case u.damR:return D.isWeapon(a)?i:0;case u.bdR:return o<90||!D.isWeapon(a)?0:2*i;case u.allStatR:return o<70&&!D.isWeapon(a)?0:i;case u.reduceReq:return 5*i;default:return 0}}function O(t){switch(t){case u.STR:return[n.incSTR];case u.DEX:return[n.incDEX];case u.INT:return[n.incINT];case u.LUK:return[n.incLUK];case u.STR_DEX:return[n.incSTR,n.incDEX];case u.STR_INT:return[n.incSTR,n.incINT];case u.STR_LUK:return[n.incSTR,n.incLUK];case u.DEX_INT:return[n.incDEX,n.incINT];case u.DEX_LUK:return[n.incDEX,n.incLUK];case u.INT_LUK:return[n.incINT,n.incLUK];case u.PDD:return[n.incPDD];case u.PAD:return[n.incPAD];case u.MAD:return[n.incMAD];case u.MHP:return[n.incMHP];case u.MMP:return[n.incMMP];case u.speed:return[n.incSpeed];case u.jump:return[n.incJump];case u.damR:return[n.damR];case u.bdR:return[n.bdR];case u.allStatR:return[n.statR];case u.reduceReq:return[n.reduceReq];default:return[]}}const j=25,C=15;function I(t,c=!1){if(t.getBooleanValue(n.incCHUC))return!1;if(t.getBooleanValue(n.superiorEqp))return B(t);if(t.star>=t.maxStar&&!c||t.star>=j)return!1;t.star+=1;const i=t.star,o=b(t,!1,!1),h=b(t,!1,!0),a=D.isWeapon(t.type)||t.type===s.katara,r=[[n.incSTR,n.incDEX],[n.incINT,n.incLUK],[n.incDEX,n.incSTR],[n.incLUK,n.incDEX],[n.incSTR,n.incDEX]],l=[n.incSTR,n.incDEX,n.incINT,n.incLUK];let e;const d=t.req.job;if(d===0)e=new Set([n.incSTR,n.incDEX,n.incINT,n.incLUK]);else{e=new Set;for(let f=0;f<5;f++)if(d&1<<f)for(const m of r[f])e.add(m)}for(const f of l)(e.has(f)||i>15&&(t.option(f).base>0||t.option(f).upgrade>0))&&(t.option(f).enchant+=o[i]);if(a){const f=d===0||Math.floor(d/2)%2===1||t.option(n.incMAD).upgrade>0;if(i>15)t.option(n.incPAD).enchant+=h[i],f&&(t.option(n.incMAD).enchant+=h[i]);else{const m=t.option(n.incPAD).sum-t.option(n.incPAD).bonus;if(t.option(n.incPAD).enchant+=Math.floor(m/50)+1,f){const A=t.option(n.incMAD).sum-t.option(n.incMAD).bonus;t.option(n.incMAD).enchant+=Math.floor(A/50)+1}}}else t.option(n.incPAD).enchant+=h[i],t.option(n.incMAD).enchant+=h[i],t.type===s.glove&&(d===0?(t.option(n.incPAD).enchant+=w[i],t.option(n.incMAD).enchant+=w[i]):Math.floor(d/2)%2===1?t.option(n.incMAD).enchant+=w[i]:t.option(n.incPAD).enchant+=w[i]);if(!a&&t.type!==s.machineHeart){const f=t.option(n.incPDD).sum-t.option(n.incPDD).bonus;t.option(n.incPDD).enchant+=Math.floor(f/20)+1}const M=[s.cap,s.coat,s.longcoat,s.pants,s.cape,s.ring,s.pendant,s.belt,s.shoulder,s.shield];return a?(t.option(n.incMHP).enchant+=E[i],t.option(n.incMMP).enchant+=E[i]):M.includes(t.type)&&(t.option(n.incMHP).enchant+=E[i]),t.type===s.shoes&&(t.option(n.incSpeed).enchant+=X[i],t.option(n.incJump).enchant+=X[i]),!0}function B(t){if(t.star>=t.maxStar)return!1;t.star+=1;const c=t.star,i=b(t,!1,!1),o=b(t,!1,!0),h=[n.incSTR,n.incDEX,n.incINT,n.incLUK];for(const l of h)t.option(l).base>0&&(t.option(l).enchant+=i[c]);const a=[n.incPAD,n.incMAD];for(const l of a)t.option(l).base>0&&(t.option(l).enchant+=o[c]);const r=t.option(n.incPDD).sum-t.option(n.incPDD).bonus;return t.option(n.incPDD).enchant+=Math.floor(r/20)+1,!0}function z(t,c=!1,i=!1){if(t.getBooleanValue(n.incCHUC)||t.getBooleanValue(n.superiorEqp)||t.req.level>150||t.star>=t.maxStar&&!i||t.star>=C)return!1;t.amazing||(t.amazing=!0,t.maxStar=Math.min(t.maxStar,C)),t.star+=1;const o=t.star,h=b(t,!0,!1),a=b(t,!0,!0),r=D.isWeapon(t.type)||t.type===s.katara,l=[n.incSTR,n.incDEX,n.incINT,n.incLUK];for(const M of l)if(t.option(M).sum>0){let m=h[o];c&&D.isAccessory(t.type)&&(m+=o>5?2:1),t.option(M).enchant+=m}const e=[n.incPAD,n.incMAD];for(const M of e){const f=t.option(M).sum;if(f>0){r&&(t.option(M).enchant+=Math.floor(f/50)+1);let m=a[o];c&&(r||t.type===s.shield)&&(m+=1),t.option(M).enchant+=m}}c&&D.isArmor(t.type)&&(t.option(n.incMHP).enchant+=50);const d=t.option(n.incPDD).sum;return t.option(n.incPDD).enchant+=Math.floor(d/20)+1,!0}function K(t){if(t.getBooleanValue(n.incCHUC))return!1;t.star=0,t.amazing=!1,t.maxStar=D.getMaxStar(t);for(const[,c]of t.options)c.enchant=0;return!0}function J(t){if(t.getBooleanValue(n.incCHUC)||t.amazing)return!1;const c=t.star;K(t);for(let i=0;i<c;i++)I(t,!0);return!0}function b(t,c,i){let o;t.getBooleanValue(n.superiorEqp)?i?o=Q:o=Z:c?i?o=p:o=G:i?D.isWeapon(t.type)||t.type===s.katara?o=Y:o=P:o=T;const h=t.req.level;for(const a of[...o].reverse())if(h>=a[0])return a;throw Error(`Gear has invalid reqLevel.
2
- `+t)}const Q=[[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]],Z=[[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]],Y=[[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]],P=[[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]],T=[[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]],p=[[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]],G=[[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]],w=[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],E=[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],X=[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 q(t,c,i){const o=c===n.incINT?n.incMAD:n.incPAD,h=t.req.level>=115?2:t.req.level>=75?1:0;let a;const r=o===n.incMAD?"마력":"공격력";switch(c){case n.incSTR:a="힘";break;case n.incDEX:a="민첩";break;case n.incINT:a="지력";break;case n.incLUK:a="운";break;case n.incAllStat:a="올스탯";break;case n.incMHP:a="체력";break}if(D.isWeapon(t.type)||t.type===s.katara){if(c===n.incAllStat)return;let l;switch(i){case 100:l=[[1,0],[2,0],[3,1]];break;case 70:l=[[2,0],[3,1],[5,2]];break;case 30:l=[[3,1],[5,2],[7,3]];break;case 15:l=[[5,2],[7,3],[9,4]];break}const e=l[h][0],d=l[h][1]*(c===n.incMHP?50:1);return{name:d>0?`${i}% ${r}(${a}) 주문서`:`${i}% ${r} 주문서`,stat:new Map([[c,d],[o,e]])}}else if(i===15)return;if(t.type===s.glove){let l;switch(i){case 100:l=[0,1,1];break;case 70:l=[1,2,2];break;case 30:l=[2,3,3];break}const e=l[h];let d,M;return e===0?(d=`${i}% 방어력 주문서`,M=new Map([[n.incPDD,3]])):(d=`${i}% ${r} 주문서`,M=new Map([[o,e]])),{name:d,stat:M}}if(D.isArmor(t.type)||t.type===s.shoulder){if(c===n.incAllStat){if(i!==30)return;const A=[[1,30,4],[2,70,7],[3,120,10]],S=A[h][0],V=A[h][1],x=A[h][2],_=`${i}% ${a} 주문서`,R=new Map([[n.incSTR,S],[n.incDEX,S],[n.incINT,S],[n.incLUK,S],[n.incMHP,V],[n.incPDD,x]]);return t.upgradeCount===3&&(t.req.job===0?(R.set(n.incMAD,1),R.set(n.incPAD,1)):Math.floor(t.req.job/2)%2===1?R.set(n.incMAD,1):R.set(n.incPAD,1)),{name:_,stat:R}}let l;switch(i){case 100:l=[[1,5,1],[2,20,2],[3,30,3]];break;case 70:l=[[2,15,2],[3,40,4],[4,70,5]];break;case 30:l=[[3,30,4],[5,70,7],[7,120,10]];break}const e=c!==n.incMHP?l[h][0]:0,d=l[h][1]+(c===n.incMHP?l[h][0]*50:0),M=l[h][2],f=`${i}% ${a} 주문서`,m=new Map([[n.incMHP,d],[n.incPDD,M]]);return e>0&&m.set(c,e),t.upgradeCount===3&&(t.req.job===0?(m.set(n.incMAD,1),m.set(n.incPAD,1)):Math.floor(t.req.job/2)%2===1?m.set(n.incMAD,1):m.set(n.incPAD,1)),{name:f,stat:m}}if(D.isAccessory(t.type)){if(c===n.incAllStat){if(i!==30)return;const m=[[1,30,4],[2,70,7],[3,120,10]][h][0],A=`${i}% ${a} 주문서`,S=new Map([[n.incSTR,m],[n.incDEX,m],[n.incINT,m],[n.incLUK,m]]);return{name:A,stat:S}}let l;switch(i){case 100:l=[1,1,2];break;case 70:l=[2,2,3];break;case 30:l=[3,4,5];break}const e=l[h]*(c===n.incMHP?50:1);return{name:`${i}% ${a} 주문서`,stat:new Map([[c,e]])}}if(t.type===s.machineHeart){let l;switch(i){case 100:l=[1,2,3];break;case 70:l=[2,3,5];break;case 30:l=[3,5,7];break}const e=l[h];return{name:`${i}% ${a} 주문서`,stat:new Map([[o,e]])}}}function y(t){return t.getBooleanValue(n.blockGoldHammer)||t.getBooleanValue(n.onlyUpgrade)||t.totalUpgradeCount<=0||t.hammerCount>0?!1:(t.hammerCount=1,!0)}function W(t,c){if(t.upgradeCountLeft<1)return!1;t.upgradeCount+=1;for(const[i,o]of c.stat)t.option(i).upgrade+=o;return!0}function tt(t,c,i){const o=q(t,c,i);return o?W(t,o):!1}function nt(t){return t.upgradeCountLeft<1?!1:(t.upgradeFailCount+=1,!0)}function it(t){return t.upgradeFailCount<1?!1:(t.upgradeFailCount-=1,!0)}function ct(t){t.upgradeCount=0,t.upgradeFailCount=0,t.hammerCount=0;for(const[,c]of t.options)c.upgrade=0;return!0}exports.BonusStatType=u;exports.Gear=D;exports.GearOption=g;exports.GearPropType=n;exports.GearType=s;exports.Potential=U;exports.PotentialGrade=v;exports.SoulWeapon=L;exports.addAmazingEnhancement=z;exports.addBonusStat=F;exports.addStarforce=I;exports.addUpgradeFailCount=nt;exports.applyGoldHammer=y;exports.applyScroll=W;exports.applySpellTrace=tt;exports.getBonusStatOption=H;exports.getBonusStatValue=N;exports.getSpellTraceScroll=q;exports.recalculateStarforce=J;exports.resetBonusStat=$;exports.resetEnhancement=K;exports.resetUpgrade=ct;exports.restoreUpgradeCount=it;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class k{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 o=(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))(o||{}),a=(t=>(t[t.cap=100]="cap",t[t.faceAccessory=101]="faceAccessory",t[t.eyeAccessory=102]="eyeAccessory",t[t.earrings=103]="earrings",t[t.coat=104]="coat",t[t.longcoat=105]="longcoat",t[t.pants=106]="pants",t[t.shoes=107]="shoes",t[t.glove=108]="glove",t[t.cape=110]="cape",t[t.ring=111]="ring",t[t.pendant=112]="pendant",t[t.belt=113]="belt",t[t.medal=114]="medal",t[t.shoulder=115]="shoulder",t[t.pocket=116]="pocket",t[t.badge=118]="badge",t[t.android=166]="android",t[t.machineHeart=167]="machineHeart",t[t.shield=109]="shield",t[t.emblem=119]="emblem",t[t.powerSource=119020]="powerSource",t[t.shiningRod=1212]="shiningRod",t[t.tuner=1213]="tuner",t[t.breathShooter=1214]="breathShooter",t[t.soulShooter=122]="soulShooter",t[t.desperado=123]="desperado",t[t.energySword=124]="energySword",t[t.espLimiter=126]="espLimiter",t[t.chain=127]="chain",t[t.magicGauntlet=128]="magicGauntlet",t[t.ritualFan=129]="ritualFan",t[t.ohSword=130]="ohSword",t[t.ohAxe=131]="ohAxe",t[t.ohBlunt=132]="ohBlunt",t[t.dagger=133]="dagger",t[t.katara=134]="katara",t[t.cane=136]="cane",t[t.wand=137]="wand",t[t.staff=138]="staff",t[t.thSword=140]="thSword",t[t.chakram=1404]="chakram",t[t.thAxe=141]="thAxe",t[t.thBlunt=142]="thBlunt",t[t.spear=143]="spear",t[t.polearm=144]="polearm",t[t.bow=145]="bow",t[t.crossbow=146]="crossbow",t[t.claw=147]="claw",t[t.knuckle=148]="knuckle",t[t.gun=149]="gun",t[t.shovel=150]="shovel",t[t.pickaxe=151]="pickaxe",t[t.dualBowguns=152]="dualBowguns",t[t.handCannon=153]="handCannon",t[t.heavySword=156]="heavySword",t[t.longSword=157]="longSword",t[t.gauntletRevolver=158]="gauntletRevolver",t[t.ancientBow=159]="ancientBow",t[t.soulShield=1098]="soulShield",t[t.demonShield=1099]="demonShield",t[t.magicArrow=135200]="magicArrow",t[t.card=135210]="card",t[t.medallion=135220]="medallion",t[t.rosary=135221]="rosary",t[t.ironChain=135222]="ironChain",t[t.magicBook1=135223]="magicBook1",t[t.magicBook2=135224]="magicBook2",t[t.magicBook3=135225]="magicBook3",t[t.arrowFletching=135226]="arrowFletching",t[t.bowThimble=135227]="bowThimble",t[t.daggerScabbard=135228]="daggerScabbard",t[t.charm=135229]="charm",t[t.orb=135240]="orb",t[t.dragonEssence=135250]="dragonEssence",t[t.soulRing=135260]="soulRing",t[t.magnum=135270]="magnum",t[t.wristBand=135290]="wristBand",t[t.farSight=135291]="farSight",t[t.powderKeg=135292]="powderKeg",t[t.mass=135293]="mass",t[t.document=135294]="document",t[t.magicMarble=135295]="magicMarble",t[t.arrowhead=135296]="arrowhead",t[t.jewel=135297]="jewel",t[t.powderKeg2=135298]="powderKeg2",t[t.controller=135300]="controller",t[t.foxMarble=135310]="foxMarble",t[t.chessPiece=135320]="chessPiece",t[t.transmitter=135330]="transmitter",t[t.charge=135340]="charge",t[t.magicWing=135350]="magicWing",t[t.pathOfAbyss=135360]="pathOfAbyss",t[t.relic=135370]="relic",t[t.fanTassel=135380]="fanTassel",t[t.bracelet=135400]="bracelet",t[t.weaponBelt=135401]="weaponBelt",t[t.ornament=135402]="ornament",t[t.hexSeeker=135403]="hexSeeker",t[t.petEquip=180]="petEquip",t[t.machineEngine=161]="machineEngine",t[t.machineArms=162]="machineArms",t[t.machineLegs=163]="machineLegs",t[t.machineBody=164]="machineBody",t[t.machineTransistors=165]="machineTransistors",t[t.dragonMask=194]="dragonMask",t[t.dragonPendant=195]="dragonPendant",t[t.dragonWings=196]="dragonWings",t[t.dragonTail=197]="dragonTail",t))(a||{}),U=(t=>(t[t.normal=0]="normal",t[t.rare=1]="rare",t[t.epic=2]="epic",t[t.unique=3]="unique",t[t.legendary=4]="legendary",t[t.special=5]="special",t))(U||{});class q{constructor(s){this.enchanted=!1,this.charge=0,this.chargeOption=new Map,this.gear=s}enchant(){return this.enchanted||!b.isWeapon(this.gear.type)?!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}setSoul(s){return this.enchanted?(this.soul=s,this.setCharge(this.charge),!0):!1}removeSoul(){return!this.enchanted||!this.soul?!1:(this.soul=void 0,this.setCharge(this.charge),!0)}setCharge(s){if(!this.enchanted||s<0||s>1e3)return!1;this.charge=s;const d=this.gear.option(o.incPAD).base<this.gear.option(o.incMAD).base?o.incMAD:o.incPAD;return this.chargeOption.clear(),this.chargeOption.set(d,this.getChargeAD()),!0}getChargeAD(){if(!this.enchanted||this.charge===0)return 0;const s=Math.min(Math.ceil(this.charge/100)-1,5);if(this.soul){const i=this.soul.multiplier;return 10+s*i}return 5+s}}const E=class{constructor(){this.itemID=0,this.name="",this.desc="",this.type=0,this.props=new Map,this.options=new Map,this.totalUpgradeCount=0,this.upgradeCount=0,this.upgradeFailCount=0,this.hammerCount=0,this.maxStar=0,this.star=0,this.amazing=!1,this.canPotential=!1,this.grade=U.normal,this.potentials=[],this.additionalGrade=U.normal,this.additionalPotentials=[],this.soulWeapon=new q(this),this.icon={id:0,origin:[0,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 diff(){let t=0;for(const[s,i]of this.options)t+=Math.floor(i.diff/E.getPropTypeWeight(s));return t}get isNewBonusType(){return!!([...this.options.values()].some(s=>s.bonus>0)&&this.getPropValue(o.tradeAvailable)!==1)}option(t){return this.options.has(t)||this.options.set(t,new k),this.options.get(t)}getPropValue(t){return this.props.get(t)??0}getBooleanValue(t){return(this.props.get(t)??0)>0}setAnvil(t,s){this.anvilIcon=t,this.anvilName=s}resetAnvil(){this.anvilIcon=void 0,this.anvilName=void 0}static isWeapon(t){return this.isLeftWeapon(t)||this.isDoubleHandWeapon(t)}static isLeftWeapon(t){return t>=121&&t<=139&&t!==a.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 a.katara:case a.shield:case a.demonShield:case a.soulShield:return!0;default:return Math.floor(t/1e3)===135}}static isShield(t){switch(t){case a.shield:case a.demonShield:case a.soulShield:return!0;default:return!1}}static isArmor(t){return t===100||t>=104&&t<=110||t===a.soulShield||t===a.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 a.soulShield;case 1099:return a.demonShield;case 1212:return a.shiningRod;case 1213:return a.tuner;case 1214:return a.breathShooter;case 1404:return a.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(o.onlyUpgrade)||E.isMechanicGear(t.type)||E.isDragonGear(t.type))return 0;let s;const i=t.req.level;for(const d of E.starData)if(i>=d[0])s=d;else break;return s===void 0?0:t.getBooleanValue(o.superiorEqp)?s[2]:s[1]}static getPropTypeWeight(t){if(t<100)switch(t){case o.incSTR:case o.incDEX:case o.incINT:case o.incLUK:case o.incPAD:case o.incMAD:case o.incSpeed:case o.incJump:return 1;case o.incMHP:case o.incMMP:return 100;case o.incPDD:return 10;case o.incAD:return 2}return Number.MAX_VALUE}};let b=E;b.starData=[[0,5,3],[95,8,5],[110,10,8],[120,15,10],[130,20,12],[140,25,15]];class I{constructor(){this.code=0,this.optionType=0,this.reqLevel=0,this.summary="",this.option=new Map}get convertSummary(){const s=[...this.option.keys()];s.sort((d,u)=>o[u].length-o[d].length);let i=this.summary;for(const d of s)i=i.replace(`#${o[d]}`,(this.option.get(d)??0).toString());return i}static getPotentialLevel(s){return s<=0?1:s>=250?25:Math.floor((s+9)/10)}static checkOptionType(s,i){switch(s){case 0:return!0;case 10:return b.isWeapon(i)||b.isSubWeapon(i)||i===a.emblem;case 11:return!I.checkOptionType(10,i);case 20:return b.isSubWeapon(i)||i===a.cap||i===a.coat||i===a.longcoat||i===a.pants||i===a.shoes||i===a.glove||i===a.cape||i===a.belt||i===a.shoulder;case 40:return i===a.faceAccessory||i===a.eyeAccessory||i===a.earrings||i===a.ring||i===a.pendant;case 51:return i===a.cap;case 52:return i===a.coat||i===a.longcoat;case 53:return i===a.pants;case 54:return i===a.glove;case 55:return i===a.shoes;default:return!1}}}var f=(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))(f||{});function y(t,s,i){const d=z(t,s,i);if(d.size===0)return!1;for(const[u,h]of d)t.option(u).bonus+=h;return!0}function m(t){for(const[,s]of t.options)s.bonus=0;return!0}function z(t,s,i){const d=p(s),u=_(t,s,i);return u===0?new Map:new Map(d.map(h=>[h,u]))}function _(t,s,i){const d=t.req.level,u=t.getBooleanValue(o.bossReward),h=t.type;if(d<0||u&&i<3)return 0;switch(s){case f.STR:case f.DEX:case f.INT:case f.LUK:return(Math.floor(d/20)+1)*i;case f.STR_DEX:case f.STR_INT:case f.STR_LUK:case f.DEX_INT:case f.DEX_LUK:case f.INT_LUK:return(Math.floor(d/40)+1)*i;case f.PDD:return(Math.floor(d/20)+1)*i;case f.PAD:case f.MAD:if(b.isWeapon(h)){const v=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 r=t.option(o.incPAD).base;if(h===a.heavySword||h===a.longSword){if(h===a.longSword)switch(r){case 100:r=102;break;case 103:r=105;break;case 105:r=107;break;case 112:r=114;break;case 117:r=121;break;case 135:r=139;break;case 169:r=173;break;case 203:r=207;break;case 293:r=297;break;case 337:r=342;break}const c=d>180?6:d>160?5:d>110?4:3;return Math.ceil(r*v[i-1]*c/100)}else{const c=t.option(o.incMAD).base;if(s===f.MAD&&c>=r&&(r=c),u){const n=d>160?18:d>150?15:d>110?12:9;return Math.ceil(r*v[i-1]*n/100)}else{const n=d>110?4:3;return Math.ceil(r*v[i-1]*n/100)}}}else if(d<60)return 0;return i;case f.MHP:case f.MMP:return d<10?3*i:Math.floor(d/10)*30*i;case f.speed:case f.jump:return b.isWeapon(h)?0:i;case f.damR:return b.isWeapon(h)?i:0;case f.bdR:return d<90||!b.isWeapon(h)?0:2*i;case f.allStatR:return d<70&&!b.isWeapon(h)?0:i;case f.reduceReq:return 5*i;default:return 0}}function p(t){switch(t){case f.STR:return[o.incSTR];case f.DEX:return[o.incDEX];case f.INT:return[o.incINT];case f.LUK:return[o.incLUK];case f.STR_DEX:return[o.incSTR,o.incDEX];case f.STR_INT:return[o.incSTR,o.incINT];case f.STR_LUK:return[o.incSTR,o.incLUK];case f.DEX_INT:return[o.incDEX,o.incINT];case f.DEX_LUK:return[o.incDEX,o.incLUK];case f.INT_LUK:return[o.incINT,o.incLUK];case f.PDD:return[o.incPDD];case f.PAD:return[o.incPAD];case f.MAD:return[o.incMAD];case f.MHP:return[o.incMHP];case f.MMP:return[o.incMMP];case f.speed:return[o.incSpeed];case f.jump:return[o.incJump];case f.damR:return[o.damR];case f.bdR:return[o.bdR];case f.allStatR:return[o.statR];case f.reduceReq:return[o.reduceReq];default:return[]}}const e=25,K=15;function j(t,s=!1){if(t.getBooleanValue(o.incCHUC))return!1;if(t.getBooleanValue(o.superiorEqp))return T(t);if(t.star>=t.maxStar&&!s||t.star>=e)return!1;t.star+=1;const i=t.star,d=w(t,!1,!1),u=w(t,!1,!0),h=b.isWeapon(t.type)||t.type===a.katara,v=[[o.incSTR,o.incDEX],[o.incINT,o.incLUK],[o.incDEX,o.incSTR],[o.incLUK,o.incDEX],[o.incSTR,o.incDEX]],r=[o.incSTR,o.incDEX,o.incINT,o.incLUK];let c;const n=t.req.job;if(n===0)c=new Set([o.incSTR,o.incDEX,o.incINT,o.incLUK]);else{c=new Set;for(let D=0;D<5;D++)if(n&1<<D)for(const M of v[D])c.add(M)}for(const D of r)(c.has(D)||i>15&&(t.option(D).base>0||t.option(D).upgrade>0))&&(t.option(D).enchant+=d[i]);if(h){const D=n===0||Math.floor(n/2)%2===1||t.option(o.incMAD).upgrade>0;if(i>15)t.option(o.incPAD).enchant+=u[i],D&&(t.option(o.incMAD).enchant+=u[i]);else{const M=t.option(o.incPAD).sum-t.option(o.incPAD).bonus;if(t.option(o.incPAD).enchant+=Math.floor(M/50)+1,D){const S=t.option(o.incMAD).sum-t.option(o.incMAD).bonus;t.option(o.incMAD).enchant+=Math.floor(S/50)+1}}}else t.option(o.incPAD).enchant+=u[i],t.option(o.incMAD).enchant+=u[i],t.type===a.glove&&(n===0?(t.option(o.incPAD).enchant+=C[i],t.option(o.incMAD).enchant+=C[i]):Math.floor(n/2)%2===1?t.option(o.incMAD).enchant+=C[i]:t.option(o.incPAD).enchant+=C[i]);if(!h&&t.type!==a.machineHeart){const D=t.option(o.incPDD).sum-t.option(o.incPDD).bonus;t.option(o.incPDD).enchant+=Math.floor(D/20)+1}const A=[a.cap,a.coat,a.longcoat,a.pants,a.cape,a.ring,a.pendant,a.belt,a.shoulder,a.shield];return h?(t.option(o.incMHP).enchant+=N[i],t.option(o.incMMP).enchant+=N[i]):A.includes(t.type)&&(t.option(o.incMHP).enchant+=N[i]),t.type===a.shoes&&(t.option(o.incSpeed).enchant+=x[i],t.option(o.incJump).enchant+=x[i]),!0}function T(t){if(t.star>=t.maxStar)return!1;t.star+=1;const s=t.star,i=w(t,!1,!1),d=w(t,!1,!0),u=[o.incSTR,o.incDEX,o.incINT,o.incLUK];for(const r of u)t.option(r).base>0&&(t.option(r).enchant+=i[s]);const h=[o.incPAD,o.incMAD];for(const r of h)t.option(r).base>0&&(t.option(r).enchant+=d[s]);const v=t.option(o.incPDD).sum-t.option(o.incPDD).bonus;return t.option(o.incPDD).enchant+=Math.floor(v/20)+1,!0}function G(t,s=!1,i=!1){if(t.getBooleanValue(o.incCHUC)||t.getBooleanValue(o.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 d=t.star,u=w(t,!0,!1),h=w(t,!0,!0),v=b.isWeapon(t.type)||t.type===a.katara,r=[o.incSTR,o.incDEX,o.incINT,o.incLUK];for(const A of r)if(t.option(A).sum>0){let M=u[d];s&&b.isAccessory(t.type)&&(M+=d>5?2:1),t.option(A).enchant+=M}const c=[o.incPAD,o.incMAD];for(const A of c){const D=t.option(A).sum;if(D>0){v&&(t.option(A).enchant+=Math.floor(D/50)+1);let M=h[d];s&&(v||t.type===a.shield)&&(M+=1),t.option(A).enchant+=M}}s&&b.isArmor(t.type)&&(t.option(o.incMHP).enchant+=50);const n=t.option(o.incPDD).sum;return t.option(o.incPDD).enchant+=Math.floor(n/20)+1,!0}function $(t){if(t.getBooleanValue(o.incCHUC))return!1;t.star=0,t.amazing=!1,t.maxStar=b.getMaxStar(t);for(const[,s]of t.options)s.enchant=0;return!0}function t0(t){if(t.getBooleanValue(o.incCHUC)||t.amazing)return!1;const s=t.star;$(t);for(let i=0;i<s;i++)j(t,!0);return!0}function w(t,s,i){let d;t.getBooleanValue(o.superiorEqp)?i?d=n0:d=c0:s?i?d=a0:d=d0:i?b.isWeapon(t.type)||t.type===a.katara?d=s0:d=o0:d=i0;const u=t.req.level;for(const h of[...d].reverse())if(u>=h[0])return h;throw Error(`Gear has invalid reqLevel.
2
+ `+t)}const n0=[[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]],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],[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]],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,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]],o0=[[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]],i0=[[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]],a0=[[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]],d0=[[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]],C=[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],N=[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],x=[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 F(t,s,i){const d=s===o.incINT?o.incMAD:o.incPAD,u=t.req.level>=115?2:t.req.level>=75?1:0;let h;const v=d===o.incMAD?"마력":"공격력";switch(s){case o.incSTR:h="힘";break;case o.incDEX:h="민첩";break;case o.incINT:h="지력";break;case o.incLUK:h="운";break;case o.incAllStat:h="올스탯";break;case o.incMHP:h="체력";break}if(b.isWeapon(t.type)||t.type===a.katara){if(s===o.incAllStat)return;let r;switch(i){case 100:r=[[1,0],[2,0],[3,1]];break;case 70:r=[[2,0],[3,1],[5,2]];break;case 30:r=[[3,1],[5,2],[7,3]];break;case 15:r=[[5,2],[7,3],[9,4]];break}const c=r[u][0],n=r[u][1]*(s===o.incMHP?50:1);return{name:n>0?`${i}% ${v}(${h}) 주문서`:`${i}% ${v} 주문서`,stat:new Map([[s,n],[d,c]])}}else if(i===15)return;if(t.type===a.glove){let r;switch(i){case 100:r=[0,1,1];break;case 70:r=[1,2,2];break;case 30:r=[2,3,3];break}const c=r[u];let n,A;return c===0?(n=`${i}% 방어력 주문서`,A=new Map([[o.incPDD,3]])):(n=`${i}% ${v} 주문서`,A=new Map([[d,c]])),{name:n,stat:A}}if(b.isArmor(t.type)||t.type===a.shoulder){if(s===o.incAllStat){if(i!==30)return;const S=[[1,30,4],[2,70,7],[3,120,10]],R=S[u][0],Z=S[u][1],Y=S[u][2],P=`${i}% ${h} 주문서`,g=new Map([[o.incSTR,R],[o.incDEX,R],[o.incINT,R],[o.incLUK,R],[o.incMHP,Z],[o.incPDD,Y]]);return t.upgradeCount===3&&(t.req.job===0?(g.set(o.incMAD,1),g.set(o.incPAD,1)):Math.floor(t.req.job/2)%2===1?g.set(o.incMAD,1):g.set(o.incPAD,1)),{name:P,stat:g}}let r;switch(i){case 100:r=[[1,5,1],[2,20,2],[3,30,3]];break;case 70:r=[[2,15,2],[3,40,4],[4,70,5]];break;case 30:r=[[3,30,4],[5,70,7],[7,120,10]];break}const c=s!==o.incMHP?r[u][0]:0,n=r[u][1]+(s===o.incMHP?r[u][0]*50:0),A=r[u][2],D=`${i}% ${h} 주문서`,M=new Map([[o.incMHP,n],[o.incPDD,A]]);return c>0&&M.set(s,c),t.upgradeCount===3&&(t.req.job===0?(M.set(o.incMAD,1),M.set(o.incPAD,1)):Math.floor(t.req.job/2)%2===1?M.set(o.incMAD,1):M.set(o.incPAD,1)),{name:D,stat:M}}if(b.isAccessory(t.type)){if(s===o.incAllStat){if(i!==30)return;const M=[[1,30,4],[2,70,7],[3,120,10]][u][0],S=`${i}% ${h} 주문서`,R=new Map([[o.incSTR,M],[o.incDEX,M],[o.incINT,M],[o.incLUK,M]]);return{name:S,stat:R}}let r;switch(i){case 100:r=[1,1,2];break;case 70:r=[2,2,3];break;case 30:r=[3,4,5];break}const c=r[u]*(s===o.incMHP?50:1);return{name:`${i}% ${h} 주문서`,stat:new Map([[s,c]])}}if(t.type===a.machineHeart){let r;switch(i){case 100:r=[1,2,3];break;case 70:r=[2,3,5];break;case 30:r=[3,5,7];break}const c=r[u];return{name:`${i}% ${h} 주문서`,stat:new Map([[d,c]])}}}function r0(t){return t.getBooleanValue(o.blockGoldHammer)||t.getBooleanValue(o.onlyUpgrade)||t.totalUpgradeCount<=0||t.hammerCount>0?!1:(t.hammerCount=1,!0)}function J(t,s){if(t.upgradeCountLeft<1)return!1;t.upgradeCount+=1;for(const[i,d]of s.stat)t.option(i).upgrade+=d;return!0}function f0(t,s,i){const d=F(t,s,i);return d?J(t,d):!1}function h0(t){return t.upgradeCountLeft<1?!1:(t.upgradeFailCount+=1,!0)}function u0(t){return t.upgradeFailCount<1?!1:(t.upgradeFailCount-=1,!0)}function D0(t){t.upgradeCount=0,t.upgradeFailCount=0,t.hammerCount=0;for(const[,s]of t.options)s.upgrade=0;return!0}function H(t){const s=new b;return s.itemID=t.id,s.name=t.name,t.desc&&(s.desc=t.desc),s.icon=t.icon,t.anvilIcon&&t.anvilName&&(s.anvilIcon=t.anvilIcon,s.anvilName=t.anvilName),s.type=t.type,s.req=t.req,s.props=L(t.props),s.options=L(t.options,M0),t.tuc&&(s.totalUpgradeCount=t.tuc),t.up&&(s.upgradeCount=t.up),t.fail&&(s.upgradeFailCount=t.fail),t.hammer&&(s.hammerCount=t.hammer),t.maxStar&&(s.maxStar=t.maxStar),t.star&&(s.star=t.star),t.amazing&&(s.amazing=t.amazing),t.karma&&(s.karma=t.karma),t.canPot&&(s.canPotential=t.canPot),t.grade&&(s.grade=t.grade),t.pots&&(s.potentials=l(t.pots,W)),t.addGrade&&(s.additionalGrade=t.addGrade),t.addPots&&(s.additionalPotentials=l(t.addPots,W)),s.soulWeapon=b0(t.soulWeapon,s),s}function M0(t){const s=new k;return t.base&&(s.base=t.base),t.bonus&&(s.bonus=t.bonus),t.upgrade&&(s.upgrade=t.upgrade),t.enchant&&(s.enchant=t.enchant),s}function W(t){if(!t)return null;const s=new I;return s.code=t.code,s.optionType=t.optionType,s.reqLevel=t.reqLevel,s.summary=t.summary,s.option=L(t.option),s}function b0(t,s){const i=new q(s);return t.enchanted&&(i.enchanted=t.enchanted),t.soul&&(i.soul=t.soul),t.charge&&(i.charge=t.charge),t.chargeOption&&(i.chargeOption=L(t.chargeOption)),i}function L(t,s){return s?new Map(t.map(i=>[i[0],s(i[1])])):new Map(t)}function l(t,s){return s?[...t].map(s):[...t]}function B(t){const s={};return s.id=t.itemID,s.name=t.name,t.desc.length>0&&(s.desc=t.desc),s.icon=t.icon,t.anvilIcon&&(s.anvilIcon=t.anvilIcon),t.anvilName&&(s.anvilName=t.anvilName),s.type=t.type,s.req=t.req,s.props=X(t.props),s.options=X(t.options,A0),t.totalUpgradeCount>0&&(s.tuc=t.totalUpgradeCount),t.upgradeCount>0&&(s.up=t.upgradeCount),t.upgradeFailCount>0&&(s.fail=t.upgradeFailCount),t.hammerCount>0&&(s.hammer=t.hammerCount),t.maxStar>0&&(s.maxStar=t.maxStar),t.star>0&&(s.star=t.star),t.amazing&&(s.amazing=t.amazing),t.karma!==void 0&&(s.karma=t.karma),t.canPotential&&(s.canPot=t.canPotential),t.grade>0&&(s.grade=t.grade),t.grade>0&&t.potentials.length>0&&(s.pots=V(t.potentials,O)),t.additionalGrade>0&&(s.addGrade=t.additionalGrade),t.additionalGrade>0&&t.additionalPotentials.length>0&&(s.addPots=V(t.additionalPotentials,O)),s.soulWeapon=v0(t.soulWeapon),s}function A0(t){const s={};return t.base!==0&&(s.base=t.base),t.bonus!==0&&(s.bonus=t.bonus),t.upgrade!==0&&(s.upgrade=t.upgrade),t.enchant!==0&&(s.enchant=t.enchant),s}function O(t){return t?{code:t.code,optionType:t.optionType,reqLevel:t.reqLevel,summary:t.summary,option:X(t.option)}:null}function v0(t){const s={};return t.enchanted&&(s.enchanted=t.enchanted),t.soul&&(s.soul=t.soul),t.charge>0&&(s.charge=t.charge),t.chargeOption.size>0&&(s.chargeOption=X(t.chargeOption)),s}function X(t,s){return s?[...t.entries()].map(i=>[i[0],s(i[1])]):[...t.entries()]}function V(t,s){return s?[...t].map(s):[...t]}const Q=t=>{const s=c=>typeof c.id=="number"&&typeof c.name=="string"&&(c.desc===void 0||typeof c.desc=="string")&&typeof c.icon=="object"&&c.icon!==null&&i(c.icon)&&(c.anvilIcon===void 0||typeof c.anvilIcon=="object"&&c.anvilIcon!==null&&i(c.anvilIcon))&&(c.anvilName===void 0||typeof c.anvilName=="string")&&(c.type===100||c.type===101||c.type===102||c.type===103||c.type===104||c.type===105||c.type===106||c.type===107||c.type===108||c.type===110||c.type===111||c.type===112||c.type===113||c.type===114||c.type===115||c.type===116||c.type===118||c.type===166||c.type===167||c.type===109||c.type===119||c.type===119020||c.type===1212||c.type===1213||c.type===1214||c.type===122||c.type===123||c.type===124||c.type===126||c.type===127||c.type===128||c.type===129||c.type===130||c.type===131||c.type===132||c.type===133||c.type===134||c.type===136||c.type===137||c.type===138||c.type===140||c.type===1404||c.type===141||c.type===142||c.type===143||c.type===144||c.type===145||c.type===146||c.type===147||c.type===148||c.type===149||c.type===150||c.type===151||c.type===152||c.type===153||c.type===156||c.type===157||c.type===158||c.type===159||c.type===1098||c.type===1099||c.type===135200||c.type===135210||c.type===135220||c.type===135221||c.type===135222||c.type===135223||c.type===135224||c.type===135225||c.type===135226||c.type===135227||c.type===135228||c.type===135229||c.type===135240||c.type===135250||c.type===135260||c.type===135270||c.type===135290||c.type===135291||c.type===135292||c.type===135293||c.type===135294||c.type===135295||c.type===135296||c.type===135297||c.type===135298||c.type===135300||c.type===135310||c.type===135320||c.type===135330||c.type===135340||c.type===135350||c.type===135360||c.type===135370||c.type===135380||c.type===135400||c.type===135401||c.type===135402||c.type===135403||c.type===180||c.type===161||c.type===162||c.type===163||c.type===164||c.type===165||c.type===194||c.type===195||c.type===196||c.type===197)&&typeof c.req=="object"&&c.req!==null&&d(c.req)&&Array.isArray(c.props)&&c.props.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.options)&&c.options.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]=="object"&&n[1]!==null&&Array.isArray(n[1])===!1&&u(n[1]))&&(c.tuc===void 0||typeof c.tuc=="number")&&(c.up===void 0||typeof c.up=="number")&&(c.fail===void 0||typeof c.fail=="number")&&(c.hammer===void 0||typeof c.hammer=="number")&&(c.maxStar===void 0||typeof c.maxStar=="number")&&(c.star===void 0||typeof c.star=="number")&&(c.amazing===void 0||typeof c.amazing=="boolean")&&(c.karma===void 0||typeof c.karma=="number")&&(c.canPot===void 0||typeof c.canPot=="boolean")&&(c.grade===void 0||c.grade===0||c.grade===1||c.grade===2||c.grade===3||c.grade===4||c.grade===5)&&(c.pots===void 0||Array.isArray(c.pots)&&c.pots.every(n=>n===void 0||typeof n=="object"&&n!==null&&h(n)))&&(c.addGrade===void 0||c.addGrade===0||c.addGrade===1||c.addGrade===2||c.addGrade===3||c.addGrade===4||c.addGrade===5)&&(c.addPots===void 0||Array.isArray(c.addPots)&&c.addPots.every(n=>n===void 0||typeof n=="object"&&n!==null&&h(n)))&&typeof c.soulWeapon=="object"&&c.soulWeapon!==null&&Array.isArray(c.soulWeapon)===!1&&v(c.soulWeapon),i=c=>typeof c.id=="number"&&Array.isArray(c.origin)&&c.origin.length===2&&typeof c.origin[0]=="number"&&typeof c.origin[1]=="number",d=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=>(c.base===void 0||typeof c.base=="number")&&(c.bonus===void 0||typeof c.bonus=="number")&&(c.upgrade===void 0||typeof c.upgrade=="number")&&(c.enchant===void 0||typeof c.enchant=="number"),h=c=>typeof c.code=="number"&&typeof c.optionType=="number"&&typeof c.reqLevel=="number"&&typeof c.summary=="string"&&Array.isArray(c.option)&&c.option.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"),v=c=>(c.enchanted===void 0||typeof c.enchanted=="boolean")&&(c.soul===void 0||typeof c.soul=="object"&&c.soul!==null&&r(c.soul))&&(c.charge===void 0||typeof c.charge=="number")&&(c.chargeOption===void 0||Array.isArray(c.chargeOption)&&c.chargeOption.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")),r=c=>typeof c.name=="string"&&typeof c.skill=="string"&&c.option instanceof Map&&[...c.option].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.multiplier=="number";return typeof t=="object"&&t!==null&&s(t)};function S0(t){return JSON.stringify(B(t))}function R0(t){return H(JSON.parse(t))}function w0(t){const s=JSON.parse(t);return Q(s)?H(s):null}exports.BonusStatType=f;exports.Gear=b;exports.GearOption=k;exports.GearPropType=o;exports.GearType=a;exports.Potential=I;exports.PotentialGrade=U;exports.SoulWeapon=q;exports.addAmazingEnhancement=G;exports.addBonusStat=y;exports.addStarforce=j;exports.addUpgradeFailCount=h0;exports.applyGoldHammer=r0;exports.applyScroll=J;exports.applySpellTrace=f0;exports.gearToPlain=B;exports.getBonusStatOption=z;exports.getBonusStatValue=_;exports.getSpellTraceScroll=F;exports.isGearLike=Q;exports.parseGear=R0;exports.plainToGear=H;exports.recalculateStarforce=t0;exports.resetBonusStat=m;exports.resetEnhancement=$;exports.resetUpgrade=D0;exports.restoreUpgradeCount=u0;exports.stringifyGear=S0;exports.validateParseGear=w0;
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, type Scroll, type SpellTraceProbability, type SpellTraceStatType, getSpellTraceScroll, applyGoldHammer, applyScroll, applySpellTrace, addUpgradeFailCount, restoreUpgradeCount, resetUpgrade, } 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, type Scroll, type SpellTraceProbability, type SpellTraceStatType, getSpellTraceScroll, applyGoldHammer, applyScroll, applySpellTrace, addUpgradeFailCount, restoreUpgradeCount, resetUpgrade, plainToGear, gearToPlain, stringifyGear, parseGear, validateParseGear, isGearLike, type GearLike, type OptionLike as GearOptionLike, type PotLike as GearPotLike, type SoulWeaponLike, } from "./internal";