Replaced ModifierTier with RewardTier

This commit is contained in:
Wlowscha 2025-06-19 18:23:29 +02:00
parent ebf0f3e352
commit ede7fe4615
No known key found for this signature in database
GPG Key ID: 3C8F1AD330565D04
27 changed files with 575 additions and 577 deletions

View File

@ -30,7 +30,7 @@ import i18next from "#app/plugins/i18n";
import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter";
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
import type { CustomModifierSettings } from "#app/modifier/modifier-type";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import type { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { BattleType } from "#enums/battle-type";
import { ClassicFixedBossWaves } from "#enums/fixed-boss-waves";
@ -593,7 +593,7 @@ export const classicFixedBattles: FixedBattleConfigs = {
),
)
.setCustomModifierRewards({
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
guaranteedModifierTiers: [RewardTier.ULTRA, RewardTier.GREAT, RewardTier.GREAT],
allowLuckUpgrades: false,
}),
[ClassicFixedBossWaves.EVIL_GRUNT_1]: new FixedBattleConfig()
@ -625,7 +625,7 @@ export const classicFixedBattles: FixedBattleConfigs = {
),
)
.setCustomModifierRewards({
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
guaranteedModifierTiers: [RewardTier.ULTRA, RewardTier.ULTRA, RewardTier.GREAT, RewardTier.GREAT],
allowLuckUpgrades: false,
}),
[ClassicFixedBossWaves.EVIL_GRUNT_2]: new FixedBattleConfig()
@ -698,7 +698,7 @@ export const classicFixedBattles: FixedBattleConfigs = {
),
)
.setCustomModifierRewards({
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA],
guaranteedModifierTiers: [RewardTier.ULTRA, RewardTier.ULTRA, RewardTier.ULTRA, RewardTier.ULTRA],
allowLuckUpgrades: false,
}),
[ClassicFixedBossWaves.EVIL_GRUNT_4]: new FixedBattleConfig()
@ -761,11 +761,11 @@ export const classicFixedBattles: FixedBattleConfigs = {
)
.setCustomModifierRewards({
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.ULTRA,
],
allowLuckUpgrades: false,
}),
@ -780,11 +780,11 @@ export const classicFixedBattles: FixedBattleConfigs = {
)
.setCustomModifierRewards({
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
],
allowLuckUpgrades: false,
}),
@ -807,12 +807,12 @@ export const classicFixedBattles: FixedBattleConfigs = {
)
.setCustomModifierRewards({
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.ULTRA,
],
allowLuckUpgrades: false,
}),
@ -911,12 +911,12 @@ export const classicFixedBattles: FixedBattleConfigs = {
)
.setCustomModifierRewards({
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.GREAT,
ModifierTier.GREAT,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.GREAT,
RewardTier.GREAT,
],
allowLuckUpgrades: false,
}),

View File

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

View File

@ -22,7 +22,7 @@ import { TrainerType } from "#enums/trainer-type";
import { Nature } from "#enums/nature";
import type { MoveId } from "#enums/move-id";
import { TypeColor, TypeShadow } from "#enums/color";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { globalScene } from "#app/global-scene";
import { pokemonFormChanges } from "./pokemon-forms";
import { pokemonEvolutions } from "./balance/pokemon-evolutions";
@ -459,11 +459,11 @@ export class SingleGenerationChallenge extends Challenge {
.setGetTrainerFunc(getRandomTrainerFunc(trainerTypes, true))
.setCustomModifierRewards({
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.ULTRA,
],
allowLuckUpgrades: false,
});
@ -476,12 +476,12 @@ export class SingleGenerationChallenge extends Challenge {
.setGetTrainerFunc(getRandomTrainerFunc(trainerTypes, true))
.setCustomModifierRewards({
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.ULTRA,
],
allowLuckUpgrades: false,
});

View File

