Skip to content

Releases: doshidak/showdex

v1.0.2

24 Sep 03:46
268d249
Compare
Choose a tag to compare

More National Dex & BDSP fixes, proper legacy support for gens 1 & 2, switchable Pokémon formes, categorized items, and experimental support for CAP movesets!

Other than that, it's the usual slew of bug fixes and minor visual improvements.


Deployment

Browser Version Build Submitted Checked Status
Chrome v1.0.1 → v1.0.2 1663988537455 2022 Sep 23 20:31 2022 Sep 27 06:00 Deprecated
Firefox v1.0.1 → v1.0.2 1663988553661 2022 Sep 23 20:38 2022 Sep 23 20:45 Deprecated
Opera v1.0.2 1663988537455 2022 Sep 23 21:25 2022 Oct 11 08:09 Deprecated
  • Timestamps are in PDT (UTC-07:00).

Hey Opera users!

Note
We've submitted it to Opera, but apparently, approval could take months.
In the meantime, the only way to install this extension is through the Chrome Web Store since Opera natively supports Chrome extensions, including directly installing extensions from the Chrome Web Store.

Are you using Opera, Opera GX, or Opera Crypto?

Install via Chrome Web Store

What's New

General

  • Added ability to switch between Pokémon's formes by selecting its name near its icon and HP bar.
    • Switched formes won't persist between updates, so it'll be overwritten with the battle's forme on the next turn.
    • If no alternative formes exist, the name won't be selectable.
    • Not 100% tested! There may be some edge cases that crash the Calcdex. If so, please let me know!
  • Added support for legacy (gens 1 & 2) mechanics, such as SPC (Special) stat and DVs (Determinant Values).
  • Added missing Hidden Power moves under its own group in the moves dropdown for gens 2+.
  • Prioritized using the Pokémon's revealed ability/item (if any) when applying a set during initialization.
  • Improved Pokémon detection, particularly those with the same nicknames, during battle sync.
  • Added experimental support for non-standard movesets used in CAP (Create-a-Pokémon).

UI

  • Hid the item icon from Pokémon icons when mega-evolved.
  • Categorized items dropdown by popular, items, Pokémon-specific, usually useless, and useless (exactly like the Teambuilder).
  • Made the damage range description easier to read by separating each part on their own lines.
    • The long description text will be copied unformatted to your clipboard (same functionality as v1.0.1).
  • Improved visibility of group headings in dropdown menus.
  • Replaced default system scrollbars with custom ones so it doesn't look like ass, particularly on Windows.
    • They look like macOS system scrollbars, so Mac users may not even notice this change.
  • Disabled inputs of unsupported mechanics in older gens, such as weather conditions and terrain.
    • For instance, only Sun/Rain/Sand is supported since gen 2, with the addition of Hail in gen 3 and Harsh Sunshine/Heavy Rain/Strong Winds in gen 6.
    • Additionally, abilities and natures are unsupported in legacy gens (gens 1 and 2), while gen 2 introduces items (gen 1 does not).
  • Placed logged-in player always at the top of the Calcdex (will be configurable in the future).
  • Replaced "Yours" and "Theirs" with up and down arrows, respectively, in the headings for screens only when spectating.

Bug Fixes

  • Fixed the Teambuilder panel moving to the right when closing the last Calcdex tab.
  • Fixed the refresh confirmation prompt that appears once a Calcdex opens, even if all tabs are closed.
  • Fixed gen 8-exclusive Pokémon (like Corviknight) with a Z crystal (like Flyinium Z) crashing the Calcdex in National Dex formats.
  • Fixed Pokémon's set showing as "None" when switching formes.
  • Fixed Pokémon's calculated stats taking into account item effects (like Choice Band) while mega-evolved.
  • Fixed the Hellodex and Calcdex not changing the color scheme when setting the color theme in Showdown's options panel.
  • Fixed Stealth Rock not being accounted for in damage calculations.
  • Fixed stage hazards always being present in damage calculations even after the Pokémon is active on the field.
  • Fixed incorrect base HP stat in damage calculations against transformed Pokémon.
  • Fixed sets applied to transformed Pokémon as it should not overwrite the pre-transformation HP EV/IV and nature.
  • Fixed Eviolite not appearing in the Pokémon's calculated stats due to improper NFE (Not Fully Evolved) detection.
  • Fixed Calcdex crash when changing SPA/SPD stats of Dexited Pokémon.
  • Fixed double-stage boosts when Pokémon has the Intrepid Sword or Download ability.
  • Fixed status that were still present in damage calculations for dead Pokémon.
  • Fixed ability from a set occasionally not updating when the set is initially applied to a Pokémon.

