From 2cafe0bd76671d0e3ed699e1b7c0b20cb8b30e10 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Thu, 4 May 2023 15:55:18 -0400 Subject: [PATCH] Add TM tiers --- src/data/tms.ts | 306 +++++++++++++++++++++++++++++++++- src/modifier/modifier-type.ts | 35 ++-- 2 files changed, 327 insertions(+), 14 deletions(-) diff --git a/src/data/tms.ts b/src/data/tms.ts index 57f205898..c5afc5d0e 100644 --- a/src/data/tms.ts +++ b/src/data/tms.ts @@ -1,8 +1,9 @@ +import { ModifierTier } from "../modifier/modifier-type"; import { Moves } from "./move"; import { Species } from "./species"; interface TmSpecies { - [key: string]: Array> + [key: integer]: Array> } export const tmSpecies: TmSpecies = { @@ -30927,4 +30928,307 @@ export const tmSpecies: TmSpecies = { ] }; +interface TmPoolTiers { + [key: integer]: ModifierTier +} + +export const tmPoolTiers: TmPoolTiers = { + [Moves.MEGA_PUNCH]: ModifierTier.GREAT, + [Moves.PAY_DAY]: ModifierTier.COMMON, + [Moves.FIRE_PUNCH]: ModifierTier.GREAT, + [Moves.ICE_PUNCH]: ModifierTier.GREAT, + [Moves.THUNDER_PUNCH]: ModifierTier.GREAT, + [Moves.RAZOR_WIND]: ModifierTier.GREAT, + [Moves.SWORDS_DANCE]: ModifierTier.COMMON, + [Moves.CUT]: ModifierTier.COMMON, + [Moves.WHIRLWIND]: ModifierTier.COMMON, + [Moves.FLY]: ModifierTier.COMMON, + [Moves.BIND]: ModifierTier.COMMON, + [Moves.MEGA_KICK]: ModifierTier.GREAT, + [Moves.HEADBUTT]: ModifierTier.GREAT, + [Moves.HORN_DRILL]: ModifierTier.GREAT, + [Moves.BODY_SLAM]: ModifierTier.GREAT, + [Moves.TAKE_DOWN]: ModifierTier.GREAT, + [Moves.DOUBLE_EDGE]: ModifierTier.ULTRA, + [Moves.PIN_MISSILE]: ModifierTier.COMMON, + [Moves.ROAR]: ModifierTier.COMMON, + [Moves.FLAMETHROWER]: ModifierTier.ULTRA, + [Moves.WATER_GUN]: ModifierTier.COMMON, + [Moves.HYDRO_PUMP]: ModifierTier.ULTRA, + [Moves.SURF]: ModifierTier.ULTRA, + [Moves.ICE_BEAM]: ModifierTier.ULTRA, + [Moves.BLIZZARD]: ModifierTier.ULTRA, + [Moves.PSYBEAM]: ModifierTier.GREAT, + [Moves.BUBBLE_BEAM]: ModifierTier.GREAT, + [Moves.HYPER_BEAM]: ModifierTier.ULTRA, + [Moves.SUBMISSION]: ModifierTier.GREAT, + [Moves.LOW_KICK]: ModifierTier.COMMON, + [Moves.COUNTER]: ModifierTier.GREAT, + [Moves.SEISMIC_TOSS]: ModifierTier.COMMON, + [Moves.STRENGTH]: ModifierTier.GREAT, + [Moves.MEGA_DRAIN]: ModifierTier.GREAT, + [Moves.SOLAR_BEAM]: ModifierTier.ULTRA, + [Moves.STRING_SHOT]: ModifierTier.COMMON, + [Moves.DRAGON_RAGE]: ModifierTier.GREAT, + [Moves.FIRE_SPIN]: ModifierTier.COMMON, + [Moves.THUNDERBOLT]: ModifierTier.ULTRA, + [Moves.THUNDER_WAVE]: ModifierTier.COMMON, + [Moves.THUNDER]: ModifierTier.ULTRA, + [Moves.EARTHQUAKE]: ModifierTier.ULTRA, + [Moves.FISSURE]: ModifierTier.GREAT, + [Moves.DIG]: ModifierTier.GREAT, + [Moves.TOXIC]: ModifierTier.GREAT, + [Moves.PSYCHIC]: ModifierTier.ULTRA, + [Moves.HYPNOSIS]: ModifierTier.COMMON, + [Moves.AGILITY]: ModifierTier.COMMON, + [Moves.RAGE]: ModifierTier.COMMON, + [Moves.TELEPORT]: ModifierTier.COMMON, + [Moves.NIGHT_SHADE]: ModifierTier.COMMON, + [Moves.MIMIC]: ModifierTier.COMMON, + [Moves.SCREECH]: ModifierTier.COMMON, + [Moves.DOUBLE_TEAM]: ModifierTier.COMMON, + [Moves.CONFUSE_RAY]: ModifierTier.COMMON, + [Moves.DEFENSE_CURL]: ModifierTier.COMMON, + [Moves.LIGHT_SCREEN]: ModifierTier.COMMON, + [Moves.REFLECT]: ModifierTier.COMMON, + [Moves.FOCUS_ENERGY]: ModifierTier.COMMON, + [Moves.BIDE]: ModifierTier.COMMON, + [Moves.METRONOME]: ModifierTier.COMMON, + [Moves.SELF_DESTRUCT]: ModifierTier.GREAT, + [Moves.EGG_BOMB]: ModifierTier.GREAT, + [Moves.FIRE_BLAST]: ModifierTier.ULTRA, + [Moves.WATERFALL]: ModifierTier.GREAT, + [Moves.SWIFT]: ModifierTier.COMMON, + [Moves.SKULL_BASH]: ModifierTier.GREAT, + [Moves.AMNESIA]: ModifierTier.COMMON, + [Moves.SOFT_BOILED]: ModifierTier.GREAT, + [Moves.DREAM_EATER]: ModifierTier.GREAT, + [Moves.LEECH_LIFE]: ModifierTier.COMMON, + [Moves.SKY_ATTACK]: ModifierTier.ULTRA, + [Moves.FLASH]: ModifierTier.COMMON, + [Moves.PSYWAVE]: ModifierTier.COMMON, + [Moves.EXPLOSION]: ModifierTier.GREAT, + [Moves.REST]: ModifierTier.COMMON, + [Moves.ROCK_SLIDE]: ModifierTier.GREAT, + [Moves.TRI_ATTACK]: ModifierTier.GREAT, + [Moves.SUPER_FANG]: ModifierTier.COMMON, + [Moves.SUBSTITUTE]: ModifierTier.COMMON, + [Moves.THIEF]: ModifierTier.COMMON, + [Moves.NIGHTMARE]: ModifierTier.GREAT, + [Moves.SNORE]: ModifierTier.COMMON, + [Moves.CURSE]: ModifierTier.COMMON, + [Moves.REVERSAL]: ModifierTier.COMMON, + [Moves.SPITE]: ModifierTier.COMMON, + [Moves.PROTECT]: ModifierTier.COMMON, + [Moves.SCARY_FACE]: ModifierTier.COMMON, + [Moves.FEINT_ATTACK]: ModifierTier.GREAT, + [Moves.SLUDGE_BOMB]: ModifierTier.GREAT, + [Moves.MUD_SLAP]: ModifierTier.COMMON, + [Moves.SPIKES]: ModifierTier.COMMON, + [Moves.ZAP_CANNON]: ModifierTier.ULTRA, + [Moves.ICY_WIND]: ModifierTier.COMMON, + [Moves.DETECT]: ModifierTier.COMMON, + [Moves.OUTRAGE]: ModifierTier.ULTRA, + [Moves.SANDSTORM]: ModifierTier.COMMON, + [Moves.GIGA_DRAIN]: ModifierTier.ULTRA, + [Moves.ENDURE]: ModifierTier.COMMON, + [Moves.CHARM]: ModifierTier.COMMON, + [Moves.ROLLOUT]: ModifierTier.COMMON, + [Moves.FALSE_SWIPE]: ModifierTier.COMMON, + [Moves.SWAGGER]: ModifierTier.COMMON, + [Moves.FURY_CUTTER]: ModifierTier.COMMON, + [Moves.STEEL_WING]: ModifierTier.GREAT, + [Moves.ATTRACT]: ModifierTier.COMMON, + [Moves.SLEEP_TALK]: ModifierTier.COMMON, + [Moves.HEAL_BELL]: ModifierTier.COMMON, + [Moves.RETURN]: ModifierTier.COMMON, + [Moves.FRUSTRATION]: ModifierTier.COMMON, + [Moves.SAFEGUARD]: ModifierTier.COMMON, + [Moves.PAIN_SPLIT]: ModifierTier.COMMON, + [Moves.DYNAMIC_PUNCH]: ModifierTier.GREAT, + [Moves.MEGAHORN]: ModifierTier.ULTRA, + [Moves.DRAGON_BREATH]: ModifierTier.GREAT, + [Moves.BATON_PASS]: ModifierTier.COMMON, + [Moves.ENCORE]: ModifierTier.COMMON, + [Moves.SWEET_SCENT]: ModifierTier.COMMON, + [Moves.IRON_TAIL]: ModifierTier.GREAT, + [Moves.METAL_CLAW]: ModifierTier.COMMON, + [Moves.SYNTHESIS]: ModifierTier.COMMON, + [Moves.HIDDEN_POWER]: ModifierTier.COMMON, + [Moves.TWISTER]: ModifierTier.COMMON, + [Moves.RAIN_DANCE]: ModifierTier.COMMON, + [Moves.SUNNY_DAY]: ModifierTier.COMMON, + [Moves.CRUNCH]: ModifierTier.GREAT, + [Moves.PSYCH_UP]: ModifierTier.COMMON, + [Moves.ANCIENT_POWER]: ModifierTier.ULTRA, + [Moves.SHADOW_BALL]: ModifierTier.ULTRA, + [Moves.ROCK_SMASH]: ModifierTier.COMMON, + [Moves.BEAT_UP]: ModifierTier.COMMON, + [Moves.FAKE_OUT]: ModifierTier.COMMON, + [Moves.UPROAR]: ModifierTier.COMMON, + [Moves.HEAT_WAVE]: ModifierTier.ULTRA, + [Moves.HAIL]: ModifierTier.COMMON, + [Moves.TORMENT]: ModifierTier.COMMON, + [Moves.WILL_O_WISP]: ModifierTier.COMMON, + [Moves.FACADE]: ModifierTier.COMMON, + [Moves.FOCUS_PUNCH]: ModifierTier.COMMON, + [Moves.NATURE_POWER]: ModifierTier.COMMON, + [Moves.TAUNT]: ModifierTier.COMMON, + [Moves.HELPING_HAND]: ModifierTier.COMMON, + [Moves.TRICK]: ModifierTier.COMMON, + [Moves.ROLE_PLAY]: ModifierTier.COMMON, + [Moves.SUPERPOWER]: ModifierTier.ULTRA, + [Moves.MAGIC_COAT]: ModifierTier.COMMON, + [Moves.RECYCLE]: ModifierTier.COMMON, + [Moves.REVENGE]: ModifierTier.GREAT, + [Moves.BRICK_BREAK]: ModifierTier.GREAT, + [Moves.KNOCK_OFF]: ModifierTier.COMMON, + [Moves.ENDEAVOR]: ModifierTier.COMMON, + [Moves.SKILL_SWAP]: ModifierTier.COMMON, + [Moves.IMPRISON]: ModifierTier.COMMON, + [Moves.SNATCH]: ModifierTier.COMMON, + [Moves.SECRET_POWER]: ModifierTier.COMMON, + [Moves.DIVE]: ModifierTier.GREAT, + [Moves.ICE_BALL]: ModifierTier.COMMON, + [Moves.HYPER_VOICE]: ModifierTier.GREAT, + [Moves.BLAST_BURN]: ModifierTier.ULTRA, + [Moves.HYDRO_CANNON]: ModifierTier.ULTRA, + [Moves.WEATHER_BALL]: ModifierTier.COMMON, + [Moves.FAKE_TEARS]: ModifierTier.COMMON, + [Moves.AIR_CUTTER]: ModifierTier.GREAT, + [Moves.OVERHEAT]: ModifierTier.ULTRA, + [Moves.ROCK_TOMB]: ModifierTier.GREAT, + [Moves.SILVER_WIND]: ModifierTier.GREAT, + [Moves.SIGNAL_BEAM]: ModifierTier.GREAT, + [Moves.SAND_TOMB]: ModifierTier.COMMON, + [Moves.BULLET_SEED]: ModifierTier.COMMON, + [Moves.AERIAL_ACE]: ModifierTier.GREAT, + [Moves.ICICLE_SPEAR]: ModifierTier.COMMON, + [Moves.IRON_DEFENSE]: ModifierTier.COMMON, + [Moves.BLOCK]: ModifierTier.COMMON, + [Moves.DRAGON_CLAW]: ModifierTier.GREAT, + [Moves.FRENZY_PLANT]: ModifierTier.ULTRA, + [Moves.BULK_UP]: ModifierTier.COMMON, + [Moves.BOUNCE]: ModifierTier.GREAT, + [Moves.MUD_SHOT]: ModifierTier.GREAT, + [Moves.POISON_TAIL]: ModifierTier.GREAT, + [Moves.COVET]: ModifierTier.COMMON, + [Moves.VOLT_TACKLE]: ModifierTier.ULTRA, + [Moves.MAGICAL_LEAF]: ModifierTier.GREAT, + [Moves.CALM_MIND]: ModifierTier.COMMON, + [Moves.DRAGON_DANCE]: ModifierTier.COMMON, + [Moves.ROCK_BLAST]: ModifierTier.COMMON, + [Moves.SHOCK_WAVE]: ModifierTier.GREAT, + [Moves.WATER_PULSE]: ModifierTier.GREAT, + [Moves.ROOST]: ModifierTier.COMMON, + [Moves.GRAVITY]: ModifierTier.COMMON, + [Moves.GYRO_BALL]: ModifierTier.COMMON, + [Moves.BRINE]: ModifierTier.GREAT, + [Moves.NATURAL_GIFT]: ModifierTier.COMMON, + [Moves.PLUCK]: ModifierTier.COMMON, + [Moves.TAILWIND]: ModifierTier.GREAT, + [Moves.U_TURN]: ModifierTier.GREAT, + [Moves.CLOSE_COMBAT]: ModifierTier.ULTRA, + [Moves.PAYBACK]: ModifierTier.COMMON, + [Moves.ASSURANCE]: ModifierTier.COMMON, + [Moves.EMBARGO]: ModifierTier.COMMON, + [Moves.FLING]: ModifierTier.COMMON, + [Moves.GASTRO_ACID]: ModifierTier.COMMON, + [Moves.POWER_SWAP]: ModifierTier.COMMON, + [Moves.GUARD_SWAP]: ModifierTier.COMMON, + [Moves.LAST_RESORT]: ModifierTier.ULTRA, + [Moves.WORRY_SEED]: ModifierTier.COMMON, + [Moves.SUCKER_PUNCH]: ModifierTier.GREAT, + [Moves.TOXIC_SPIKES]: ModifierTier.GREAT, + [Moves.MAGNET_RISE]: ModifierTier.COMMON, + [Moves.FLARE_BLITZ]: ModifierTier.ULTRA, + [Moves.AURA_SPHERE]: ModifierTier.GREAT, + [Moves.ROCK_POLISH]: ModifierTier.COMMON, + [Moves.POISON_JAB]: ModifierTier.GREAT, + [Moves.DARK_PULSE]: ModifierTier.GREAT, + [Moves.AQUA_TAIL]: ModifierTier.GREAT, + [Moves.SEED_BOMB]: ModifierTier.GREAT, + [Moves.AIR_SLASH]: ModifierTier.GREAT, + [Moves.X_SCISSOR]: ModifierTier.GREAT, + [Moves.BUG_BUZZ]: ModifierTier.GREAT, + [Moves.DRAGON_PULSE]: ModifierTier.GREAT, + [Moves.POWER_GEM]: ModifierTier.GREAT, + [Moves.DRAIN_PUNCH]: ModifierTier.GREAT, + [Moves.VACUUM_WAVE]: ModifierTier.COMMON, + [Moves.FOCUS_BLAST]: ModifierTier.GREAT, + [Moves.ENERGY_BALL]: ModifierTier.GREAT, + [Moves.BRAVE_BIRD]: ModifierTier.ULTRA, + [Moves.EARTH_POWER]: ModifierTier.ULTRA, + [Moves.GIGA_IMPACT]: ModifierTier.GREAT, + [Moves.NASTY_PLOT]: ModifierTier.COMMON, + [Moves.AVALANCHE]: ModifierTier.GREAT, + [Moves.SHADOW_CLAW]: ModifierTier.GREAT, + [Moves.THUNDER_FANG]: ModifierTier.GREAT, + [Moves.ICE_FANG]: ModifierTier.GREAT, + [Moves.FIRE_FANG]: ModifierTier.GREAT, + [Moves.PSYCHO_CUT]: ModifierTier.GREAT, + [Moves.ZEN_HEADBUTT]: ModifierTier.GREAT, + [Moves.FLASH_CANNON]: ModifierTier.GREAT, + [Moves.ROCK_CLIMB]: ModifierTier.GREAT, + [Moves.DEFOG]: ModifierTier.COMMON, + [Moves.TRICK_ROOM]: ModifierTier.COMMON, + [Moves.DRACO_METEOR]: ModifierTier.ULTRA, + [Moves.LEAF_STORM]: ModifierTier.ULTRA, + [Moves.CROSS_POISON]: ModifierTier.GREAT, + [Moves.GUNK_SHOT]: ModifierTier.ULTRA, + [Moves.IRON_HEAD]: ModifierTier.GREAT, + [Moves.STONE_EDGE]: ModifierTier.ULTRA, + [Moves.CAPTIVATE]: ModifierTier.COMMON, + [Moves.STEALTH_ROCK]: ModifierTier.COMMON, + [Moves.GRASS_KNOT]: ModifierTier.ULTRA, + [Moves.BUG_BITE]: ModifierTier.GREAT, + [Moves.CHARGE_BEAM]: ModifierTier.GREAT, + [Moves.OMINOUS_WIND]: ModifierTier.GREAT, + [Moves.HONE_CLAWS]: ModifierTier.COMMON, + [Moves.WONDER_ROOM]: ModifierTier.COMMON, + [Moves.PSYSHOCK]: ModifierTier.GREAT, + [Moves.VENOSHOCK]: ModifierTier.GREAT, + [Moves.TELEKINESIS]: ModifierTier.COMMON, + [Moves.MAGIC_ROOM]: ModifierTier.COMMON, + [Moves.SMACK_DOWN]: ModifierTier.COMMON, + [Moves.SLUDGE_WAVE]: ModifierTier.GREAT, + [Moves.HEAVY_SLAM]: ModifierTier.GREAT, + [Moves.ELECTRO_BALL]: ModifierTier.COMMON, + [Moves.FLAME_CHARGE]: ModifierTier.GREAT, + [Moves.LOW_SWEEP]: ModifierTier.GREAT, + [Moves.ACID_SPRAY]: ModifierTier.COMMON, + [Moves.FOUL_PLAY]: ModifierTier.ULTRA, + [Moves.AFTER_YOU]: ModifierTier.COMMON, + [Moves.ROUND]: ModifierTier.COMMON, + [Moves.ECHOED_VOICE]: ModifierTier.COMMON, + [Moves.STORED_POWER]: ModifierTier.COMMON, + [Moves.ALLY_SWITCH]: ModifierTier.COMMON, + [Moves.SCALD]: ModifierTier.GREAT, + [Moves.HEX]: ModifierTier.GREAT, + [Moves.SKY_DROP]: ModifierTier.GREAT, + [Moves.INCINERATE]: ModifierTier.ULTRA, + [Moves.QUASH]: ModifierTier.COMMON, + [Moves.ACROBATICS]: ModifierTier.GREAT, + [Moves.RETALIATE]: ModifierTier.GREAT, + [Moves.WATER_PLEDGE]: ModifierTier.GREAT, + [Moves.FIRE_PLEDGE]: ModifierTier.GREAT, + [Moves.GRASS_PLEDGE]: ModifierTier.GREAT, + [Moves.VOLT_SWITCH]: ModifierTier.GREAT, + [Moves.STRUGGLE_BUG]: ModifierTier.COMMON, + [Moves.BULLDOZE]: ModifierTier.GREAT, + [Moves.FROST_BREATH]: ModifierTier.GREAT, + [Moves.DRAGON_TAIL]: ModifierTier.GREAT, + [Moves.WORK_UP]: ModifierTier.COMMON, + [Moves.ELECTROWEB]: ModifierTier.GREAT, + [Moves.WILD_CHARGE]: ModifierTier.GREAT, + [Moves.DRILL_RUN]: ModifierTier.GREAT, + [Moves.DUAL_CHOP]: ModifierTier.GREAT, + [Moves.RAZOR_SHELL]: ModifierTier.GREAT, + [Moves.TAIL_SLAP]: ModifierTier.COMMON, + [Moves.HURRICANE]: ModifierTier.ULTRA, + [Moves.RELIC_SONG]: ModifierTier.GREAT, + [Moves.SECRET_SWORD]: ModifierTier.GREAT, + [Moves.SNARL]: ModifierTier.COMMON, +}; + //console.log(tmSpecies); \ No newline at end of file diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 81001e3f2..b1f566016 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -4,7 +4,7 @@ import { PokeballType, getPokeballName } from '../data/pokeball'; import Pokemon, { EnemyPokemon, PlayerPokemon, PokemonMove } from '../pokemon'; import { EvolutionItem, pokemonEvolutions } from '../data/pokemon-evolutions'; import { Stat, getStatName } from '../data/pokemon-stat'; -import { tmSpecies } from '../data/tms'; +import { tmPoolTiers, tmSpecies } from '../data/tms'; import { Type } from '../data/type'; import PartyUiHandler, { PokemonMoveSelectFilter, PokemonSelectFilter } from '../ui/party-ui-handler'; import * as Utils from '../utils'; @@ -460,6 +460,19 @@ class AttackTypeBoosterModifierTypeGenerator extends ModifierTypeGenerator { } } +class TmModifierTypeGenerator extends ModifierTypeGenerator { + constructor(tier: ModifierTier) { + super((party: Pokemon[]) => { + const partyMemberCompatibleTms = party.map(p => (p as PlayerPokemon).compatibleTms); + const tierUniqueCompatibleTms = partyMemberCompatibleTms.flat().filter(tm => tmPoolTiers[tm] === tier).filter((tm, i, array) => array.indexOf(tm) === i); + if (!tierUniqueCompatibleTms.length) + return null; + const randTmIndex = Utils.randInt(tierUniqueCompatibleTms.length); + return new TmModifierType(tierUniqueCompatibleTms[randTmIndex]); + }); + } +} + class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator { constructor() { super((party: Pokemon[], pregenArgs?: any[]) => { @@ -567,14 +580,9 @@ const modifierTypes = { return new BerryModifierType(randBerryType); }), - TM: () => new ModifierTypeGenerator((party: Pokemon[]) => { - const partyMemberCompatibleTms = party.map(p => (p as PlayerPokemon).compatibleTms); - const uniqueCompatibleTms = partyMemberCompatibleTms.flat().filter((tm, i, array) => array.indexOf(tm) === i); - if (!uniqueCompatibleTms.length) - return null; - const randTmIndex = Utils.randInt(uniqueCompatibleTms.length); - return new TmModifierType(uniqueCompatibleTms[randTmIndex]); - }), + TM_COMMON: () => new TmModifierTypeGenerator(ModifierTier.COMMON), + TM_GREAT: () => new TmModifierTypeGenerator(ModifierTier.GREAT), + TM_ULTRA: () => new TmModifierTypeGenerator(ModifierTier.ULTRA), EXP_SHARE: () => new ModifierType('EXP. SHARE', 'All POKéMON in your party gain an additional 10% of a battle\'s EXP. Points', (type, _args) => new Modifiers.ExpShareModifier(type), 'exp_share'), @@ -640,7 +648,8 @@ const modifierPool = { return thresholdPartyMemberCount; }), new WeightedModifierType(modifierTypes.TEMP_STAT_BOOSTER, 4), - new WeightedModifierType(modifierTypes.BERRY, 2) + new WeightedModifierType(modifierTypes.BERRY, 2), + new WeightedModifierType(modifierTypes.TM_COMMON, 1) ].map(m => { m.setTier(ModifierTier.COMMON); return m; }), [ModifierTier.GREAT]: [ new WeightedModifierType(modifierTypes.GREAT_BALL, 6), @@ -678,14 +687,15 @@ const modifierPool = { new WeightedModifierType(modifierTypes.MAP, (party: Pokemon[]) => { return !party[0].scene.findModifier(m => m instanceof Modifiers.MapModifier) ? 1 : 0; }), - new WeightedModifierType(modifierTypes.TM, 2), + new WeightedModifierType(modifierTypes.TM_GREAT, 2), new WeightedModifierType(modifierTypes.EXP_SHARE, (party: Pokemon[]) => party.filter(p => p.level < 100).length ? 1 : 0), new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3) ].map(m => { m.setTier(ModifierTier.GREAT); return m; }), [ModifierTier.ULTRA]: [ new WeightedModifierType(modifierTypes.ULTRA_BALL, 8), new WeightedModifierType(modifierTypes.EVOLUTION_ITEM, 12), - new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 5), + new WeightedModifierType(modifierTypes.ATTACK_TYPE_BOOSTER, 4), + new WeightedModifierType(modifierTypes.TM_ULTRA, 5), new WeightedModifierType(modifierTypes.CANDY_JAR, 3), new WeightedModifierType(modifierTypes.HEALING_CHARM, 1), new WeightedModifierType(modifierTypes.BATON, 1), @@ -696,7 +706,6 @@ const modifierPool = { new WeightedModifierType(modifierTypes.BERRY_POUCH, 3), new WeightedModifierType(modifierTypes.EXP_CHARM, (party: Pokemon[]) => party.filter(p => p.level < 100).length ? 4 : 0), new WeightedModifierType(modifierTypes.OVAL_CHARM, (party: Pokemon[]) => party.filter(p => p.level < 100).length ? 2 : 0), - new WeightedModifierType(modifierTypes.LUCKY_EGG, (party: Pokemon[]) => party.filter(p => p.level < 100).length ? 3 : 0), new WeightedModifierType(modifierTypes.EXP_BALANCE, (party: Pokemon[]) => party.filter(p => p.level < 100).length && !party[0].scene.findModifier(m => m instanceof Modifiers.ExpBalanceModifier) ? 1 : 0) ].map(m => { m.setTier(ModifierTier.ULTRA); return m; }),