Commit Graph

6 Commits

Author SHA1 Message Date
Guangcong Luo
78439b4a02
Update to ESLint 9 (#10926)
ESLint has a whole new config format, so I figure it's a good time to
make the config system saner.

- First, we no longer have separate eslint-no-types configs. Lint
  performance shouldn't be enough of a problem to justify the
  relevant maintenance complexity.

- Second, our base config should work out-of-the-box now. `npx eslint`
  will work as expected, without any CLI flags. You should still use
  `npm run lint` which adds the `--cached` flag for performance.

- Third, whatever updates I did fixed style linting, which apparently
  has been bugged for quite some time, considering all the obvious
  mixed-tabs-and-spaces issues I found in the upgrade.

Also here are some changes to our style rules. In particular:

- Curly brackets (for objects etc) now have spaces inside them. Sorry
  for the huge change. ESLint doesn't support our old style, and most
  projects use Prettier style, so we might as well match them in this way.
  See https://github.com/eslint-stylistic/eslint-stylistic/issues/415

- String + number concatenation is no longer allowed. We now
  consistently use template strings for this.
2025-02-25 20:03:46 -08:00
pyuk-bot
7bb2fd1869
Overhaul 'SwitchIn' event for more accurate effect resolution order (#10766) 2025-01-28 16:51:17 -06:00
Guangcong Luo
88be8d7b3c
Refactor types for Lowercase<string> (#10377)
TypeScript 4.8+ supports Lowercase for lowercase strings, which isn't
exactly what ID is, but can be used to type IDs in object keys and data
entries that previously required string. I'm calling it IDEntry in places
where it should be an ID but TypeScript doesn't support that.

Very conveniently, no additional casts will be needed when using ID
where IDEntry is expected.

It's caught at least a few bugs, which is also why I'm PRing: I didn't
write the code for the bugs it found, and don't know if it's the right
way to fix them.

This ballooned into several other type refactors.
2024-07-01 15:57:14 -07:00
Leonard Craft III
8a5bbbd255
Implement Ability flags (#10048)
* Add AbilityFlags interface

* Add flags to abilities data (Karthik's script)

* Convert isBreakable to its new flag

* Convert most of isPermanent to its new flag

* Convert Trace to its new flag

* Convert Skill Swap to its new flag

* Convert Wandering Spirit to the failskillswap flag

* Update miscelleneous descriptions that depend on cantsuppress

* Convert Entrainment to its flag

* Convert Receiver/PoA to its flag

* Convert Role Play to its flag

* Implement Doodle failure conditions

* Various cleanup

* Breakable fixes

* How did I manage to do this

* Allow LightningRod to be breakable in Gen 3

* Implement notransform flag

* Tera Shell oopsie

* Fix more things after the rebase

* And fix Teraform Zero

* Update data/abilities.ts

* Update data/abilities.ts

* Update data/abilities.ts

* Update data/mods/partnersincrime/abilities.ts

* Update data/abilities.ts

* Update data/mods/sharedpower/abilities.ts

* Update abilities.ts

---------

Co-authored-by: Kris Johnson <11083252+KrisXV@users.noreply.github.com>
2024-01-02 23:55:17 -07:00
Leonard Craft III
3933c2198d
Fix Poison Touch's interaction with Pledge Rainbow (#9756) 2023-09-10 20:57:48 -05:00
livid washed
2f2213e426
Add September 2023 Randomized Format Spotlight (#9739) 2023-08-31 22:22:48 -06:00