diff --git a/src/data/move.ts b/src/data/move.ts index b3a1902b0..a296e3b48 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -3562,9 +3562,9 @@ export function initMoves() { .attr(AddBattlerTagAttr, BattlerTagType.ENCORE, false, true) .condition((user, target, move) => new EncoreTag(user.id).canAdd(target)), new AttackMove(Moves.PURSUIT, "Pursuit (P)", Type.DARK, MoveCategory.PHYSICAL, 40, 100, 20, "The power of this attack move is doubled if it's used on a target that's switching out of battle.", -1, 0, 2), - new AttackMove(Moves.RAPID_SPIN, "Rapid Spin", Type.NORMAL, MoveCategory.PHYSICAL, 50, 100, 40, "A spin attack that can also eliminate such moves as Bind, Wrap, and Leech Seed. This also raises the user's Speed stat.", 100, 0, 2) + new AttackMove(Moves.RAPID_SPIN, "Rapid Spin (P)", Type.NORMAL, MoveCategory.PHYSICAL, 50, 100, 40, "A spin attack that can also eliminate such moves as Bind, Wrap, and Leech Seed. This also raises the user's Speed stat.", 100, 0, 2) .attr(StatChangeAttr, BattleStat.SPD, 1, true) - .attr(LapseBattlerTagAttr, [ BattlerTagType.BIND, BattlerTagType.WRAP, BattlerTagType.FIRE_SPIN, BattlerTagType.WHIRLPOOL, BattlerTagType.CLAMP, BattlerTagType.SAND_TOMB, BattlerTagType.MAGMA_STORM, BattlerTagType.THUNDER_CAGE, BattlerTagType.SEEDED ], true), + .attr(RemoveBattlerTagAttr, [ BattlerTagType.BIND, BattlerTagType.WRAP, BattlerTagType.FIRE_SPIN, BattlerTagType.WHIRLPOOL, BattlerTagType.CLAMP, BattlerTagType.SAND_TOMB, BattlerTagType.MAGMA_STORM, BattlerTagType.THUNDER_CAGE, BattlerTagType.SEEDED ], true), new StatusMove(Moves.SWEET_SCENT, "Sweet Scent", Type.NORMAL, 100, 20, "A sweet scent that harshly lowers opposing Pokémon's evasiveness.", -1, 0, 2) .attr(StatChangeAttr, BattleStat.EVA, -1) .target(MoveTarget.ALL_NEAR_ENEMIES), diff --git a/src/egg-hatch-phase.ts b/src/egg-hatch-phase.ts index cfeb4749a..f485d5b75 100644 --- a/src/egg-hatch-phase.ts +++ b/src/egg-hatch-phase.ts @@ -351,7 +351,7 @@ export class EggHatchPhase extends Phase { if (speciesOverride) { const pokemonSpecies = getPokemonSpecies(speciesOverride); - ret = this.scene.addPlayerPokemon(pokemonSpecies, 5, undefined, undefined, undefined, false); + ret = this.scene.addPlayerPokemon(pokemonSpecies, 1, undefined, undefined, undefined, false); } else { let minStarterValue: integer; let maxStarterValue: integer; @@ -405,7 +405,7 @@ export class EggHatchPhase extends Phase { const pokemonSpecies = getPokemonSpecies(species); - ret = this.scene.addPlayerPokemon(pokemonSpecies, 5, undefined, undefined, undefined, false); + ret = this.scene.addPlayerPokemon(pokemonSpecies, 1, undefined, undefined, undefined, false); } ret.trySetShiny(this.egg.gachaType === GachaType.SHINY ? 1024 : 512); diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 60c0b4abc..6f4d09ea7 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -165,13 +165,15 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.metBiome = scene.currentBattle ? scene.arena.biomeType : -1; this.pokerus = false; - const fused = new Utils.BooleanHolder(scene.gameMode.isSplicedOnly); - if (!fused.value && !this.isPlayer() && !this.hasTrainer()) - this.scene.applyModifier(EnemyFusionChanceModifier, false, fused); + if (level > 1) { + const fused = new Utils.BooleanHolder(scene.gameMode.isSplicedOnly); + if (!fused.value && !this.isPlayer() && !this.hasTrainer()) + this.scene.applyModifier(EnemyFusionChanceModifier, false, fused); - if (fused.value) { - this.calculateStats(); - this.generateFusionSpecies(); + if (fused.value) { + this.calculateStats(); + this.generateFusionSpecies(); + } } } @@ -706,7 +708,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { return allAbilities[ABILITY_OVERRIDE]; if (OPP_ABILITY_OVERRIDE && !this.isPlayer()) return allAbilities[OPP_ABILITY_OVERRIDE]; - if (this.fusionSpecies) + if (this.isFusion()) return allAbilities[this.getFusionSpeciesForm().getAbility(this.fusionAbilityIndex)]; let abilityId = this.getSpeciesForm().getAbility(this.abilityIndex); if (abilityId === Abilities.NONE) diff --git a/src/phases.ts b/src/phases.ts index b8414e6b7..8c9833172 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -326,9 +326,9 @@ export class TitlePhase extends Phase { if (this.loaded) { const availablePartyMembers = this.scene.getParty().filter(p => !p.isFainted()).length; - this.scene.pushPhase(new SummonPhase(this.scene, 0)); + this.scene.pushPhase(new SummonPhase(this.scene, 0, true, true)); if (this.scene.currentBattle.double && availablePartyMembers > 1) - this.scene.pushPhase(new SummonPhase(this.scene, 1)); + this.scene.pushPhase(new SummonPhase(this.scene, 1, true, true)); if (this.scene.currentBattle.waveIndex > 1 && this.scene.currentBattle.battleType !== BattleType.TRAINER) { this.scene.pushPhase(new CheckSwitchPhase(this.scene, 0, this.scene.currentBattle.double)); if (this.scene.currentBattle.double && availablePartyMembers > 1) @@ -1074,8 +1074,12 @@ export class SwitchBiomePhase extends BattlePhase { } export class SummonPhase extends PartyMemberPokemonPhase { - constructor(scene: BattleScene, fieldIndex: integer, player?: boolean) { - super(scene, fieldIndex, player !== undefined ? player : true); + private loaded: boolean; + + constructor(scene: BattleScene, fieldIndex: integer, player: boolean = true, loaded: boolean = false) { + super(scene, fieldIndex, player); + + this.loaded = loaded; } start() { @@ -1203,9 +1207,11 @@ export class SummonPhase extends PartyMemberPokemonPhase { pokemon.resetTurnData(); - this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeActiveTrigger, true); + if (!this.loaded) { + this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeActiveTrigger, true); - this.queuePostSummon(); + this.queuePostSummon(); + } } queuePostSummon(): void {