* Prevent same type STAB when undesirable
* Heracross only gets Guts if it has Facade and would get an orb
* Add Roost to Gliscor
* Guarantee recovery on support/defensive mons
* linting
* Implement Heracross condition more efficiently
* easier Gliscor case
* Update data/mods/gen5/random-teams.ts
Co-authored-by: ACakeWearingAHat <45981036+ACakeWearingAHat@users.noreply.github.com>
* linting
Co-authored-by: ACakeWearingAHat <45981036+ACakeWearingAHat@users.noreply.github.com>
* Remove lastDamage as a field for Bide + remove some useless fields
* Bide: use time instead of duration, so that it doesn't get changed with slp/frz/etc
* Bide totalDamage should be adjusted before reducing Bide time. Damage counting should be done when the Bide user moves, not when the foe attacks it
* Call the stored damage 'damage' rather than 'totalDamage'
* Fix Bide target, Bide can hit substitutes, add test
s
* Add test for Bide vs switching / using moves that don't reset lastDamage
* Bide damage is reset to 0 when a Pokemon faints
* Add test for Bide when asleep
* Add Desync messages for Bide clearing stored damage when a Pokemon faints
* Mention Desync Clause Mod in test
* Specify 'in gen 1' in hint messages
* Bide is paused if disabled
* Improve Bide-Disable test
* Further adjust the Bide-Disable test
* 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>
* Gen 1: SonicBoom can be Countered
* OHKO moves do 65535 damage (matters for Counter against sub)
* Move damage comparison with target hp outside getDamage()
* Remove a blank line
* Move damage comparison with target hp outside getDamage() (Stadium)
* Add counter test
* Fix Metronome not failing if calling Counter (move setting lastDamage before tryMoveHit)
* Do the same for Stadium
* Start phasing out pokemon.lastDamage from Gen 1 code
* Failed Counter doesn't zero lastDamage
* When a move misses, battle.lastDamage is set to 0
* Remove all pokemon.lastDamage
* Remove a couple of comments
* Gen 2: Lock-On and Pain Split have 100% accuracy and check for accuracy
* Gen 3: Moves that don't check accuracy should be listed as true accuracy
* Gen 3: Nightmare doesn't check for accuracy
* Gen 3: Foresight and Odor Sleuth check accuracy
* Gen 3: Memento does not accuracy check
* Gen 3: Mind Reader checks accuracy
* Gen 2: Nightmare doesn't check accuracy
* PP from ally moves is no longer infinite in PiC
* add deductpp to modded pokemon
* eep
* Refactor when start effects activate upon switching in.
* Add new effects for leppa berry consumption
* I forgot about these items ngl
* add some new support for moves
* Restrict Wandering Spirit, add extra failsafe
* fix things
* Last minute bugfix
* Update banlist
* start working on gen 9
* update nextturn
* a
* more stuff
* Update formats.ts
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Fix validation of moves unobtainable in Gen 9
* remove hyphen
* Update data/rulesets.ts
* Shorten unobtainable move rule name
Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
* Move Gen 1 Counter tests into its own section
* Confusion damage, (h)jk recoil, and draining can be countered in gen 1
* Recoil and Drain round down in gen 1 (against substitute)
* Add tests for Counter + fix linting issue
* lastSelectedMove is updated when Mirror Move or Metronome calls another move
* Move pokemon.side.lastMove setting into a (more) correct location
* move pokemon.lastMove as well
* Remove unnecessary seed in test
* The volatiles don't actually do anything
* Gen 1: implement stat down overflow glitch
* Change the wording of the hint slightly
* Add hint for division by zero avoidance