diff --git a/src/battle-scene.ts b/src/battle-scene.ts index e89874a075c..f117615e5db 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -59,7 +59,7 @@ import { SceneBase } from './scene-base'; import CandyBar from './ui/candy-bar'; import { Variant, variantData } from './data/variant'; import { Localizable } from './plugins/i18n'; -import { STARTING_WAVE_OVERRIDE, OPP_SPECIES_OVERRIDE, SEED_OVERRIDE, STARTING_BIOME_OVERRIDE } from './overrides'; +import { STARTING_WAVE_OVERRIDE, OPP_SPECIES_OVERRIDE, SEED_OVERRIDE, STARTING_BIOME_OVERRIDE, DOUBLE_BATTLE_OVERRIDE } from './overrides'; import {InputsController} from "./inputs-controller"; import {UiInputs} from "./ui-inputs"; @@ -842,6 +842,9 @@ export default class BattleScene extends SceneBase { } else if (!battleConfig) newDouble = !!double; + if (DOUBLE_BATTLE_OVERRIDE) + newDouble = true; + const lastBattle = this.currentBattle; if (lastBattle?.double && !newDouble) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 2242b1ee694..5f7ac90b0f4 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -43,7 +43,7 @@ import { Nature, getNatureStatMultiplier } from '../data/nature'; import { SpeciesFormChange, SpeciesFormChangeActiveTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangeStatusEffectTrigger } from '../data/pokemon-forms'; import { TerrainType } from '../data/terrain'; import { TrainerSlot } from '../data/trainer-config'; -import { ABILITY_OVERRIDE, MOVE_OVERRIDE, MOVE_OVERRIDE_2, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_MOVE_OVERRIDE_2, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE } from '../overrides'; +import { ABILITY_OVERRIDE, MOVE_OVERRIDE, MOVE_OVERRIDE_2, OPP_ABILITY_OVERRIDE, OPP_MOVE_OVERRIDE, OPP_MOVE_OVERRIDE_2, OPP_PASSIVE_ABILITY_OVERRIDE, OPP_SHINY_OVERRIDE, OPP_VARIANT_OVERRIDE, PASSIVE_ABILITY_OVERRIDE } from '../overrides'; import { BerryType } from '../data/berry'; import i18next from '../plugins/i18n'; @@ -811,6 +811,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } getPassiveAbility(): Ability { + if (PASSIVE_ABILITY_OVERRIDE && this.isPlayer()) + return allAbilities[PASSIVE_ABILITY_OVERRIDE]; + if (OPP_PASSIVE_ABILITY_OVERRIDE && !this.isPlayer()) + return allAbilities[OPP_PASSIVE_ABILITY_OVERRIDE]; + let starterSpeciesId = this.species.speciesId; while (pokemonPrevolutions.hasOwnProperty(starterSpeciesId)) starterSpeciesId = pokemonPrevolutions[starterSpeciesId]; @@ -818,6 +823,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } hasPassive(): boolean { + if ((PASSIVE_ABILITY_OVERRIDE !== Abilities.NONE && this.isPlayer()) || (OPP_PASSIVE_ABILITY_OVERRIDE !== Abilities.NONE && !this.isPlayer())) + return true; return this.passive || this.isBoss(); } diff --git a/src/overrides.ts b/src/overrides.ts index 4b9bcaa0ba0..7608275ea0f 100644 --- a/src/overrides.ts +++ b/src/overrides.ts @@ -12,12 +12,15 @@ export const STARTING_WAVE_OVERRIDE = 0; export const STARTING_BIOME_OVERRIDE = Biome.TOWN; export const STARTING_MONEY_OVERRIDE = 0; export const WEATHER_OVERRIDE = WeatherType.NONE; +export const DOUBLE_BATTLE_OVERRIDE = false; export const ABILITY_OVERRIDE = Abilities.NONE; +export const PASSIVE_ABILITY_OVERRIDE = Abilities.NONE; export const MOVE_OVERRIDE = Moves.NONE; export const MOVE_OVERRIDE_2 = Moves.NONE; export const OPP_SPECIES_OVERRIDE = 0; export const OPP_ABILITY_OVERRIDE = Abilities.NONE; +export const OPP_PASSIVE_ABILITY_OVERRIDE = Abilities.NONE; export const OPP_MOVE_OVERRIDE = Moves.NONE; export const OPP_MOVE_OVERRIDE_2 = Moves.NONE;