Commit Graph

57 Commits

Author SHA1 Message Date
Karthik
42333b392b
Fix self-KO timing for Memento/Healing Wish/Lunar Dance (#8750) 2022-05-04 17:32:37 -04:00
Annika
99fffe2e4b Remove unnecessary code
Found these thanks to LGTM.com
2022-03-02 20:02:29 -08:00
EvGym
5d8117302c
Refactor overriding stats used for damaging moves (#8373) 2021-11-08 13:48:26 -08:00
Kris Johnson
9140510dfa SSB: Change quotes to use |c:| 2021-11-07 19:55:01 -07:00
pacmanboss256
23b35498f6
Rename the "mystery" and "authentic" move flags (#8445)
* mystery -> allyanim
* authentic -> bypasssub
2021-08-30 23:07:50 -07:00
Kris Johnson
32de43c7ce SSB: Remove quadrophenic 2021-06-08 00:10:14 -06:00
Instruct
d50c77fb4d
SSB: Bugfixes and Cosmetic Updates (#8318) 2021-05-26 14:23:09 -07:00
Guangcong Luo
509d0abad4 Refactor out some Object.keys invocations
If you need values, you should be using `Object.values` or
`Object.entries` directly.
2021-05-13 23:02:04 -07:00
Instruct
df2cb402b4
SSB: Fix fart's signature move from refactor (#8245) 2021-04-30 21:39:39 -07:00
pyuk-bot
fa974427ef
Migrate terrains from onTerrain to onResidual (#8232) 2021-04-25 13:00:37 -07:00
Guangcong Luo
f9fdc73133
Support per-pokemon Residual handlers in Side/Field conditions (#8222)
For side conditions, `onStart`/`onRestart`/`onResidual`/`onEnd`
have been renamed `onSideStart`/`onSideRestart`/`onSideResidual`/`onSideEnd`,
with the `onResidualOrder` properties renamed `onSideResidualOrder`.

For field conditions, `onStart`/`onRestart`/`onResidual`/`onEnd`
have been renamed `onFieldStart`/`onFieldRestart`/`onFieldResidual`/`onFieldEnd`,
with the `onResidualOrder` properties renamed `onFieldResidualOrder`.

(The `onField` and `onSide` part helps make it clear to the type system
that the first argument is a Field or Side, not a Pokemon.)

Side and field conditions can now use `onResidual` to tick separately
on each pokemon in Speed order. `onResidualOrder` (the per-pokemon
tick) can be timed separate from `onSideResidualOrder` (the
per-condition tick), allowing conditions to end at a different priority
than they tick per-pokemon.

Relatedly, `onTeamPreview` and `onStart` in formats now need to be
`onFieldTeamPreview` and `onFieldStart`.

Unrelatedly, `effectData` has been renamed `effectState`, and the
corresponding state containers (`pokemon.statusData`,
`pokemon.speciesData`, `pokemon.itemData`, `pokemon.abilityData`,
`field.weatherData`, `field.terrainData`) have been similarly renamed. I
renamed the types a while ago, but I was holding off renaming the fields
because it would be a breaking change. But this is a breaking change
anyway, so we might as well do it now.

Note: `onResidual` will tick even on `onSideEnd` turns, although
`onSideResidual` won't. When refactoring weather, remember to
check `this.state.duration` so you don't deal weather damage on the
ending turn.

Intended as a better fix for #8216
2021-04-25 10:55:54 -07:00
Guangcong Luo
13189fdb02
Update Dex API (#8181)
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
2021-04-08 03:00:37 -07:00
Instruct
c61999b5b7
SSB4: Clean up files to remove AFD stuff (#8160)
* Update random-teams.ts

* bye bye

* a
2021-04-01 23:40:25 -06:00
Guangcong Luo
622645cd04 Fix crash in addSideCondition 2021-03-31 22:38:24 -07:00
Guangcong Luo
3b5e8cbfc2
Refactor for multi battles (#8152) 2021-03-31 20:27:07 -07:00
Instruct
1f7bf2deed
Add Super Staff Bros 4 Wii U (April Fools' prank) (#8148)
* Add new SSB meta

* Update random-teams.ts

* Fix issues

* Complete the meta

* Fix links

* fix

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/random-teams.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/random-teams.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/random-teams.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/random-teams.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* review

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/random-teams.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* Update data/mods/ssb/moves.ts

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>

* simplify code

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
2021-03-31 20:21:43 -07:00
Instruct
ea9ea5c16f
SSB: Small tweaks (#8143)
* SSB: Small tweaks

Boat's move should bypass mbounce. Perish gets meme text.

* uwu

* Cake should no longer get refresh

* Thanks Freudian Slip
2021-03-30 12:31:21 -06:00
Guangcong Luo
d18c0a4e1f Refactor more things to use pokemon.allies/foes
(This will make multi battles easier to implement.)
2021-03-28 20:06:18 -07:00
Guangcong Luo
ed454ef76a
Refactor scripts to battle-actions (#8138)
This introduces a new class, BattleActions, available as `battle.actions`,
moving all functions from `data/scripts.ts` to `sim/battle-actions.ts`.

This makes it so that "go to definition" will now work correctly for
functions previously in scripts; we no longer need UnimplementedError,
and there's now a clean conceptual separation between `battle` and
`battle-actions` (whereas the previous distinction between `battle` and
`scripts` was basically nonexistent).

This will be a difficult migration if you maintain a fork with custom
scripted mods. I'm sorry! Migration instructions are here:

https://github.com/smogon/pokemon-showdown/pull/8138
2021-03-28 12:01:38 -07:00
Annika
0c2563ddc2
SSB: Give Lilypad Overflow 62 BP
Requested by instruct.
2021-03-24 23:11:56 -07:00
Instruct
fb471f8569
SSB: Fix description of Lilypad Overflow (#8137) 2021-03-23 17:05:01 -07:00
Instruct
6c5a97e342
SSB4: Bugfixes and Balance changes (#8109) 2021-03-22 22:06:59 -04:00
Kris Johnson
aeecf8d24c
Dexsearch: Add support for searching by mods (#8064) 2021-02-28 14:37:00 -08:00
Annika
c2e97aaaed
Use optional chaining in more places (#8063) 2021-02-22 11:42:05 -08:00
Annika
59cf608b53
SSB: Prevent transformations into the same forme (#8044) 2021-02-15 21:12:37 -08:00
Instruct
9e5693a338
SSB: Prevent Data Corruption from being reverted by forme changes (#8040) 2021-02-15 21:10:06 -08:00
Instruct
67cc1fbe98
SSB: More Bugfixes (#8006)
* Fix 1-1 edgecase

* Fix winter hail not affecting hail based attacks
2021-02-07 23:18:29 -05:00
Instruct
e42dfe12d8
SSB4: Bugfixes (#7994) 2021-02-07 04:43:17 +04:00
Instruct
d8de06a83c
SSB4: Clarifications and Description Edits (#7976) 2021-01-31 20:34:49 -08:00
Instruct
0685e88e4f
SSB4: Balance changes and Bugfixes, pt 2 (#7954) 2021-01-30 23:34:41 +04:00
Instruct
18dea767a9
SSB4: Fix Urgent Bug and Descriptions (#7941) 2021-01-22 21:02:00 -05:00
Instruct
0d1c9fe098
SSB4: Bugfixes and Balance Patches (#7889) 2021-01-22 14:56:26 +04:00
Kris Johnson
c09587d3e4 SSB: Re-add thewaffleman 2021-01-03 02:31:38 -07:00
Annika
bee946e822 SSB: Remove xJoelituh 2021-01-03 01:24:19 -08:00
Instruct
27f05678c0
SSB4: Balance changes and bugfixes (#7856) 2021-01-01 18:46:27 +04:00
Instruct
b73efd84ab
SSB4: Bugfixes and balance changes (#7838) 2020-12-25 21:36:07 -07:00
fart
4acb83acc7
SSB4: Fix typo in Archas's description (#7834) 2020-12-25 04:06:49 -08:00
Instruct
1f9954b374
SSB4: Bug & crashfixes (#7837) 2020-12-24 21:51:11 -05:00
Instruct
5b441c2013
Super Staff Bros 4 (#7793)
Collaborative Project lead by @xInstruct with many contributors.

See the Special Thanks section of https://www.smogon.com/articles/super-staff-bros-4
2020-12-24 11:21:02 -05:00
Kris Johnson
fe52ec2dab SSB: Remove a random duck 2020-11-28 02:45:20 -07:00
Guangcong Luo
9b5217ab70
Split up dex-data into more files (#7634)
* Split up dex-data over individual files

This commit introduces:
- `dex-abilities.ts`
- `dex-conditions.ts`
- `dex-formats.ts`
- `dex-items.ts`
- `dex-moves.ts`
- `dex-species.ts`

These files centralize definitions from `dex-data` and `global-types`.

* Inherit ItemData from Item etc

Previously, Condition inherited from ConditionData. Now, ConditionData
inherits from Condition. The advantage of the new approach is that now,
Condition and DataCondition no longer need to be separate types, and
there should be much less duplication of type definitions in general.

This has also been done for

- ItemData/Item/DataItem
- AbilityData/Ability/DataAbility
- FormatData/Format/DataFormat

Species and DataSpecies was already merged, but this also reverses
their inheritance (saving a lot of duplicated definitions in the
process!)

The only one left is MoveData, which is just super complicated and
will need its own commit.
2020-11-05 05:00:13 -08:00
Guangcong Luo
a55d3cd530 Fix crashes from using moves with no target
Specifically, if you target your ally and your ally uses Ally Switch
(causing you to target yourself), certain moves (including Thunder,
Hurricane, and SSA) crash. This has been fixed.
2020-10-19 18:10:25 +01:00
Instruct
c5b6622bc6
SSB: Remove Ashe (#7332) 2020-09-07 16:59:59 -07:00
Kris Johnson
03326bf0a0
Fix crash caused by missed instance of toID (#7193) 2020-08-10 00:18:19 -07:00
Kris Johnson
5fb36bcc62
SSB: Remove Flare (#7170) 2020-08-07 12:36:12 +04:00
Guangcong Luo
4d09f7acde Rename more instances of Effect to Condition 2020-07-26 11:26:23 -07:00
Guangcong Luo
2f805c93a2
Remove "Battle" prefix from data exports (#7039)
`BattlePokedex` is now `Pokedex`, `BattleItems` is now `Items`, etc.

I also renamed `Movedex` to `Moves` and `Statuses` to `Conditions`.

`TypeChart` isn't `Types` yet, because unlike the others, it's not
indexed by ID. That should probably be fixed one day.
2020-07-24 12:42:26 -07:00
Mia
6839a1f4db
Add a library for utility functions (#6817) 2020-06-09 22:06:43 -07:00
Leonard Craft III
3496491d4f
Fix Farfetch'd / Sirfetch'd with new apostrophe (#6721)
Also fixes Stick's behavior
2020-05-19 21:56:35 -07:00
Guangcong Luo
79091f6362 SSB: Fix Next Level Strats
Fixes #6663
2020-05-08 18:06:49 -07:00