Add TM tiers

pull/1/head
Flashfyre 2023-05-04 15:55:18 -04:00
parent c25b2332f2
commit 2cafe0bd76
2 changed files with 327 additions and 14 deletions

View File

@ -1,8 +1,9 @@
import { ModifierTier } from "../modifier/modifier-type";
import { Moves } from "./move"; import { Moves } from "./move";
import { Species } from "./species"; import { Species } from "./species";
interface TmSpecies { interface TmSpecies {
[key: string]: Array<Species | Array<Species | string>> [key: integer]: Array<Species | Array<Species | string>>
} }
export const tmSpecies: TmSpecies = { 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); //console.log(tmSpecies);

View File

@ -4,7 +4,7 @@ import { PokeballType, getPokeballName } from '../data/pokeball';
import Pokemon, { EnemyPokemon, PlayerPokemon, PokemonMove } from '../pokemon'; import Pokemon, { EnemyPokemon, PlayerPokemon, PokemonMove } from '../pokemon';
import { EvolutionItem, pokemonEvolutions } from '../data/pokemon-evolutions'; import { EvolutionItem, pokemonEvolutions } from '../data/pokemon-evolutions';
import { Stat, getStatName } from '../data/pokemon-stat'; import { Stat, getStatName } from '../data/pokemon-stat';
import { tmSpecies } from '../data/tms'; import { tmPoolTiers, tmSpecies } from '../data/tms';
import { Type } from '../data/type'; import { Type } from '../data/type';
import PartyUiHandler, { PokemonMoveSelectFilter, PokemonSelectFilter } from '../ui/party-ui-handler'; import PartyUiHandler, { PokemonMoveSelectFilter, PokemonSelectFilter } from '../ui/party-ui-handler';
import * as Utils from '../utils'; 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 { class EvolutionItemModifierTypeGenerator extends ModifierTypeGenerator {
constructor() { constructor() {
super((party: Pokemon[], pregenArgs?: any[]) => { super((party: Pokemon[], pregenArgs?: any[]) => {
@ -567,14 +580,9 @@ const modifierTypes = {
return new BerryModifierType(randBerryType); return new BerryModifierType(randBerryType);
}), }),
TM: () => new ModifierTypeGenerator((party: Pokemon[]) => { TM_COMMON: () => new TmModifierTypeGenerator(ModifierTier.COMMON),
const partyMemberCompatibleTms = party.map(p => (p as PlayerPokemon).compatibleTms); TM_GREAT: () => new TmModifierTypeGenerator(ModifierTier.GREAT),
const uniqueCompatibleTms = partyMemberCompatibleTms.flat().filter((tm, i, array) => array.indexOf(tm) === i); TM_ULTRA: () => new TmModifierTypeGenerator(ModifierTier.ULTRA),
if (!uniqueCompatibleTms.length)
return null;
const randTmIndex = Utils.randInt(uniqueCompatibleTms.length);
return new TmModifierType(uniqueCompatibleTms[randTmIndex]);
}),
EXP_SHARE: () => new ModifierType('EXP. SHARE', 'All POKéMON in your party gain an additional 10% of a battle\'s EXP. Points', 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'), (type, _args) => new Modifiers.ExpShareModifier(type), 'exp_share'),
@ -640,7 +648,8 @@ const modifierPool = {
return thresholdPartyMemberCount; return thresholdPartyMemberCount;
}), }),
new WeightedModifierType(modifierTypes.TEMP_STAT_BOOSTER, 4), 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; }), ].map(m => { m.setTier(ModifierTier.COMMON); return m; }),
[ModifierTier.GREAT]: [ [ModifierTier.GREAT]: [
new WeightedModifierType(modifierTypes.GREAT_BALL, 6), new WeightedModifierType(modifierTypes.GREAT_BALL, 6),
@ -678,14 +687,15 @@ const modifierPool = {
new WeightedModifierType(modifierTypes.MAP, (party: Pokemon[]) => { new WeightedModifierType(modifierTypes.MAP, (party: Pokemon[]) => {
return !party[0].scene.findModifier(m => m instanceof Modifiers.MapModifier) ? 1 : 0; 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.EXP_SHARE, (party: Pokemon[]) => party.filter(p => p.level < 100).length ? 1 : 0),
new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3) new WeightedModifierType(modifierTypes.BASE_STAT_BOOSTER, 3)
].map(m => { m.setTier(ModifierTier.GREAT); return m; }), ].map(m => { m.setTier(ModifierTier.GREAT); return m; }),
[ModifierTier.ULTRA]: [ [ModifierTier.ULTRA]: [
new WeightedModifierType(modifierTypes.ULTRA_BALL, 8), new WeightedModifierType(modifierTypes.ULTRA_BALL, 8),
new WeightedModifierType(modifierTypes.EVOLUTION_ITEM, 12), 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.CANDY_JAR, 3),
new WeightedModifierType(modifierTypes.HEALING_CHARM, 1), new WeightedModifierType(modifierTypes.HEALING_CHARM, 1),
new WeightedModifierType(modifierTypes.BATON, 1), new WeightedModifierType(modifierTypes.BATON, 1),
@ -696,7 +706,6 @@ const modifierPool = {
new WeightedModifierType(modifierTypes.BERRY_POUCH, 3), 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.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.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, 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) (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; }), ].map(m => { m.setTier(ModifierTier.ULTRA); return m; }),