@ -19,7 +19,7 @@ import i18next from "i18next";
import type { IEggOptions } from "#app/data/egg";
import { EggSourceType } from "#enums/egg-source-types";
import { EggTier } from "#enums/egg-type";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { modifierTypes } from "#app/data/data-lists";
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
@ -165,7 +165,7 @@ export const ATrainersTestEncounter: MysteryEncounter = MysteryEncounterBuilder.
setEncounterRewards(
{
guaranteedModifierTypeFuncs: [modifierTypes.SACRED_ASH],
guaranteedModifierTiers: [ModifierTier.ROGUE, ModifierTier.ULTRA],
guaranteedModifierTiers: [RewardTier.ROGUE, RewardTier.ULTRA],
fillRemaining: true,
},
[eggOptions],

View File

@ -41,7 +41,7 @@ import { GigantamaxAccessModifier, MegaEvolutionAccessModifier } from "#app/modi
import i18next from "i18next";
import MoveInfoOverlay from "#app/ui/move-info-overlay";
import { allMoves } from "#app/data/data-lists";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
import { getSpriteKeysFromSpecies } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils";
import { HeldItemId } from "#enums/held-item-id";
@ -470,7 +470,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde
globalScene.updateModifiers(true);
const bugNet = generateModifierTypeOption(modifierTypes.MYSTERY_ENCOUNTER_GOLDEN_BUG_NET)!;
bugNet.type.tier = ModifierTier.ROGUE;
bugNet.type.tier = RewardTier.ROGUE;
setEncounterRewards({
guaranteedModifierTypeOptions: [bugNet],

View File

@ -11,7 +11,7 @@ import {
import { trainerConfigs } from "#app/data/trainers/trainer-config";
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import type { PokemonHeldItemModifierType } from "#app/modifier/modifier-type";
import { ModifierPoolType } from "#enums/modifier-pool-type";
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
@ -320,18 +320,18 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterBuilder
for (const m of items.filter(m => m.isTransferable && !(m instanceof BerryModifier))) {
const type = m.type.withTierFromPool(ModifierPoolType.PLAYER, party);
const tier = type.tier ?? ModifierTier.ULTRA;
if (type.id === "GOLDEN_EGG" || tier === ModifierTier.ROGUE) {
const tier = type.tier ?? RewardTier.ULTRA;
if (type.id === "GOLDEN_EGG" || tier === RewardTier.ROGUE) {
numRogue += m.stackCount;
globalScene.removeModifier(m);
} else if (type.id === "LUCKY_EGG" || type.id === "SOOTHE_BELL" || tier === ModifierTier.ULTRA) {
} else if (type.id === "LUCKY_EGG" || type.id === "SOOTHE_BELL" || tier === RewardTier.ULTRA) {
numUltra += m.stackCount;
globalScene.removeModifier(m);
}
}
generateItemsOfTier(mostHeldItemsPokemon, numUltra, ModifierTier.ULTRA);
generateItemsOfTier(mostHeldItemsPokemon, numRogue, ModifierTier.ROGUE);
generateItemsOfTier(mostHeldItemsPokemon, numUltra, RewardTier.ULTRA);
generateItemsOfTier(mostHeldItemsPokemon, numRogue, RewardTier.ROGUE);
})
.withOptionPhase(async () => {
leaveEncounterWithoutBattle(true);
@ -487,7 +487,7 @@ function onYesAbilitySwap(resolve) {
selectPokemonForOption(onPokemonSelected, onPokemonNotSelected);
}
function generateItemsOfTier(pokemon: PlayerPokemon, numItems: number, tier: ModifierTier | "Berries") {
function generateItemsOfTier(pokemon: PlayerPokemon, numItems: number, tier: RewardTier | "Berries") {
// These pools have to be defined at runtime so that modifierTypes exist
// Pools have instances of the modifier type equal to the max stacks that modifier can be applied to any one pokemon
// This is to prevent "over-generating" a random item of a certain type during item swaps
@ -528,7 +528,7 @@ function generateItemsOfTier(pokemon: PlayerPokemon, numItems: number, tier: Mod
if (tier === "Berries") {
pool = berryPool;
} else {
pool = tier === ModifierTier.ULTRA ? ultraPool : roguePool;
pool = tier === RewardTier.ULTRA ? ultraPool : roguePool;
}
for (let i = 0; i < numItems; i++) {

View File

@ -9,7 +9,7 @@ import {
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
import { STEALING_MOVES } from "#app/data/mystery-encounters/requirements/requirement-groups";
import type Pokemon from "#app/field/pokemon";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import type { ModifierTypeOption } from "#app/modifier/modifier-type";
import { getPlayerModifierTypeOptions, regenerateModifierPoolThresholds } from "#app/modifier/modifier-type";
import { ModifierPoolType } from "#enums/modifier-pool-type";
@ -89,12 +89,12 @@ export const FightOrFlightEncounter: MysteryEncounter = MysteryEncounterBuilder.
// Waves 10-40 GREAT, 60-120 ULTRA, 120-160 ROGUE, 160-180 MASTER
const tier =
globalScene.currentBattle.waveIndex > 160
? ModifierTier.MASTER
? RewardTier.MASTER
: globalScene.currentBattle.waveIndex > 120
? ModifierTier.ROGUE
? RewardTier.ROGUE
: globalScene.currentBattle.waveIndex > 40
? ModifierTier.ULTRA
: ModifierTier.GREAT;
? RewardTier.ULTRA
: RewardTier.GREAT;
regenerateModifierPoolThresholds(globalScene.getPlayerParty(), ModifierPoolType.PLAYER, 0);
let item: ModifierTypeOption | null = null;
// TMs and Candy Jar excluded from possible rewards as they're too swingy in value for a singular item reward

View File

@ -4,7 +4,6 @@ import {
setEncounterRewards,
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
import { TrainerSlot } from "#enums/trainer-slot";
import { ModifierTier } from "#enums/modifier-tier";
import { MusicPreference } from "#app/system/settings/settings";
import type { ModifierTypeOption } from "#app/modifier/modifier-type";
import { getPlayerModifierTypeOptions, regenerateModifierPoolThresholds } from "#app/modifier/modifier-type";
@ -33,13 +32,7 @@ import type { PlayerPokemon } from "#app/field/pokemon";
import type Pokemon from "#app/field/pokemon";
import { EnemyPokemon } from "#app/field/pokemon";
import { PokemonMove } from "#app/data/moves/pokemon-move";
import type { PokemonHeldItemModifier } from "#app/modifier/modifier";
import {
HiddenAbilityRateBoosterModifier,
PokemonFormChangeItemModifier,
ShinyRateBoosterModifier,
SpeciesStatBoosterModifier,
} from "#app/modifier/modifier";
import { HiddenAbilityRateBoosterModifier, ShinyRateBoosterModifier } from "#app/modifier/modifier";
import type { OptionSelectItem } from "#app/ui/abstact-option-select-ui-handler";
import PokemonData from "#app/system/pokemon-data";
import i18next from "i18next";
@ -53,6 +46,9 @@ import type { PokeballType } from "#enums/pokeball";
import { doShinySparkleAnim } from "#app/field/anims";
import { TrainerType } from "#enums/trainer-type";
import { timedEventManager } from "#app/global-event-manager";
import { HeldItemCategoryId, HeldItemId, isItemInCategory } from "#enums/held-item-id";
import { allHeldItems } from "#app/items/all-held-items";
import { RewardTier } from "#enums/reward-tier";
/** the i18n namespace for the encounter */
const namespace = "mysteryEncounters/globalTradeSystem";
@ -215,9 +211,9 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
const encounter = globalScene.currentBattle.mysteryEncounter!;
const tradedPokemon: PlayerPokemon = encounter.misc.tradedPokemon;
const receivedPokemonData: EnemyPokemon = encounter.misc.receivedPokemon;
const modifiers = tradedPokemon
.getHeldItems()
.filter(m => !(m instanceof PokemonFormChangeItemModifier) && !(m instanceof SpeciesStatBoosterModifier));
const heldItemConfig = tradedPokemon.heldItemManager
.generateHeldItemConfiguration()
.filter(ic => !isItemInCategory(ic.entry as HeldItemId, HeldItemCategoryId.SPECIES_STAT_BOOSTER));
// Generate a trainer name
const traderName = generateRandomTraderName();
@ -241,16 +237,12 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
dataSource.variant,
dataSource.ivs,
dataSource.nature,
heldItemConfig,
dataSource,
);
globalScene.getPlayerParty().push(newPlayerPokemon);
await newPlayerPokemon.loadAssets();
for (const mod of modifiers) {
mod.pokemonId = newPlayerPokemon.id;
globalScene.addModifier(mod, true, false, false, true);
}
// Show the trade animation
await showTradeBackground();
await doPokemonTradeSequence(tradedPokemon, newPlayerPokemon);
@ -336,9 +328,9 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
const encounter = globalScene.currentBattle.mysteryEncounter!;
const tradedPokemon: PlayerPokemon = encounter.misc.tradedPokemon;
const receivedPokemonData: EnemyPokemon = encounter.misc.receivedPokemon;
const modifiers = tradedPokemon
.getHeldItems()
.filter(m => !(m instanceof PokemonFormChangeItemModifier) && !(m instanceof SpeciesStatBoosterModifier));
const heldItemConfig = tradedPokemon.heldItemManager
.generateHeldItemConfiguration()
.filter(ic => !isItemInCategory(ic.entry as HeldItemId, HeldItemCategoryId.SPECIES_STAT_BOOSTER));
// Generate a trainer name
const traderName = generateRandomTraderName();
@ -361,16 +353,12 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
dataSource.variant,
dataSource.ivs,
dataSource.nature,
heldItemConfig,
dataSource,
);
globalScene.getPlayerParty().push(newPlayerPokemon);
await newPlayerPokemon.loadAssets();
for (const mod of modifiers) {
mod.pokemonId = newPlayerPokemon.id;
globalScene.addModifier(mod, true, false, false, true);
}
// Show the trade animation
await showTradeBackground();
await doPokemonTradeSequence(tradedPokemon, newPlayerPokemon);
@ -395,17 +383,15 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
const encounter = globalScene.currentBattle.mysteryEncounter!;
const onPokemonSelected = (pokemon: PlayerPokemon) => {
// Get Pokemon held items and filter for valid ones
const validItems = pokemon.getHeldItems().filter(it => {
return it.isTransferable;
});
const validItems = pokemon.heldItemManager.getTransferableHeldItems();
return validItems.map((modifier: PokemonHeldItemModifier) => {
return validItems.map((id: HeldItemId) => {
const option: OptionSelectItem = {
label: modifier.type.name,
label: allHeldItems[id].name,
handler: () => {
// Pokemon and item selected
encounter.setDialogueToken("chosenItem", modifier.type.name);
encounter.misc.chosenModifier = modifier;
encounter.setDialogueToken("chosenItem", allHeldItems[id].name);
encounter.misc.chosenHeldItem = id;
encounter.misc.chosenPokemon = pokemon;
return true;
},
@ -416,10 +402,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
const selectableFilter = (pokemon: Pokemon) => {
// If pokemon has items to trade
const meetsReqs =
pokemon.getHeldItems().filter(it => {
return it.isTransferable;
}).length > 0;
const meetsReqs = pokemon.heldItemManager.getTransferableHeldItems().length > 0;
if (!meetsReqs) {
return getEncounterText(`${namespace}:option.3.invalid_selection`) ?? null;
}
@ -431,23 +414,15 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
})
.withOptionPhase(async () => {
const encounter = globalScene.currentBattle.mysteryEncounter!;
const modifier = encounter.misc.chosenModifier as PokemonHeldItemModifier;
const heldItemId = encounter.misc.chosenHeldItem as HeldItemId;
const party = globalScene.getPlayerParty();
const chosenPokemon: PlayerPokemon = encounter.misc.chosenPokemon;
// Check tier of the traded item, the received item will be one tier up
const type = modifier.type.withTierFromPool(ModifierPoolType.PLAYER, party);
let tier = type.tier ?? ModifierTier.GREAT;
// Eggs and White Herb are not in the pool
if (type.id === "WHITE_HERB") {
tier = ModifierTier.GREAT;
} else if (type.id === "LUCKY_EGG") {
tier = ModifierTier.ULTRA;
} else if (type.id === "GOLDEN_EGG") {
tier = ModifierTier.ROGUE;
}
let tier = globalTradeItemTiers[heldItemId] ?? RewardTier.GREAT;
// Increment tier by 1
if (tier < ModifierTier.MASTER) {
if (tier < RewardTier.MASTER) {
tier++;
}
@ -467,8 +442,8 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
fillRemaining: false,
});
chosenPokemon.loseHeldItem(modifier, false);
await globalScene.updateModifiers(true, true);
chosenPokemon.heldItemManager.remove(heldItemId);
await globalScene.updateModifiers(true);
// Generate a trainer name
const traderName = generateRandomTraderName();
@ -1000,3 +975,38 @@ function generateRandomTraderName() {
const trainerNames = trainerNameString.split(" & ");
return trainerNames[randInt(trainerNames.length)];
}
const globalTradeItemTiers = {
[HeldItemCategoryId.BERRY]: RewardTier.COMMON,
[HeldItemCategoryId.BASE_STAT_BOOST]: RewardTier.GREAT,
[HeldItemId.WHITE_HERB]: RewardTier.GREAT,
[HeldItemId.METAL_POWDER]: RewardTier.GREAT,
[HeldItemId.QUICK_POWDER]: RewardTier.GREAT,
[HeldItemId.DEEP_SEA_SCALE]: RewardTier.GREAT,
[HeldItemId.DEEP_SEA_TOOTH]: RewardTier.GREAT,
[HeldItemCategoryId.TYPE_ATTACK_BOOSTER]: RewardTier.ULTRA,
[HeldItemId.REVIVER_SEED]: RewardTier.ULTRA,
[HeldItemId.LIGHT_BALL]: RewardTier.ULTRA,
[HeldItemId.EVIOLITE]: RewardTier.ULTRA,
[HeldItemId.QUICK_CLAW]: RewardTier.ULTRA,
[HeldItemId.MYSTICAL_ROCK]: RewardTier.ULTRA,
[HeldItemId.WIDE_LENS]: RewardTier.ULTRA,
[HeldItemId.GOLDEN_PUNCH]: RewardTier.ULTRA,
[HeldItemId.TOXIC_ORB]: RewardTier.ULTRA,
[HeldItemId.FLAME_ORB]: RewardTier.ULTRA,
[HeldItemId.LUCKY_EGG]: RewardTier.ULTRA,
[HeldItemId.FOCUS_BAND]: RewardTier.ROGUE,
[HeldItemId.KINGS_ROCK]: RewardTier.ROGUE,
[HeldItemId.LEFTOVERS]: RewardTier.ROGUE,
[HeldItemId.SHELL_BELL]: RewardTier.ROGUE,
[HeldItemId.GRIP_CLAW]: RewardTier.ROGUE,
[HeldItemId.SOUL_DEW]: RewardTier.ROGUE,
[HeldItemId.BATON]: RewardTier.ROGUE,
[HeldItemId.GOLDEN_EGG]: RewardTier.ULTRA,
[HeldItemId.MINI_BLACK_HOLE]: RewardTier.MASTER,
[HeldItemId.MULTI_LENS]: RewardTier.MASTER,
};

View File

@ -7,7 +7,7 @@ import { trainerConfigs } from "#app/data/trainers/trainer-config";
import { trainerPartyTemplates } from "#app/data/trainers/TrainerPartyTemplate";
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { modifierTypes } from "#app/data/data-lists";
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { PartyMemberStrength } from "#enums/party-member-strength";
@ -176,7 +176,7 @@ export const MysteriousChallengersEncounter: MysteryEncounter = MysteryEncounter
const config: EnemyPartyConfig = encounter.enemyPartyConfigs[1];
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
guaranteedModifierTiers: [RewardTier.ULTRA, RewardTier.ULTRA, RewardTier.GREAT, RewardTier.GREAT],
fillRemaining: true,
});
@ -207,7 +207,7 @@ export const MysteriousChallengersEncounter: MysteryEncounter = MysteryEncounter
encounter.expMultiplier = 0.9;
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.ROGUE, ModifierTier.ROGUE, ModifierTier.ULTRA, ModifierTier.GREAT],
guaranteedModifierTiers: [RewardTier.ROGUE, RewardTier.ROGUE, RewardTier.ULTRA, RewardTier.GREAT],
fillRemaining: true,
});

View File

@ -16,7 +16,7 @@ import {
} from "#app/data/mystery-encounters/utils/encounter-pokemon-utils";
import { getPokemonSpecies } from "#app/utils/pokemon-utils";
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { randSeedInt } from "#app/utils/common";
import { MoveId } from "#enums/move-id";
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
@ -144,7 +144,7 @@ export const MysteriousChestEncounter: MysteryEncounter = MysteryEncounterBuilde
if (roll >= RAND_LENGTH - COMMON_REWARDS_PERCENT) {
// Choose between 2 COMMON / 2 GREAT tier items (20%)
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.COMMON, ModifierTier.COMMON, ModifierTier.GREAT, ModifierTier.GREAT],
guaranteedModifierTiers: [RewardTier.COMMON, RewardTier.COMMON, RewardTier.GREAT, RewardTier.GREAT],
});
// Display result message then proceed to rewards
queueEncounterMessage(`${namespace}:option.1.normal`);
@ -152,7 +152,7 @@ export const MysteriousChestEncounter: MysteryEncounter = MysteryEncounterBuilde
} else if (roll >= RAND_LENGTH - COMMON_REWARDS_PERCENT - ULTRA_REWARDS_PERCENT) {
// Choose between 3 ULTRA tier items (30%)
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA],
guaranteedModifierTiers: [RewardTier.ULTRA, RewardTier.ULTRA, RewardTier.ULTRA],
});
// Display result message then proceed to rewards
queueEncounterMessage(`${namespace}:option.1.good`);
@ -160,7 +160,7 @@ export const MysteriousChestEncounter: MysteryEncounter = MysteryEncounterBuilde
} else if (roll >= RAND_LENGTH - COMMON_REWARDS_PERCENT - ULTRA_REWARDS_PERCENT - ROGUE_REWARDS_PERCENT) {
// Choose between 2 ROGUE tier items (10%)
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.ROGUE, ModifierTier.ROGUE],
guaranteedModifierTiers: [RewardTier.ROGUE, RewardTier.ROGUE],
});
// Display result message then proceed to rewards
queueEncounterMessage(`${namespace}:option.1.great`);
@ -171,7 +171,7 @@ export const MysteriousChestEncounter: MysteryEncounter = MysteryEncounterBuilde
) {
// Choose 1 MASTER tier item (5%)
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.MASTER],
guaranteedModifierTiers: [RewardTier.MASTER],
});
// Display result message then proceed to rewards
queueEncounterMessage(`${namespace}:option.1.amazing`);