Under-the-Hood

  • Updated all applicable dependencies and devDependencies.
  • Added showdexSlice to Redux, which will store all extension settings in the future.
    • Currently being used to dispatch color scheme changes to React from Showdown's preferences.

Testing

This version was tested against the following formats (to make sure the Calcdex doesn't crash):

  • gen1ou
  • gen1randombattle
  • gen2ou
  • gen2randombattle
  • gen3randombattle
  • gen4randombattle
  • gen5randombattle
  • gen6randombattle
  • gen7randombattle
  • gen8balancedhackmons
  • gen8battlefactory (missing many sets)
  • gen8bdspou
  • gen8bdsprandombattle
  • gen8cap
  • gen8cap1v1
  • gen8lc (missing many sets like for Eevee, Espurr, and Gible)
  • gen8nationaldex (missing sets for Serperior and Greninja)
  • gen8nationaldexag
  • gen8nationaldexmonotype
  • gen8nationaldexuu
  • gen8ou
  • gen8pu
  • gen8randombattle
  • gen8superstaffbros4 (calcs for custom abilities [e.g., Charged Up] and moves [e.g., DROP A DRACO] don't work, unfortunately)

Tested formats from v1.0.1 that aren't listed here should still be working.

This isn't to say extensive testing has been done in each of these formats, so feel free to open an issue to let me know if something's not right with a specific format.

v1.0.1

10 Sep 03:49
591c2fc
Compare
Choose a tag to compare

This version adds a new redesigned Hellodex, additional QoL (Quality of Life) changes, and major bug fixes, particularly for BDSP and National Dex formats, which crashed the Calcdex in the previous version.

Deployment

Hey Firefox users!

yooo Mozilla approved it 💯

We're on Firefox!

What's New

General

  • Added Firefox support.
    • For developers: Updated the README.md with information on how to build for Firefox.
  • Added additional sites that the extension will load into:
  • Locked Pokémon abilities and moves to their legal sets in certain formats like OU and Ubers.
    • Additionally, all abilities and/or moves will be shown if the Pokémon's legal abilities and/or moves could not be found, even if in a legal-locked format like OU.
    • Any other format will show ALL abilities and moves, including illegal ones.
  • Improved server spread guesser by attempting more possible IVs other than 0 and 31.

UI

  • Redesigned Hellodex.
  • Added ability to reopen Calcdex tabs from the Hellodex.
  • Added value clearing when editing an EV/IV value.
    • Reverts back to the current value when no change has been made.
  • Highlighted EVs/IVs orange when completely unset (i.e., all 0's).
  • Reverted to 31 for IVs and 252 for EVs instead of 0 when manually typing in a higher value.
    • Using the up and down arrow keys will still overflow to the minimum value when at the maximum (and vice versa).
  • Added "N/A" for the damage range of status moves (e.g., Toxic) if they will work when used.
    • If blank, indicates that the move will not work, which could be due to Misty Terrain, for instance.
    • Similar to how the damage for Earthquake will be blank if the opposing Pokémon has Levitate.
  • Added tooltip showing the description of the calculation when hovering over the damage range.
    • Same description you see in the original Damage Calculator.
    • e.g., "40 Atk Snorlax Earthquake vs. 252 HP / 252+ Def Sableye: 70-83 (23 - 27.3%) -- 59.7% chance to 4HKO"
    • Clicking on the damage range will copy the description to your clipboard.
  • Added separate toggles for Z and Max moves.
    • Previously was a single button, distinguishing Z or Max by the format's gen, but formats like gen8nationaldexag allow both Z and Max.
    • Selecting both Z and Max will ignore the last button clicked; e.g., selecting Z first will change the moves to Z moves, then selecting Max won't have any effect.
    • Note that you won't see a Max button in gen8nationaldex since the format has a Dynamax clause.
  • Adjusted EV/IV text field backgrounds so they don't overlap each other.
  • Darkened the grays for synced boost stages cause it was too washed out.
  • Slightly increased the length of the Pokémon's HP bar.
  • Slightly increased the default font size of tooltips.

Bug Fixes

  • Fixed BDSP formats crashing the Calcdex when non-gen 8 Pokémon are present (e.g., Bibarel).
    • Also seems to fix gens 3+ (gens 1 and 2 are still broken since they rely on DVs, which the UI and data layers do NOT support them at the moment).
  • Fixed National Dex formats crashing the Calcdex for many reasons, such as having a Z crystal (e.g., Steelium Z).
  • Fixed "Reset" button still showing for abilities and items when changing their values back to the actual values in the battle.
  • Fixed "X" button in the move dropdown not clearing the value.
  • Fixed move tooltip and calculations not appearing for some moves like Hidden Power.
  • Fixed previously fainted Pokémon showing fainted status despite having full HP again when replaying a battle after it ends.
  • Fixed indeterminable damage range/NHKO crashing the Calcdex.
    • On development, spits the error out in the console.
    • On production, silently fails (but does not crash).
  • Fixed invalid calculations for conditionally defensive moves like Psyshock by patching @smogon/calc to the latest commit.

Testing

This version was tested against the following formats (to make sure the Calcdex doesn't crash):

  • gen3ou
  • gen4ou
  • gen5ou
  • gen6ou
  • gen7ou
  • gen81v1
  • gen8bdspou
  • gen8bdsprandombattle
  • gen8challengecup1v1
  • gen8ichoosechu
  • gen8metronomebattle
  • gen8monotype
  • gen8ou
  • gen8nationaldex
  • gen8nationaldexag
  • gen8nationaldexmonotype
  • gen8randombattle
  • gen8randombattleblitz
  • gen8randomdoublesbattle
    • Calcdex works, but you can only select one Pokémon at at a time, obviously.
    • However, calculations and stat calculations may not be 100% accurate since ally Pokémon aren't taken into account yet (e.g., Plusle and Minun).
  • gen8ru
  • gen8ubers
  • gen8uu

This isn't to say extensive testing has been done in each of these formats, so feel free to open an issue to let me know if something's not right with a specific format.

v1.0.0

03 Sep 03:31
Compare
Choose a tag to compare

Official "first" version lol.

What's New

General

  • Updated forum post URL in Hellodex.
    • Hope you enjoyed the surprise cause it's gone.

Bug Fixes

  • Fixed Guts and Quick Feet showing a stat reduction.
  • Fixed Pokémon's status not being taken into account in calculations.

v0.1.3

01 Sep 06:49
c7bbdfa
Compare
Choose a tag to compare
v0.1.3 Pre-release
Pre-release

Extension is now in a place to be release-ready, which isn't to say it's perfect, but it's good enough that we can start getting some dank user feedback.

Mostly under-the-hood changes with some QoL (Quality of Life) improvements, minor visual tweaks & a couple bug fixes.

What's New

General

  • Added Hellodex tab, which will open once when you load into Showdown, letting you know the extension is locked and loaded.
  • Factored in most abilities, items, and field conditions into the Pokémon's displayed final stats.
  • Added support for Pokémon with Transform, like Ditto.

UI

  • Darkened and bolded some label colors cause they appeared too washed on some monitors.
  • Changed "%KO" column to "KO %" in the Pokémon's moveset table.
  • Updated "EVs" header to turn red when total EVs are illegal.
  • Updated Multiscale to be toggleable anytime, regardless of the Pokémon's current HP.
  • Increased width of the Smogon University popup window due to layout glitches on previous width.
  • Disabled Pokémon nicknames (for now; will be a configurable setting in the future).
  • Disabled "Max" toggle if the battle has the Dynamax Clause enabled.
  • Grouped sets by format instead of abbreviating formats in the set's name.

Bug Fixes

  • Fixed sets occasionally not downloading.
  • Fixed empty Pokémon for player 1 only when spectating a randoms game.
  • Fixed inconsistent Pokémon ID hashing preventing auto-sync.
  • Fixed screens applying to the wrong side during matchup calculations.
  • Fixed weather and terrain not automatically clearing once expired.
  • Fixed Pokémon icons not reflecting forme changes.
  • Fixed missing field conditions such as Magic Room and Wonder Room.
  • Fixed calculations for Dynamaxed Pokémon.
  • Fixed EV/IV input allowing for non-numerical characters and negative values.
  • Fixed spread guessing for dead server Pokémon with 100 max HP when refreshed mid-battle.
  • Fixed battle timer, room, and chat events triggering a battle sync.

Under-the-Hood

  • Switched to using ESModules from CommonJS.
    • package.json now defines type as "module".
    • This breaks cz-customizable (preventing you from commiting), so you'll need to run yarn patch-ghooks before running yarn commit.
  • Updated to react & react-dom v18 (previously v17).
  • Updated any outdated dependencies and devDependencies.
    • Including webpack, whose config has been updated into an ESModule.
  • Replaced Calcdex's state manager from React's useReducer() to Redux & RTK Query.
  • Refactored Calcdex codebase.

Installation Instructions

Warning
This version is considered a pre-release. Install at your own risk!

  1. Download & extract showdex-v0.1.3-b1661932302322.zip to somewhere accessible.
  • Since this ZIP was uploaded to the Chrome store, the files are not contained in a directory.
  • Make sure you extract the ZIP contents into a directory!
  1. Open Chrome & navigate to chrome://extensions.
  2. Enable Developer mode (if not enabled already).
  3. Select Load unpacked & navigate to the directory you extracted the files to.
  4. Once the extension appears in the list, navigate to https://play.pokemonshowdown.com.
    • Double-check that underneath the ID, it says service worker and NOT service worker (Inactive).
    • If the latter is the case, hit the refresh icon. Otherwise, you'll be wondering why none of the sets load!
  5. ???
  6. Profit!

Known Issues

  • "Auto" button next to "Set" currently does nothing, still.
    • As mentioned in the Future Features section, this feature is intended to select the most likely set based on the Pokemon's revealed moveset.
  • Once the Calcdex tab is closed, it will never reopen again for that battle.
  • Switching between light/dark mode in Showdown's settings doesn't automatically update until the end of the turn.
    • Hence, if the battle is already over, Calcdex's theme will never switch, requiring the page to be reloaded.
    • Alternatively, replaying the battle (with the Calcdex open) will retrigger a turn, causing the theme to correctly apply.
  • Regenerator Pokemon's HP doesn't update until the next time they're switched in, resulting in inaccurate KO values.
  • Pokémon may still have a consumed item set as their item when refreshing mid-battle.

v0.1.2

05 Apr 03:04
Compare
Choose a tag to compare
v0.1.2 Pre-release
Pre-release

Big update!

Fixed a few bugs, improved initialization performance (but still needs a bit more work), added lots of QoL (Quality of Life) features, and cleaned-up the UI to look a little less Terminal-y.

(...Actually, still looks pretty Terminal-y, but looks more like zsh with powerlevel10k now, as opposed to vanilla bash before.)

What's New

General

  • Added auto-selection to the currently active Pokémon, enabled for each player by default.
  • Added visual indicators for stat changes as a result of statuses (Burn [BRN] & Paralysis [PAR]) and abilities.
    • Abilities Guts and Quick Feet will show indicators for a boost instead of a reduction.
    • Ability Slow Start will show a reduction indicator for ATK and SPE.
    • There are more abilities to account for, but these 3 should be fine for now.
  • Added light mode support. (This was originally developed using Showdown's dark mode.)
  • Added clickable Pokémon icons to the left of the name/HP/types/status to access its page on Smogon.
  • Added partial support for Z/Max/G-Max moves.
    • Max/G-Max detection (for gen 8) is a little awry. Fails to detect if the Pokémon is the G-Max forme.
    • Z moves (for gen 7) should work fine though.
    • There's no auto Z/Max/G-Max detection yet, so you'll need to manually toggle this option on.
  • Improved visual clarity in the UI, notably indicators for active/selected Pokémon.
  • Added minor performance optimizations.

Bug Fixes

  • Fixed missing PSN status (poisoned, not badly poisoned [i.e., TOX]).
  • Fixed Pokémon's HP not being factored into the move matchup calculation.
  • Fixed knocked-off/consumed items not clearing the Pokémon's item.
    • Note that if you manually change the item (you'll see a blue "RESET" button), the item won't be cleared!
      • e.g., Thundurus actually has Heavy-Duty Boots, but you switch it to Leftovers, then gets its item knocked-off. The item will still be Leftovers since you changed it, until you hit the blue "RESET" button (only then will it say None, as expected).
    • This is not a bug, but a feature: anything you manually change will stay that way, until you reset the value.
    • If the item was knocked-off, but the "RESET" button doesn't appear, that's a bug though (happened once during my testing).
      • (I don't believe my "fix" to be foolproof lmao.)
      • Fortunately, you can still manually clear the item by clicking the "X" icon next to the item dropdown.
  • Fixed incorrect sorting of Pokémon sets.
    • Sets that match the current battle's format should be at the top of the list.
      • e.g., a set called OU Choice Scarf should come first before UU Defensive Pivot and even OU-BDSP Choice Scarf in a gen8ou format.
  • Fixed occassional displays of "0.0% nHKO" or "100.0% nHKO" due to rounding errors.
  • Fixed Pokémon sets downloading multiple times simultaneously, causing some major slowdowns during initialization.
  • Fixed Aegislash crashing the extension, particularly when its current forme (Shield/Blade) cannot be determined from the battle state.
    • Defaults to the Blade forme when this happens.
  • Partially fixed mid-battle Pokémon forme changes that cause unexpected behavior.
    • Not all Pokémon are accounted for, so some forme changes may still crash the extension or cause unexpected behaviors.
    • Calcdex would think it's a new Pokemon, but ignores it since the player's team is already full (i.e., nothing will update).
  • Fixed a rare instance where if two players have the same Pokémon, updating the moveset for one of the Pokémon would cause the same update for the other Pokémon.

Installation Instructions

Warning
This version is considered a pre-release. Install at your own risk!

  1. Download & extract showdex-v0.1.2-b1649127297312.zip to somewhere accessible.
  2. Open Chrome & navigate to chrome://extensions.
  3. Enable Developer mode (if not enabled already).
  4. Select Load unpacked & navigate to the extracted showdex-v0.1.2-b1649127297312 directory.
  5. Once the extension appears in the list, navigate to https://play.pokemonshowdown.com.
    • Double-check that underneath the ID, it says service worker and NOT service worker (Inactive).
    • If the latter is the case, hit the refresh icon. Otherwise, you'll be wondering why none of the sets load!
  6. ???
  7. Profit!

Known Issues

  • None of these issues are trackable issues on GitHub lololol.
  • "Auto" button next to sets doesn't do anything at the moment, so it's been disabled for the time being.
    • What it's supposed to do is switch to the most likely set based on the Pokémon's revealed ability/item/moves.
  • When refreshing the page mid-battle, known information about your Pokémon won't be loaded in (i.e., the "Yours" set).
    • Rather, it'll appear as someone else's Pokémon, in which public Smogon sets would be loaded instead.
    • This will be addressed in the future by loading in your locally saved sets.
  • Minor delay exists when initializing the Calcdex since it has to download all the sets for the current gen from a remote server.
    • A potential fix is to locally cache the downloaded sets, then re-fetch when the cache is marked as stale (after an arbitrary amount of time).
  • Switching the graphics theme (light/dark/system) from the Showdown client's options menu won't update until the next time the Calcdex opens.
  • Occassional flashing of both player's Pokémon team icons within the battle frame may occur.
  • Closing the battle tab while the Calcdex side tab is still open may cause the players to swap sides when changing any value from any Pokémon.

Future Features

Planned

  • Actual app icon since I'm using the one from the old Typedéx extension.
  • Incorporate items (such as Choice Scarf) into the stat calculations.
  • Provide an empty set to clear all the fields.
    • Some Pokémon, like Regigigas, only have sets for BH (Balanced Hackmons), which may contain illegal abilities/moves.
    • Not particularly useful when you're playing, say, OU.
  • Import/export sets to/from the Calcdex/Team Builder.
    • Probably wouldn't be a bad idea to copy the set from the clipboard, as well.
    • Will need some kind of cache management UI to manage cached sets used by the extension.
  • Allow swapping of the main player's location (top or bottom).
    • This would be set in the extension's settings panel... oh wait...
  • Add extension settings panel.
    • Will probably include the 2 planned features above.
  • Write some documentation as to how all of this works (there are a LOT of moving parts!).

Considered

  • Allow the Pokémon's HP value to be edited.
    • Actually holding off on this one, for now; waiting for some user feedback.

v0.1.1

15 Mar 04:47
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release

Mostly UI improvements with a few bug fixes.

What's New

General

  • Configurable weather/terrain.
  • Configurable EVs/IVs.
  • gen8bdsp* formats (except for gen8bdsprandom) now load gen4 sets in addition to gen8.
    • Sets for some Pokémon like Breloom & Infernape only exist in gen4.
  • Minor UI improvements.

Bug Fixes

  • Fixed Electric Terrain detection.
  • Fixed non-updating calculated stats after syncing boosts from the battle state.

Installation Instructions

Warning
This version is considered a pre-release. Install at your own risk!

  1. Download and extract showdex-v0.1.1-b1647317680120.zip to somewhere accessible.
  2. Open Chrome and navigate to chrome://extensions.
  3. Enable developer mode (if not enabled already).
  4. Select "Load unpacked" and point it to the extracted showdex-v0.1.1-b1647317680120 dir.
  5. Once the extension appears in the list, navigate to https://play.pokemonshowdown.com/.
  6. ???
  7. Profit!

Known Issues

  • No light mode support.
  • No responsive layout (still looks sparse on larger viewport widths).
  • HP value is still not configurable yet.
  • "Auto" button next to "Sets" still does nothing.
  • Knocked-off item bug still exists.
  • Same Pokémon sets are download multiple times, though retrieved from cache afterwards.
    • loading state in Calcdex/usePresetCache is unused, but returning based on loading won't allow for proper awaiting.
  • Minor edge cases causing invalid nature/EVs/IVs for ServerPokemon were found.
  • While a rare occurrence, the KO chance could display "0.0%".
    • Only a visual bug, since the value is < 0.1.
    • e.g., a chance of 0.0009 (0.09%) becomes '0.0' after chance.toFixed(1).

v0.1.0

10 Mar 04:47
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

Business logic is in a good place, seems to mostly work (needs more testing for edge cases). Now the UI needs some work, but that's the fun part lmao.

Installation Instructions

Warning
This version is considered a pre-release. Install at your own risk!

  1. Download and extract showdex-v0.1.0-b1646808831474.zip to somewhere accessible.
  2. Open Chrome and navigate to chrome://extensions.
  3. Enable developer mode (if not enabled already).
  4. Select "Load unpacked" and point it to the extracted showdex dir.
  5. Once the extension appears in the list, navigate to https://play.pokemonshowdown.com/.
  6. ???
  7. Profit!

Known Issues

  • Only dark mode is supported. Light mode coming soon.
  • Electric terrain isn't being properly detected, probably cause it's not called 'electricterrain' in the game state.
    • Note to self: This is being parsed in Calcdex/sanitizeField, defined under pseudoWeatherMoveDict.
  • Setting the weather/terrain coming soon.
  • Currently can only toggle between preset values for EVs/IVs. Text fields coming soon.
  • Sometimes, a Pokemon can still have an item assigned to it even though it's been knocked-off.
    • Just hit the "X" button in the dropdown to clear the Pokemon's item.
  • "Auto" button next to "Sets" does nothing atm.
  • Looks kinda bad when the width of your browser's viewport exceeds 1440px.