index.html 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559
  1. <!DOCTYPE html>
  2. <html dir="ltr" lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>Oddjobs | Damage Calculator</title>
  6. <meta name="description" content="The guild for MapleStory odd-jobbers" />
  7. <meta name="viewport" content="width=device-width,initial-scale=1" />
  8. <link rel="stylesheet" type="text/css" href="../css/style.css" />
  9. <link rel="icon" type="image/png" href="../img/favicon.png" />
  10. <script type="module" async src="./main.js"></script>
  11. </head>
  12. <body>
  13. <div id="nav-content-wrapper">
  14. <nav id="main-nav">
  15. <div id="main-nav-inner">
  16. <div id="main-nav-pullout"><span>&#x25b6;</span></div>
  17. <a href="../" class="nav-h"
  18. >Oddjobs
  19. <br />
  20. <img
  21. src="../img/logo.svg"
  22. alt="Oddjobs logo | Due to Evan MacDonald of the Noun Project (CC BY 3.0)"
  23. title="Oddjobs logo | Due to Evan MacDonald of the Noun Project (CC BY 3.0)"
  24. /></a>
  25. <ul class="nav-list">
  26. <li>
  27. <a href="../">Home</a>
  28. </li>
  29. <li>
  30. <a href="../join-on-up.html">Join On Up</a>
  31. </li>
  32. <li>
  33. <a
  34. target="_blank"
  35. rel="noopener noreferrer"
  36. href="https://oddjobs.flarum.cloud/"
  37. >Forum</a
  38. >
  39. </li>
  40. <li>
  41. <a href="../odd-jobs.html">Odd Jobs</a>
  42. </li>
  43. <li>
  44. <a href="../guides/">Guides</a>
  45. </li>
  46. <li class="active">
  47. <a href="./">Damage Calc</a>
  48. </li>
  49. <li>
  50. <a href="../gish-ap-calc/">Gish AP Calc</a>
  51. </li>
  52. <li>
  53. <a href="../archive/">Archive</a>
  54. </li>
  55. <li>
  56. <a href="../rankings/">Rankings</a>
  57. </li>
  58. <li>
  59. <a href="../source.html" data-jslicense="1">Source</a>
  60. </li>
  61. </ul>
  62. </div>
  63. </nav>
  64. <div id="content">
  65. <header>
  66. <h1>Damage Calculator</h1>
  67. <span class="subtitle"
  68. >For all your weird pre-BB damage calculation needs!</span
  69. >
  70. <noscript>
  71. <div id="noscript">
  72. <p>
  73. It looks like you have JavaScript disabled or blocked. If your
  74. browser supports JavaScript, you need not worry about enabling
  75. it for this page, as the JavaScript on this page is entirely
  76. <a
  77. target="_blank"
  78. rel="noopener noreferrer"
  79. href="https://en.wikipedia.org/wiki/Free_software"
  80. >free</a
  81. >
  82. (<a
  83. target="_blank"
  84. rel="noopener noreferrer"
  85. href="https://www.gnu.org/licenses/agpl-3.0"
  86. >GNU AGPL v3</a
  87. >+). See
  88. <a href="../source.html" data-jslicense="1">the Source page</a>
  89. for more information and access to source code.
  90. </p>
  91. </div>
  92. </noscript>
  93. </header>
  94. <main>
  95. <a href="#assumptions" class="h-anchor"
  96. ><h2 id="assumptions">Assumptions</h2></a
  97. >
  98. <p>
  99. We assume that the player can attack as quickly as possible (i.e.
  100. holding down the attack button), and does so uninterrupted: they
  101. are never struck, never have to move, never use potions, &amp;c.,
  102. and also never miss. We also assume that they are damaging exactly
  103. one foe at all times, and that that one foe has infinite HP. You
  104. can select a number of targets greater than one, but note that this
  105. does <strong>not</strong> take into account the damage taken by any
  106. of said virtual enemies, except for one of them. The ability to
  107. select a number of targets is only there for skills like Heal,
  108. which change their per-line damage based on the total number of
  109. targets.
  110. </p>
  111. <p>We assume that there is no particular damage cap.</p>
  112. <a href="#you-should-know" class="h-anchor"
  113. ><h2 id="you-should-know">You Should Know</h2></a
  114. >
  115. <details>
  116. <summary>You Should Know&hellip;</summary>
  117. <p>
  118. Weapon speeds are calculated based on the speed of the weapon
  119. itself, in addition to any booster effects that may be active.
  120. The slowest possible speed is 9,<sup>[1]</sup> and the fastest is
  121. 2. Booster skills add &minus;2 to your speed value, and so does
  122. Speed Infusion.<sup>[2]</sup> Booster skills and Speed Infusion
  123. do stack, granting &minus;4 speed (in addition to the speed of
  124. your weapon) when both are active.<sup>[2]</sup> However, your
  125. speed can never go below 2, so e.g. a weapon with speed 3 that is
  126. affected by a Booster skill is speed 2, <strong>not</strong> 1.
  127. You may need to use an external reference and/or look in the game
  128. files to find out the speed of any given weapon, because only
  129. some weapons have their true speeds displayed in-game. Others
  130. have ambiguous speed descriptions like &ldquo;Fast&rdquo;, which
  131. could correspond to a speed of 4, or to a speed of 5.
  132. </p>
  133. <p>
  134. Stats (STR, DEX, INT, LUK) are total stat values, after base
  135. stats <strong>and</strong> equipment <strong>and</strong> buffs.
  136. Likewise, total WATK is the sum of all WATK from your equipment
  137. (including both your weapon, and your other equips), plus WATK
  138. from skills, plus WATK from buffs (except Echo of Hero, which,
  139. for convenience, can be entered separately). Total MATK is
  140. defined similarly to total WATK, but it should be noted that it
  141. should also include the MATK that is due to your total INT score.
  142. This &ldquo;total MATK&rdquo; is displayed in-game as
  143. &ldquo;MAGIC&rdquo; inside of the &ldquo;DETAIL&rdquo; tab of the
  144. &ldquo;CHARACTER STATS&rdquo; window (in the keybinding GUI, this
  145. window is listed as &ldquo;ABILITY&rdquo;).
  146. </p>
  147. <p>
  148. The mastery is given here as a percentage. Your mastery can never
  149. be less than 10%, but it can be higher, if you have one or more
  150. relevant mastery skills (&ldquo;relevant&rdquo; because mastery
  151. skills typically only apply to certain classes of weapons, e.g.
  152. only axes). Most mastery skills increase your mastery up to a
  153. total of 60%, but some fourth-job skills can take you up to as
  154. high as 90%. Mastery for magical attacks works on a per-spell
  155. basis (based on which spell it is and what level it&rsquo;s at),
  156. and should be listed in-game within the spell&rsquo;s
  157. description.
  158. </p>
  159. <p>
  160. The &ldquo;Damage multi&rdquo; field under &ldquo;Skill&rdquo;
  161. refers to the damage percentage listed in the description of a
  162. physical attack; for example, the Power Strike skill has a
  163. &ldquo;Damage multi&rdquo; of 260% at max level. The &ldquo;Basic
  164. attack&rdquo; only applies to magical attacks and summons, and is
  165. generally listed in the skill description as &ldquo;basic
  166. attack&rdquo;; for example, the Magic Claw skill has a
  167. &ldquo;Basic attack&rdquo; of 40 at max level.
  168. &ldquo;Lines&rdquo; refers to how many lines of damage the
  169. attacking skill does; for example, this value is 1 for Power
  170. Strike and 2 for Magic Claw.
  171. </p>
  172. <p>
  173. Damage multipliers from skills, critical hits, and elemental
  174. effects work in tandem. All of these influences combine into a
  175. single multiplier that we will here refer to as &ldquo;<strong
  176. >the</strong
  177. >
  178. damage multiplier&rdquo;. This is the number by which you
  179. multiply your basic attack damage (for physical attacks, this is
  180. your basic attack &mdash; i.e. not using a skill &mdash; with no
  181. crits nor elemental effects nor reduction due to WDEF). These
  182. sources of damage multiplier (skills, crits, elemental effects)
  183. are <strong>additive</strong> in the sense that these multipliers
  184. are summed together, and then that sum makes up
  185. <em>the</em> damage multiplier.
  186. <strong
  187. >Note that basic attacks have a &ldquo;skill&rdquo; multiplier
  188. of 1</strong
  189. >, i.e. as if you were using an attacking skill that said
  190. &ldquo;100% damage&rdquo; in the description. For example, say
  191. you use the Arrow Blow skill as an archer who has maxed both
  192. Arrow Blow (described in-game as &ldquo;Damage 260%&rdquo;) and
  193. Critical Shot (described in-game as &ldquo;40% success rate,
  194. critical damage 200%&rdquo;, although the critical damage is
  195. actually 100 percentage points lower than described, i.e. 100%;
  196. see below). Let&rsquo;s assume that this particular use of Arrow
  197. Blow is a crit, and thus we get the benefit of the
  198. &ldquo;critical damage 200%&rdquo; (again, really 100%; see
  199. below). The damage multiplier is the sum of the multipliers from
  200. Arrow Blow and Critical Shot: 2.6&nbsp;+&nbsp;1&nbsp;=&nbsp;3.6.
  201. Thus, we expect this attack to (again, assuming the monster has 0
  202. WDEF) do 3.6 times as much as a non-critical basic attack would.
  203. Note that magic attacks work somewhat differently, and (as far as
  204. I know) do not use this additive notion of &ldquo;damage
  205. multiplier&rdquo;.
  206. </p>
  207. <p>
  208. The descriptions of skills that have to do with critical hits are
  209. typically misleading. Below is a list of these skills and what
  210. they <em>actually</em> add to the damage multiplier:
  211. </p>
  212. <ul>
  213. <li>
  214. Critical Shot: 100 percentage points lower than described
  215. in-game; at max level, the description reads
  216. &ldquo;200%&rdquo;, but it only adds 100 percentage points to
  217. your damage multiplier.
  218. </li>
  219. <li>Critical Throw: Same as for Critical Shot.</li>
  220. <li>
  221. Stun Mastery: The in-game description is mostly correct (60
  222. extra percentage points added to the damage multiplier when
  223. Stun Mastery is at its maximum level), but this skill interacts
  224. bizarrely with Sharp Eyes: when the marauder/buccaneer is
  225. affected by Sharp Eyes, Stun Mastery acts as if it granted 100
  226. more percentage points than it nominally does, viz. 160 at max
  227. level. This extra 100 percentage points is
  228. <strong
  229. >in addition to all of the percentage points contributed by
  230. Sharp Eyes</strong
  231. >, which is 140 such points when Sharp Eyes is at its maximum
  232. level (see below).
  233. </li>
  234. <li>
  235. Sharp Eyes: 100 percentage points higher than described
  236. in-game; at max level, the description reads
  237. &ldquo;+40%&rdquo;, but it actually adds 140 percentage points
  238. to your damage multiplier. This also, for unknown reasons,
  239. interacts strangely with Stun Mastery (see above). Sharp Eyes
  240. in particular is a source of confusion (especially because it
  241. can be applied to characters of any class/job), so the
  242. paragraph immediately below is dedicated to it.
  243. </li>
  244. </ul>
  245. <p>
  246. The in-game description of the Sharp Eyes skill is somewhat
  247. misleading. At max level, the skill grants &ldquo;[Critical]
  248. Damage + 40%&rdquo;. However, this should probably read
  249. &ldquo;+140%&rdquo;, because the actual value that is added to
  250. the damage multiplier is 1.4 (140 percentage points). For archers
  251. and assassins/hermits/nightlords, interpreting Sharp Eyes is
  252. pretty straightforward: it just adds something to your
  253. already-existing critical chance and to your already-existing
  254. critical multiplier. For example, an archer with maxed Critical
  255. Shot and maxed Sharp Eyes has a
  256. 0.4&nbsp;+&nbsp;0.15&nbsp;=&nbsp;0.55 probability of critting,
  257. and a critical multiplier of 1&nbsp;+&nbsp;1.4&nbsp;=&nbsp;2.4.
  258. For marauders/buccaneers with Stun Mastery, Sharp Eyes works
  259. confusingly: it effectively adds 2.4 (instead of 1.4) to the
  260. critical multiplier of critical hits on stunned monsters. Stun
  261. Mastery&rsquo;s critical multiplier at max level is 0.6, so with
  262. maxed Sharp Eyes, it is increased to 0.6 + 2.4 = 3.0. For
  263. physical attackers who do
  264. <em>not</em> already have a critical-hit-granting skill, being
  265. buffed with maxed Sharp Eyes means an overall
  266. 0&nbsp;+&nbsp;0.15&nbsp;=&nbsp;0.15 probability of critting, and
  267. a critical multiplier of 1.4; <strong>not</strong> a critical
  268. multiplier of 0.4. Note that the value referred to here as the
  269. &ldquo;critical multiplier&rdquo; is
  270. <strong>additive</strong> and <em>only</em> serves to cumulate
  271. into the overall &ldquo;damage multiplier&rdquo;. For more on
  272. this, see above. For magical attacks, the probability of critting
  273. with maxed Sharp Eyes is also 0.15, but an attack that crits does
  274. <strong>not</strong> add 1.4 to the damage multiplier of a
  275. non-crit, as you would expect (magical attacks do not use the
  276. same notion of &ldquo;damage multiplier&rdquo;). Instead, it
  277. simply multiplies the overall damage of the magical attack by a
  278. factor of 1.4. Nevertheless, if you want to use the calculator
  279. for magical attacks combined with Sharp Eyes, you should set the
  280. values in the inputs below as if you were setting them for a
  281. physical attacker who has no critical-hit-granting skill of their
  282. own.
  283. </p>
  284. <p>
  285. &ldquo;Good anim probability&rdquo; refers to the probability of
  286. your melee attack having a &ldquo;good&rdquo; (read: higher
  287. primary stat multiplier) animation, given that you&rsquo;re basic
  288. attacking or using a skill that animates similarly (e.g. Power
  289. Strike). This value is ignored whenever you&rsquo;re attacking
  290. with a skill that always uses a certain animation, e.g.
  291. Somersault Kick, which always stabs (i.e. never swings). This
  292. value is also ignored whenever you&rsquo;re attacking with a
  293. weapon that does not distinguish between &ldquo;good&rdquo; and
  294. &ldquo;bad&rdquo; animations, e.g. swords and daggers. The only
  295. weapon types that distinguish between &ldquo;good&rdquo; and
  296. &ldquo;bad&rdquo; animations are:
  297. </p>
  298. <ul>
  299. <li>
  300. Polearms: swings are good, stabs are bad. Good anim probability
  301. is suspected to be 60%.
  302. </li>
  303. <li>
  304. Spears: stabs are good, swings are bad. Good anim probability
  305. is suspected to be 40%.
  306. </li>
  307. <li>
  308. Axes: swings are good, stabs are bad. Good anim probability is
  309. suspected to be 60%.
  310. </li>
  311. <li>
  312. Blunt weapons: swings are good, stabs are bad. Good anim
  313. probability is suspected to be 60%.
  314. </li>
  315. <li>
  316. Wands: swings are good, stabs are bad. Good anim probability is
  317. suspected to be 100%.
  318. </li>
  319. <li>
  320. Staves: swings are good, stabs are bad. Good anim probability
  321. is suspected to be 100%.
  322. </li>
  323. </ul>
  324. <p>
  325. You can select a number of targets greater than one, but note
  326. that this does <strong>not</strong> take into account the damage
  327. taken by any of said virtual enemies, except for one of them. The
  328. ability to select a number of targets is only there for skills
  329. like Heal, which change their per-line damage based on the total
  330. number of targets. Note that when casting Heal (maximum of 6
  331. targets), the caster counts as a target, thus lowering the
  332. maximum number of possible enemy targets from 6 to 5. Also note
  333. that Heal, unlike most spells, uses the &ldquo;Damage
  334. multi&rdquo; rather than the &ldquo;Basic attack&rdquo; (the
  335. damage multi is typically 300% at maximum level).
  336. </p>
  337. <p>
  338. &ldquo;Ordinal # of hit&rdquo; refers to the position/index of
  339. the particular damaging strike in question, within the ordering
  340. of all damaging strikes produced by the attack in question. For
  341. example, when using Iron Arrow, the first damaging strike (the
  342. one that damages the first monster struck by the arrow) has an
  343. ordinal # of 1, the next damaging strike an ordinal # of 2, and
  344. so on.
  345. </p>
  346. <p>
  347. It is possible for enemies to have negative WDEF values, due to
  348. effects like Threaten.
  349. </p>
  350. <p>
  351. The &ldquo;Attack with Dark Power&rdquo; in the description of
  352. the Panic skills is a probability of the target having Darkness
  353. (the status effect that lowers WACC) inflicted on them, and is
  354. unrelated to the damage that each skill deals. Both Panic and
  355. Coma lack attack periods, because they are combo finishers.
  356. </p>
  357. <p>
  358. Venom skills (Venomous Star and Venomous Stab) have their damage
  359. calculated for <strong>just the venom</strong> damage over time.
  360. Also note that these same skills make use of the &ldquo;Basic
  361. attack&rdquo; parameter, as noted in their skill descriptions.
  362. </p>
  363. <p>
  364. The damage of the Heaven&rsquo;s Hammer skill is calculated on
  365. the server side. As a result, its exact damage formula has
  366. remained somewhat elusive. Two versions are given here: the
  367. original XiuzSource version, and a &ldquo;corrected&rdquo;
  368. version that uses the attacker&rsquo;s mastery to determine the
  369. minimum damage. The original XiuzSource version determines the
  370. minimum damage by simply multiplying the maximum damage by 0.8.
  371. </p>
  372. <p>
  373. The terms &ldquo;expectation&rdquo; and &ldquo;expected&rdquo;
  374. are here used in
  375. <a
  376. target="_blank"
  377. rel="noopener noreferrer"
  378. href="https://en.wikipedia.org/wiki/Expected_value"
  379. >the probability-theoretic sense</a
  380. >. The &ldquo;&sigma;&rdquo; symbol refers to
  381. <a
  382. target="_blank"
  383. rel="noopener noreferrer"
  384. href="https://en.wikipedia.org/wiki/Standard_deviation"
  385. >the standard deviation</a
  386. >, which is conveniently in the same units/dimensions as the
  387. values themselves. We often talk about the so-called
  388. &ldquo;stability&rdquo; of damage, which is essentially a way of
  389. talking about the
  390. <a
  391. target="_blank"
  392. rel="noopener noreferrer"
  393. href="https://en.wikipedia.org/wiki/Statistical_dispersion"
  394. >dispersion</a
  395. >
  396. of the damage instances, and the standard deviation is one way of
  397. quantifying dispersion. However, care must be taken when
  398. comparing two separate standard deviations, because standard
  399. deviation is an
  400. <em>absolute</em> measure of dispersion. As a result, two
  401. characters who appear to have roughly the <em>same</em> damage
  402. stability, but the magnitude of whose damage outputs &mdash; say,
  403. damage per line, for example &mdash; are significantly different,
  404. will have damage-per-line distributions with significantly
  405. <em>different</em> standard deviations. This is because the
  406. standard deviation is expressed in the same dimensions as the
  407. values themselves, so it scales up linearly as the values of the
  408. distribution are scaled up. To help get a <em>relative</em> (and
  409. thus more comparable) measure of damage stability,
  410. <a
  411. target="_blank"
  412. rel="noopener noreferrer"
  413. href="https://en.wikipedia.org/wiki/Coefficient_of_variation"
  414. >the coefficient of variation</a
  415. >
  416. (CV) is used. The CV is
  417. <a
  418. target="_blank"
  419. rel="noopener noreferrer"
  420. href="https://en.wikipedia.org/wiki/Dimensionless_quantity"
  421. >a dimensionless quantity</a
  422. >.
  423. </p>
  424. <p>
  425. If you see an asterisk (*) on the right-hand side of a damage
  426. value (particularly, the upper bound of a range), it means that
  427. that value is <em>exactly</em> an integer, before it is sampled
  428. from. Damage ranges are <em>virtually</em> intervals of real
  429. numbers (actually
  430. <a
  431. target="_blank"
  432. rel="noopener noreferrer"
  433. href="https://en.wikipedia.org/wiki/Floating-point_arithmetic"
  434. >floating point numbers</a
  435. >, of course). To get a particular damage outcome, the interval
  436. is sampled from (as a
  437. <a
  438. target="_blank"
  439. rel="noopener noreferrer"
  440. href="https://en.wikipedia.org/wiki/Continuous_uniform_distribution"
  441. >continuous uniform distribution</a
  442. >), the sample is then
  443. <a
  444. target="_blank"
  445. rel="noopener noreferrer"
  446. href="https://en.wikipedia.org/wiki/Clamping_(graphics)"
  447. >clamped</a
  448. >
  449. to a minimum of 1, and the result&rsquo;s fractional part is then
  450. <a
  451. target="_blank"
  452. rel="noopener noreferrer"
  453. href="https://en.wikipedia.org/wiki/Truncation"
  454. >truncated</a
  455. >. There&rsquo;s some finer details here about the exact order of
  456. operations, but the point is that when a particular bound is
  457. <em>exactly</em> an integer, it becomes unclear whether or not it
  458. can ever be sampled. This is perhaps a bigger deal than it
  459. usually would be, because the fractional parts of the samples are
  460. truncated, making a sample of e.g. 2.999 effectively much less
  461. (viz. 1 less, instead of 0.001 less) than a sample of 3. If you
  462. see an asterisked value, you can effectively just subtract 1 from
  463. it. The method here chosen to display these liminal values is
  464. largely for completeness.<sup>[3]</sup>
  465. </p>
  466. <details>
  467. <summary>Footnotes for &ldquo;You Should Know&rdquo;</summary>
  468. <p>
  469. [1]: This is technically untrue; speeds above 9 are in fact
  470. possible, but would require equipping a weapon with a speed
  471. above 9 (because there is no way to increase speed values with
  472. (de)buffs or similar). Such weapons conventionally do not
  473. exist, although see for example the
  474. <a
  475. target="_blank"
  476. rel="noopener noreferrer"
  477. href="https://maplelegends.com/lib/equip?id=01322053"
  478. >Golden Mace</a
  479. >, which has a speed of 15 (but does not actually exist in
  480. MapleLegends as far as I know). As a result, attack period
  481. values for speeds above 9 are unknown &mdash; and they may just
  482. be the same as for speed 9.
  483. </p>
  484. <p>
  485. [2]: Depending on the implementation, this may or may not be
  486. exactly correct. In early versions of MapleStory that have
  487. pirates (e.g. GMS v62), the client did not have a separate buff
  488. opcode for Speed Infusion, so Speed Infusion has to be
  489. &ldquo;emulated&rdquo; by using an ordinary Booster buff with
  490. twice the magnitude of a normal Booster skill (4 instead of 2).
  491. The result is thus usually the same, but for jobs that lack a
  492. booster skill of their own, this can be a big boon (&minus;4 to
  493. the speed of their weapon when affected by Speed Infusion,
  494. instead of the expected &minus;2). Also worth noting here is
  495. that many implementations lack a separate opcode for Spell
  496. Booster, so Speed Infusion can effectively lower spellcasting
  497. speeds beyond the usual &minus;2 of maxed Spell Booster (all
  498. the way to &minus;4, potentially). This is another artifact/bug
  499. of early pirate implementations, and spellcasting speeds below
  500. &minus;2 are not handled by this calculator. Also note that in
  501. these same versions (where Spell Booster is treated identically
  502. to weapon Booster skills), Spell Booster <em>does</em> add
  503. &minus;2 to the speed category of your equipped weapon. As a
  504. result, these versions typically only allow Spell Booster to be
  505. used when a wand or staff is equipped, so that the caster
  506. cannot effectively have, for example, Sword Booster by simply
  507. casting Spell Booster with a sword in hand. Instead, Spell
  508. Booster in these versions acts as both a spell booster
  509. <em>and</em> a &ldquo;Wand/Staff Booster&rdquo;.
  510. </p>
  511. <p>
  512. [3]: Typically (see e.g.
  513. <a
  514. target="_blank"
  515. rel="noopener noreferrer"
  516. href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Math.html#random()"
  517. >in Java</a
  518. >), software functions that are intended to return a
  519. uniformly-distributed sample from an interval of floating point
  520. numbers do so from a nominally
  521. <a
  522. target="_blank"
  523. rel="noopener noreferrer"
  524. href="https://mathworld.wolfram.com/Half-ClosedInterval.html"
  525. >half-closed interval</a
  526. >; in particular, the lower &ldquo;half&rdquo; (read: bound) is
  527. closed/included, while the upper &ldquo;half&rdquo; is
  528. open/excluded. As a result, an upper range bound that has an
  529. asterisk (*) can only be guaranteed to <em>nominally</em> be
  530. part of the range, and it may or may not have a nonzero
  531. probability of being sampled, depending upon the
  532. implementation. For reference, the number of
  533. <a
  534. target="_blank"
  535. rel="noopener noreferrer"
  536. href="https://en.wikipedia.org/wiki/Single-precision_floating-point_format"
  537. >single-precision</a
  538. >
  539. (32-bit, typically <code>float</code> in
  540. <a
  541. target="_blank"
  542. rel="noopener noreferrer"
  543. href="https://en.wikipedia.org/wiki/C_(programming_language)"
  544. >C</a
  545. >)
  546. <a
  547. target="_blank"
  548. rel="noopener noreferrer"
  549. href="https://en.wikipedia.org/wiki/IEEE_754"
  550. >IEEE 754</a
  551. >
  552. floating point numbers within
  553. <a
  554. target="_blank"
  555. rel="noopener noreferrer"
  556. href="https://en.wikipedia.org/wiki/Unit_interval"
  557. >the unit interval</a
  558. >
  559. is 1,065,353,217 &mdash; this number is only for scale, since
  560. precision varies depending on how far away from zero you are,
  561. and
  562. <a
  563. target="_blank"
  564. rel="noopener noreferrer"
  565. href="https://en.wikipedia.org/wiki/Double-precision_floating-point_format"
  566. >double-precision</a
  567. >
  568. floating point numbers are common as well &mdash; but the point
  569. is that it shouldn&rsquo;t matter much for expected values and
  570. variances. It&rsquo;s just that it may (or may not) be
  571. impossible to <em>actually witness</em> that asterisked damage
  572. value.
  573. </p>
  574. </details>
  575. </details>
  576. <a href="#calculator" class="h-anchor"
  577. ><h2 id="calculator">Calculator</h2></a
  578. >
  579. <div id="save-load-div">
  580. <fieldset id="save-load">
  581. <legend>Save/load</legend>
  582. <div id="currently-loaded"></div>
  583. <button id="save-as" type="button">Save as</button>
  584. <button id="save" type="button">Save</button>
  585. <button id="load" type="button">Load</button>
  586. <button id="delete" type="button">Delete</button>
  587. <button id="export" type="button">Export</button>
  588. <button id="import" type="button">Import</button>
  589. <div id="save-load-dialog"></div>
  590. </fieldset>
  591. </div>
  592. <div id="calculator-input">
  593. <fieldset id="stats">
  594. <legend>Stats</legend>
  595. <label for="str">
  596. <abbr
  597. class="help"
  598. title="Total STR; the sum of base STR, STR from equipment, buffs, etc."
  599. >STR</abbr
  600. >
  601. <input type="number" id="str" name="str" min="4" value="4" />
  602. </label>
  603. <label for="dex">
  604. <abbr
  605. class="help"
  606. title="Total DEX; the sum of base DEX, DEX from equipment, buffs, etc."
  607. >DEX</abbr
  608. >
  609. <input type="number" id="dex" name="dex" min="4" value="4" />
  610. </label>
  611. <label for="int">
  612. <abbr
  613. class="help"
  614. title="Total INT; the sum of base INT, INT from equipment, buffs, etc."
  615. >INT</abbr
  616. >
  617. <input type="number" id="int" name="int" min="4" value="4" />
  618. </label>
  619. <label for="luk">
  620. <abbr
  621. class="help"
  622. title="Total LUK; the sum of base LUK, LUK from equipment, buffs, etc."
  623. >LUK</abbr
  624. >
  625. <input type="number" id="luk" name="luk" min="4" value="4" />
  626. </label>
  627. </fieldset>
  628. <fieldset id="attack-stats">
  629. <legend>Attack stats</legend>
  630. <label for="total-watk">
  631. <abbr
  632. class="help"
  633. title="Total weapon attack, not including WATK from Echo of Hero; the sum of WATK from equipment, WATK buffs, and ammunition. This also does not include WATK from bare hands (no weapon equipped)."
  634. >Total WATK</abbr
  635. >
  636. <input
  637. type="number"
  638. id="total-watk"
  639. name="total-watk"
  640. min="0"
  641. value="1"
  642. />
  643. </label>
  644. <label for="total-matk">
  645. <abbr
  646. class="help"
  647. title="Total MATK (total magic attack; TMA), not including MATK from Echo of Hero; the sum of WATK from total INT score, equipment, and MATK buffs."
  648. >Total MATK</abbr
  649. >
  650. <input
  651. type="number"
  652. id="total-matk"
  653. name="total-matk"
  654. min="4"
  655. value="4"
  656. />
  657. </label>
  658. <label for="echo">
  659. <abbr
  660. class="help"
  661. title="Percentage points of (W/M)ATK increase due to Echo of Hero. This is 0% if you&rsquo;re not affected by Echo of Hero, and generally 4% otherwise. Also note that because this is specified separately from (W/M)ATK, the (W/M)ATK bonuses from Echo of Hero are not included in the (W/M)ATK values that are input directly into the calculator."
  662. >Echo of Hero</abbr
  663. >
  664. <input
  665. type="number"
  666. id="echo"
  667. name="echo"
  668. min="0"
  669. value="0"
  670. />%
  671. </label>
  672. </fieldset>
  673. <label for="mastery">
  674. <abbr
  675. class="help"
  676. title="This &ldquo;Mastery&rdquo; value applies to both physical and magical attacks. For physical attacks, it is 10% by default (but can be increased by a relevant skill; usually up to 60%, although higher values are possible). For magical attacks, the mastery is given by the description of the spell, at the particular skill level that you&rsquo;re casting the spell at."
  677. >Mastery</abbr
  678. >
  679. <input
  680. type="number"
  681. id="mastery"
  682. name="mastery"
  683. min="10"
  684. max="90"
  685. step="5"
  686. value="10"
  687. />%
  688. </label>
  689. <fieldset id="skill">
  690. <legend>Skill</legend>
  691. <label for="skill-dmg-multi">
  692. <abbr
  693. class="help"
  694. title="The percentage of damage that your attacking skill deals; this is in the skill&rsquo;s description, and is particular to each level of each skill. If you&rsquo;re basic attacking (i.e. not using a skill), this is just 100%. Because Heal&rsquo;s damage is expressed as a damage percentage, Heal is the only magical spell that this value applies to."
  695. >Damage multi</abbr
  696. >
  697. <input
  698. type="number"
  699. id="skill-dmg-multi"
  700. name="skill-dmg-multi"
  701. min="0"
  702. value="100"
  703. />%
  704. </label>
  705. <label for="skill-basic-atk">
  706. <abbr
  707. class="help"
  708. title="The basic attack usually only applies to spells. The basic attack of a spell is listed in the spell&rsquo;s description, for the particular level of the spell that you&rsquo;re using. It also applies to summons (even physical-attacking ones), but the idea is much the same. The only spell that this doesn&rsquo;t apply to is Heal, which uses the &ldquo;Damage multi&rdquo; value instead."
  709. >Basic attack</abbr
  710. >
  711. <input
  712. type="number"
  713. id="skill-basic-atk"
  714. name="skill-basic-atk"
  715. min="0"
  716. value="10"
  717. />
  718. </label>
  719. <label for="skill-lines">
  720. <abbr
  721. class="help"
  722. title="The number of lines (i.e. displayed damage numbers) of damage that your attack deals. This applies to both physical and magical attacks (for example, Magic Claw has 2 lines)."
  723. >Lines</abbr
  724. >
  725. <input
  726. type="number"
  727. id="skill-lines"
  728. name="skill-lines"
  729. min="1"
  730. value="1"
  731. />
  732. </label>
  733. </fieldset>
  734. <fieldset id="crit">
  735. <legend>Critical hits</legend>
  736. <label for="crit-prob">
  737. <abbr
  738. class="help"
  739. title="The probability that any given line of damage is a critical hit, expressed as a percentage. This applies to both physical and magical attacks (magical attacks can crit due to Sharp Eyes)."
  740. >Critical chance</abbr
  741. >
  742. <input
  743. type="number"
  744. id="crit-prob"
  745. name="crit-prob"
  746. min="0"
  747. max="100"
  748. value="0"
  749. />%
  750. </label>
  751. <label for="crit-dmg">
  752. <abbr
  753. class="help"
  754. title="The number of percentage points added to your damage multiplier, in the case that a particular line of damage is a critical hit. For Critical Shot and Critical Throw, this value is 100 percentage points fewer than what is listed in-game. For Sharp Eyes (which stacks with other sources of &ldquo;Critical multi&rdquo;), this value is 100 points greater than what is listed in-game. Also, if both Stun Mastery and Sharp Eyes apply, this value is yet another 100 points greater than what is listed in-game (in addition to the extra 100 points that Sharp Eyes already gives). Stun Mastery otherwise works as advertised."
  755. >Critical multi</abbr
  756. >
  757. <input
  758. type="number"
  759. id="crit-dmg"
  760. name="crit-dmg"
  761. min="0"
  762. value="0"
  763. />%
  764. </label>
  765. </fieldset>
  766. <fieldset>
  767. <legend>Character</legend>
  768. <label for="class">
  769. <abbr
  770. class="help"
  771. title="Which of the 6 archetypes your character&rsquo;s job falls into. Note that the number of options here is actually 7, because pirates are treated differently after second job advancement than they are during first job."
  772. >Class</abbr
  773. >
  774. <select name="class" id="class">
  775. <option value="0" selected>Beginner</option>
  776. <option value="100">Warrior</option>
  777. <option value="200">Magician</option>
  778. <option value="300">Archer</option>
  779. <option value="400">Rogue</option>
  780. <option value="500">Pirate</option>
  781. <option value="510">Pirate &ge;2&#x207f;&#x1d48; job</option>
  782. </select>
  783. </label>
  784. <label for="level">
  785. <abbr class="help" title="Your player character&rsquo;s level."
  786. >Level</abbr
  787. >
  788. <input
  789. type="number"
  790. id="level"
  791. name="level"
  792. min="1"
  793. max="200"
  794. value="30"
  795. />
  796. </label>
  797. </fieldset>
  798. <fieldset id="weapon">
  799. <legend>Weapon</legend>
  800. <label for="weapon-type">
  801. <abbr
  802. class="help"
  803. title="The type of weapon that you have equipped. Note that while &ldquo;no weapon at all&rdquo; is an option, it is only possible to attack this way if you are some kind of pirate."
  804. >Type</abbr
  805. >
  806. <select name="weapon-type" id="weapon-type">
  807. <option value="0">[no weapon]</option>
  808. <optgroup label="Warrior&rsquo;s">
  809. <option value="30" selected>One-handed sword</option>
  810. <option value="40">Two-handed sword</option>
  811. <option value="31">One-handed axe</option>
  812. <option value="41">Two-handed axe</option>
  813. <option value="32">One-handed blunt weapon</option>
  814. <option value="42">Two-handed blunt weapon</option>
  815. <option value="43">Spear</option>
  816. <option value="44">Polearm</option>
  817. </optgroup>
  818. <optgroup label="Magician&rsquo;s">
  819. <option value="37">Wand</option>
  820. <option value="38">Staff</option>
  821. </optgroup>
  822. <optgroup label="Archer&rsquo;s">
  823. <option value="45">Bow</option>
  824. <option value="46">Crossbow</option>
  825. </optgroup>
  826. <optgroup label="Rogue&rsquo;s">
  827. <option value="33">Dagger</option>
  828. <option value="47">Claw</option>
  829. </optgroup>
  830. <optgroup label="Pirate&rsquo;s">
  831. <option value="48">Knuckler</option>
  832. <option value="49">Gun</option>
  833. </optgroup>
  834. </select>
  835. </label>
  836. <label for="good-anim-prob">
  837. <abbr
  838. class="help"
  839. title="The probability of getting a &ldquo;good&rdquo; attack animation each time you basic attack. This value can apply even if you aren&rsquo;t actually basic attacking, although it is totally irrelevant for magical attacks. Most weapon types either don&rsquo;t have a distinction between &ldquo;good&rdquo; and &ldquo;bad&rdquo; animations, or they consider swinging animations to be &ldquo;good&rdquo;. The exception to this is spears, which consider swings to be &ldquo;bad&rdquo; and stabs (thrusts) to be &ldquo;good&rdquo;."
  840. >Good anim probability</abbr
  841. >
  842. <input
  843. type="number"
  844. id="good-anim-prob"
  845. name="good-anim-prob"
  846. min="0"
  847. max="100"
  848. step="0.001"
  849. value="60"
  850. />%
  851. </label>
  852. <label for="attack">
  853. <abbr
  854. class="help"
  855. title="The physical attacking skill that you are using. Basic attacks fall under &ldquo;[other]&rdquo; (except for special basic attacks: bow whacks, claw punches, and pistol-whips), along with many actual attacking skills. Note that physical-attacking summons (e.g. Frostprey) are included here as well."
  856. >Attack</abbr
  857. >
  858. <select name="attack" id="attack">
  859. <option value="0" selected>[other]</option>
  860. <option value="-1">[bow whack]</option>
  861. <option value="-2">[claw punch]</option>
  862. <optgroup label="Crusader">
  863. <option value="1111003">Panic</option>
  864. <option value="1111005">Coma</option>
  865. </optgroup>
  866. <optgroup label="Hero">
  867. <option value="1121006">Rush</option>
  868. <option value="1121008">Brandish</option>
  869. </optgroup>
  870. <optgroup label="Paladin">
  871. <option value="1121006">Rush</option>
  872. <option value="1221009">Blast</option>
  873. <option value="1221011">
  874. Heaven&rsquo;s Hammer (original Xiuz)
  875. </option>
  876. <option value="1221111">
  877. Heaven&rsquo;s Hammer (corrected Xiuz)
  878. </option>
  879. </optgroup>
  880. <optgroup label="Dragon Knight">
  881. <option value="1311101">Crusher (lvl 1~15)</option>
  882. <option value="1311001">Crusher (lvl 16~30)</option>
  883. <option value="1311004">Fury</option>
  884. <option value="1311006">Dragon Roar</option>
  885. </optgroup>
  886. <optgroup label="Dark Knight">
  887. <option value="1121006">Rush</option>
  888. </optgroup>
  889. <optgroup label="Hunter">
  890. <option value="3101003">Power Knock-Back</option>
  891. <option value="3101005">Arrow Bomb (impact)</option>
  892. <option value="3101105">Arrow Bomb (splash)</option>
  893. </optgroup>
  894. <optgroup label="Ranger">
  895. <option value="3111003">Inferno</option>
  896. </optgroup>
  897. <optgroup label="Bowmaster">
  898. <option value="3121004">Hurricane</option>
  899. <option value="3121006">Phoenix</option>
  900. </optgroup>
  901. <optgroup label="Crossbowman">
  902. <option value="3101003">Power Knock-Back</option>
  903. <option value="3201005">Iron Arrow</option>
  904. </optgroup>
  905. <optgroup label="Sniper">
  906. <option value="3211003">Blizzard</option>
  907. </optgroup>
  908. <optgroup label="Marksman">
  909. <option value="3221001">Piercing Arrow</option>
  910. <option value="3221005">Frostprey</option>
  911. </optgroup>
  912. <optgroup label="Rogue">
  913. <option value="4001334">Double Stab</option>
  914. <option value="4001344">Lucky Seven</option>
  915. </optgroup>
  916. <optgroup label="Hermit">
  917. <option value="4111005">Avenger</option>
  918. </optgroup>
  919. <optgroup label="Night Lord">
  920. <option value="4121007">Triple Throw</option>
  921. <option value="4121004">Ninja Ambush</option>
  922. <option value="4120005">Venomous Star</option>
  923. <option value="4121008">Ninja Storm</option>
  924. </optgroup>
  925. <optgroup label="Bandit">
  926. <option value="4201005">Savage Blow</option>
  927. </optgroup>
  928. <optgroup label="Chief Bandit">
  929. <option value="4211002">Assaulter</option>
  930. </optgroup>
  931. <optgroup label="Shadower">
  932. <option value="4121004">Ninja Ambush</option>
  933. <option value="4220005">Venomous Stab</option>
  934. <option value="4221007">Boomerang Step</option>
  935. </optgroup>
  936. <optgroup label="Pirate">
  937. <option value="5001001">Flash Fist</option>
  938. <option value="5001002">Somersault Kick</option>
  939. <option value="5001003">Double Shot</option>
  940. </optgroup>
  941. <optgroup label="Brawler">
  942. <option value="5101002">Backspin Blow</option>
  943. <option value="5101003">Double Uppercut</option>
  944. </optgroup>
  945. <optgroup label="Marauder">
  946. <option value="5111002">Energy Blast</option>
  947. <option value="5111004">Energy Drain</option>
  948. <option value="5111006">Shockwave</option>
  949. </optgroup>
  950. <optgroup label="Buccaneer">
  951. <option value="5121002">Energy Orb</option>
  952. <option value="5121004">Demolition</option>
  953. <option value="5121005">Snatch</option>
  954. <option value="5121007">Barrage</option>
  955. </optgroup>
  956. <optgroup label="Gunslinger">
  957. <option value="5201001">Invisible Shot</option>
  958. <option value="5201002">Grenade</option>
  959. <option value="5201004">Blank Shot</option>
  960. <option value="5201006">Recoil Shot</option>
  961. </optgroup>
  962. <optgroup label="Outlaw">
  963. <option value="5210000">Burst Fire</option>
  964. <option value="5211001">Octopus</option>
  965. <option value="5211002">Gaviota</option>
  966. <option value="5211004">Flamethrower</option>
  967. <option value="5211005">Ice Splitter</option>
  968. <option value="5211006">Homing Beacon</option>
  969. </optgroup>
  970. <optgroup label="Corsair">
  971. <option value="5220002">Wrath of the Octopi</option>
  972. <option value="5221003">Aerial Strike</option>
  973. <option value="5221004">Rapid Fire</option>
  974. <option value="5221007">Battleship Cannon</option>
  975. <option value="5221008">Battleship Torpedo</option>
  976. </optgroup>
  977. </select>
  978. </label>
  979. <label for="spell">
  980. <abbr
  981. class="help"
  982. title="The spell that you are casting. If this doesn&rsquo;t apply, just leave it at the default &ldquo;[other]&rdquo;."
  983. >Spell</abbr
  984. >
  985. <select name="spell" id="spell">
  986. <option value="0">[other]</option>
  987. <optgroup label="F/P Mage">
  988. <option value="2111002">Explosion</option>
  989. <option value="2111003">Poison Mist</option>
  990. <option value="2111006">Element Composition</option>
  991. </optgroup>
  992. <optgroup label="F/P Archmage">
  993. <option value="2121005">Elquines</option>
  994. <option value="2121007">Meteor Shower</option>
  995. </optgroup>
  996. <optgroup label="I/L Mage">
  997. <option value="2211002">Ice Strike</option>
  998. <option value="2211003">Thunder Spear</option>
  999. <option value="2211006">Element Composition</option>
  1000. </optgroup>
  1001. <optgroup label="I/L Archmage">
  1002. <option value="2221005">Ifrit</option>
  1003. <option value="2221006">Chain Lightning</option>
  1004. <option value="2221007">Blizzard</option>
  1005. </optgroup>
  1006. <optgroup label="Cleric">
  1007. <option value="2301002">Heal</option>
  1008. <option value="2301005">Holy Arrow</option>
  1009. </optgroup>
  1010. <optgroup label="Priest">
  1011. <option value="2311004">Shining Ray</option>
  1012. <option value="2311006">Summon Dragon</option>
  1013. </optgroup>
  1014. <optgroup label="Bishop">
  1015. <option value="2321003">Bahamut</option>
  1016. <option value="2321007">Angel Ray</option>
  1017. <option value="2321008">Genesis</option>
  1018. </optgroup>
  1019. </select>
  1020. </label>
  1021. <label for="speed">
  1022. <abbr
  1023. class="help"
  1024. title="The speed category of your weapon, after being adjusted by buffs. This value can never be lower than 2, so lower values are clamped to just 2. It is often (but not always) necessary to use out-of-game information to get the speed category of your weapon, because the game uses ambiguous names like &ldquo;Fast&rdquo;. Ordinary Booster skills reduce your speed category by 2. Spell Booster, depending on your implementation, may have a similar effect (reducing by 1 category at earlier levels of Spell Booster, and 2 at later levels), although it only works with wands and staves. Speed Infusion reduces by 4 categories (or, again depending on implementation, it may instead stack with other Booster skills and reduce by just 2)."
  1025. >Speed</abbr
  1026. >
  1027. <select name="speed" id="speed">
  1028. <option value="2">2 (Faster)</option>
  1029. <option value="3">3 (Faster)</option>
  1030. <option value="4">4 (Fast)</option>
  1031. <option value="5">5 (Fast)</option>
  1032. <option value="6" selected>6 (Normal)</option>
  1033. <option value="7">7 (Slow)</option>
  1034. <option value="8">8 (Slow)</option>
  1035. <option value="9">9 (Slower)</option>
  1036. </select>
  1037. </label>
  1038. <label for="spell-booster">
  1039. <abbr
  1040. class="help"
  1041. title="The amount that your spellcasting speed category is reduced by, due to buffs. This is &minus;1 at earlier levels of Spell Booster (&lt;11), and &minus;2 at later levels. This only applies to magical attacks."
  1042. >Spell booster</abbr
  1043. >
  1044. <input
  1045. type="number"
  1046. id="spell-booster"
  1047. name="spell-booster"
  1048. min="-2"
  1049. max="0"
  1050. value="0"
  1051. />
  1052. </label>
  1053. </fieldset>
  1054. <details>
  1055. <summary>Elemental</summary>
  1056. <fieldset>
  1057. <legend>Elemental stuff</legend>
  1058. <label for="ele-amp">
  1059. <abbr
  1060. class="help"
  1061. title="The percentage that your magic damage is multiplied by, according to the description of your level of Element Amplification. If you don&rsquo;t have Element Amplification, this is just 100%."
  1062. >Element Amplification</abbr
  1063. >
  1064. <input
  1065. type="number"
  1066. id="ele-amp"
  1067. name="ele-amp"
  1068. min="100"
  1069. value="100"
  1070. />%
  1071. </label>
  1072. <label for="ele-boost">
  1073. <abbr
  1074. class="help"
  1075. title="The percentage of damage added to your attacks (only applies when using Flamethrower and/or Ice Splitter) due to the corsair skill, Elemental Boost. This value can be found in the description of the level of the skill that you have. Note that this is unrelated to the &ldquo;DoT/effect damage&rdquo; increase granted by the same skill."
  1076. >Elemental Boost</abbr
  1077. >
  1078. <input
  1079. type="number"
  1080. id="ele-boost"
  1081. name="ele-boost"
  1082. min="0"
  1083. value="0"
  1084. />%
  1085. </label>
  1086. <label for="ele-wep">
  1087. <abbr
  1088. class="help"
  1089. title="How much your current weapon amplifies the element of the spell that you are currently casting. This only applies when using an Elemental Wand or Elemental Staff in conjunction with a spell of the same element, in which case this should be 25%."
  1090. >Elemental Wand/Staff</abbr
  1091. >
  1092. <input
  1093. type="number"
  1094. id="ele-wep"
  1095. name="ele-wep"
  1096. min="0"
  1097. value="0"
  1098. />%
  1099. </label>
  1100. <fieldset>
  1101. <legend>Elemental charge</legend>
  1102. <label for="no-ele-charge">
  1103. <abbr
  1104. class="help"
  1105. title="No (white knight/paladin) elemental charge is active."
  1106. >None</abbr
  1107. >
  1108. <input
  1109. type="radio"
  1110. id="no-ele-charge"
  1111. name="ele-charge"
  1112. value="no-ele-charge"
  1113. checked
  1114. />
  1115. </label>
  1116. <label for="holy-ele-charge">
  1117. <abbr
  1118. class="help"
  1119. title="One of the paladin (fourth job) elemental charges is active."
  1120. >Holy</abbr
  1121. >
  1122. <input
  1123. type="radio"
  1124. id="holy-ele-charge"
  1125. name="ele-charge"
  1126. value="holy-ele-charge"
  1127. />
  1128. </label>
  1129. <label for="other-ele-charge">
  1130. <abbr
  1131. class="help"
  1132. title="One of the white knight (third job) elemental charges is active."
  1133. >Other</abbr
  1134. >
  1135. <input
  1136. type="radio"
  1137. id="other-ele-charge"
  1138. name="ele-charge"
  1139. value="other-ele-charge"
  1140. />
  1141. </label>
  1142. <label for="ele-charge-dmg">
  1143. <abbr
  1144. class="help"
  1145. title="The damage multiplier, as listed in the current skill level&rsquo;s description, of the active elemental charge. Expressed as a percentage."
  1146. >Charge dmg</abbr
  1147. >
  1148. <input
  1149. type="number"
  1150. id="ele-charge-dmg"
  1151. name="ele-charge-dmg"
  1152. min="100"
  1153. value="100"
  1154. />%
  1155. </label>
  1156. <label for="ele-charge-level">
  1157. <abbr
  1158. class="help"
  1159. title="The skill level of the elemental charge that is currently active."
  1160. >Charge skill level</abbr
  1161. >
  1162. <input
  1163. type="number"
  1164. id="ele-charge-level"
  1165. name="ele-charge-level"
  1166. min="1"
  1167. max="30"
  1168. value="1"
  1169. />
  1170. </label>
  1171. </fieldset>
  1172. </fieldset>
  1173. </details>
  1174. <details>
  1175. <summary>Combo attack</summary>
  1176. <fieldset>
  1177. <legend>(Advanced) combo attack</legend>
  1178. <label for="ca-active">
  1179. <abbr class="help" title="Is (Advanced) Combo Attack active?"
  1180. >Active</abbr
  1181. >
  1182. <input type="checkbox" id="ca-active" name="ca-active" />
  1183. </label>
  1184. <label for="ca-dmg">
  1185. <abbr
  1186. class="help"
  1187. title="The damage multiplier, as listed in the current skill level&rsquo;s description, of Combo Attack. If you have Advanced Combo Attack, the percentage points listed in its description are added to those of Combo Attack (e.g. 220%&nbsp;+&nbsp;30%&nbsp;=&nbsp;250%). Expressed as a percentage."
  1188. >CA+ACA dmg</abbr
  1189. >
  1190. <input
  1191. type="number"
  1192. id="ca-dmg"
  1193. name="ca-dmg"
  1194. min="100"
  1195. value="104"
  1196. />%
  1197. </label>
  1198. <label for="ca-level">
  1199. <abbr class="help" title="The skill level of Combo Attack."
  1200. >CA level</abbr
  1201. >
  1202. <input
  1203. type="number"
  1204. id="ca-level"
  1205. name="ca-level"
  1206. min="1"
  1207. max="30"
  1208. value="1"
  1209. />
  1210. </label>
  1211. <label for="ca-orbs">
  1212. <abbr
  1213. class="help"
  1214. title="The number of (Advanced) Combo Attack orbs that you currently have."
  1215. >Orbs</abbr
  1216. >
  1217. <input
  1218. type="number"
  1219. id="ca-orbs"
  1220. name="ca-orbs"
  1221. min="1"
  1222. max="10"
  1223. value="1"
  1224. />
  1225. </label>
  1226. </fieldset>
  1227. </details>
  1228. <details>
  1229. <summary>Berserk</summary>
  1230. <fieldset>
  1231. <legend>Berserk</legend>
  1232. <label for="zerk-active">
  1233. <abbr class="help" title="Is Berserk active?">Active</abbr>
  1234. <input type="checkbox" id="zerk-active" name="zerk-active" />
  1235. </label>
  1236. <label for="zerk-dmg">
  1237. <abbr
  1238. class="help"
  1239. title="The damage multiplier, as listed in the current skill level&rsquo;s description, of Berserk. Expressed as a percentage."
  1240. >Berserk dmg</abbr
  1241. >
  1242. <input
  1243. type="number"
  1244. id="zerk-dmg"
  1245. name="zerk-dmg"
  1246. min="100"
  1247. value="100"
  1248. />%
  1249. </label>
  1250. </fieldset>
  1251. </details>
  1252. <fieldset>
  1253. <legend>Enemy</legend>
  1254. <label for="enemy-wdef">
  1255. <abbr
  1256. class="help"
  1257. title="The target monster&rsquo;s WDEF (weapon defence)."
  1258. >WDEF</abbr
  1259. >
  1260. <input
  1261. type="number"
  1262. id="enemy-wdef"
  1263. name="enemy-wdef"
  1264. value="0"
  1265. />
  1266. </label>
  1267. <label for="enemy-mdef">
  1268. <abbr
  1269. class="help"
  1270. title="The target monster&rsquo;s MDEF (magic defence)."
  1271. >MDEF</abbr
  1272. >
  1273. <input
  1274. type="number"
  1275. id="enemy-mdef"
  1276. name="enemy-mdef"
  1277. value="0"
  1278. />
  1279. </label>
  1280. <label for="ele-sus">
  1281. <abbr
  1282. class="help"
  1283. title="How susceptible is the target monster to the element that you are currently using. This applies to magical attacks in the obvious ways. For physical attacks, only some physical attacks have elements; for example, Flamethrower is elementally fire, and Blast is elementally holy when used with Holy/Divine Charge."
  1284. >Element susceptibility</abbr
  1285. >
  1286. <select name="ele-sus" id="ele-sus">
  1287. <option value="0">Immune</option>
  1288. <option value="0.5">Strong</option>
  1289. <option value="1" selected>Neutral</option>
  1290. <option value="1.5">Weak</option>
  1291. </select>
  1292. </label>
  1293. <label for="enemy-level">
  1294. <abbr class="help" title="The level of the target monster."
  1295. >Level</abbr
  1296. >
  1297. <input
  1298. type="number"
  1299. id="enemy-level"
  1300. name="enemy-level"
  1301. min="1"
  1302. value="1"
  1303. />
  1304. </label>
  1305. <label for="enemy-count">
  1306. <abbr
  1307. class="help"
  1308. title="How many enemy targets there are of this attack. This value can be greater than one, but note that this does not take into account the damage taken by any of said virtual enemies, except for one of them (you can choose exactly which one by modifying &ldquo;Ordinal # of hit&rdquo;). This value is only here for skills like Heal, which change their per-line damage based on the total number of targets. Note that when casting Heal (maximum of 6 targets), the caster counts as a target, thus lowering the maximum number of possible enemy targets from 6 to 5."
  1309. >Count</abbr
  1310. >
  1311. <input
  1312. type="number"
  1313. id="enemy-count"
  1314. name="enemy-count"
  1315. min="1"
  1316. max="15"
  1317. value="1"
  1318. />
  1319. </label>
  1320. <label for="hit-ord">
  1321. <abbr
  1322. class="help"
  1323. title="The position/index of the particular damaging strike in question, within the ordering of all damaging strikes produced by the attack that you&rsquo;re using. For example, when using Iron Arrow, the first damaging strike (the one that damages the first monster struck by the arrow) has an ordinal # of 1, the next damaging strike an ordinal # of 2, and so on."
  1324. >Ordinal # of hit</abbr
  1325. >
  1326. <input
  1327. type="number"
  1328. id="hit-ord"
  1329. name="hit-ord"
  1330. min="1"
  1331. max="6"
  1332. value="1"
  1333. />
  1334. </label>
  1335. </fieldset>
  1336. </div>
  1337. <div id="calculator-output">
  1338. <b>Range, <em>crit range</em>:</b>
  1339. <span id="range">??? ~ ???</span>,
  1340. <em id="crit-range">??? ~ ???</em>
  1341. <br />
  1342. <b>Expected dmg per line:</b>
  1343. <span id="expected-per-hit">???</span>
  1344. <br />
  1345. <b>&sigma;<sub>per line</sub>, CV<sub>per line</sub>:</b>
  1346. <span id="sd-per-hit">???</span>, <span id="cv-per-hit">???</span>
  1347. <br />
  1348. <b>Total range:</b>
  1349. <span id="total-range">??? ~ ???</span>
  1350. <br />
  1351. <b>Total expected dmg per hit:</b>
  1352. <span id="expected-per-hit-total">???</span>
  1353. <br />
  1354. <b>&sigma;<sub>total hit</sub>, CV<sub>total hit</sub>:</b>
  1355. <span id="sd-per-hit-total">???</span>,
  1356. <span id="cv-per-hit-total">???</span>
  1357. <br />
  1358. <b>Expected DPS:</b> <span id="expected-dps">???</span>
  1359. <br />
  1360. <b>&sigma;<sub>DPS</sub>, CV<sub>DPS</sub>:</b>
  1361. <span id="sd-dps">???</span>, <span id="cv-dps">???</span>
  1362. <hr />
  1363. <h3>Magic</h3>
  1364. <b>Range, <em>crit range</em>:</b>
  1365. <span id="range-magic">??? ~ ???</span>,
  1366. <em id="crit-range-magic">??? ~ ???</em>
  1367. <br />
  1368. <b>Expected dmg per line:</b>
  1369. <span id="expected-per-hit-magic">???</span>
  1370. <br />
  1371. <b>&sigma;<sub>per line</sub>, CV<sub>per line</sub>:</b>
  1372. <span id="sd-per-hit-magic">???</span>,
  1373. <span id="cv-per-hit-magic">???</span>
  1374. <br />
  1375. <b>Total range:</b>
  1376. <span id="total-range-magic">??? ~ ???</span>
  1377. <br />
  1378. <b>Total expected dmg per hit:</b>
  1379. <span id="expected-per-hit-total-magic">???</span>
  1380. <br />
  1381. <b>&sigma;<sub>total hit</sub>, CV<sub>total hit</sub>:</b>
  1382. <span id="sd-per-hit-total-magic">???</span>,
  1383. <span id="cv-per-hit-total-magic">???</span>
  1384. <br />
  1385. <b>Expected DPS:</b>
  1386. <span id="expected-dps-magic">???</span>
  1387. <br />
  1388. <b>&sigma;<sub>DPS</sub>, CV<sub>DPS</sub>:</b>
  1389. <span id="sd-dps-magic">???</span>,
  1390. <span id="cv-dps-magic">???</span>
  1391. <hr />
  1392. <h3>Warnings</h3>
  1393. <div id="warnings-div">
  1394. <span id="warnings" class="success">No warnings.</span>
  1395. </div>
  1396. </div>
  1397. <a href="#legal" class="h-anchor"><h2 id="legal">Legal</h2></a>
  1398. <p>
  1399. All of the code on this page is entirely
  1400. <a
  1401. target="_blank"
  1402. rel="noopener noreferrer"
  1403. href="https://en.wikipedia.org/wiki/Free_software"
  1404. >free</a
  1405. >
  1406. (<a
  1407. target="_blank"
  1408. rel="noopener noreferrer"
  1409. href="https://www.gnu.org/licenses/agpl-3.0"
  1410. >GNU AGPL v3</a
  1411. >+). See
  1412. <a href="../source.html" data-jslicense="1">the Source page</a>
  1413. for more information and access to source code.
  1414. </p>
  1415. </main>
  1416. </div>
  1417. </div>
  1418. </body>
  1419. </html>