Not stricter, stupid own standarts that are supported only by Microsoft.

I suggest a possibility to add own sets for opponents. There are, well, sets that aren't on smogon database. I think you can also use statistics for that.

And I think you can merge getUserOptions() and getTargets() into one function (or an object so you can generate json with whatever generates that code) to save some traffic and avoid writing same code twice.

It says that Specs Heatran and Chandelure KO +1 CM Reuniclus with Overheat while they don't /:
I think what happens is Overheat ignores boosts for some weird reason; the calcs seem to be correct for Kyurem's Specs DM.

It says that Specs Heatran and Chandelure KO +1 CM Reuniclus with Overheat while they don't /:
I think what happens is Overheat ignores boosts for some weird reason; the calcs seem to be correct for Kyurem's Specs DM.

Click to expand...

Good catch. Looks like the calculator is assuming Flash Fire is activated. I'll fix that soon.

Not stricter, stupid own standarts that are supported only by Microsoft.

I suggest a possibility to add own sets for opponents. There are, well, sets that aren't on smogon database. I think you can also use statistics for that.

And I think you can merge getUserOptions() and getTargets() into one function (or an object so you can generate json with whatever generates that code) to save some traffic and avoid writing same code twice.

Click to expand...

Thanks for the tips, I will look into json. As for adding custom sets, I'm hesitant to do that, mostly for simplicity. In the long run, Smogon should eventually have most of the noteworthy sets. If there's a really popular set that Smogon doesn't have for some reason, I can always add it manually.

Well, I meant manual input, when building a pokemon one usually want to ensure KO against certain threat no mater what set it runs (and people usually use own sets, even stupid ones sometimes) which will need calculations with least beneficial circumstances (e.g. +Def nature, max HP/Def IVs and EVs when calclating coverage).

And I have one more question: why do you store all the data (moves, their effects, pokemon, etc) in js executables? You could store it in, say, some SQL db and retrieve it with server-side script, this will significally reduce scripts size.
It's just a question, I'm curious a bit)

Good news! I've added LC Pokemon to the calculator, and their silly single digit stats give some amusing damage %s when you forget to change tiers (CB Guts Heracross Megahorn vs Choice Scarf Abra: 145610.52 - 171315.78%). I also fixed the Flash Fire bug (it now shows that the attacker has Flash Fire activated, and there's another entry for when it isn't). Enjoy!

Well, I meant manual input, when building a pokemon one usually want to ensure KO against certain threat no mater what set it runs (and people usually use own sets, even stupid ones sometimes) which will need calculations with least beneficial circumstances (e.g. +Def nature, max HP/Def IVs and EVs when calclating coverage).

And I have one more question: why do you store all the data (moves, their effects, pokemon, etc) in js executables? You could store it in, say, some SQL db and retrieve it with server-side script, this will significally reduce scripts size.
It's just a question, I'm curious a bit)

Click to expand...

I actually had an earlier version of the calculator where you can customize both sides, I just stopped working with it at a certain point, so it would need some fixes now. I'll try to get that up relatively soon.

There's two reasons I'm using js executables instead of a db. The first is that I built this thing without a clear plan; I just took AMF's old calculator and added things on in pieces until I wound up with what we have now. The second is that I'm not really doing enough with the data to make the abstraction of a db valuable. It runs fast enough now, and I can't think of any other queries I'd need to make, so there's not much practical gain in swapping in some MySQL+PHP. But you're right that what I'm doing right now isn't exactly best practice, and if I was doing this for work or a class I'd definitely be using a more elegant solution.

this is very awesome, and i wount be able to stress that enough, but can you add in some option selects?

for instance, for the one vs all calculator, can you add in things like
"ignore all that dont get ohko'd/2hko'd"
"ignore air balloon"
"ignore intimidate" (in case something is behind a sub)
"assume stealth rocks" (which would basically be "ignore multiscale", i guess)

or maybe, if you can do something more general, add a check box beside each name which would hide it on clicking it, in case I'd only like to care about some pokemon in a tier (i dont particularly care what alomomola walls, but i'd certainly like to see quagsire in my results, for instance)? then add an "unhide all" check box, or undo all hides whena new calculation is performed.

Now that Pokemon can have analyses for multiple tiers on-site, the calculator will use the tier the set is meant for, rather than just the tier the Pokemon is in. So for example, Milotic's OU bulky water set will show up in OU, but only her UU sets will show up in UU. The same will be true for Uber Pokemon once those analyses get uploaded. Hopefully this will make the calculator even more useful for specific tiers.

As for additional features, like more filters, copypastable damage calcs, and the version where you can customize both sides: I will get to those eventually, but I'm very busy for the next several months, so it probably won't happen for a while.

Yeah I was lazy and just set Grass Knot/Low Kick to 80 power and Gyro Ball/Heavy Slam to 100 instead of actually checking the weight. I have some time off later this week so I'm planning on improving a few things, including this.

Alright, I finally sat down and busted out the 1v1 version of the calculator. Now you can select the sets for both the attacker and the defender and tweak both sides to get exactly the calculation you want. Enjoy!