Start creating framework to lazy-load TM lists

- Delete empty/unused `reverseCompatibleTms` array

- Move `tmPoolTiers` to `src/data/tms.ts`

- Create `tmSpeciesList` and `speciesTmList` in `data-lists.ts`

- Create base of `getSpeciesTms` and `getTmSpecies`
functions in `src/data/tms.ts`
This commit is contained in:
NightKev 2025-08-04 02:49:12 -07:00
parent 8a2b888971
commit d3e8eefef2
5 changed files with 364 additions and 354 deletions

View File

@ -1,4 +1,3 @@
import { ModifierTier } from "#enums/modifier-tier";
import { MoveId } from "#enums/move-id";
import { SpeciesId } from "#enums/species-id";
@ -6,31 +5,6 @@ interface TmSpecies {
[key: number]: Array<SpeciesId | Array<SpeciesId | string>>
}
export const reverseCompatibleTms: MoveId[] = [];/*[
MoveId.TAKE_DOWN,
MoveId.TOXIC,
MoveId.RAGE,
MoveId.MIMIC,
MoveId.DOUBLE_TEAM,
MoveId.BIDE,
MoveId.REST,
MoveId.SUBSTITUTE,
MoveId.SNORE,
MoveId.PROTECT,
MoveId.ENDURE,
MoveId.SWAGGER,
MoveId.ATTRACT,
MoveId.SLEEP_TALK,
MoveId.RETURN,
MoveId.FRUSTRATION,
MoveId.HIDDEN_POWER,
MoveId.FACADE,
MoveId.SECRET_POWER,
MoveId.NATURAL_GIFT,
MoveId.CAPTIVATE,
MoveId.ROUND
];*/
export const tmSpecies: TmSpecies = {
[MoveId.MEGA_PUNCH]: [
SpeciesId.CHARMANDER,
@ -68589,326 +68563,3 @@ function transposeTmSpecies(): SpeciesTmMoves {
}
export const speciesTmMoves: SpeciesTmMoves = transposeTmSpecies();
interface TmPoolTiers {
[key: number]: ModifierTier
}
export const tmPoolTiers: TmPoolTiers = {
[MoveId.MEGA_PUNCH]: ModifierTier.GREAT,
[MoveId.PAY_DAY]: ModifierTier.ULTRA,
[MoveId.FIRE_PUNCH]: ModifierTier.GREAT,
[MoveId.ICE_PUNCH]: ModifierTier.GREAT,
[MoveId.THUNDER_PUNCH]: ModifierTier.GREAT,
[MoveId.SWORDS_DANCE]: ModifierTier.COMMON,
[MoveId.CUT]: ModifierTier.COMMON,
[MoveId.FLY]: ModifierTier.COMMON,
[MoveId.MEGA_KICK]: ModifierTier.GREAT,
[MoveId.BODY_SLAM]: ModifierTier.GREAT,
[MoveId.TAKE_DOWN]: ModifierTier.GREAT,
[MoveId.DOUBLE_EDGE]: ModifierTier.ULTRA,
[MoveId.PIN_MISSILE]: ModifierTier.COMMON,
[MoveId.ROAR]: ModifierTier.COMMON,
[MoveId.FLAMETHROWER]: ModifierTier.ULTRA,
[MoveId.HYDRO_PUMP]: ModifierTier.ULTRA,
[MoveId.SURF]: ModifierTier.ULTRA,
[MoveId.ICE_BEAM]: ModifierTier.ULTRA,
[MoveId.BLIZZARD]: ModifierTier.ULTRA,
[MoveId.PSYBEAM]: ModifierTier.GREAT,
[MoveId.HYPER_BEAM]: ModifierTier.ULTRA,
[MoveId.LOW_KICK]: ModifierTier.COMMON,
[MoveId.COUNTER]: ModifierTier.COMMON,
[MoveId.STRENGTH]: ModifierTier.GREAT,
[MoveId.SOLAR_BEAM]: ModifierTier.ULTRA,
[MoveId.FIRE_SPIN]: ModifierTier.COMMON,
[MoveId.THUNDERBOLT]: ModifierTier.ULTRA,
[MoveId.THUNDER_WAVE]: ModifierTier.COMMON,
[MoveId.THUNDER]: ModifierTier.ULTRA,
[MoveId.EARTHQUAKE]: ModifierTier.ULTRA,
[MoveId.DIG]: ModifierTier.GREAT,
[MoveId.TOXIC]: ModifierTier.GREAT,
[MoveId.PSYCHIC]: ModifierTier.ULTRA,
[MoveId.AGILITY]: ModifierTier.COMMON,
[MoveId.NIGHT_SHADE]: ModifierTier.COMMON,
[MoveId.SCREECH]: ModifierTier.COMMON,
[MoveId.DOUBLE_TEAM]: ModifierTier.COMMON,
[MoveId.CONFUSE_RAY]: ModifierTier.COMMON,
[MoveId.LIGHT_SCREEN]: ModifierTier.COMMON,
[MoveId.HAZE]: ModifierTier.COMMON,
[MoveId.REFLECT]: ModifierTier.COMMON,
[MoveId.FOCUS_ENERGY]: ModifierTier.COMMON,
[MoveId.METRONOME]: ModifierTier.COMMON,
[MoveId.SELF_DESTRUCT]: ModifierTier.GREAT,
[MoveId.FIRE_BLAST]: ModifierTier.ULTRA,
[MoveId.WATERFALL]: ModifierTier.GREAT,
[MoveId.SWIFT]: ModifierTier.COMMON,
[MoveId.AMNESIA]: ModifierTier.COMMON,
[MoveId.DREAM_EATER]: ModifierTier.GREAT,
[MoveId.LEECH_LIFE]: ModifierTier.ULTRA,
[MoveId.FLASH]: ModifierTier.COMMON,
[MoveId.EXPLOSION]: ModifierTier.GREAT,
[MoveId.REST]: ModifierTier.COMMON,
[MoveId.ROCK_SLIDE]: ModifierTier.GREAT,
[MoveId.TRI_ATTACK]: ModifierTier.ULTRA,
[MoveId.SUPER_FANG]: ModifierTier.COMMON,
[MoveId.SUBSTITUTE]: ModifierTier.COMMON,
[MoveId.THIEF]: ModifierTier.GREAT,
[MoveId.SNORE]: ModifierTier.COMMON,
[MoveId.CURSE]: ModifierTier.COMMON,
[MoveId.REVERSAL]: ModifierTier.COMMON,
[MoveId.SPITE]: ModifierTier.COMMON,
[MoveId.PROTECT]: ModifierTier.COMMON,
[MoveId.SCARY_FACE]: ModifierTier.COMMON,
[MoveId.SLUDGE_BOMB]: ModifierTier.GREAT,
[MoveId.MUD_SLAP]: ModifierTier.COMMON,
[MoveId.SPIKES]: ModifierTier.COMMON,
[MoveId.ICY_WIND]: ModifierTier.GREAT,
[MoveId.OUTRAGE]: ModifierTier.ULTRA,
[MoveId.SANDSTORM]: ModifierTier.COMMON,
[MoveId.GIGA_DRAIN]: ModifierTier.ULTRA,
[MoveId.ENDURE]: ModifierTier.COMMON,
[MoveId.CHARM]: ModifierTier.COMMON,
[MoveId.FALSE_SWIPE]: ModifierTier.COMMON,
[MoveId.SWAGGER]: ModifierTier.COMMON,
[MoveId.STEEL_WING]: ModifierTier.GREAT,
[MoveId.ATTRACT]: ModifierTier.COMMON,
[MoveId.SLEEP_TALK]: ModifierTier.COMMON,
[MoveId.HEAL_BELL]: ModifierTier.COMMON,
[MoveId.RETURN]: ModifierTier.ULTRA,
[MoveId.FRUSTRATION]: ModifierTier.COMMON,
[MoveId.SAFEGUARD]: ModifierTier.COMMON,
[MoveId.PAIN_SPLIT]: ModifierTier.COMMON,
[MoveId.MEGAHORN]: ModifierTier.ULTRA,
[MoveId.BATON_PASS]: ModifierTier.COMMON,
[MoveId.ENCORE]: ModifierTier.COMMON,
[MoveId.IRON_TAIL]: ModifierTier.GREAT,
[MoveId.METAL_CLAW]: ModifierTier.COMMON,
[MoveId.SYNTHESIS]: ModifierTier.GREAT,
[MoveId.HIDDEN_POWER]: ModifierTier.GREAT,
[MoveId.RAIN_DANCE]: ModifierTier.COMMON,
[MoveId.SUNNY_DAY]: ModifierTier.COMMON,
[MoveId.CRUNCH]: ModifierTier.GREAT,
[MoveId.PSYCH_UP]: ModifierTier.COMMON,
[MoveId.SHADOW_BALL]: ModifierTier.ULTRA,
[MoveId.FUTURE_SIGHT]: ModifierTier.GREAT,
[MoveId.ROCK_SMASH]: ModifierTier.COMMON,
[MoveId.WHIRLPOOL]: ModifierTier.COMMON,
[MoveId.BEAT_UP]: ModifierTier.COMMON,
[MoveId.UPROAR]: ModifierTier.GREAT,
[MoveId.HEAT_WAVE]: ModifierTier.ULTRA,
[MoveId.HAIL]: ModifierTier.COMMON,
[MoveId.TORMENT]: ModifierTier.COMMON,
[MoveId.WILL_O_WISP]: ModifierTier.COMMON,
[MoveId.FACADE]: ModifierTier.GREAT,
[MoveId.FOCUS_PUNCH]: ModifierTier.COMMON,
[MoveId.NATURE_POWER]: ModifierTier.COMMON,
[MoveId.CHARGE]: ModifierTier.COMMON,
[MoveId.TAUNT]: ModifierTier.COMMON,
[MoveId.HELPING_HAND]: ModifierTier.COMMON,
[MoveId.TRICK]: ModifierTier.COMMON,
[MoveId.SUPERPOWER]: ModifierTier.ULTRA,
[MoveId.RECYCLE]: ModifierTier.COMMON,
[MoveId.REVENGE]: ModifierTier.GREAT,
[MoveId.BRICK_BREAK]: ModifierTier.GREAT,
[MoveId.KNOCK_OFF]: ModifierTier.GREAT,
[MoveId.ENDEAVOR]: ModifierTier.COMMON,
[MoveId.SKILL_SWAP]: ModifierTier.COMMON,
[MoveId.IMPRISON]: ModifierTier.COMMON,
[MoveId.SECRET_POWER]: ModifierTier.COMMON,
[MoveId.DIVE]: ModifierTier.GREAT,
[MoveId.FEATHER_DANCE]: ModifierTier.COMMON,
[MoveId.BLAZE_KICK]: ModifierTier.GREAT,
[MoveId.HYPER_VOICE]: ModifierTier.ULTRA,
[MoveId.BLAST_BURN]: ModifierTier.ULTRA,
[MoveId.HYDRO_CANNON]: ModifierTier.ULTRA,
[MoveId.WEATHER_BALL]: ModifierTier.COMMON,
[MoveId.FAKE_TEARS]: ModifierTier.COMMON,
[MoveId.AIR_CUTTER]: ModifierTier.GREAT,
[MoveId.OVERHEAT]: ModifierTier.ULTRA,
[MoveId.ROCK_TOMB]: ModifierTier.GREAT,
[MoveId.METAL_SOUND]: ModifierTier.COMMON,
[MoveId.COSMIC_POWER]: ModifierTier.COMMON,
[MoveId.SIGNAL_BEAM]: ModifierTier.GREAT,
[MoveId.SAND_TOMB]: ModifierTier.COMMON,
[MoveId.MUDDY_WATER]: ModifierTier.GREAT,
[MoveId.BULLET_SEED]: ModifierTier.GREAT,
[MoveId.AERIAL_ACE]: ModifierTier.GREAT,
[MoveId.ICICLE_SPEAR]: ModifierTier.GREAT,
[MoveId.IRON_DEFENSE]: ModifierTier.GREAT,
[MoveId.DRAGON_CLAW]: ModifierTier.ULTRA,
[MoveId.FRENZY_PLANT]: ModifierTier.ULTRA,
[MoveId.BULK_UP]: ModifierTier.COMMON,
[MoveId.BOUNCE]: ModifierTier.GREAT,
[MoveId.MUD_SHOT]: ModifierTier.GREAT,
[MoveId.POISON_TAIL]: ModifierTier.GREAT,
[MoveId.COVET]: ModifierTier.GREAT,
[MoveId.MAGICAL_LEAF]: ModifierTier.GREAT,
[MoveId.CALM_MIND]: ModifierTier.GREAT,
[MoveId.LEAF_BLADE]: ModifierTier.ULTRA,
[MoveId.DRAGON_DANCE]: ModifierTier.GREAT,
[MoveId.ROCK_BLAST]: ModifierTier.GREAT,
[MoveId.WATER_PULSE]: ModifierTier.GREAT,
[MoveId.ROOST]: ModifierTier.GREAT,
[MoveId.GRAVITY]: ModifierTier.COMMON,
[MoveId.GYRO_BALL]: ModifierTier.COMMON,
[MoveId.BRINE]: ModifierTier.GREAT,
[MoveId.PLUCK]: ModifierTier.GREAT,
[MoveId.TAILWIND]: ModifierTier.GREAT,
[MoveId.U_TURN]: ModifierTier.GREAT,
[MoveId.CLOSE_COMBAT]: ModifierTier.ULTRA,
[MoveId.PAYBACK]: ModifierTier.COMMON,
[MoveId.ASSURANCE]: ModifierTier.COMMON,
[MoveId.EMBARGO]: ModifierTier.COMMON,
[MoveId.FLING]: ModifierTier.COMMON,
[MoveId.GASTRO_ACID]: ModifierTier.GREAT,
[MoveId.POWER_SWAP]: ModifierTier.COMMON,
[MoveId.GUARD_SWAP]: ModifierTier.COMMON,
[MoveId.WORRY_SEED]: ModifierTier.GREAT,
[MoveId.TOXIC_SPIKES]: ModifierTier.GREAT,
[MoveId.FLARE_BLITZ]: ModifierTier.ULTRA,
[MoveId.AURA_SPHERE]: ModifierTier.GREAT,
[MoveId.ROCK_POLISH]: ModifierTier.COMMON,
[MoveId.POISON_JAB]: ModifierTier.GREAT,
[MoveId.DARK_PULSE]: ModifierTier.GREAT,
[MoveId.AQUA_TAIL]: ModifierTier.GREAT,
[MoveId.SEED_BOMB]: ModifierTier.GREAT,
[MoveId.AIR_SLASH]: ModifierTier.GREAT,
[MoveId.X_SCISSOR]: ModifierTier.GREAT,
[MoveId.BUG_BUZZ]: ModifierTier.GREAT,
[MoveId.DRAGON_PULSE]: ModifierTier.GREAT,
[MoveId.POWER_GEM]: ModifierTier.GREAT,
[MoveId.DRAIN_PUNCH]: ModifierTier.GREAT,
[MoveId.VACUUM_WAVE]: ModifierTier.COMMON,
[MoveId.FOCUS_BLAST]: ModifierTier.GREAT,
[MoveId.ENERGY_BALL]: ModifierTier.GREAT,
[MoveId.BRAVE_BIRD]: ModifierTier.ULTRA,
[MoveId.EARTH_POWER]: ModifierTier.ULTRA,
[MoveId.GIGA_IMPACT]: ModifierTier.GREAT,
[MoveId.NASTY_PLOT]: ModifierTier.COMMON,
[MoveId.AVALANCHE]: ModifierTier.GREAT,
[MoveId.SHADOW_CLAW]: ModifierTier.GREAT,
[MoveId.THUNDER_FANG]: ModifierTier.GREAT,
[MoveId.ICE_FANG]: ModifierTier.GREAT,
[MoveId.FIRE_FANG]: ModifierTier.GREAT,
[MoveId.PSYCHO_CUT]: ModifierTier.GREAT,
[MoveId.ZEN_HEADBUTT]: ModifierTier.GREAT,
[MoveId.FLASH_CANNON]: ModifierTier.GREAT,
[MoveId.ROCK_CLIMB]: ModifierTier.GREAT,
[MoveId.DEFOG]: ModifierTier.COMMON,
[MoveId.TRICK_ROOM]: ModifierTier.COMMON,
[MoveId.DRACO_METEOR]: ModifierTier.ULTRA,
[MoveId.LEAF_STORM]: ModifierTier.ULTRA,
[MoveId.POWER_WHIP]: ModifierTier.ULTRA,
[MoveId.CROSS_POISON]: ModifierTier.GREAT,
[MoveId.GUNK_SHOT]: ModifierTier.ULTRA,
[MoveId.IRON_HEAD]: ModifierTier.GREAT,
[MoveId.STONE_EDGE]: ModifierTier.ULTRA,
[MoveId.STEALTH_ROCK]: ModifierTier.COMMON,
[MoveId.GRASS_KNOT]: ModifierTier.ULTRA,
[MoveId.BUG_BITE]: ModifierTier.GREAT,
[MoveId.CHARGE_BEAM]: ModifierTier.GREAT,
[MoveId.HONE_CLAWS]: ModifierTier.COMMON,
[MoveId.WONDER_ROOM]: ModifierTier.COMMON,
[MoveId.PSYSHOCK]: ModifierTier.GREAT,
[MoveId.VENOSHOCK]: ModifierTier.GREAT,
[MoveId.MAGIC_ROOM]: ModifierTier.COMMON,
[MoveId.SMACK_DOWN]: ModifierTier.COMMON,
[MoveId.SLUDGE_WAVE]: ModifierTier.GREAT,
[MoveId.HEAVY_SLAM]: ModifierTier.GREAT,
[MoveId.ELECTRO_BALL]: ModifierTier.GREAT,
[MoveId.FLAME_CHARGE]: ModifierTier.GREAT,
[MoveId.LOW_SWEEP]: ModifierTier.GREAT,
[MoveId.ACID_SPRAY]: ModifierTier.COMMON,
[MoveId.FOUL_PLAY]: ModifierTier.ULTRA,
[MoveId.ROUND]: ModifierTier.COMMON,
[MoveId.ECHOED_VOICE]: ModifierTier.COMMON,
[MoveId.STORED_POWER]: ModifierTier.COMMON,
[MoveId.ALLY_SWITCH]: ModifierTier.COMMON,
[MoveId.SCALD]: ModifierTier.GREAT,
[MoveId.HEX]: ModifierTier.GREAT,
[MoveId.SKY_DROP]: ModifierTier.GREAT,
[MoveId.INCINERATE]: ModifierTier.GREAT,
[MoveId.QUASH]: ModifierTier.COMMON,
[MoveId.ACROBATICS]: ModifierTier.GREAT,
[MoveId.RETALIATE]: ModifierTier.GREAT,
[MoveId.WATER_PLEDGE]: ModifierTier.GREAT,
[MoveId.FIRE_PLEDGE]: ModifierTier.GREAT,
[MoveId.GRASS_PLEDGE]: ModifierTier.GREAT,
[MoveId.VOLT_SWITCH]: ModifierTier.GREAT,
[MoveId.STRUGGLE_BUG]: ModifierTier.COMMON,
[MoveId.BULLDOZE]: ModifierTier.GREAT,
[MoveId.FROST_BREATH]: ModifierTier.GREAT,
[MoveId.DRAGON_TAIL]: ModifierTier.GREAT,
[MoveId.WORK_UP]: ModifierTier.COMMON,
[MoveId.ELECTROWEB]: ModifierTier.GREAT,
[MoveId.WILD_CHARGE]: ModifierTier.GREAT,
[MoveId.DRILL_RUN]: ModifierTier.GREAT,
[MoveId.RAZOR_SHELL]: ModifierTier.GREAT,
[MoveId.HEAT_CRASH]: ModifierTier.GREAT,
[MoveId.TAIL_SLAP]: ModifierTier.GREAT,
[MoveId.HURRICANE]: ModifierTier.ULTRA,
[MoveId.SNARL]: ModifierTier.COMMON,
[MoveId.PHANTOM_FORCE]: ModifierTier.ULTRA,
[MoveId.PETAL_BLIZZARD]: ModifierTier.GREAT,
[MoveId.DISARMING_VOICE]: ModifierTier.GREAT,
[MoveId.DRAINING_KISS]: ModifierTier.GREAT,
[MoveId.GRASSY_TERRAIN]: ModifierTier.COMMON,
[MoveId.MISTY_TERRAIN]: ModifierTier.COMMON,
[MoveId.PLAY_ROUGH]: ModifierTier.GREAT,
[MoveId.CONFIDE]: ModifierTier.COMMON,
[MoveId.MYSTICAL_FIRE]: ModifierTier.GREAT,
[MoveId.EERIE_IMPULSE]: ModifierTier.COMMON,
[MoveId.VENOM_DRENCH]: ModifierTier.COMMON,
[MoveId.ELECTRIC_TERRAIN]: ModifierTier.COMMON,
[MoveId.DAZZLING_GLEAM]: ModifierTier.ULTRA,
[MoveId.INFESTATION]: ModifierTier.COMMON,
[MoveId.POWER_UP_PUNCH]: ModifierTier.GREAT,
[MoveId.DARKEST_LARIAT]: ModifierTier.GREAT,
[MoveId.HIGH_HORSEPOWER]: ModifierTier.ULTRA,
[MoveId.SOLAR_BLADE]: ModifierTier.GREAT,
[MoveId.THROAT_CHOP]: ModifierTier.GREAT,
[MoveId.POLLEN_PUFF]: ModifierTier.GREAT,
[MoveId.PSYCHIC_TERRAIN]: ModifierTier.COMMON,
[MoveId.LUNGE]: ModifierTier.GREAT,
[MoveId.SPEED_SWAP]: ModifierTier.COMMON,
[MoveId.SMART_STRIKE]: ModifierTier.GREAT,
[MoveId.BRUTAL_SWING]: ModifierTier.GREAT,
[MoveId.AURORA_VEIL]: ModifierTier.COMMON,
[MoveId.PSYCHIC_FANGS]: ModifierTier.GREAT,
[MoveId.STOMPING_TANTRUM]: ModifierTier.GREAT,
[MoveId.LIQUIDATION]: ModifierTier.ULTRA,
[MoveId.BODY_PRESS]: ModifierTier.ULTRA,
[MoveId.BREAKING_SWIPE]: ModifierTier.GREAT,
[MoveId.STEEL_BEAM]: ModifierTier.ULTRA,
[MoveId.EXPANDING_FORCE]: ModifierTier.GREAT,
[MoveId.STEEL_ROLLER]: ModifierTier.COMMON,
[MoveId.SCALE_SHOT]: ModifierTier.ULTRA,
[MoveId.METEOR_BEAM]: ModifierTier.GREAT,
[MoveId.MISTY_EXPLOSION]: ModifierTier.COMMON,
[MoveId.GRASSY_GLIDE]: ModifierTier.COMMON,
[MoveId.RISING_VOLTAGE]: ModifierTier.COMMON,
[MoveId.TERRAIN_PULSE]: ModifierTier.COMMON,
[MoveId.SKITTER_SMACK]: ModifierTier.GREAT,
[MoveId.BURNING_JEALOUSY]: ModifierTier.GREAT,
[MoveId.LASH_OUT]: ModifierTier.GREAT,
[MoveId.POLTERGEIST]: ModifierTier.ULTRA,
[MoveId.CORROSIVE_GAS]: ModifierTier.COMMON,
[MoveId.COACHING]: ModifierTier.COMMON,
[MoveId.FLIP_TURN]: ModifierTier.COMMON,
[MoveId.TRIPLE_AXEL]: ModifierTier.COMMON,
[MoveId.DUAL_WINGBEAT]: ModifierTier.COMMON,
[MoveId.SCORCHING_SANDS]: ModifierTier.GREAT,
[MoveId.TERA_BLAST]: ModifierTier.GREAT,
[MoveId.ICE_SPINNER]: ModifierTier.GREAT,
[MoveId.SNOWSCAPE]: ModifierTier.COMMON,
[MoveId.POUNCE]: ModifierTier.COMMON,
[MoveId.TRAILBLAZE]: ModifierTier.COMMON,
[MoveId.CHILLING_WATER]: ModifierTier.COMMON,
[MoveId.HARD_PRESS]: ModifierTier.GREAT,
[MoveId.DRAGON_CHEER]: ModifierTier.COMMON,
[MoveId.ALLURING_VOICE]: ModifierTier.GREAT,
[MoveId.TEMPER_FLARE]: ModifierTier.GREAT,
[MoveId.SUPERCELL_SLAM]: ModifierTier.GREAT,
[MoveId.PSYCHIC_NOISE]: ModifierTier.GREAT,
[MoveId.UPPER_HAND]: ModifierTier.COMMON,
};

View File

@ -1,5 +1,7 @@
import type { Ability } from "#abilities/ability";
import type { PokemonSpecies } from "#data/pokemon-species";
import type { MoveId } from "#enums/move-id";
import type { SpeciesId } from "#enums/species-id";
import type { ModifierTypes } from "#modifiers/modifier-type";
import type { Move } from "#moves/move";
@ -9,3 +11,14 @@ export const allSpecies: PokemonSpecies[] = [];
// TODO: Figure out what this is used for and provide an appropriate tsdoc comment
export const modifierTypes = {} as ModifierTypes;
interface TmSpeciesList {
[key: number]: (SpeciesId | (SpeciesId | string)[])[];
}
interface SpeciesTmList {
[key: number]: (MoveId | [string | SpeciesId, MoveId])[];
}
export const tmSpeciesList: TmSpeciesList = {};
export const speciesTmList: SpeciesTmList = {};

341
src/data/tms.ts Normal file
View File

@ -0,0 +1,341 @@
import { speciesTmList, tmSpeciesList } from "#data/data-lists";
import { ModifierTier } from "#enums/modifier-tier";
import { MoveId } from "#enums/move-id";
import type { SpeciesId } from "#enums/species-id";
export function getSpeciesTms(speciesId: SpeciesId) {
if (speciesTmList[speciesId]) {
// value is cached
return speciesTmList[speciesId];
}
}
export function getTmSpecies(moveId: MoveId) {
if (tmSpeciesList[moveId]) {
// value is cached
return tmSpeciesList[moveId];
}
}
interface TmPoolTiers {
[key: number]: ModifierTier;
}
export const tmPoolTiers: TmPoolTiers = {
[MoveId.MEGA_PUNCH]: ModifierTier.GREAT,
[MoveId.PAY_DAY]: ModifierTier.ULTRA,
[MoveId.FIRE_PUNCH]: ModifierTier.GREAT,
[MoveId.ICE_PUNCH]: ModifierTier.GREAT,
[MoveId.THUNDER_PUNCH]: ModifierTier.GREAT,
[MoveId.SWORDS_DANCE]: ModifierTier.COMMON,
[MoveId.CUT]: ModifierTier.COMMON,
[MoveId.FLY]: ModifierTier.COMMON,
[MoveId.MEGA_KICK]: ModifierTier.GREAT,
[MoveId.BODY_SLAM]: ModifierTier.GREAT,
[MoveId.TAKE_DOWN]: ModifierTier.GREAT,
[MoveId.DOUBLE_EDGE]: ModifierTier.ULTRA,
[MoveId.PIN_MISSILE]: ModifierTier.COMMON,
[MoveId.ROAR]: ModifierTier.COMMON,
[MoveId.FLAMETHROWER]: ModifierTier.ULTRA,
[MoveId.HYDRO_PUMP]: ModifierTier.ULTRA,
[MoveId.SURF]: ModifierTier.ULTRA,
[MoveId.ICE_BEAM]: ModifierTier.ULTRA,
[MoveId.BLIZZARD]: ModifierTier.ULTRA,
[MoveId.PSYBEAM]: ModifierTier.GREAT,
[MoveId.HYPER_BEAM]: ModifierTier.ULTRA,
[MoveId.LOW_KICK]: ModifierTier.COMMON,
[MoveId.COUNTER]: ModifierTier.COMMON,
[MoveId.STRENGTH]: ModifierTier.GREAT,
[MoveId.SOLAR_BEAM]: ModifierTier.ULTRA,
[MoveId.FIRE_SPIN]: ModifierTier.COMMON,
[MoveId.THUNDERBOLT]: ModifierTier.ULTRA,
[MoveId.THUNDER_WAVE]: ModifierTier.COMMON,
[MoveId.THUNDER]: ModifierTier.ULTRA,
[MoveId.EARTHQUAKE]: ModifierTier.ULTRA,
[MoveId.DIG]: ModifierTier.GREAT,
[MoveId.TOXIC]: ModifierTier.GREAT,
[MoveId.PSYCHIC]: ModifierTier.ULTRA,
[MoveId.AGILITY]: ModifierTier.COMMON,
[MoveId.NIGHT_SHADE]: ModifierTier.COMMON,
[MoveId.SCREECH]: ModifierTier.COMMON,
[MoveId.DOUBLE_TEAM]: ModifierTier.COMMON,
[MoveId.CONFUSE_RAY]: ModifierTier.COMMON,
[MoveId.LIGHT_SCREEN]: ModifierTier.COMMON,
[MoveId.HAZE]: ModifierTier.COMMON,
[MoveId.REFLECT]: ModifierTier.COMMON,
[MoveId.FOCUS_ENERGY]: ModifierTier.COMMON,
[MoveId.METRONOME]: ModifierTier.COMMON,
[MoveId.SELF_DESTRUCT]: ModifierTier.GREAT,
[MoveId.FIRE_BLAST]: ModifierTier.ULTRA,
[MoveId.WATERFALL]: ModifierTier.GREAT,
[MoveId.SWIFT]: ModifierTier.COMMON,
[MoveId.AMNESIA]: ModifierTier.COMMON,
[MoveId.DREAM_EATER]: ModifierTier.GREAT,
[MoveId.LEECH_LIFE]: ModifierTier.ULTRA,
[MoveId.FLASH]: ModifierTier.COMMON,
[MoveId.EXPLOSION]: ModifierTier.GREAT,
[MoveId.REST]: ModifierTier.COMMON,
[MoveId.ROCK_SLIDE]: ModifierTier.GREAT,
[MoveId.TRI_ATTACK]: ModifierTier.ULTRA,
[MoveId.SUPER_FANG]: ModifierTier.COMMON,
[MoveId.SUBSTITUTE]: ModifierTier.COMMON,
[MoveId.THIEF]: ModifierTier.GREAT,
[MoveId.SNORE]: ModifierTier.COMMON,
[MoveId.CURSE]: ModifierTier.COMMON,
[MoveId.REVERSAL]: ModifierTier.COMMON,
[MoveId.SPITE]: ModifierTier.COMMON,
[MoveId.PROTECT]: ModifierTier.COMMON,
[MoveId.SCARY_FACE]: ModifierTier.COMMON,
[MoveId.SLUDGE_BOMB]: ModifierTier.GREAT,
[MoveId.MUD_SLAP]: ModifierTier.COMMON,
[MoveId.SPIKES]: ModifierTier.COMMON,
[MoveId.ICY_WIND]: ModifierTier.GREAT,
[MoveId.OUTRAGE]: ModifierTier.ULTRA,
[MoveId.SANDSTORM]: ModifierTier.COMMON,
[MoveId.GIGA_DRAIN]: ModifierTier.ULTRA,
[MoveId.ENDURE]: ModifierTier.COMMON,
[MoveId.CHARM]: ModifierTier.COMMON,
[MoveId.FALSE_SWIPE]: ModifierTier.COMMON,
[MoveId.SWAGGER]: ModifierTier.COMMON,
[MoveId.STEEL_WING]: ModifierTier.GREAT,
[MoveId.ATTRACT]: ModifierTier.COMMON,
[MoveId.SLEEP_TALK]: ModifierTier.COMMON,
[MoveId.HEAL_BELL]: ModifierTier.COMMON,
[MoveId.RETURN]: ModifierTier.ULTRA,
[MoveId.FRUSTRATION]: ModifierTier.COMMON,
[MoveId.SAFEGUARD]: ModifierTier.COMMON,
[MoveId.PAIN_SPLIT]: ModifierTier.COMMON,
[MoveId.MEGAHORN]: ModifierTier.ULTRA,
[MoveId.BATON_PASS]: ModifierTier.COMMON,
[MoveId.ENCORE]: ModifierTier.COMMON,
[MoveId.IRON_TAIL]: ModifierTier.GREAT,
[MoveId.METAL_CLAW]: ModifierTier.COMMON,
[MoveId.SYNTHESIS]: ModifierTier.GREAT,
[MoveId.HIDDEN_POWER]: ModifierTier.GREAT,
[MoveId.RAIN_DANCE]: ModifierTier.COMMON,
[MoveId.SUNNY_DAY]: ModifierTier.COMMON,
[MoveId.CRUNCH]: ModifierTier.GREAT,
[MoveId.PSYCH_UP]: ModifierTier.COMMON,
[MoveId.SHADOW_BALL]: ModifierTier.ULTRA,
[MoveId.FUTURE_SIGHT]: ModifierTier.GREAT,
[MoveId.ROCK_SMASH]: ModifierTier.COMMON,
[MoveId.WHIRLPOOL]: ModifierTier.COMMON,
[MoveId.BEAT_UP]: ModifierTier.COMMON,
[MoveId.UPROAR]: ModifierTier.GREAT,
[MoveId.HEAT_WAVE]: ModifierTier.ULTRA,
[MoveId.HAIL]: ModifierTier.COMMON,
[MoveId.TORMENT]: ModifierTier.COMMON,
[MoveId.WILL_O_WISP]: ModifierTier.COMMON,
[MoveId.FACADE]: ModifierTier.GREAT,
[MoveId.FOCUS_PUNCH]: ModifierTier.COMMON,
[MoveId.NATURE_POWER]: ModifierTier.COMMON,
[MoveId.CHARGE]: ModifierTier.COMMON,
[MoveId.TAUNT]: ModifierTier.COMMON,
[MoveId.HELPING_HAND]: ModifierTier.COMMON,
[MoveId.TRICK]: ModifierTier.COMMON,
[MoveId.SUPERPOWER]: ModifierTier.ULTRA,
[MoveId.RECYCLE]: ModifierTier.COMMON,
[MoveId.REVENGE]: ModifierTier.GREAT,
[MoveId.BRICK_BREAK]: ModifierTier.GREAT,
[MoveId.KNOCK_OFF]: ModifierTier.GREAT,
[MoveId.ENDEAVOR]: ModifierTier.COMMON,
[MoveId.SKILL_SWAP]: ModifierTier.COMMON,
[MoveId.IMPRISON]: ModifierTier.COMMON,
[MoveId.SECRET_POWER]: ModifierTier.COMMON,
[MoveId.DIVE]: ModifierTier.GREAT,
[MoveId.FEATHER_DANCE]: ModifierTier.COMMON,
[MoveId.BLAZE_KICK]: ModifierTier.GREAT,
[MoveId.HYPER_VOICE]: ModifierTier.ULTRA,
[MoveId.BLAST_BURN]: ModifierTier.ULTRA,
[MoveId.HYDRO_CANNON]: ModifierTier.ULTRA,
[MoveId.WEATHER_BALL]: ModifierTier.COMMON,
[MoveId.FAKE_TEARS]: ModifierTier.COMMON,
[MoveId.AIR_CUTTER]: ModifierTier.GREAT,
[MoveId.OVERHEAT]: ModifierTier.ULTRA,
[MoveId.ROCK_TOMB]: ModifierTier.GREAT,
[MoveId.METAL_SOUND]: ModifierTier.COMMON,
[MoveId.COSMIC_POWER]: ModifierTier.COMMON,
[MoveId.SIGNAL_BEAM]: ModifierTier.GREAT,
[MoveId.SAND_TOMB]: ModifierTier.COMMON,
[MoveId.MUDDY_WATER]: ModifierTier.GREAT,
[MoveId.BULLET_SEED]: ModifierTier.GREAT,
[MoveId.AERIAL_ACE]: ModifierTier.GREAT,
[MoveId.ICICLE_SPEAR]: ModifierTier.GREAT,
[MoveId.IRON_DEFENSE]: ModifierTier.GREAT,
[MoveId.DRAGON_CLAW]: ModifierTier.ULTRA,
[MoveId.FRENZY_PLANT]: ModifierTier.ULTRA,
[MoveId.BULK_UP]: ModifierTier.COMMON,
[MoveId.BOUNCE]: ModifierTier.GREAT,
[MoveId.MUD_SHOT]: ModifierTier.GREAT,
[MoveId.POISON_TAIL]: ModifierTier.GREAT,
[MoveId.COVET]: ModifierTier.GREAT,
[MoveId.MAGICAL_LEAF]: ModifierTier.GREAT,
[MoveId.CALM_MIND]: ModifierTier.GREAT,
[MoveId.LEAF_BLADE]: ModifierTier.ULTRA,
[MoveId.DRAGON_DANCE]: ModifierTier.GREAT,
[MoveId.ROCK_BLAST]: ModifierTier.GREAT,
[MoveId.WATER_PULSE]: ModifierTier.GREAT,
[MoveId.ROOST]: ModifierTier.GREAT,
[MoveId.GRAVITY]: ModifierTier.COMMON,
[MoveId.GYRO_BALL]: ModifierTier.COMMON,
[MoveId.BRINE]: ModifierTier.GREAT,
[MoveId.PLUCK]: ModifierTier.GREAT,
[MoveId.TAILWIND]: ModifierTier.GREAT,
[MoveId.U_TURN]: ModifierTier.GREAT,
[MoveId.CLOSE_COMBAT]: ModifierTier.ULTRA,
[MoveId.PAYBACK]: ModifierTier.COMMON,
[MoveId.ASSURANCE]: ModifierTier.COMMON,
[MoveId.EMBARGO]: ModifierTier.COMMON,
[MoveId.FLING]: ModifierTier.COMMON,
[MoveId.GASTRO_ACID]: ModifierTier.GREAT,
[MoveId.POWER_SWAP]: ModifierTier.COMMON,
[MoveId.GUARD_SWAP]: ModifierTier.COMMON,
[MoveId.WORRY_SEED]: ModifierTier.GREAT,
[MoveId.TOXIC_SPIKES]: ModifierTier.GREAT,
[MoveId.FLARE_BLITZ]: ModifierTier.ULTRA,
[MoveId.AURA_SPHERE]: ModifierTier.GREAT,
[MoveId.ROCK_POLISH]: ModifierTier.COMMON,
[MoveId.POISON_JAB]: ModifierTier.GREAT,
[MoveId.DARK_PULSE]: ModifierTier.GREAT,
[MoveId.AQUA_TAIL]: ModifierTier.GREAT,
[MoveId.SEED_BOMB]: ModifierTier.GREAT,
[MoveId.AIR_SLASH]: ModifierTier.GREAT,
[MoveId.X_SCISSOR]: ModifierTier.GREAT,
[MoveId.BUG_BUZZ]: ModifierTier.GREAT,
[MoveId.DRAGON_PULSE]: ModifierTier.GREAT,
[MoveId.POWER_GEM]: ModifierTier.GREAT,
[MoveId.DRAIN_PUNCH]: ModifierTier.GREAT,
[MoveId.VACUUM_WAVE]: ModifierTier.COMMON,
[MoveId.FOCUS_BLAST]: ModifierTier.GREAT,
[MoveId.ENERGY_BALL]: ModifierTier.GREAT,
[MoveId.BRAVE_BIRD]: ModifierTier.ULTRA,
[MoveId.EARTH_POWER]: ModifierTier.ULTRA,
[MoveId.GIGA_IMPACT]: ModifierTier.GREAT,
[MoveId.NASTY_PLOT]: ModifierTier.COMMON,
[MoveId.AVALANCHE]: ModifierTier.GREAT,
[MoveId.SHADOW_CLAW]: ModifierTier.GREAT,
[MoveId.THUNDER_FANG]: ModifierTier.GREAT,
[MoveId.ICE_FANG]: ModifierTier.GREAT,
[MoveId.FIRE_FANG]: ModifierTier.GREAT,
[MoveId.PSYCHO_CUT]: ModifierTier.GREAT,
[MoveId.ZEN_HEADBUTT]: ModifierTier.GREAT,
[MoveId.FLASH_CANNON]: ModifierTier.GREAT,
[MoveId.ROCK_CLIMB]: ModifierTier.GREAT,
[MoveId.DEFOG]: ModifierTier.COMMON,
[MoveId.TRICK_ROOM]: ModifierTier.COMMON,
[MoveId.DRACO_METEOR]: ModifierTier.ULTRA,
[MoveId.LEAF_STORM]: ModifierTier.ULTRA,
[MoveId.POWER_WHIP]: ModifierTier.ULTRA,
[MoveId.CROSS_POISON]: ModifierTier.GREAT,
[MoveId.GUNK_SHOT]: ModifierTier.ULTRA,
[MoveId.IRON_HEAD]: ModifierTier.GREAT,
[MoveId.STONE_EDGE]: ModifierTier.ULTRA,
[MoveId.STEALTH_ROCK]: ModifierTier.COMMON,
[MoveId.GRASS_KNOT]: ModifierTier.ULTRA,
[MoveId.BUG_BITE]: ModifierTier.GREAT,
[MoveId.CHARGE_BEAM]: ModifierTier.GREAT,
[MoveId.HONE_CLAWS]: ModifierTier.COMMON,
[MoveId.WONDER_ROOM]: ModifierTier.COMMON,
[MoveId.PSYSHOCK]: ModifierTier.GREAT,
[MoveId.VENOSHOCK]: ModifierTier.GREAT,
[MoveId.MAGIC_ROOM]: ModifierTier.COMMON,
[MoveId.SMACK_DOWN]: ModifierTier.COMMON,
[MoveId.SLUDGE_WAVE]: ModifierTier.GREAT,
[MoveId.HEAVY_SLAM]: ModifierTier.GREAT,
[MoveId.ELECTRO_BALL]: ModifierTier.GREAT,
[MoveId.FLAME_CHARGE]: ModifierTier.GREAT,
[MoveId.LOW_SWEEP]: ModifierTier.GREAT,
[MoveId.ACID_SPRAY]: ModifierTier.COMMON,
[MoveId.FOUL_PLAY]: ModifierTier.ULTRA,
[MoveId.ROUND]: ModifierTier.COMMON,
[MoveId.ECHOED_VOICE]: ModifierTier.COMMON,
[MoveId.STORED_POWER]: ModifierTier.COMMON,
[MoveId.ALLY_SWITCH]: ModifierTier.COMMON,
[MoveId.SCALD]: ModifierTier.GREAT,
[MoveId.HEX]: ModifierTier.GREAT,
[MoveId.SKY_DROP]: ModifierTier.GREAT,
[MoveId.INCINERATE]: ModifierTier.GREAT,
[MoveId.QUASH]: ModifierTier.COMMON,
[MoveId.ACROBATICS]: ModifierTier.GREAT,
[MoveId.RETALIATE]: ModifierTier.GREAT,
[MoveId.WATER_PLEDGE]: ModifierTier.GREAT,
[MoveId.FIRE_PLEDGE]: ModifierTier.GREAT,
[MoveId.GRASS_PLEDGE]: ModifierTier.GREAT,
[MoveId.VOLT_SWITCH]: ModifierTier.GREAT,
[MoveId.STRUGGLE_BUG]: ModifierTier.COMMON,
[MoveId.BULLDOZE]: ModifierTier.GREAT,
[MoveId.FROST_BREATH]: ModifierTier.GREAT,
[MoveId.DRAGON_TAIL]: ModifierTier.GREAT,
[MoveId.WORK_UP]: ModifierTier.COMMON,
[MoveId.ELECTROWEB]: ModifierTier.GREAT,
[MoveId.WILD_CHARGE]: ModifierTier.GREAT,
[MoveId.DRILL_RUN]: ModifierTier.GREAT,
[MoveId.RAZOR_SHELL]: ModifierTier.GREAT,
[MoveId.HEAT_CRASH]: ModifierTier.GREAT,
[MoveId.TAIL_SLAP]: ModifierTier.GREAT,
[MoveId.HURRICANE]: ModifierTier.ULTRA,
[MoveId.SNARL]: ModifierTier.COMMON,
[MoveId.PHANTOM_FORCE]: ModifierTier.ULTRA,
[MoveId.PETAL_BLIZZARD]: ModifierTier.GREAT,
[MoveId.DISARMING_VOICE]: ModifierTier.GREAT,
[MoveId.DRAINING_KISS]: ModifierTier.GREAT,
[MoveId.GRASSY_TERRAIN]: ModifierTier.COMMON,
[MoveId.MISTY_TERRAIN]: ModifierTier.COMMON,
[MoveId.PLAY_ROUGH]: ModifierTier.GREAT,
[MoveId.CONFIDE]: ModifierTier.COMMON,
[MoveId.MYSTICAL_FIRE]: ModifierTier.GREAT,
[MoveId.EERIE_IMPULSE]: ModifierTier.COMMON,
[MoveId.VENOM_DRENCH]: ModifierTier.COMMON,
[MoveId.ELECTRIC_TERRAIN]: ModifierTier.COMMON,
[MoveId.DAZZLING_GLEAM]: ModifierTier.ULTRA,
[MoveId.INFESTATION]: ModifierTier.COMMON,
[MoveId.POWER_UP_PUNCH]: ModifierTier.GREAT,
[MoveId.DARKEST_LARIAT]: ModifierTier.GREAT,
[MoveId.HIGH_HORSEPOWER]: ModifierTier.ULTRA,
[MoveId.SOLAR_BLADE]: ModifierTier.GREAT,
[MoveId.THROAT_CHOP]: ModifierTier.GREAT,
[MoveId.POLLEN_PUFF]: ModifierTier.GREAT,
[MoveId.PSYCHIC_TERRAIN]: ModifierTier.COMMON,
[MoveId.LUNGE]: ModifierTier.GREAT,
[MoveId.SPEED_SWAP]: ModifierTier.COMMON,
[MoveId.SMART_STRIKE]: ModifierTier.GREAT,
[MoveId.BRUTAL_SWING]: ModifierTier.GREAT,
[MoveId.AURORA_VEIL]: ModifierTier.COMMON,
[MoveId.PSYCHIC_FANGS]: ModifierTier.GREAT,
[MoveId.STOMPING_TANTRUM]: ModifierTier.GREAT,
[MoveId.LIQUIDATION]: ModifierTier.ULTRA,
[MoveId.BODY_PRESS]: ModifierTier.ULTRA,
[MoveId.BREAKING_SWIPE]: ModifierTier.GREAT,
[MoveId.STEEL_BEAM]: ModifierTier.ULTRA,
[MoveId.EXPANDING_FORCE]: ModifierTier.GREAT,
[MoveId.STEEL_ROLLER]: ModifierTier.COMMON,
[MoveId.SCALE_SHOT]: ModifierTier.ULTRA,
[MoveId.METEOR_BEAM]: ModifierTier.GREAT,
[MoveId.MISTY_EXPLOSION]: ModifierTier.COMMON,
[MoveId.GRASSY_GLIDE]: ModifierTier.COMMON,
[MoveId.RISING_VOLTAGE]: ModifierTier.COMMON,
[MoveId.TERRAIN_PULSE]: ModifierTier.COMMON,
[MoveId.SKITTER_SMACK]: ModifierTier.GREAT,
[MoveId.BURNING_JEALOUSY]: ModifierTier.GREAT,
[MoveId.LASH_OUT]: ModifierTier.GREAT,
[MoveId.POLTERGEIST]: ModifierTier.ULTRA,
[MoveId.CORROSIVE_GAS]: ModifierTier.COMMON,
[MoveId.COACHING]: ModifierTier.COMMON,
[MoveId.FLIP_TURN]: ModifierTier.COMMON,
[MoveId.TRIPLE_AXEL]: ModifierTier.COMMON,
[MoveId.DUAL_WINGBEAT]: ModifierTier.COMMON,
[MoveId.SCORCHING_SANDS]: ModifierTier.GREAT,
[MoveId.TERA_BLAST]: ModifierTier.GREAT,
[MoveId.ICE_SPINNER]: ModifierTier.GREAT,
[MoveId.SNOWSCAPE]: ModifierTier.COMMON,
[MoveId.POUNCE]: ModifierTier.COMMON,
[MoveId.TRAILBLAZE]: ModifierTier.COMMON,
[MoveId.CHILLING_WATER]: ModifierTier.COMMON,
[MoveId.HARD_PRESS]: ModifierTier.GREAT,
[MoveId.DRAGON_CHEER]: ModifierTier.COMMON,
[MoveId.ALLURING_VOICE]: ModifierTier.GREAT,
[MoveId.TEMPER_FLARE]: ModifierTier.GREAT,
[MoveId.SUPERCELL_SLAM]: ModifierTier.GREAT,
[MoveId.PSYCHIC_NOISE]: ModifierTier.GREAT,
[MoveId.UPPER_HAND]: ModifierTier.COMMON,
};

View File

@ -18,7 +18,7 @@ import type { LevelMoves } from "#balance/pokemon-level-moves";
import { EVOLVE_MOVE, RELEARN_MOVE } from "#balance/pokemon-level-moves";
import { BASE_HIDDEN_ABILITY_CHANCE, BASE_SHINY_CHANCE, SHINY_EPIC_CHANCE, SHINY_VARIANT_CHANCE } from "#balance/rates";
import { getStarterValueFriendshipCap, speciesStarterCosts } from "#balance/starters";
import { reverseCompatibleTms, tmPoolTiers, tmSpecies } from "#balance/tms";
import { tmSpecies } from "#balance/tms";
import type { SuppressAbilitiesTag } from "#data/arena-tag";
import { NoCritTag, WeakenMoveScreenTag } from "#data/arena-tag";
import {
@ -63,6 +63,7 @@ import type { PokemonSpeciesForm } from "#data/pokemon-species";
import { PokemonSpecies } from "#data/pokemon-species";
import { getRandomStatus, getStatusEffectOverlapText, Status } from "#data/status-effect";
import { getTerrainBlockMessage, TerrainType } from "#data/terrain";
import { tmPoolTiers } from "#data/tms";
import type { TypeDamageMultiplier } from "#data/type";
import { getTypeDamageMultiplier, getTypeRgb } from "#data/type";
import { AbilityId } from "#enums/ability-id";
@ -5707,6 +5708,11 @@ export class PlayerPokemon extends Pokemon {
this.generateCompatibleTms();
}
public override destroy(): void {
// TODO: put code here to delete data from `speciesTmList` if last player pokemon of this species was just destroyed
super.destroy();
}
initBattleInfo(): void {
this.battleInfo = new PlayerBattleInfo();
this.battleInfo.initInfo(this);
@ -5736,6 +5742,7 @@ export class PlayerPokemon extends Pokemon {
return this.getFieldIndex();
}
// TODO: change this
generateCompatibleTms(): void {
this.compatibleTms = [];
@ -5758,9 +5765,6 @@ export class PlayerPokemon extends Pokemon {
break;
}
}
if (reverseCompatibleTms.indexOf(moveId) > -1) {
compatible = !compatible;
}
if (compatible) {
this.compatibleTms.push(moveId);
}

View File

@ -4,7 +4,7 @@ import { globalScene } from "#app/global-scene";
import { getPokemonNameWithAffix } from "#app/messages";
import Overrides from "#app/overrides";
import { EvolutionItem, pokemonEvolutions } from "#balance/pokemon-evolutions";
import { tmPoolTiers, tmSpecies } from "#balance/tms";
import { tmSpecies } from "#balance/tms";
import { getBerryEffectDescription, getBerryName } from "#data/berry";
import { allMoves, modifierTypes } from "#data/data-lists";
import { SpeciesFormChangeItemTrigger } from "#data/form-change-triggers";
@ -12,6 +12,7 @@ import { getNatureName, getNatureStatMultiplier } from "#data/nature";
import { getPokeballCatchMultiplier, getPokeballName } from "#data/pokeball";
import { pokemonFormChanges, SpeciesFormChangeCondition } from "#data/pokemon-forms";
import { getStatusEffectDescriptor } from "#data/status-effect";
import { tmPoolTiers } from "#data/tms";
import { BattlerTagType } from "#enums/battler-tag-type";
import { BerryType } from "#enums/berry-type";
import { FormChangeItem } from "#enums/form-change-item";