This is meant for Windows users that don't have UNIX commands set up. I'm retaining support for compiling using command-line tools since that is consistently 4 seconds or less, whereas fs is frequently slower. That speed is desireable, especially on sim3, so it's worth the extra code.
* Move gen 8 rands code to gen8 folder
* Add test data file
* Remove hidden power from random-teams
* Remove BDSP
* Remove item selection for now
* Remove ability culling for now
* Remove move culling for now
* Obtain allowed pokemon from random-sets.json
* Add tera blast counter
* linting
* Remove Dynamax from random-teams
* Remove unnecessary check
* Add role and tera type + fix data format
* remove gmax
* Disable tier for now
* movePool should have move ids not names
* linting
* Add required moves
* Create an individual function for moveset generation
* Return moves early if <= 4 moves available
* Add counter for individual STABS, including tera
* Tera Blast is tera stab
* Add some moves (help with testing)
* Remove culling moves from moveset
* Add new hazard removing moves
* Test STAB and recovery moves
* Cull movepool each time a move is added
* Black Sludge only if tera type is Poison
* teratype and role to functions
* Test some 'High Priority' items
* Move ability selection to its own function
* Fix ability sorting/selection
* No need to go through the move adding process if number of moves in set + movepool is 4
* lint
* Remove some pokemon that aren't in gen 9 randbats
* Tera STAB example
* Allow for forcing abilities
* Silvally not in gen 9
* Move level calculation to getLevel
* Tier-based levelling and doubles coverage
* Sitrus Berry default item for doubles
* Avoid hard-coding for species frequency
* Linting + replace hail with snow
* Change a comment slightly
* Fix STAB moves: need to check that they do damage
* minor thing
* Comment out tera type requirement
* comments
* Add gen 9 randbats format
* STAB counter
* Remove setupType
* Add cullMutlaExclusive()
* Remove unnecessary functions
* Move CC/HC to the bottom
* Allow movesA and movesB to be overlapping
* Initialization of fill-out
* linting
* Setup moveEnforcementCheckers
* Type/STAB counter only updates for moves that aren't in noSTAB
* Account for type changing abilities earlier
* STAB enforcement
* Setup moves array
* linting
* Revert Setup change
* More fillout
* move tweaks
* Tera STAB enforcement
* Remove rest from recovery moves
* Enforce setup
* Add Facade if Guts
* Misc enforced moves
* Enforce more moves
* Enforce STAB priority
* Setup forced on tera blast user
* check if there are moves of the desired kind before sampling
* move tweaks
* Need to check if setupMoves is empty
* fix brute bonnet
* fix scream tail
* Finish up move incompatibilities
* fix scream tail harder
* Formatting
* Fix some things
* End culling early if movepool gets too small
* Paired moves: end culling early if movepool gets too small
* Remove 'stop cull' for testing purposes
* If 2/4 moves are filled, remove single unpaired move
* Remove now unnecessary hardcodes
* Use MovePairs instead of hardcoding pairs
* addMove function for adding moves to moveset
* Move updates
* Extra check is unnecessary, moves and movePool should never have moves in common
* Mach Punch required on Breloom
* lint
* Remove Synthesis from Brute Bonnet (5 enforced moves)
* adjust oranguru tera types
* finish up moves
* Force abilities
* Update my favorite pokemon
* linting
* Add shouldCullAbility
* fix setup counter
* Move sorting abilities below hardcoding
* minor change
* Add fields
* fix sawsbuck typo
* Improve the species generation + remove Basculegion and Houndstone as possible leads
* Fix Species frequency
* Linting
* veluza can actually run sharpness
* code all ability rejections
* Update random-sets.json
* EVs/IVs tinkering change
* fix capitalization error
* Perform small fixes
* fix moves that don't exist
* linting
* Magnezone hardcode
* Items
* Update random-teams.ts
* linting
* prep for leveling
* long list for ditto
* comment out a line of text
* finish individualizing levels and also melop sucks
* add lokix thing
* revavroom
* updates from testing
* komala probably shouldn't have dark as an option
* tropius fix
* intim mence is ok
* kleavor should not get sheer force
* why did we give hydre earth power lmao
* why did we put leech seed on toed
* forgot to sitrusify cheek pouch mons
* fix enamorus
* Syntax error
* Change Zoroark lastmon condition to level >= 72
* Fix Zoroark-level constraint to allow for level forcing
* Fix singles vs doubles definition
* Use species.id as much as possible for set generation
* updates from testing
* allow flash fire heatran
* additional sash parameters
* reject stakeout if the user has zero attacks
* fixes
* update pawmot abilities
* Change iron fist counter to a number
* Force Own Tempo on Petal Dance Lilligant
* Add T-wave to SD groudon set
* Slush Rush guaranteed with Snowscape + possible if team has snow
* Rework ability sorting: find list of non-culled abilities before sorting and selecting
* Move S/V rands to The Forefront
* fix regidrago
* Small fix to choosing allowed abilities
* update aliases
* Update Arcanines
* Change from forEach to for, since index is no longer being used
* first impression is bug stab now
* set updates from the randscord
* Update /randbats to gen 9
* Add Tera Type to /randbats output
* things to do with steel
* Update data/random-teams.ts
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Update data/random-teams.ts
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Update data/random-teams.ts
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Update data/random-teams.ts
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Update data/random-teams.ts
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Move Battle Factory and BSS Factory to mods/gen8 folder
* Remove gen8 factory sets test
* Copy over random-sets.json when building
* add missing heatran-based incompatibility
* fix sableye not always getting Recover
* set updates
* start movin' cap 1v1
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* finish movin' cap 1v1
* Update random-battles.ts
* Update random-teams.ts
* Update random-teams.ts
Co-authored-by: livid washed <liuc.kelvin9901@hotmail.com>
Co-authored-by: livid washed <115855253+livid-washed@users.noreply.github.com>
Co-authored-by: Alexander B <4866817+MathyFurret@users.noreply.github.com>
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
This now reaches 99.9% success rate on logs from January 2018-May 2021, and 94.6% success on logs from November 2014-May 2021. (Assuming one defines "success" as "modernizing the modlog entry without just spitting out an OLD MODLOG: entry".)
The modlog converter now mostly works properly. There are some discrepancies (for example, Lobby gets 11,000 more modlog entries in SQLite than in text); I'm not sure if this is because of glitches in the previous system or a bug in my code. This script will need to be run after #8004 is merged.
`./build decl` now builds TS declarations for everything exported by
`sim/`. Unfortunately, the built TS declarations still refer to global
types, so some things still have `any` type, but it's much better than
nothing.
`teamLength`, `maxLevel`, `cupLevelLimit`, and `minSourceGen` no longer
exist as properties of `Format`. Instead, they're value rules that
become properties of `RuleTable`, and can be specified as custom rules
and inherited through rulesets like anything else.
See the PR for a full reckoning of changes:
https://github.com/smogon/pokemon-showdown/pull/8267
This fixes a bug where `.config-dist/custom-formats.js` wasn't getting
deleted when `config/custom-formats.ts` was deleted.
This also cleans up some other clutter in `.config-dist`.
This is the change that renames:
- `Dex.getMove` -> `Dex.moves.get`
- `Dex.getAbility` -> `Dex.abilities.get`
- `Dex.getItem` -> `Dex.items.get`
- `Dex.getSpecies` -> `Dex.species.get`
- `Dex.getEffect` -> `Dex.conditions.get`
- `Dex.getNature` -> `Dex.natures.get`
- `Dex.getType` -> `Dex.types.get`
- `Dex.getFormat` -> `Dex.formats.get`
In addition, some other APIs have been updated:
- `getByID` methods have also been added to every other table.
- `Dex.moves.all()` now gets an array of all moves
- Plus equivalent methods for `abilities`, `items`, `species`, `formats`, `natures`, `types`
- Note: there's no `Dex.conditions.all()`
- new API: `Dex.stats` for naming/iterating stats
- `Dex.getEffectByID` -> `Dex.conditions.getByID`
- `Dex.getType` -> `Dex.types.get`
- `Dex.data.Formats` -> `Dex.data.Rulesets`
- `Dex.formats` -> now an array `Dex.formats.all()`
- `Dex.getRuleTable` -> `Dex.formats.getRuleTable`
- `Dex.validateFormat` -> `Dex.formats.validate`
Team functions have been split off into a new `sim/teams` package:
- `Dex.packTeam` -> `Teams.pack`
- `Dex.fastUnpackTeam` -> `Teams.unpack`
- `Dex.generateTeam` -> `Teams.generate`
- `Dex.stringifyTeam` -> `Teams.export`
`Teams.export` has also been rewritten to better match how it works in client.
This implements #8178
Previously, if you deleted a file from `data/mods/`, it wouldn't also
get deleted from `.data-dist/mods/`. This fixes that, and the
corresponding issue in `server/chat-plugins/`.
For reasons of performance and/or laziness, I've chosen to only clean
those two directories, not all built directories.