View File

@ -25,7 +25,7 @@ import i18next from "i18next";
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/constants";
import { BattlerTagType } from "#enums/battler-tag-type";
import { modifierTypes } from "#app/data/data-lists";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { HeldItemId } from "#enums/held-item-id";
//TODO: make all items unstealable
@ -164,7 +164,7 @@ async function spawnNextTrainerOrEndEncounter() {
await showEncounterDialogue(`${namespace}:victory_2`, `${namespace}:speaker`);
globalScene.ui.clearText(); // Clears "Winstrate" title from screen as rewards get animated in
const machoBrace = generateModifierTypeOption(modifierTypes.MYSTERY_ENCOUNTER_MACHO_BRACE)!;
machoBrace.type.tier = ModifierTier.MASTER;
machoBrace.type.tier = RewardTier.MASTER;
setEncounterRewards({
guaranteedModifierTypeOptions: [machoBrace],
fillRemaining: false,

View File

@ -19,7 +19,7 @@ import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode
import { SpeciesId } from "#enums/species-id";
import { showEncounterText } from "#app/data/mystery-encounters/utils/encounter-dialogue-utils";
import i18next from "#app/plugins/i18n";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { getPokemonSpecies } from "#app/utils/pokemon-utils";
import { MoveId } from "#enums/move-id";
import { BattlerIndex } from "#enums/battler-index";
@ -172,7 +172,7 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterBuilde
const encounter = globalScene.currentBattle.mysteryEncounter!;
setEncounterRewards({
guaranteedModifierTiers: [ModifierTier.ROGUE, ModifierTier.ROGUE, ModifierTier.ULTRA, ModifierTier.GREAT],
guaranteedModifierTiers: [RewardTier.ROGUE, RewardTier.ROGUE, RewardTier.ULTRA, RewardTier.GREAT],
fillRemaining: true,
});
encounter.startOfBattleEffects.push(

View File

@ -32,7 +32,7 @@ import {
import { getLevelTotalExp } from "#app/data/exp";
import { Stat } from "#enums/stat";
import { Challenges } from "#enums/challenges";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { PlayerGender } from "#enums/player-gender";
import { TrainerType } from "#enums/trainer-type";
import PokemonData from "#app/system/pokemon-data";
@ -318,12 +318,12 @@ export const WeirdDreamEncounter: MysteryEncounter = MysteryEncounterBuilder.wit
setEncounterRewards(
{
guaranteedModifierTiers: [
ModifierTier.ROGUE,
ModifierTier.ROGUE,
ModifierTier.ULTRA,
ModifierTier.ULTRA,
ModifierTier.GREAT,
ModifierTier.GREAT,
RewardTier.ROGUE,
RewardTier.ROGUE,
RewardTier.ULTRA,
RewardTier.ULTRA,
RewardTier.GREAT,
RewardTier.GREAT,
],
fillRemaining: false,
},

View File

@ -1,8 +0,0 @@
export enum ModifierTier {
COMMON,
GREAT,
ULTRA,
ROGUE,
MASTER,
LUXURY,
}

View File

@ -139,7 +139,7 @@ import type { TrainerSlot } from "#enums/trainer-slot";
import Overrides from "#app/overrides";
import i18next from "i18next";
import { speciesEggMoves } from "#app/data/balance/egg-moves";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { applyChallenges } from "#app/data/challenge";
import { ChallengeType } from "#enums/challenge-type";
import { AbilityId } from "#enums/ability-id";
@ -2977,11 +2977,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
}
}
if (compatible && !movePool.some(m => m[0] === moveId) && !allMoves[moveId].name.endsWith(" (N)")) {
if (tmPoolTiers[moveId] === ModifierTier.COMMON && this.level >= 15) {
if (tmPoolTiers[moveId] === RewardTier.COMMON && this.level >= 15) {
movePool.push([moveId, 4]);
} else if (tmPoolTiers[moveId] === ModifierTier.GREAT && this.level >= 30) {
} else if (tmPoolTiers[moveId] === RewardTier.GREAT && this.level >= 30) {
movePool.push([moveId, 8]);
} else if (tmPoolTiers[moveId] === ModifierTier.ULTRA && this.level >= 50) {
} else if (tmPoolTiers[moveId] === RewardTier.ULTRA && this.level >= 50) {
movePool.push([moveId, 14]);
}
}

View File

@ -3,7 +3,7 @@ import { enemyBuffModifierPool, modifierPool } from "#app/modifier/modifier-pool
import { globalScene } from "#app/global-scene";
import { DoubleBattleChanceBoosterModifier } from "./modifier";
import { WeightedModifierType } from "./modifier-type";
import { ModifierTier } from "../enums/modifier-tier";
import { RewardTier } from "../enums/modifier-tier";
import type { WeightedModifierTypeWeightFunc } from "#app/@types/modifier-types";
import { modifierTypes } from "#app/data/data-lists";
import { PokeballType } from "#enums/pokeball";
@ -25,7 +25,7 @@ import { allHeldItems } from "#app/items/all-held-items";
* Initialize the common modifier pool
*/
function initCommonModifierPool() {
modifierPool[ModifierTier.COMMON] = [
modifierPool[RewardTier.COMMON] = [
new WeightedModifierType(modifierTypes.POKEBALL, () => (hasMaximumBalls(PokeballType.POKEBALL) ? 0 : 6), 6),
new WeightedModifierType(modifierTypes.RARE_CANDY, 2),
new WeightedModifierType(
@ -93,7 +93,7 @@ function initCommonModifierPool() {
new WeightedModifierType(modifierTypes.BERRY, 2),
new WeightedModifierType(modifierTypes.TM_COMMON, 2),
].map(m => {
m.setTier(ModifierTier.COMMON);
m.setTier(RewardTier.COMMON);
return m;
});
}
@ -102,7 +102,7 @@ function initCommonModifierPool() {
* Initialize the Great modifier pool
*/
function initGreatModifierPool() {
modifierPool[ModifierTier.GREAT] = [
modifierPool[RewardTier.GREAT] = [
new WeightedModifierType(modifierTypes.GREAT_BALL, () => (hasMaximumBalls(PokeballType.GREAT_BALL) ? 0 : 6), 6),
new WeightedModifierType(modifierTypes.PP_UP, 2),
new WeightedModifierType(
@ -292,7 +292,7 @@ function initGreatModifierPool() {
1,
),
].map(m => {
m.setTier(ModifierTier.GREAT);
m.setTier(RewardTier.GREAT);
return m;
});
}
@ -301,7 +301,7 @@ function initGreatModifierPool() {
* Initialize the Ultra modifier pool
*/
function initUltraModifierPool() {
modifierPool[ModifierTier.ULTRA] = [
modifierPool[RewardTier.ULTRA] = [
new WeightedModifierType(modifierTypes.ULTRA_BALL, () => (hasMaximumBalls(PokeballType.ULTRA_BALL) ? 0 : 15), 15),
new WeightedModifierType(modifierTypes.MAX_LURE, lureWeightFunc(30, 4)),
new WeightedModifierType(modifierTypes.BIG_NUGGET, skipInLastClassicWaveOrDefault(12)),
@ -514,13 +514,13 @@ function initUltraModifierPool() {
new WeightedModifierType(modifierTypes.QUICK_CLAW, 3),
new WeightedModifierType(modifierTypes.WIDE_LENS, 7),
].map(m => {
m.setTier(ModifierTier.ULTRA);
m.setTier(RewardTier.ULTRA);
return m;
});
}
function initRogueModifierPool() {
modifierPool[ModifierTier.ROGUE] = [
modifierPool[RewardTier.ROGUE] = [
new WeightedModifierType(modifierTypes.ROGUE_BALL, () => (hasMaximumBalls(PokeballType.ROGUE_BALL) ? 0 : 16), 16),
new WeightedModifierType(modifierTypes.RELIC_GOLD, skipInLastClassicWaveOrDefault(2)),
new WeightedModifierType(modifierTypes.LEFTOVERS, 3),
@ -558,7 +558,7 @@ function initRogueModifierPool() {
3,
),
].map(m => {
m.setTier(ModifierTier.ROGUE);
m.setTier(RewardTier.ROGUE);
return m;
});
}
@ -567,7 +567,7 @@ function initRogueModifierPool() {
* Initialize the Master modifier pool
*/
function initMasterModifierPool() {
modifierPool[ModifierTier.MASTER] = [
modifierPool[RewardTier.MASTER] = [
new WeightedModifierType(modifierTypes.MASTER_BALL, () => (hasMaximumBalls(PokeballType.MASTER_BALL) ? 0 : 24), 24),
new WeightedModifierType(modifierTypes.SHINY_CHARM, 14),
new WeightedModifierType(modifierTypes.HEALING_CHARM, 18),
@ -600,7 +600,7 @@ function initMasterModifierPool() {
1,
),
].map(m => {
m.setTier(ModifierTier.MASTER);
m.setTier(RewardTier.MASTER);
return m;
});
}
@ -609,7 +609,7 @@ function initMasterModifierPool() {
* Initialize the enemy buff modifier pool
*/
function initEnemyBuffModifierPool() {
enemyBuffModifierPool[ModifierTier.COMMON] = [
enemyBuffModifierPool[RewardTier.COMMON] = [
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 9),
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_REDUCTION, 9),
new WeightedModifierType(modifierTypes.ENEMY_ATTACK_POISON_CHANCE, 3),
@ -619,20 +619,20 @@ function initEnemyBuffModifierPool() {
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 4),
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1),
].map(m => {
m.setTier(ModifierTier.COMMON);
m.setTier(RewardTier.COMMON);
return m;
});
enemyBuffModifierPool[ModifierTier.GREAT] = [
enemyBuffModifierPool[RewardTier.GREAT] = [
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 5),
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_REDUCTION, 5),
new WeightedModifierType(modifierTypes.ENEMY_STATUS_EFFECT_HEAL_CHANCE, 5),
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 5),
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 1),
].map(m => {
m.setTier(ModifierTier.GREAT);
m.setTier(RewardTier.GREAT);
return m;
});
enemyBuffModifierPool[ModifierTier.ULTRA] = [
enemyBuffModifierPool[RewardTier.ULTRA] = [
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_BOOSTER, 10),
new WeightedModifierType(modifierTypes.ENEMY_DAMAGE_REDUCTION, 10),
new WeightedModifierType(modifierTypes.ENEMY_HEAL, 10),
@ -640,15 +640,15 @@ function initEnemyBuffModifierPool() {
new WeightedModifierType(modifierTypes.ENEMY_ENDURE_CHANCE, 10),
new WeightedModifierType(modifierTypes.ENEMY_FUSED_CHANCE, 5),
].map(m => {
m.setTier(ModifierTier.ULTRA);
m.setTier(RewardTier.ULTRA);
return m;
});
enemyBuffModifierPool[ModifierTier.ROGUE] = [].map((m: WeightedModifierType) => {
m.setTier(ModifierTier.ROGUE);
enemyBuffModifierPool[RewardTier.ROGUE] = [].map((m: WeightedModifierType) => {
m.setTier(RewardTier.ROGUE);
return m;
});
enemyBuffModifierPool[ModifierTier.MASTER] = [].map((m: WeightedModifierType) => {
m.setTier(ModifierTier.MASTER);
enemyBuffModifierPool[RewardTier.MASTER] = [].map((m: WeightedModifierType) => {
m.setTier(RewardTier.MASTER);
return m;
});
}

View File

@ -66,7 +66,7 @@ import {
CriticalCatchChanceBoosterModifier,
MoneyRewardModifier,
} from "#app/modifier/modifier";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import Overrides from "#app/overrides";
import { getVoucherTypeIcon, getVoucherTypeName, VoucherType } from "#app/system/voucher";
import type { PokemonMoveSelectFilter, PokemonSelectFilter } from "#app/ui/party-ui-handler";
@ -113,7 +113,7 @@ export class ModifierType {
public iconImage: string;
public group: string;
public soundName: string;
public tier: ModifierTier;
public tier: RewardTier;
protected newModifierFunc: NewModifierFunc | null;
/**
@ -155,7 +155,7 @@ export class ModifierType {
return this.iconImage;
}
setTier(tier: ModifierTier): void {
setTier(tier: RewardTier): void {
this.tier = tier;
}
@ -185,7 +185,7 @@ export class ModifierType {
party?: PlayerPokemon[],
rerollCount = 0,
): ModifierType {
let defaultTier: undefined | ModifierTier;
let defaultTier: undefined | RewardTier;
for (const tier of Object.values(getModifierPoolForType(poolType))) {
for (const modifier of tier) {
if (this.id === modifier.modifierType.id) {
@ -1204,7 +1204,7 @@ class SpeciesStatBoosterRewardGenerator extends ModifierTypeGenerator {
}
class TmModifierTypeGenerator extends ModifierTypeGenerator {
constructor(tier: ModifierTier) {
constructor(tier: RewardTier) {
super((party: Pokemon[], pregenArgs?: any[]) => {
if (pregenArgs && pregenArgs.length === 1 && pregenArgs[0] in MoveId) {
return new TmModifierType(pregenArgs[0] as MoveId);
@ -1409,7 +1409,7 @@ export class WeightedModifierType {
this.maxWeight = maxWeight || (!(weight instanceof Function) ? weight : 0);
}
setTier(tier: ModifierTier) {
setTier(tier: RewardTier) {
this.modifierType.setTier(tier);
}
}
@ -1600,9 +1600,9 @@ const modifierTypeInitObj = Object.freeze({
BERRY: () => new BerryRewardGenerator(),
TM_COMMON: () => new TmModifierTypeGenerator(ModifierTier.COMMON),
TM_GREAT: () => new TmModifierTypeGenerator(ModifierTier.GREAT),
TM_ULTRA: () => new TmModifierTypeGenerator(ModifierTier.ULTRA),
TM_COMMON: () => new TmModifierTypeGenerator(RewardTier.COMMON),
TM_GREAT: () => new TmModifierTypeGenerator(RewardTier.GREAT),
TM_ULTRA: () => new TmModifierTypeGenerator(RewardTier.ULTRA),
MEMORY_MUSHROOM: () => new RememberMoveModifierType("modifierType:ModifierType.MEMORY_MUSHROOM", "big_mushroom"),
@ -1946,7 +1946,7 @@ export function regenerateModifierPoolThresholds(party: Pokemon[], poolType: Mod
}
export interface CustomModifierSettings {
guaranteedModifierTiers?: ModifierTier[];
guaranteedModifierTiers?: RewardTier[];
guaranteedModifierTypeOptions?: ModifierTypeOption[];
guaranteedModifierTypeFuncs?: ModifierTypeFunc[];
fillRemaining?: boolean;
@ -1967,9 +1967,9 @@ export function getModifierTypeFuncById(id: string): ModifierTypeFunc {
* @param customModifierSettings (Optional) If specified, can customize the item shop rewards further.
* - `guaranteedModifierTypeOptions?: ModifierTypeOption[]` If specified, will override the first X items to be specific modifier options (these should be pre-genned).
* - `guaranteedModifierTypeFuncs?: ModifierTypeFunc[]` If specified, will override the next X items to be auto-generated from specific modifier functions (these don't have to be pre-genned).
* - `guaranteedModifierTiers?: ModifierTier[]` If specified, will override the next X items to be the specified tier. These can upgrade with luck.
* - `guaranteedModifierTiers?: RewardTier[]` If specified, will override the next X items to be the specified tier. These can upgrade with luck.
* - `fillRemaining?: boolean` Default 'false'. If set to true, will fill the remainder of shop items that were not overridden by the 3 options above, up to the 'count' param value.
* - Example: `count = 4`, `customModifierSettings = { guaranteedModifierTiers: [ModifierTier.GREAT], fillRemaining: true }`,
* - Example: `count = 4`, `customModifierSettings = { guaranteedModifierTiers: [RewardTier.GREAT], fillRemaining: true }`,
* - The first item in the shop will be `GREAT` tier, and the remaining 3 items will be generated normally.
* - If `fillRemaining = false` in the same scenario, only 1 `GREAT` tier item will appear in the shop (regardless of `count` value).
* - `rerollMultiplier?: number` If specified, can adjust the amount of money required for a shop reroll. If set to a negative value, the shop will not allow rerolls at all.
@ -1978,7 +1978,7 @@ export function getModifierTypeFuncById(id: string): ModifierTypeFunc {
export function getPlayerModifierTypeOptions(
count: number,
party: PlayerPokemon[],
modifierTiers?: ModifierTier[],
modifierTiers?: RewardTier[],
customModifierSettings?: CustomModifierSettings,
): ModifierTypeOption[] {
const options: ModifierTypeOption[] = [];
@ -2059,7 +2059,7 @@ function getModifierTypeOptionWithRetry(
existingOptions: ModifierTypeOption[],
retryCount: number,
party: PlayerPokemon[],
tier?: ModifierTier,
tier?: RewardTier,
allowLuckUpgrades?: boolean,
): ModifierTypeOption {
allowLuckUpgrades = allowLuckUpgrades ?? true;
@ -2142,15 +2142,15 @@ export function getPlayerShopModifierTypeOptionsForWave(waveIndex: number, baseC
}
export function getEnemyBuffModifierForWave(
tier: ModifierTier,
tier: RewardTier,
enemyModifiers: PersistentModifier[],
): EnemyPersistentModifier {
let tierStackCount: number;
switch (tier) {
case ModifierTier.ULTRA:
case RewardTier.ULTRA:
tierStackCount = 5;
break;
case ModifierTier.GREAT:
case RewardTier.GREAT:
tierStackCount = 3;
break;
default:
@ -2188,7 +2188,7 @@ export function getEnemyBuffModifierForWave(
function getNewModifierTypeOption(
party: Pokemon[],
poolType: ModifierPoolType,
baseTier?: ModifierTier,
baseTier?: RewardTier,
upgradeCount?: number,
retryCount = 0,
allowLuckUpgrades = true,
@ -2223,7 +2223,7 @@ function getNewModifierTypeOption(
modifierType = (modifierType as ModifierTypeGenerator).generateType(party);
if (modifierType === null) {
if (player) {
console.log(ModifierTier[tier], upgradeCount);
console.log(RewardTier[tier], upgradeCount);
}
return getNewModifierTypeOption(party, poolType, tier, upgradeCount, ++retryCount);
}
@ -2250,11 +2250,11 @@ function getPoolThresholds(poolType: ModifierPoolType) {
function determineTier(
party: Pokemon[],
player: boolean,
tier?: ModifierTier,
tier?: RewardTier,
upgradeCount?: number,
retryCount = 0,
allowLuckUpgrades = true,
): ModifierTier {
): RewardTier {
if (tier === undefined) {
const tierValue = randSeedInt(1024);
if (!upgradeCount) {
@ -2273,15 +2273,15 @@ function determineTier(
}
if (tierValue > 255) {
tier = ModifierTier.COMMON;
tier = RewardTier.COMMON;
} else if (tierValue > 60) {
tier = ModifierTier.GREAT;
tier = RewardTier.GREAT;
} else if (tierValue > 12) {
tier = ModifierTier.ULTRA;
tier = RewardTier.ULTRA;
} else if (tierValue) {
tier = ModifierTier.ROGUE;
tier = RewardTier.ROGUE;
} else {
tier = ModifierTier.MASTER;
tier = RewardTier.MASTER;
}
tier += upgradeCount;
@ -2293,7 +2293,7 @@ function determineTier(
}
} else if (upgradeCount === undefined && player) {
upgradeCount = 0;
if (tier < ModifierTier.MASTER && allowLuckUpgrades) {
if (tier < RewardTier.MASTER && allowLuckUpgrades) {
const partyLuckValue = getPartyLuckValue(party);
const upgradeOdds = Math.floor(128 / ((partyLuckValue + 4) / 4));
while (pool.hasOwnProperty(tier + upgradeCount + 1) && pool[tier + upgradeCount + 1].length) {
@ -2312,9 +2312,9 @@ function determineTier(
return tier;
}
export function getDefaultModifierTypeForTier(tier: ModifierTier): ModifierType {
export function getDefaultModifierTypeForTier(tier: RewardTier): ModifierType {
const modifierPool = getModifierPoolForType(ModifierPoolType.PLAYER);
let modifierType: ModifierType | WeightedModifierType = modifierPool[tier || ModifierTier.COMMON][0];
let modifierType: ModifierType | WeightedModifierType = modifierPool[tier || RewardTier.COMMON][0];
if (modifierType instanceof WeightedModifierType) {
modifierType = (modifierType as WeightedModifierType).modifierType;
}
@ -2366,19 +2366,19 @@ export function getLuckString(luckValue: number): string {
}
export function getLuckTextTint(luckValue: number): number {
let modifierTier: ModifierTier;
let modifierTier: RewardTier;
if (luckValue > 11) {
modifierTier = ModifierTier.LUXURY;
modifierTier = RewardTier.LUXURY;
} else if (luckValue > 9) {
modifierTier = ModifierTier.MASTER;
modifierTier = RewardTier.MASTER;
} else if (luckValue > 5) {
modifierTier = ModifierTier.ROGUE;
modifierTier = RewardTier.ROGUE;
} else if (luckValue > 2) {
modifierTier = ModifierTier.ULTRA;
modifierTier = RewardTier.ULTRA;
} else if (luckValue) {
modifierTier = ModifierTier.GREAT;
modifierTier = RewardTier.GREAT;
} else {
modifierTier = ModifierTier.COMMON;
modifierTier = RewardTier.COMMON;
}
return getModifierTierTextTint(modifierTier);
}

View File

@ -1,4 +1,4 @@
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { regenerateModifierPoolThresholds, getEnemyBuffModifierForWave } from "#app/modifier/modifier-type";
import { ModifierPoolType } from "#enums/modifier-pool-type";
import { EnemyPersistentModifier } from "#app/modifier/modifier";
@ -11,11 +11,7 @@ export class AddEnemyBuffModifierPhase extends Phase {
super.start();
const waveIndex = globalScene.currentBattle.waveIndex;
const tier = !(waveIndex % 1000)
? ModifierTier.ULTRA
: !(waveIndex % 250)
? ModifierTier.GREAT
: ModifierTier.COMMON;
const tier = !(waveIndex % 1000) ? RewardTier.ULTRA : !(waveIndex % 250) ? RewardTier.GREAT : RewardTier.COMMON;
regenerateModifierPoolThresholds(globalScene.getEnemyParty(), ModifierPoolType.ENEMY_BUFF);

View File

@ -1,5 +1,5 @@
import { globalScene } from "#app/global-scene";
import type { ModifierTier } from "#enums/modifier-tier";
import type { RewardTier } from "#enums/reward-tier";
import type { ModifierTypeOption, ModifierType } from "#app/modifier/modifier-type";
import {
regenerateModifierPoolThresholds,
@ -32,7 +32,7 @@ export type ModifierSelectCallback = (rowCursor: number, cursor: number) => bool
export class SelectModifierPhase extends BattlePhase {
public readonly phaseName = "SelectModifierPhase";
private rerollCount: number;
private modifierTiers?: ModifierTier[];
private modifierTiers?: RewardTier[];
private customModifierSettings?: CustomModifierSettings;
private isCopy: boolean;
@ -40,7 +40,7 @@ export class SelectModifierPhase extends BattlePhase {
constructor(
rerollCount = 0,
modifierTiers?: ModifierTier[],
modifierTiers?: RewardTier[],
customModifierSettings?: CustomModifierSettings,
isCopy = false,
) {
@ -193,7 +193,7 @@ export class SelectModifierPhase extends BattlePhase {
globalScene.phaseManager.unshiftNew(
"SelectModifierPhase",
this.rerollCount + 1,
this.typeOptions.map(o => o.type?.tier).filter(t => t !== undefined) as ModifierTier[],
this.typeOptions.map(o => o.type?.tier).filter(t => t !== undefined) as RewardTier[],
);
globalScene.ui.clearText();
globalScene.ui.setMode(UiMode.MESSAGE).then(() => super.end());

View File

@ -4,7 +4,7 @@ import type Phaser from "phaser";
import BBCodeText from "phaser3-rex-plugins/plugins/gameobjects/tagtext/bbcodetext/BBCodeText";
import InputText from "phaser3-rex-plugins/plugins/inputtext";
import { globalScene } from "#app/global-scene";
import { ModifierTier } from "../enums/modifier-tier";
import { RewardTier } from "../enums/modifier-tier";
import i18next from "#app/plugins/i18n";
export enum TextStyle {
@ -423,19 +423,19 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui
}
}
export function getModifierTierTextTint(tier: ModifierTier): number {
export function getModifierTierTextTint(tier: RewardTier): number {
switch (tier) {
case ModifierTier.COMMON:
case RewardTier.COMMON:
return 0xf8f8f8;
case ModifierTier.GREAT:
case RewardTier.GREAT:
return 0x4998f8;
case ModifierTier.ULTRA:
case RewardTier.ULTRA:
return 0xf8d038;
case ModifierTier.ROGUE:
case RewardTier.ROGUE:
return 0xdb4343;
case ModifierTier.MASTER:
case RewardTier.MASTER:
return 0xe331c5;
case ModifierTier.LUXURY:
case RewardTier.LUXURY:
return 0xe74c18;
}
}
@ -443,12 +443,12 @@ export function getModifierTierTextTint(tier: ModifierTier): number {
export function getEggTierTextTint(tier: EggTier): number {
switch (tier) {
case EggTier.COMMON:
return getModifierTierTextTint(ModifierTier.COMMON);
return getModifierTierTextTint(RewardTier.COMMON);
case EggTier.RARE:
return getModifierTierTextTint(ModifierTier.GREAT);
return getModifierTierTextTint(RewardTier.GREAT);
case EggTier.EPIC:
return getModifierTierTextTint(ModifierTier.ULTRA);
return getModifierTierTextTint(RewardTier.ULTRA);
case EggTier.LEGENDARY:
return getModifierTierTextTint(ModifierTier.MASTER);
return getModifierTierTextTint(RewardTier.MASTER);
}
}

View File

@ -1,6 +1,6 @@
import { AbilityId } from "#enums/ability-id";
import { MoveId } from "#enums/move-id";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { SelectModifierPhase } from "#app/phases/select-modifier-phase";
import { UiMode } from "#enums/ui-mode";
import GameManager from "#test/testUtils/gameManager";
@ -36,7 +36,7 @@ describe("Items - Lock Capsule", () => {
await game.classicMode.startBattle();
game.scene.phaseManager.overridePhase(
new SelectModifierPhase(0, undefined, {
guaranteedModifierTiers: [ModifierTier.COMMON, ModifierTier.COMMON, ModifierTier.COMMON],
guaranteedModifierTiers: [RewardTier.COMMON, RewardTier.COMMON, RewardTier.COMMON],
fillRemaining: false,
}),
);

View File

@ -20,7 +20,7 @@ import { UiMode } from "#enums/ui-mode";
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
import { initSceneWithoutEncounterPhase } from "#test/testUtils/gameManagerUtils";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { ClowningAroundEncounter } from "#app/data/mystery-encounters/encounters/clowning-around-encounter";
import { TrainerType } from "#enums/trainer-type";
import { AbilityId } from "#enums/ability-id";
@ -296,10 +296,10 @@ describe("Clowning Around - Mystery Encounter", () => {
const leadItemsAfter = scene.getPlayerParty()[0].getHeldItems();
const ultraCountAfter = leadItemsAfter
.filter(m => m.type.tier === ModifierTier.ULTRA)
.filter(m => m.type.tier === RewardTier.ULTRA)
.reduce((a, b) => a + b.stackCount, 0);
const rogueCountAfter = leadItemsAfter
.filter(m => m.type.tier === ModifierTier.ROGUE)
.filter(m => m.type.tier === RewardTier.ROGUE)
.reduce((a, b) => a + b.stackCount, 0);
expect(ultraCountAfter).toBe(13);
expect(rogueCountAfter).toBe(7);

View File

@ -17,7 +17,7 @@ import { CIVILIZATION_ENCOUNTER_BIOMES } from "#app/data/mystery-encounters/myst
import { SelectModifierPhase } from "#app/phases/select-modifier-phase";
import { UiMode } from "#enums/ui-mode";
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import * as Utils from "#app/utils/common";
const namespace = "mysteryEncounters/globalTradeSystem";
@ -234,7 +234,7 @@ describe("Global Trade System - Mystery Encounter", () => {
h => h instanceof ModifierSelectUiHandler,
) as ModifierSelectUiHandler;
expect(modifierSelectHandler.options.length).toEqual(1);
expect(modifierSelectHandler.options[0].modifierTypeOption.type.tier).toBe(ModifierTier.MASTER);
expect(modifierSelectHandler.options[0].modifierTypeOption.type.tier).toBe(RewardTier.MASTER);
const soulDewAfter = scene.findModifier(m => m instanceof PokemonNatureWeightModifier);
expect(soulDewAfter?.stackCount).toBe(1);
});

View File

@ -14,7 +14,7 @@ import { UiMode } from "#enums/ui-mode";
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
import { initSceneWithoutEncounterPhase } from "#test/testUtils/gameManagerUtils";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import { MysteriousChallengersEncounter } from "#app/data/mystery-encounters/encounters/mysterious-challengers-encounter";
import { TrainerConfig } from "#app/data/trainers/trainer-config";
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
@ -218,19 +218,19 @@ describe("Mysterious Challengers - Mystery Encounter", () => {
expect(
modifierSelectHandler.options[0].modifierTypeOption.type.tier -
modifierSelectHandler.options[0].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.ULTRA);
).toBe(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[1].modifierTypeOption.type.tier -
modifierSelectHandler.options[1].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.ULTRA);
).toBe(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[2].modifierTypeOption.type.tier -
modifierSelectHandler.options[2].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.GREAT);
).toBe(RewardTier.GREAT);
expect(
modifierSelectHandler.options[3].modifierTypeOption.type.tier -
modifierSelectHandler.options[3].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.GREAT);
).toBe(RewardTier.GREAT);
});
});
@ -275,19 +275,19 @@ describe("Mysterious Challengers - Mystery Encounter", () => {
expect(
modifierSelectHandler.options[0].modifierTypeOption.type.tier -
modifierSelectHandler.options[0].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.ROGUE);
).toBe(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[1].modifierTypeOption.type.tier -
modifierSelectHandler.options[1].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.ROGUE);
).toBe(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[2].modifierTypeOption.type.tier -
modifierSelectHandler.options[2].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.ULTRA);
).toBe(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[3].modifierTypeOption.type.tier -
modifierSelectHandler.options[3].modifierTypeOption.upgradeCount,
).toBe(ModifierTier.GREAT);
).toBe(RewardTier.GREAT);
});
});
});

View File

@ -14,7 +14,7 @@ import { MysteryEncounterType } from "#app/enums/mystery-encounter-type";
import { SpeciesId } from "#enums/species-id";
import { PokemonMove } from "#app/data/moves/pokemon-move";
import { HealShopCostModifier, HitHealModifier, TurnHealModifier } from "#app/modifier/modifier";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import type { PokemonHeldItemModifierType } from "#app/modifier/modifier-type";
import { modifierTypes } from "#app/data/data-lists";
import { CommandPhase } from "#app/phases/command-phase";
@ -254,19 +254,19 @@ describe("Trash to Treasure - Mystery Encounter", () => {
expect(
modifierSelectHandler.options[0].modifierTypeOption.type.tier -
modifierSelectHandler.options[0].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ROGUE);
).toEqual(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[1].modifierTypeOption.type.tier -
modifierSelectHandler.options[1].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ROGUE);
).toEqual(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[2].modifierTypeOption.type.tier -
modifierSelectHandler.options[2].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ULTRA);
).toEqual(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[3].modifierTypeOption.type.tier -
modifierSelectHandler.options[3].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.GREAT);
).toEqual(RewardTier.GREAT);
});
});
});

View File

@ -19,7 +19,7 @@ import { WeirdDreamEncounter } from "#app/data/mystery-encounters/encounters/wei
import * as EncounterTransformationSequence from "#app/data/mystery-encounters/utils/encounter-transformation-sequence";
import { SelectModifierPhase } from "#app/phases/select-modifier-phase";
import { CommandPhase } from "#app/phases/command-phase";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
const namespace = "mysteryEncounters/weirdDream";
const defaultParty = [SpeciesId.MAGBY, SpeciesId.HAUNTER, SpeciesId.ABRA];
@ -207,27 +207,27 @@ describe("Weird Dream - Mystery Encounter", () => {
expect(
modifierSelectHandler.options[0].modifierTypeOption.type.tier -
modifierSelectHandler.options[0].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ROGUE);
).toEqual(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[1].modifierTypeOption.type.tier -
modifierSelectHandler.options[1].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ROGUE);
).toEqual(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[2].modifierTypeOption.type.tier -
modifierSelectHandler.options[2].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ULTRA);
).toEqual(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[3].modifierTypeOption.type.tier -
modifierSelectHandler.options[3].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ULTRA);
).toEqual(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[4].modifierTypeOption.type.tier -
modifierSelectHandler.options[4].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.GREAT);
).toEqual(RewardTier.GREAT);
expect(
modifierSelectHandler.options[5].modifierTypeOption.type.tier -
modifierSelectHandler.options[5].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.GREAT);
).toEqual(RewardTier.GREAT);
});
});

View File

@ -1,7 +1,7 @@
import type BattleScene from "#app/battle-scene";
import { getPokemonSpecies } from "#app/utils/pokemon-utils";
import { PlayerPokemon } from "#app/field/pokemon";
import { ModifierTier } from "#enums/modifier-tier";
import { RewardTier } from "#enums/reward-tier";
import type { CustomModifierSettings } from "#app/modifier/modifier-type";
import { ModifierTypeOption } from "#app/modifier/modifier-type";
import { modifierTypes } from "#app/data/data-lists";
@ -129,7 +129,7 @@ describe("SelectModifierPhase", () => {
h => h instanceof ModifierSelectUiHandler,
) as ModifierSelectUiHandler;
expect(modifierSelectHandler.options.length).toEqual(3);
const firstRollTiers: ModifierTier[] = modifierSelectHandler.options.map(o => o.modifierTypeOption.type.tier);
const firstRollTiers: RewardTier[] = modifierSelectHandler.options.map(o => o.modifierTypeOption.type.tier);
// TODO: nagivate ui to reroll with lock capsule enabled
@ -184,11 +184,11 @@ describe("SelectModifierPhase", () => {
scene.money = 1000000;
const customModifiers: CustomModifierSettings = {
guaranteedModifierTiers: [
ModifierTier.COMMON,
ModifierTier.GREAT,
ModifierTier.ULTRA,
ModifierTier.ROGUE,
ModifierTier.MASTER,
RewardTier.COMMON,
RewardTier.GREAT,
RewardTier.ULTRA,
RewardTier.ROGUE,
RewardTier.MASTER,
],
};
const pokemon = new PlayerPokemon(getPokemonSpecies(SpeciesId.BULBASAUR), 10, undefined, 0, undefined, true, 2);
@ -212,23 +212,23 @@ describe("SelectModifierPhase", () => {
expect(
modifierSelectHandler.options[0].modifierTypeOption.type.tier -
modifierSelectHandler.options[0].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.COMMON);
).toEqual(RewardTier.COMMON);
expect(
modifierSelectHandler.options[1].modifierTypeOption.type.tier -
modifierSelectHandler.options[1].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.GREAT);
).toEqual(RewardTier.GREAT);
expect(
modifierSelectHandler.options[2].modifierTypeOption.type.tier -
modifierSelectHandler.options[2].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ULTRA);
).toEqual(RewardTier.ULTRA);
expect(
modifierSelectHandler.options[3].modifierTypeOption.type.tier -
modifierSelectHandler.options[3].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.ROGUE);
).toEqual(RewardTier.ROGUE);
expect(
modifierSelectHandler.options[4].modifierTypeOption.type.tier -
modifierSelectHandler.options[4].modifierTypeOption.upgradeCount,
).toEqual(ModifierTier.MASTER);
).toEqual(RewardTier.MASTER);
});
it("should generate custom modifiers and modifier tiers together", async () => {
@ -236,7 +236,7 @@ describe("SelectModifierPhase", () => {
scene.money = 1000000;
const customModifiers: CustomModifierSettings = {
guaranteedModifierTypeFuncs: [modifierTypes.MEMORY_MUSHROOM, modifierTypes.TM_COMMON],
guaranteedModifierTiers: [ModifierTier.MASTER, ModifierTier.MASTER],
guaranteedModifierTiers: [RewardTier.MASTER, RewardTier.MASTER],
};
const selectModifierPhase = new SelectModifierPhase(0, undefined, customModifiers);
scene.phaseManager.unshiftPhase(selectModifierPhase);
@ -250,8 +250,8 @@ describe("SelectModifierPhase", () => {
expect(modifierSelectHandler.options.length).toEqual(4);
expect(modifierSelectHandler.options[0].modifierTypeOption.type.id).toEqual("MEMORY_MUSHROOM");
expect(modifierSelectHandler.options[1].modifierTypeOption.type.id).toEqual("TM_COMMON");
expect(modifierSelectHandler.options[2].modifierTypeOption.type.tier).toEqual(ModifierTier.MASTER);
expect(modifierSelectHandler.options[3].modifierTypeOption.type.tier).toEqual(ModifierTier.MASTER);
expect(modifierSelectHandler.options[2].modifierTypeOption.type.tier).toEqual(RewardTier.MASTER);
expect(modifierSelectHandler.options[3].modifierTypeOption.type.tier).toEqual(RewardTier.MASTER);
});
it("should fill remaining modifiers if fillRemaining is true with custom modifiers", async () => {
@ -259,7 +259,7 @@ describe("SelectModifierPhase", () => {
scene.money = 1000000;
const customModifiers: CustomModifierSettings = {
guaranteedModifierTypeFuncs: [modifierTypes.MEMORY_MUSHROOM],
guaranteedModifierTiers: [ModifierTier.MASTER],
guaranteedModifierTiers: [RewardTier.MASTER],
fillRemaining: true,
};
const selectModifierPhase = new SelectModifierPhase(0, undefined, customModifiers);
@ -273,6 +273,6 @@ describe("SelectModifierPhase", () => {
) as ModifierSelectUiHandler;
expect(modifierSelectHandler.options.length).toEqual(3);
expect(modifierSelectHandler.options[0].modifierTypeOption.type.id).toEqual("MEMORY_MUSHROOM");
expect(modifierSelectHandler.options[1].modifierTypeOption.type.tier).toEqual(ModifierTier.MASTER);
expect(modifierSelectHandler.options[1].modifierTypeOption.type.tier).toEqual(RewardTier.MASTER);
});
});