mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-01-31 13:17:21 +00:00
[QoL] Add fusion options to overrides (#4298)
* Add fusion options to overrides * Add fusions overrides to overridesHelper --------- Co-authored-by: MokaStitcher <54149968+MokaStitcher@users.noreply.github.com> Co-authored-by: Adrian T. <68144167+torranx@users.noreply.github.com> Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
This commit is contained in:
parent
db1e50dfd7
commit
38c682cca7
@ -889,6 +889,9 @@ export default class BattleScene extends SceneBase {
|
||||
}
|
||||
|
||||
const pokemon = new EnemyPokemon(this, species, level, trainerSlot, boss, dataSource);
|
||||
if (Overrides.OPP_FUSION_OVERRIDE) {
|
||||
pokemon.generateFusionSpecies();
|
||||
}
|
||||
|
||||
overrideModifiers(this, false);
|
||||
overrideHeldItems(this, pokemon, false);
|
||||
|
@ -1964,7 +1964,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
&& species.speciesId !== this.species.speciesId;
|
||||
};
|
||||
|
||||
this.fusionSpecies = this.scene.randomSpecies(this.scene.currentBattle?.waveIndex || 0, this.level, false, filter, true);
|
||||
let fusionOverride: PokemonSpecies | undefined = undefined;
|
||||
|
||||
if (forStarter && this instanceof PlayerPokemon && Overrides.STARTER_FUSION_SPECIES_OVERRIDE) {
|
||||
fusionOverride = getPokemonSpecies(Overrides.STARTER_FUSION_SPECIES_OVERRIDE);
|
||||
} else if (this instanceof EnemyPokemon && Overrides.OPP_FUSION_SPECIES_OVERRIDE) {
|
||||
fusionOverride = getPokemonSpecies(Overrides.OPP_FUSION_SPECIES_OVERRIDE);
|
||||
}
|
||||
|
||||
this.fusionSpecies = fusionOverride ?? this.scene.randomSpecies(this.scene.currentBattle?.waveIndex || 0, this.level, false, filter, true);
|
||||
this.fusionAbilityIndex = (this.fusionSpecies.abilityHidden && hasHiddenAbility ? 2 : this.fusionSpecies.ability2 !== this.fusionSpecies.ability1 ? randAbilityIndex : 0);
|
||||
this.fusionShiny = this.shiny;
|
||||
this.fusionVariant = this.variant;
|
||||
|
@ -100,6 +100,14 @@ class DefaultOverrides {
|
||||
* @example SPECIES_OVERRIDE = Species.Bulbasaur;
|
||||
*/
|
||||
readonly STARTER_SPECIES_OVERRIDE: Species | number = 0;
|
||||
/**
|
||||
* This will force your starter to be a random fusion
|
||||
*/
|
||||
readonly STARTER_FUSION_OVERRIDE: boolean = false;
|
||||
/**
|
||||
* This will override the species of the fusion
|
||||
*/
|
||||
readonly STARTER_FUSION_SPECIES_OVERRIDE: Species | integer = 0;
|
||||
readonly ABILITY_OVERRIDE: Abilities = Abilities.NONE;
|
||||
readonly PASSIVE_ABILITY_OVERRIDE: Abilities = Abilities.NONE;
|
||||
readonly STATUS_OVERRIDE: StatusEffect = StatusEffect.NONE;
|
||||
@ -112,6 +120,14 @@ class DefaultOverrides {
|
||||
// OPPONENT / ENEMY OVERRIDES
|
||||
// --------------------------
|
||||
readonly OPP_SPECIES_OVERRIDE: Species | number = 0;
|
||||
/**
|
||||
* This will make all opponents fused Pokemon
|
||||
*/
|
||||
readonly OPP_FUSION_OVERRIDE: boolean = false;
|
||||
/**
|
||||
* This will override the species of the fusion only when the opponent is already a fusion
|
||||
*/
|
||||
readonly OPP_FUSION_SPECIES_OVERRIDE: Species | integer = 0;
|
||||
readonly OPP_LEVEL_OVERRIDE: number = 0;
|
||||
readonly OPP_ABILITY_OVERRIDE: Abilities = Abilities.NONE;
|
||||
readonly OPP_PASSIVE_ABILITY_OVERRIDE: Abilities = Abilities.NONE;
|
||||
|
@ -80,7 +80,7 @@ export class SelectStarterPhase extends Phase {
|
||||
starterPokemon.nickname = starter.nickname;
|
||||
}
|
||||
|
||||
if (this.scene.gameMode.isSplicedOnly) {
|
||||
if (this.scene.gameMode.isSplicedOnly || Overrides.STARTER_FUSION_OVERRIDE) {
|
||||
starterPokemon.generateFusionSpecies(true);
|
||||
}
|
||||
starterPokemon.setVisible(false);
|
||||
|
@ -85,6 +85,27 @@ export class OverridesHelper extends GameManagerHelper {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the player (pokemon) to be a random fusion
|
||||
* @returns this
|
||||
*/
|
||||
enableStarterFusion(): this {
|
||||
vi.spyOn(Overrides, "STARTER_FUSION_OVERRIDE", "get").mockReturnValue(true);
|
||||
this.log("Player Pokemon is a random fusion!");
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the player (pokemon) fusion species
|
||||
* @param species the fusion species to set
|
||||
* @returns this
|
||||
*/
|
||||
starterFusionSpecies(species: Species | number): this {
|
||||
vi.spyOn(Overrides, "STARTER_FUSION_SPECIES_OVERRIDE", "get").mockReturnValue(species);
|
||||
this.log(`Player Pokemon fusion species set to ${Species[species]} (=${species})!`);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the player (pokemons) forms
|
||||
* @param forms the (pokemon) forms to set
|
||||
@ -232,6 +253,27 @@ export class OverridesHelper extends GameManagerHelper {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the enemy (pokemon) to be a random fusion
|
||||
* @returns this
|
||||
*/
|
||||
enableEnemyFusion(): this {
|
||||
vi.spyOn(Overrides, "OPP_FUSION_OVERRIDE", "get").mockReturnValue(true);
|
||||
this.log("Enemy Pokemon is a random fusion!");
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the enemy (pokemon) fusion species
|
||||
* @param species the fusion species to set
|
||||
* @returns this
|
||||
*/
|
||||
enemyFusionSpecies(species: Species | number): this {
|
||||
vi.spyOn(Overrides, "OPP_FUSION_SPECIES_OVERRIDE", "get").mockReturnValue(species);
|
||||
this.log(`Enemy Pokemon fusion species set to ${Species[species]} (=${species})!`);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the enemy (pokemon) {@linkcode Abilities | ability}
|
||||
* @param ability the (pokemon) {@linkcode Abilities | ability} to set
|
||||
|
Loading…
x
Reference in New Issue
Block a user