Commit Graph

1096 Commits

Author SHA1 Message Date
Annika
ae84fefa4a Random Battles: Fix item generation for Arceus 2021-11-26 12:10:42 -08:00
Annika
a3c4c696e8 Improvements to BD/SP Random Battles 2021-11-24 16:00:31 -08:00
Annika
357d20c5f7 BDSP Random Battles: Fix Choice item generation 2021-11-23 17:45:05 -08:00
Annika
7e7f25457e Test team validity for all randomized formats 2021-11-23 16:10:18 -08:00
Guangcong Luo
0abdc0c372 Fix npm test build error
The sucrase build test does not reliably run in 2000ms and should have
been marked as slow.
2021-11-19 01:46:10 -05:00
Kris Johnson
ff4b7bed31
Add BDSP data and formats (#8530) 2021-11-18 18:00:10 -06:00
Mia
00c863c009 Tests: Add a test to ensure Sucrase always builds correctly
TS-Node can work w/o Sucrase working. This just adds a way for us to know when it's failing (easily).
2021-11-13 16:29:20 -06:00
pyuk-bot
fdd775b3f1
Re-fix Frisk's interaction with Neturalizing Gas (#8526) 2021-11-10 10:30:20 -08:00
Annika
f7cdeb5b20 November 2021 Random Battles updates
[Gen 8] Random Battle levels were nerfed or buffed for winrates greater than 7 or less than -7 deviations from the mean respectively.

[Gen 8] Random Doubles Battle levels were nerfed or buffed for winrates greater than 4 or less than -4 deviations from the mean respectively.
2021-11-07 18:40:58 -08:00
Leonard Craft III
7cf60606c5
Fix paralysis modifier application (#8478) 2021-11-06 15:52:39 -04:00
Guangcong Luo
7017dcb8f9 Mark tests using IPTools.lookup with "(network)"
(Also mark them with "(slow)" to skip them during a normal `npm test`.)

This is mostly the result of a particularly frustrating debugging
session when I couldn't figure out why these tests were timing out
(it turns out, it was because my DNS was broken so `IPTools.lookup` was
timing out). Marking them with "(network)" should make similar
situations less frustrating in the future.
2021-11-05 21:58:28 -04:00
Leonard Craft III
ba07a7c75d
Add various mechanics tests (#8494) 2021-11-05 13:28:45 -05:00
Kris Johnson
d92665cd3e
Fix validating Pokemon with event-only prevolutions (#8495) 2021-10-13 19:55:29 -07:00
Annika
b626892dab Random Battles updates 2021-10-02 14:50:11 -07:00
Leonard Craft III
25910ed66d
Fix timing of freeze thaws (#8453) 2021-09-29 20:29:26 -04:00
tofa
21182025ce
Fix Ice Face's interaction with Neutralizing Gas (#8479) 2021-09-23 20:50:03 -05:00
ACakeWearingAHat
fc1c3e17c5
Random Battles updates (#8473) 2021-09-19 15:50:11 -07:00
Leonard Craft III
dd27caf23d Remove debug print 2021-09-19 17:19:02 -05:00
Leonard Craft III
3ce53a63b8 Add more Ice Face tests 2021-09-19 17:16:24 -05:00
Karthik
d99779ba8a
Gen III-IV: Fix interaction between Liquid Ooze / Dream Eater (#8467) 2021-09-19 10:28:22 -04:00
Leonard Craft III
62efd9225c
Gen 1: Correct minimum level validator logic (#8455) 2021-09-07 19:40:33 -05:00
Guangcong Luo
a68ae48979 Improve tests for event data entries 2021-09-07 11:33:34 -07:00
Annika
1fc5e3a787 Random Battles updates 2021-09-06 20:46:44 -07:00
Mia
7811795344
Handle new TypeScript version (#8449)
Co-authored-by: Guangcong Luo <guangcongluo@gmail.com>
2021-08-30 20:11:44 -07:00
Karthik
faa37924ee
Fix Emergency Exit not activating after recoil damage (#8441) 2021-08-21 13:17:23 -05:00
Mia
8cf1035ee2
SQL: Automatically prepare statements unless told otherwise (#8439) 2021-08-18 12:51:39 -07:00
Annika
1a41721aba Trivia: Make unit tests work without SQLite 2021-08-14 20:48:37 -07:00
Annika
0a33b52ad4 Trivia: Use transactions and split into a directory 2021-08-14 20:35:08 -07:00
Annika
dcb96fa7ed Trivia: Refactor to use SQLite as a storage backend 2021-08-14 20:35:08 -07:00
Mia
77861ceae6
SQL: Use a QueryProcessManager subclass (#8422) 2021-08-14 17:45:51 -07:00
Annika
82a1510564 Modlog: Fix note search testing 2021-08-13 19:00:18 -07:00
pacmanboss256
c2a5848768
Prevent Sparkling Aria from curing burns if the user faints (#8381) 2021-08-10 11:02:12 -04:00
Jacob McLemore
65ca586d81
Fix Metronome (Item) and two-turn moves interaction (#8430) 2021-08-10 10:59:17 -04:00
Jacob McLemore
9979d3e66b
Fix Sky Drop + Eject Button interaction (#8429) 2021-08-09 19:03:52 -05:00
Annika
6fdfd74f76 Modlog: Unskip and fix unit tests 2021-08-09 14:42:01 -07:00
Annika
633e061067 Modlog: Remove text logging code 2021-08-09 14:06:14 -07:00
Annika
3aa9934e65 Random Battles updates 2021-08-02 14:20:38 -07:00
Annika
bcbe100c41
Modlog: Use SQLite for searches (#8004) 2021-07-23 13:47:49 -07:00
Mia
2c1b7d7828
Add a library for running SQLite databases in threads (#7350) 2021-07-19 21:02:03 -05:00
Annika
74295cf506 Modlog Converter: Improve modernization
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".)
2021-07-18 21:07:29 -07:00
Karthik
a36b74dbd1
Gen 3: Type boosting items should boost the attacking stat (#8402) 2021-07-17 13:36:56 -04:00
Mia
e5fbd64427
Support adding friends (#7333) 2021-07-16 12:56:34 -07:00
Annika
52a9378361 Trivia: Support combining multiple categories 2021-07-13 16:01:03 -07:00
Annika
6ed55b6d1f
IPTools: Add sanity checks (#8331) 2021-07-09 19:59:45 -07:00
Annika
c134195915
Use ts-node instead of Sucrase (#8369) 2021-07-09 19:59:22 -07:00
Marty-D
6a833db4f6 Gen III-IV: Fix Choice lock timing 2021-07-08 15:46:02 -04:00
Kris Johnson
598ac409e8 Rename Let's Go! mod to 'gen7letsgo' 2021-07-06 23:07:51 -06:00
pacmanboss256
4937547bb1
Fix build (#8382) 2021-07-05 12:21:22 -07:00
Annika
82d21aa33c Random Battles: Fix Venusaur bug in Gen 5 2021-07-02 19:49:43 -07:00
Annika
33e82d85d5 Random Battles update 2021-07-01 16:33:40 -07:00
Annika
c87bf685bb Fix Punishments tests 2021-07-01 16:33:03 -07:00
Annika
a80ce32b1f Punishments: Add broader, more integrated tests 2021-06-29 17:55:45 -07:00
ACakeWearingAHat
92c932d35a
Random Battles updates (#8374) 2021-06-25 17:04:41 -07:00
Marty-D
43713804b9 Gen II-IV: Fix Destiny Bond handling during Pursuit
Thanks, xzern and SuperEpicAmpharos!

Also noticed the Pursuit switch accuracy check wasn't overridden in Gen 2 yet so I threw that in too.
2021-06-24 12:05:11 -04:00
Marty-D
a5929b3076 Gen III: Make Follow Me a slot condition
Thanks, xzern!
2021-06-23 11:32:43 -04:00
Annika
9d87d9bac2 Fix Punishments#ipSearch 2021-06-08 14:08:36 -07:00
Adam Tran
be2210f881
Fix Future Sight Life Orb interactions (#8357) 2021-06-08 11:48:10 -04:00
Annika
6363a1854c Random Battles: Don't allow unreleased HAs 2021-06-07 18:45:22 -07:00
Marty-D
b830ceb818 Gen II, III: Implement Quick Claw properly 2021-06-07 12:26:50 -04:00
Annika
c55658ce06 Random Battles: Fix 3-move Pokemon 2021-06-05 20:33:44 -07:00
Annika
d8988bb250 Random Battles: Fix double-Hidden Power bug 2021-06-05 12:24:08 -07:00
Annika
8a6bb51c23 Random Battles update 2021-06-01 16:22:57 -07:00
Mia
09e298f15b
Punishments: Support giving multiple punishments to one user (#8265) 2021-05-31 11:06:01 -07:00
Mia
5f9072b2ba
Chat-monitor: Centralize functions and migrate to JSON (#8328) 2021-05-29 22:11:32 -07:00
Annika
c1c1f8976d Random Battles: Fix Hidden Power bug in Gen 6 2021-05-27 10:18:04 -07:00
Karthik
094623f18b
Sky Drop: Fix message when target is fainted (#8334) 2021-05-26 14:51:52 -07:00
Annika
83df279b1d
Add a chat plugin to manage username prefixes (#8338) 2021-05-26 14:39:13 -07:00
Karthik
7988f15526
Gen 3: Always break the opponent's screens with Brick Break (#8325) 2021-05-25 15:39:40 -04:00
pacmanboss256
91f86530c5
Fix Gen 3 Weather Ball and Gen 4 Trick (#8314) 2021-05-24 15:07:37 -04:00
pacmanboss256
647ebd5fc6
Fix Counter redirecting Encored self-target moves (#8300) 2021-05-23 22:55:21 -07:00
Guangcong Luo
e511d5c646 Fix EV validation 2021-05-23 16:55:00 -07:00
Annika
a77db612c8 Random Battles updates 2021-05-23 16:11:54 -07:00
Annika
cb5bdd9ed8 Random Battles: Make tests use predictable seeds 2021-05-23 16:11:54 -07:00
Guangcong Luo
570d3d3d29 Fix Weezing-Galar from VC Koffing validation
This fixes an issue where a Weezing-Galar evolved from a Koffing
gotten from a Virtual Console transfer from RBY/GSC should be able
to have a non-Hidden Ability, but couldn't.

Thanks @Karthik99999 for bringing this to my attention.

Fixes #8327
2021-05-23 11:29:17 -07:00
Leonard Craft III
899bdaae02 Tests: Unskip passing Shell Bell test 2021-05-21 20:32:55 -05:00
Marty-D
008cfec4c3 Run events on future moves even while the user is not active
Fixes a regression in 16d078265b
2021-05-20 13:20:12 -04:00
Marty-D
866b5b7bb2 Check for a winner when Destiny Bond knocks out a Pokemon 2021-05-20 12:22:37 -04:00
Leonard Craft III
606576f453
Add various mechanics tests (#8313)
* Standardize Photon Geyser tests
* Add Gulp Missile tests
* Add Berserk Dragon Darts test
* Add Ring Target tests
* Add and improve Metronome tests
* Add Sparkling Aria tests
* Add additional Fling tests
* Standardize Mummy tests
* Add Rollout submove targeting test
* Improve Flower Veil tests
* Add Acupressure tests
* Improve Sky Drop tests
* Add Future Sight tests
* Improve Wandering Spirit tests
* Improve Rapid Spin tests
* Add Rocky Helmet victory test
* Improve Focus Punch tests
* Add a skipped Stomping Tantrum test
2021-05-20 08:43:08 -04:00
Leonard Craft III
d946308900
Fix the order of many end-turn resolution effects (#8307)
Co-authored-by: Marty-D <Marty-D@users.noreply.github.com>
2021-05-17 11:53:52 -04:00
Leonard Craft III
50054ef5ae
Fix Struggle to be unaffected by Disable (#8315) 2021-05-17 07:18:26 -07:00
Guangcong Luo
2936c55439 Rules: Add -no item and fix -all items
`no item` is now a fake item meaning "not holding an item", for the
purposes of the team validator. This means that `-no item` will force
all pokemon to carry items.

`all items` no longer includes not holding an item, so `-all items`
will now work as expected.
2021-05-17 04:22:24 -07:00
Leonard Craft III
5a129fd1d7
Gen VII: Ignore user's Ability with Mold Breaker moves (#8306) 2021-05-15 14:38:21 -04:00
Leonard Craft III
a2513173f3
Fix Neutralizing Gas ending if another is active (#8305) 2021-05-15 08:44:33 -07:00
Marty-D
b0509ce39f Check for a winner after future moves 2021-05-15 10:31:30 -04:00
Marty-D
0a9aeb8fcd
Fix faint check mid-attack (#8297)
Only bother checking for a winner if the move's user is also fainted at the time, and check for a winner after the move completes.
2021-05-14 13:36:56 -04:00
Annika
e2d468b6b1 Random Battles: Bugfixes 2021-05-12 14:42:19 -07:00
pyuk-bot
b17171a2cb
Store originally targeted slot for two-turn moves (#8280) 2021-05-12 08:51:58 -04:00
Annika
62571c4907
Validator: Improve Gen 1 level validation (#8294) 2021-05-12 02:59:12 -07:00
Leonard Craft III
aa5ca391c5 Tests: Add Life Orb, Protean Future Sight tests 2021-05-08 19:59:05 -05:00
Annika
1c3f6402f0
Tests: Use assert.equal and assert.notEqual more (#8276) 2021-05-07 23:51:18 -07:00
Annika
27764ef5bf Random Battles: Unify tests 2021-05-07 10:19:45 -07:00
Annika
2b3741ec2f Random Battles: Support more Value Rules
Specifically, randomized formats will now support Max Team Size, Min Source Gen, Adjust Level, Adjust Level Down, and Force Monotype.

This fixes the issue with randomly-generated Multi Battle teams containing six Pokémon, instead of three as desired.
2021-05-06 22:45:08 -07:00
Guangcong Luo
55980d416c
Support value rules (#8267)
`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
2021-05-06 01:16:16 -07:00
Karthik
b6d5fff24b
Unfix interaction between Gluttony and Neutralizing Gas ending (#8273)
Reverts #8250, but will keep gluttony test file and add more tests to it. This is being done because indirect sources of damages are not causing gluttony to trigger (such as belly drum).
2021-05-05 13:44:59 -04:00
Annika
96574af8aa Random Battles: Add unit tests for PR #8270 2021-05-04 21:43:40 -07:00
Leonard Craft III
771c60d4b9
Improve self-hit confusion damage (#8264) 2021-05-04 13:44:13 -04:00
Guangcong Luo
c11dccb032
Rename and fix maxTeamSize (#8266)
`maxTeamSize` is a bad variable name (not that `teamLength.battle` is
any better, but that'll get fixed in a future refactor).

- Rename `maxTeamSize` to `chosenTeamSize`, to better indicate that
  this is the size after Team Preview, and that it is also the minimum
  size after Team Preview.

- Don't limit team sizes to 6 if `teamLength.battle` isn't specified.
  This removes an unnecessary `teamLength.battle` requirement in all
  Custom Game formats.

- Stop requiring `maxTeamSize` as a parameter for `battle.getRequests`.
  It's not even used except as a hint to the Preact client, and was
  never state in the first place.

- Stop supporting partial `side.chooseTeam`. This is an unused feature
  and removing it massively simplifies the code and fixes a bug in
  `cupLevelLimit` which definitely was not written with the
  understanding that `chooseTeam` could be partial.

- Fix a bug in #7929 which seemed to misunderstand what `teamsize` was
  for.
2021-05-04 00:31:05 -07:00
Annika
d48c7a9ed6 Random Battles: Fix STAB enforcement 2021-05-03 15:16:57 -07:00
Karthik
f453d37817
Fix interaction between Gluttony and Neutralizing Gas ending (#8250) 2021-05-03 11:25:47 -04:00
pacmanboss256
bb2d700883
Fix smart targeting with scripted moves (#8248) 2021-05-03 11:20:19 -04:00