[Balance] 1.11 Extra Changes (#6651)

* Add extra EXP Charm to Classic, Add 1 Ability 1 Shiny Charm to Daily

* Update Delibird moveset in pokemon-level-moves.ts based off of PLA

* Dragon Claw TM Ultra -> Great

* some gmax changes Update pokemon-species.ts

* X items - Update modifier.ts

* (Beta) Milotic and Golisopod slot 3 -> 4 Update rival-party-config.ts

* test fix for x items Update temp-stat-stage-booster.test.ts

* Update tms.ts air cutter and sky drop

* Update tms.ts water pulse and brutal swing

* (beta) fix for admins Update fixed-battle-configs.ts

* (beta) fix Update challenge.ts too
This commit is contained in:
damocleas 2025-10-21 20:45:02 -04:00 committed by GitHub
parent 85fcb20271
commit 2109aace1d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 49 additions and 51 deletions

View File

@ -3936,23 +3936,18 @@ export const pokemonSpeciesLevelMoves = {
[ 48, MoveId.SOAK ],
[ 54, MoveId.HYPER_BEAM ],
],
[SpeciesId.DELIBIRD]: [ // Given a custom level up learnset
[SpeciesId.DELIBIRD]: [
[ 1, MoveId.PRESENT ],
[ 1, MoveId.METRONOME ],
[ 5, MoveId.FAKE_OUT ],
[ 5, MoveId.POWDER_SNOW ],
[ 6, MoveId.MIST ],
[ 10, MoveId.ICE_SHARD ],
[ 15, MoveId.AERIAL_ACE ],
[ 20, MoveId.ICY_WIND ],
[ 1, MoveId.PECK ],
[ 15, MoveId.ICY_WIND ],
[ 18, MoveId.AERIAL_ACE ],
[ 22, MoveId.ICE_SHARD ],
[ 25, MoveId.DRILL_PECK ],
[ 30, MoveId.ICE_PUNCH ],
[ 35, MoveId.HAZE ],
[ 40, MoveId.AIR_SLASH ],
[ 45, MoveId.TAILWIND ],
[ 50, MoveId.SNOWSCAPE ],
[ 55, MoveId.BLIZZARD ],
[ 60, MoveId.BRAVE_BIRD ],
[ 28, MoveId.AIR_SLASH ],
[ 32, MoveId.FEATHER_DANCE ],
[ 35, MoveId.ICE_PUNCH ],
[ 37, MoveId.FREEZE_DRY ],
[ 40, MoveId.BLIZZARD ],
],
[SpeciesId.MANTINE]: [
[ 1, MoveId.WING_ATTACK ],

View File

@ -116,7 +116,7 @@ export function initSpecies() {
new PokemonSpecies(SpeciesId.MACHOKE, 1, false, false, false, "Superpower Pokémon", PokemonType.FIGHTING, null, 1.5, 70.5, AbilityId.GUTS, AbilityId.NO_GUARD, AbilityId.STEADFAST, 405, 80, 100, 70, 50, 60, 45, 90, 50, 142, GrowthRate.MEDIUM_SLOW, 75, false),
new PokemonSpecies(SpeciesId.MACHAMP, 1, false, false, false, "Superpower Pokémon", PokemonType.FIGHTING, null, 1.6, 130, AbilityId.GUTS, AbilityId.NO_GUARD, AbilityId.STEADFAST, 505, 90, 130, 80, 65, 85, 55, 45, 50, 253, GrowthRate.MEDIUM_SLOW, 75, false, true,
new PokemonForm("Normal", "", PokemonType.FIGHTING, null, 1.6, 130, AbilityId.GUTS, AbilityId.NO_GUARD, AbilityId.STEADFAST, 505, 90, 130, 80, 65, 85, 55, 45, 50, 253, false, null, true),
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.FIGHTING, null, 25, 999.9, AbilityId.GUTS, AbilityId.GUTS, AbilityId.GUTS, 605, 120, 170, 85, 75, 90, 65, 45, 50, 253)
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.FIGHTING, null, 25, 999.9, AbilityId.GUTS, AbilityId.GUTS, AbilityId.GUTS, 605, 120, 170, 95, 80, 85, 55, 45, 50, 253)
),
new PokemonSpecies(SpeciesId.BELLSPROUT, 1, false, false, false, "Flower Pokémon", PokemonType.GRASS, PokemonType.POISON, 0.7, 4, AbilityId.CHLOROPHYLL, AbilityId.NONE, AbilityId.GLUTTONY, 300, 50, 75, 35, 70, 30, 40, 255, 70, 60, GrowthRate.MEDIUM_SLOW, 50, false),
new PokemonSpecies(SpeciesId.WEEPINBELL, 1, false, false, false, "Flycatcher Pokémon", PokemonType.GRASS, PokemonType.POISON, 1, 6.4, AbilityId.CHLOROPHYLL, AbilityId.NONE, AbilityId.GLUTTONY, 390, 65, 90, 50, 85, 45, 55, 120, 70, 137, GrowthRate.MEDIUM_SLOW, 50, false),
@ -149,7 +149,7 @@ export function initSpecies() {
new PokemonSpecies(SpeciesId.GENGAR, 1, false, false, false, "Shadow Pokémon", PokemonType.GHOST, PokemonType.POISON, 1.5, 40.5, AbilityId.CURSED_BODY, AbilityId.NONE, AbilityId.NONE, 500, 60, 65, 60, 130, 75, 110, 45, 50, 250, GrowthRate.MEDIUM_SLOW, 50, false, true,
new PokemonForm("Normal", "", PokemonType.GHOST, PokemonType.POISON, 1.5, 40.5, AbilityId.CURSED_BODY, AbilityId.NONE, AbilityId.NONE, 500, 60, 65, 60, 130, 75, 110, 45, 50, 250, false, null, true),
new PokemonForm("Mega", SpeciesFormKey.MEGA, PokemonType.GHOST, PokemonType.POISON, 1.4, 40.5, AbilityId.SHADOW_TAG, AbilityId.NONE, AbilityId.NONE, 600, 60, 65, 80, 170, 95, 130, 45, 50, 250),
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.GHOST, PokemonType.POISON, 20, 999.9, AbilityId.CURSED_BODY, AbilityId.NONE, AbilityId.NONE, 600, 140, 65, 70, 140, 85, 100, 45, 50, 250)
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.GHOST, PokemonType.POISON, 20, 999.9, AbilityId.SHADOW_TAG, AbilityId.NONE, AbilityId.NONE, 600, 150, 50, 65, 150, 85, 100, 45, 50, 250)
),
new PokemonSpecies(SpeciesId.ONIX, 1, false, false, false, "Rock Snake Pokémon", PokemonType.ROCK, PokemonType.GROUND, 8.8, 210, AbilityId.ROCK_HEAD, AbilityId.STURDY, AbilityId.WEAK_ARMOR, 385, 35, 45, 160, 30, 45, 70, 45, 50, 77, GrowthRate.MEDIUM_FAST, 50, false),
new PokemonSpecies(SpeciesId.DROWZEE, 1, false, false, false, "Hypnosis Pokémon", PokemonType.PSYCHIC, null, 1, 32.4, AbilityId.INSOMNIA, AbilityId.FOREWARN, AbilityId.INNER_FOCUS, 328, 60, 48, 45, 43, 90, 42, 190, 70, 66, GrowthRate.MEDIUM_FAST, 50, false),
@ -223,7 +223,7 @@ export function initSpecies() {
),
new PokemonSpecies(SpeciesId.SNORLAX, 1, false, false, false, "Sleeping Pokémon", PokemonType.NORMAL, null, 2.1, 460, AbilityId.IMMUNITY, AbilityId.THICK_FAT, AbilityId.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, GrowthRate.SLOW, 87.5, false, true,
new PokemonForm("Normal", "", PokemonType.NORMAL, null, 2.1, 460, AbilityId.IMMUNITY, AbilityId.THICK_FAT, AbilityId.GLUTTONY, 540, 160, 110, 65, 65, 110, 30, 25, 50, 189, false, null, true),
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.NORMAL, null, 35, 999.9, AbilityId.HARVEST, AbilityId.HARVEST, AbilityId.HARVEST, 640, 210, 135, 70, 90, 115, 20, 25, 50, 189)
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.NORMAL, null, 35, 999.9, AbilityId.HARVEST, AbilityId.HARVEST, AbilityId.HARVEST, 640, 210, 130, 65, 85, 120, 30, 25, 50, 189)
),
new PokemonSpecies(SpeciesId.ARTICUNO, 1, true, false, false, "Freeze Pokémon", PokemonType.ICE, PokemonType.FLYING, 1.7, 55.4, AbilityId.PRESSURE, AbilityId.NONE, AbilityId.SNOW_CLOAK, 580, 90, 85, 100, 95, 125, 85, 3, 35, 290, GrowthRate.SLOW, null, false),
new PokemonSpecies(SpeciesId.ZAPDOS, 1, true, false, false, "Electric Pokémon", PokemonType.ELECTRIC, PokemonType.FLYING, 1.6, 52.6, AbilityId.PRESSURE, AbilityId.NONE, AbilityId.STATIC, 580, 90, 90, 85, 125, 90, 100, 3, 35, 290, GrowthRate.SLOW, null, false),
@ -1338,7 +1338,7 @@ export function initSpecies() {
new PokemonSpecies(SpeciesId.MELTAN, 7, false, false, true, "Hex Nut Pokémon", PokemonType.STEEL, null, 0.2, 8, AbilityId.MAGNET_PULL, AbilityId.NONE, AbilityId.NONE, 300, 46, 65, 65, 55, 35, 34, 3, 0, 150, GrowthRate.SLOW, null, false),
new PokemonSpecies(SpeciesId.MELMETAL, 7, false, false, true, "Hex Nut Pokémon", PokemonType.STEEL, null, 2.5, 800, AbilityId.IRON_FIST, AbilityId.NONE, AbilityId.NONE, 600, 135, 143, 143, 80, 65, 34, 3, 0, 300, GrowthRate.SLOW, null, false, true,
new PokemonForm("Normal", "", PokemonType.STEEL, null, 2.5, 800, AbilityId.IRON_FIST, AbilityId.NONE, AbilityId.NONE, 600, 135, 143, 143, 80, 65, 34, 3, 0, 300, false, null, true),
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.STEEL, null, 25, 999.9, AbilityId.IRON_FIST, AbilityId.NONE, AbilityId.NONE, 700, 170, 158, 158, 95, 75, 44, 3, 0, 300)
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.STEEL, null, 25, 999.9, AbilityId.IRON_FIST, AbilityId.NONE, AbilityId.NONE, 700, 161, 169, 154, 106, 76, 34, 3, 0, 300)
),
new PokemonSpecies(SpeciesId.GROOKEY, 8, false, false, false, "Chimp Pokémon", PokemonType.GRASS, null, 0.3, 5, AbilityId.OVERGROW, AbilityId.NONE, AbilityId.GRASSY_SURGE, 310, 50, 65, 50, 40, 40, 65, 45, 50, 62, GrowthRate.MEDIUM_SLOW, 87.5, false),
new PokemonSpecies(SpeciesId.THWACKEY, 8, false, false, false, "Beat Pokémon", PokemonType.GRASS, null, 0.7, 14, AbilityId.OVERGROW, AbilityId.NONE, AbilityId.GRASSY_SURGE, 420, 70, 85, 70, 55, 60, 80, 45, 50, 147, GrowthRate.MEDIUM_SLOW, 87.5, false),
@ -1492,7 +1492,7 @@ export function initSpecies() {
new PokemonSpecies(SpeciesId.ARCTOVISH, 8, false, false, false, "Fossil Pokémon", PokemonType.WATER, PokemonType.ICE, 2, 175, AbilityId.WATER_ABSORB, AbilityId.ICE_BODY, AbilityId.SLUSH_RUSH, 505, 90, 90, 100, 80, 90, 55, 45, 50, 177, GrowthRate.SLOW, null, false),
new PokemonSpecies(SpeciesId.DURALUDON, 8, false, false, false, "Alloy Pokémon", PokemonType.STEEL, PokemonType.DRAGON, 1.8, 40, AbilityId.LIGHT_METAL, AbilityId.HEAVY_METAL, AbilityId.STALWART, 535, 70, 95, 115, 120, 50, 85, 45, 50, 187, GrowthRate.MEDIUM_FAST, 50, false, true,
new PokemonForm("Normal", "", PokemonType.STEEL, PokemonType.DRAGON, 1.8, 40, AbilityId.LIGHT_METAL, AbilityId.HEAVY_METAL, AbilityId.STALWART, 535, 70, 95, 115, 120, 50, 85, 45, 50, 187, false, null, true),
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.STEEL, PokemonType.DRAGON, 43, 999.9, AbilityId.LIGHTNING_ROD, AbilityId.LIGHTNING_ROD, AbilityId.LIGHTNING_ROD, 635, 100, 110, 120, 175, 60, 70, 45, 50, 187)
new PokemonForm("G-Max", SpeciesFormKey.GIGANTAMAX, PokemonType.STEEL, PokemonType.DRAGON, 43, 999.9, AbilityId.ANALYTIC, AbilityId.ANALYTIC, AbilityId.ANALYTIC, 635, 100, 120, 110, 160, 85, 60, 45, 50, 187)
),
new PokemonSpecies(SpeciesId.DREEPY, 8, false, false, false, "Lingering Pokémon", PokemonType.DRAGON, PokemonType.GHOST, 0.5, 2, AbilityId.CLEAR_BODY, AbilityId.INFILTRATOR, AbilityId.CURSED_BODY, 270, 28, 60, 30, 40, 30, 82, 45, 50, 54, GrowthRate.SLOW, 50, false),
new PokemonSpecies(SpeciesId.DRAKLOAK, 8, false, false, false, "Caretaker Pokémon", PokemonType.DRAGON, PokemonType.GHOST, 1.4, 11, AbilityId.CLEAR_BODY, AbilityId.INFILTRATOR, AbilityId.CURSED_BODY, 410, 68, 80, 50, 60, 50, 102, 45, 50, 144, GrowthRate.SLOW, 50, false),
@ -1513,8 +1513,8 @@ export function initSpecies() {
new PokemonSpecies(SpeciesId.URSHIFU, 8, true, false, false, "Wushu Pokémon", PokemonType.FIGHTING, PokemonType.DARK, 1.9, 105, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 550, 100, 130, 100, 63, 60, 97, 3, 50, 275, GrowthRate.SLOW, 87.5, false, true,
new PokemonForm("Single Strike Style", "single-strike", PokemonType.FIGHTING, PokemonType.DARK, 1.9, 105, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 550, 100, 130, 100, 63, 60, 97, 3, 50, 275, false, "", true),
new PokemonForm("Rapid Strike Style", "rapid-strike", PokemonType.FIGHTING, PokemonType.WATER, 1.9, 105, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 550, 100, 130, 100, 63, 60, 97, 3, 50, 275, false, null, true),
new PokemonForm("G-Max Single Strike Style", SpeciesFormKey.GIGANTAMAX_SINGLE, PokemonType.FIGHTING, PokemonType.DARK, 29, 999.9, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 650, 125, 145, 115, 83, 70, 112, 3, 50, 275),
new PokemonForm("G-Max Rapid Strike Style", SpeciesFormKey.GIGANTAMAX_RAPID, PokemonType.FIGHTING, PokemonType.WATER, 26, 999.9, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 650, 125, 145, 115, 83, 70, 112, 3, 50, 275)
new PokemonForm("G-Max Single Strike Style", SpeciesFormKey.GIGANTAMAX_SINGLE, PokemonType.FIGHTING, PokemonType.DARK, 29, 999.9, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 650, 120, 150, 115, 83, 75, 107, 3, 50, 275),
new PokemonForm("G-Max Rapid Strike Style", SpeciesFormKey.GIGANTAMAX_RAPID, PokemonType.FIGHTING, PokemonType.WATER, 26, 999.9, AbilityId.UNSEEN_FIST, AbilityId.NONE, AbilityId.NONE, 650, 120, 150, 115, 83, 75, 107, 3, 50, 275)
),
new PokemonSpecies(SpeciesId.ZARUDE, 8, false, false, true, "Rogue Monkey Pokémon", PokemonType.DARK, PokemonType.GRASS, 1.8, 70, AbilityId.LEAF_GUARD, AbilityId.NONE, AbilityId.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, GrowthRate.SLOW, null, false, false,
new PokemonForm("Normal", "", PokemonType.DARK, PokemonType.GRASS, 1.8, 70, AbilityId.LEAF_GUARD, AbilityId.NONE, AbilityId.NONE, 600, 105, 120, 105, 70, 95, 105, 3, 0, 300, false, null, true),

View File

@ -208,7 +208,7 @@ export const tmPoolTiers: TmPoolTiers = {
[MoveId.HYDRO_CANNON]: ModifierTier.ULTRA,
[MoveId.WEATHER_BALL]: ModifierTier.COMMON,
[MoveId.FAKE_TEARS]: ModifierTier.GREAT,
[MoveId.AIR_CUTTER]: ModifierTier.GREAT,
[MoveId.AIR_CUTTER]: ModifierTier.COMMON,
[MoveId.OVERHEAT]: ModifierTier.ULTRA,
[MoveId.ROCK_TOMB]: ModifierTier.GREAT,
[MoveId.METAL_SOUND]: ModifierTier.GREAT,
@ -220,7 +220,7 @@ export const tmPoolTiers: TmPoolTiers = {
[MoveId.AERIAL_ACE]: ModifierTier.GREAT,
[MoveId.ICICLE_SPEAR]: ModifierTier.GREAT,
[MoveId.IRON_DEFENSE]: ModifierTier.GREAT,
[MoveId.DRAGON_CLAW]: ModifierTier.ULTRA,
[MoveId.DRAGON_CLAW]: ModifierTier.GREAT,
[MoveId.FRENZY_PLANT]: ModifierTier.ULTRA,
[MoveId.BULK_UP]: ModifierTier.GREAT,
[MoveId.BOUNCE]: ModifierTier.GREAT,
@ -233,7 +233,7 @@ export const tmPoolTiers: TmPoolTiers = {
[MoveId.DRAGON_DANCE]: ModifierTier.GREAT,
[MoveId.ROCK_BLAST]: ModifierTier.GREAT,
[MoveId.SHOCK_WAVE]: ModifierTier.GREAT,
[MoveId.WATER_PULSE]: ModifierTier.GREAT,
[MoveId.WATER_PULSE]: ModifierTier.COMMON,
[MoveId.ROOST]: ModifierTier.GREAT,
[MoveId.GRAVITY]: ModifierTier.COMMON,
[MoveId.GYRO_BALL]: ModifierTier.COMMON,
@ -312,7 +312,7 @@ export const tmPoolTiers: TmPoolTiers = {
[MoveId.ALLY_SWITCH]: ModifierTier.COMMON,
[MoveId.SCALD]: ModifierTier.GREAT,
[MoveId.HEX]: ModifierTier.GREAT,
[MoveId.SKY_DROP]: ModifierTier.GREAT,
[MoveId.SKY_DROP]: ModifierTier.COMMON,
[MoveId.INCINERATE]: ModifierTier.GREAT,
[MoveId.QUASH]: ModifierTier.COMMON,
[MoveId.ACROBATICS]: ModifierTier.GREAT,
@ -358,7 +358,7 @@ export const tmPoolTiers: TmPoolTiers = {
[MoveId.LUNGE]: ModifierTier.GREAT,
[MoveId.SPEED_SWAP]: ModifierTier.COMMON,
[MoveId.SMART_STRIKE]: ModifierTier.GREAT,
[MoveId.BRUTAL_SWING]: ModifierTier.GREAT,
[MoveId.BRUTAL_SWING]: ModifierTier.COMMON,
[MoveId.AURORA_VEIL]: ModifierTier.COMMON,
[MoveId.PSYCHIC_FANGS]: ModifierTier.GREAT,
[MoveId.STOMPING_TANTRUM]: ModifierTier.GREAT,

View File

@ -525,36 +525,36 @@ export class SingleGenerationChallenge extends Challenge {
[TrainerType.MATT, TrainerType.SHELLY],
],
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
[TrainerType.COLRESS],
[TrainerType.BRYONY],
[TrainerType.FABA, TrainerType.PLUMERIA],
[TrainerType.OLEANA],
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],
];
const evilAdminFight2 = [
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON],
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON],
[TrainerType.PROTON],
[TrainerType.PROTON],
[
[TrainerType.TABITHA, TrainerType.COURTNEY],
[TrainerType.MATT, TrainerType.SHELLY],
],
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
[TrainerType.ZINZOLIN],
[TrainerType.XEROSIC],
[TrainerType.BRYONY, TrainerType.XEROSIC],
[TrainerType.FABA, TrainerType.PLUMERIA],
[TrainerType.OLEANA],
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],
];
const evilAdminFight3 = [
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON],
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON],
[TrainerType.ARCHER, TrainerType.ARIANA],
[TrainerType.ARCHER, TrainerType.ARIANA],
[
[TrainerType.TABITHA, TrainerType.COURTNEY],
[TrainerType.MATT, TrainerType.SHELLY],
],
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
[TrainerType.XEROSIC, TrainerType.BRYONY],
[TrainerType.COLRESS],
[TrainerType.XEROSIC],
[TrainerType.FABA, TrainerType.PLUMERIA],
[TrainerType.OLEANA],
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],

