How many times have you washed?

Determine the approximate number of times that you have HP washed your character based on your job, level, and current HP. The formulas are based on Nise's HP Washing Formula Compilation on the MapleLegends forum.

Skills that increase max HP are assumed to be maxed as soon as possible. The calculator assumes fresh AP on washes. The number of washes are a function of the minimum HP at every level. The results are approximate; your milage may vary based.


For details on implementation, open the page's source code, or expand the following section.

implementation
      function calculateWashed(job, level, hp, hp_equips) {
// Calculate the approximate number of washes performed.
// See Nise's guide: https://forum.maplelegends.com/index.php?threads/nises-hp-washing-formula-compilation.38558/
// and this outdated guide: https://forum.maplelegends.com/index.php?threads/hp-washing-guide.3409/
// Warriors have skills that max HP gained on levels:
// warriors: https://maplelegends.com/lib/skill?id=1000001
// brawlers: https://maplelegends.com/lib/skill?id=5100000
// Warriors max their skill at level 15, while brawlers max it at level 33.

let max_hp_inc_warrior = (level - 15) * 40 + (6 + 15 + 24);
let max_hp_inc_bucc = (level - 33) * 30 + (3 + 12 + 21);
let lookup = {
beginner: { minHP: 12 * level + 50, gainedHP: (8 + 12) / 2 },
magician: { minHP: 10 * level + 64, gainedHP: (6 + 10) / 2 },
spearman: {
minHP: max_hp_inc_warrior + 24 * level + 172,
gainedHP: (50 + 54) / 2,
},
fighter: {
minHP:
max_hp_inc_warrior + 24 * level + 172 + (level > 30 ? 300 : 0),
gainedHP: (50 + 54) / 2,
},
bowman: {
minHP: 20 * level + 253 + (level > 30 ? 125 : 0),
gainedHP: (16 + 20) / 2,
},
gunslinger: {
minHP: 22 * level + 255 + (level > 30 ? 125 : 0),
gainedHP: (16 + 20) / 2,
},
brawler: {
minHP: max_hp_inc_bucc + 22 * level + 255 + (level > 30 ? 125 : 0),
gainedHP: (36 + 40) / 2,
},
};
lookup.page = lookup.spearman;
lookup.thief = lookup.bowman;

let data = lookup[job];
console.log(data);
let diff = hp - data.minHP - hp_equips;
return {
washes: Math.floor(diff / data.gainedHP),
hp: diff,
};
}