View File

@ -131,7 +131,7 @@ export const classicFixedBattles: FixedBattleConfigs = {
[TrainerType.TABITHA, TrainerType.COURTNEY],
[TrainerType.MATT, TrainerType.SHELLY],
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
TrainerType.COLRESS,
TrainerType.BRYONY,
TrainerType.FABA,
TrainerType.PLUMERIA,
@ -180,12 +180,12 @@ export const classicFixedBattles: FixedBattleConfigs = {
.setGetTrainerFunc(
getRandomTrainerFunc(
[
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON],
TrainerType.PROTON,
[TrainerType.TABITHA, TrainerType.COURTNEY],
[TrainerType.MATT, TrainerType.SHELLY],
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
TrainerType.ZINZOLIN,
TrainerType.XEROSIC,
[TrainerType.BRYONY, TrainerType.XEROSIC],
TrainerType.FABA,
TrainerType.PLUMERIA,
TrainerType.OLEANA,
@ -247,12 +247,12 @@ export const classicFixedBattles: FixedBattleConfigs = {
.setGetTrainerFunc(
getRandomTrainerFunc(
[
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON],
[TrainerType.ARCHER, TrainerType.ARIANA],
[TrainerType.TABITHA, TrainerType.COURTNEY],
[TrainerType.MATT, TrainerType.SHELLY],
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
[TrainerType.XEROSIC, TrainerType.BRYONY],
TrainerType.COLRESS,
TrainerType.XEROSIC,
TrainerType.FABA,
TrainerType.PLUMERIA,
TrainerType.OLEANA,

View File

@ -264,7 +264,6 @@ const SLOT_3_FIGHT_2 = [
SpeciesId.SLAKOTH,
SpeciesId.ARON,
SpeciesId.SPHEAL,
SpeciesId.FEEBAS,
SpeciesId.MUNCHLAX,
SpeciesId.ROGGENROLA,
SpeciesId.TIMBURR,
@ -277,7 +276,6 @@ const SLOT_3_FIGHT_2 = [
SpeciesId.LITWICK,
SpeciesId.MUDBRAY,
SpeciesId.DEWPIDER,
SpeciesId.WIMPOD,
SpeciesId.HATENNA,
SpeciesId.IMPIDIMP,
SpeciesId.SMOLIV,
@ -308,7 +306,6 @@ const SLOT_3_FIGHT_3 = [
SpeciesId.VIGOROTH,
SpeciesId.LAIRON,
SpeciesId.SEALEO,
SpeciesId.MILOTIC,
SpeciesId.SNORLAX,
SpeciesId.BOLDORE,
SpeciesId.GURDURR,
@ -321,7 +318,6 @@ const SLOT_3_FIGHT_3 = [
SpeciesId.LAMPENT,
SpeciesId.MUDSDALE,
SpeciesId.ARAQUANID,
SpeciesId.GOLISOPOD,
SpeciesId.HATTREM,
SpeciesId.MORGREM,
SpeciesId.DOLLIV,
@ -352,7 +348,6 @@ const SLOT_3_FINAL = [
SpeciesId.SLAKING,
SpeciesId.AGGRON,
SpeciesId.WALREIN,
SpeciesId.MILOTIC,
SpeciesId.SNORLAX,
SpeciesId.GIGALITH,
SpeciesId.CONKELDURR,
@ -365,7 +360,6 @@ const SLOT_3_FINAL = [
SpeciesId.CHANDELURE,
SpeciesId.MUDSDALE,
SpeciesId.ARAQUANID,
SpeciesId.GOLISOPOD,
SpeciesId.HATTERENE,
SpeciesId.GRIMMSNARL,
SpeciesId.ARBOLIVA,
@ -409,6 +403,7 @@ const SLOT_4_FIGHT_3 = [
SpeciesId.HERACROSS,
SpeciesId.SNEASEL,
SpeciesId.GARDEVOIR,
SpeciesId.MILOTIC,
SpeciesId.ROSERADE,
SpeciesId.SPIRITOMB,
SpeciesId.LUCARIO,
@ -422,6 +417,7 @@ const SLOT_4_FIGHT_3 = [
SpeciesId.FLORGES,
SpeciesId.DOUBLADE,
SpeciesId.VIKAVOLT,
SpeciesId.GOLISOPOD,
SpeciesId.MIMIKYU,
SpeciesId.DHELMISE,
SpeciesId.POLTEAGEIST,
@ -472,6 +468,7 @@ const SLOT_4_FINAL = [
SpeciesId.HERACROSS,
SpeciesId.WEAVILE,
SpeciesId.GARDEVOIR,
SpeciesId.MILOTIC,
SpeciesId.ROSERADE,
SpeciesId.SPIRITOMB,
SpeciesId.LUCARIO,
@ -485,6 +482,7 @@ const SLOT_4_FINAL = [
SpeciesId.FLORGES,
SpeciesId.AEGISLASH,
SpeciesId.VIKAVOLT,
SpeciesId.GOLISOPOD,
SpeciesId.MIMIKYU,
SpeciesId.DHELMISE,
SpeciesId.POLTEAGEIST,

View File

@ -502,7 +502,7 @@ export class TempStatStageBoosterModifier extends LapsingPersistentModifier {
this.stat = stat;
// Note that, because we want X Accuracy to maintain its original behavior,
// it will increment as it did previously, directly to the stat stage.
this.boost = stat !== Stat.ACC ? 0.3 : 1;
this.boost = stat !== Stat.ACC ? 0.2 : 1;
}
match(modifier: Modifier): boolean {

View File

@ -251,6 +251,8 @@ export class TitlePhase extends Phase {
.map(() => modifierTypes.GOLDEN_EXP_CHARM().withIdFromFunc(modifierTypes.GOLDEN_EXP_CHARM).newModifier()),
)
.concat([modifierTypes.MAP().withIdFromFunc(modifierTypes.MAP).newModifier()])
.concat([modifierTypes.ABILITY_CHARM().withIdFromFunc(modifierTypes.ABILITY_CHARM).newModifier()])
.concat([modifierTypes.SHINY_CHARM().withIdFromFunc(modifierTypes.SHINY_CHARM).newModifier()])
.concat(getDailyRunStarterModifiers(party))
.filter(m => m !== null);

View File

@ -85,6 +85,9 @@ export class VictoryPhase extends PokemonPhase {
if (gameMode.isEndless && currentWaveIndex === 10) {
globalScene.phaseManager.pushNew("ModifierRewardPhase", modifierTypes.EXP_SHARE);
}
if (gameMode.isClassic && currentWaveIndex === 10) {
globalScene.phaseManager.pushNew("ModifierRewardPhase", modifierTypes.EXP_CHARM);
}
if (currentWaveIndex <= 750 && (currentWaveIndex <= 500 || currentWaveIndex % 30 === superExpWave)) {
globalScene.phaseManager.pushNew(
"ModifierRewardPhase",

View File

@ -48,7 +48,7 @@ describe("Items - Temporary Stat Stage Boosters", () => {
await game.toEndOfTurn();
expect(partyMember.getStatStageMultiplier).toHaveReturnedWith(1.3);
expect(partyMember.getStatStageMultiplier).toHaveReturnedWith(1.2);
});
it("should increase existing ACC stat stage by 1 for X_ACCURACY only", async () => {
@ -89,8 +89,8 @@ describe("Items - Temporary Stat Stage Boosters", () => {
await game.phaseInterceptor.to("TurnEndPhase");
// ATK at +1 stat stage yields a x1.5 multiplier, add 0.3 from X_ATTACK
expect(partyMember.getStatStageMultiplier).toHaveReturnedWith(1.8);
// ATK at +1 stat stage yields a x1.5 multiplier, add 0.2 from X_ATTACK
expect(partyMember.getStatStageMultiplier).toHaveReturnedWith(1.7);
});
it("should not increase past maximum stat stage multiplier", async () => {