Refactored Baton logic

This commit is contained in:
Wlowscha 2025-06-09 14:46:31 +02:00
parent b271dc724b
commit faa387a67e
No known key found for this signature in database
GPG Key ID: 3C8F1AD330565D04

View File

@ -13,12 +13,12 @@ import { SpeciesFormChangeActiveTrigger } from "#app/data/pokemon-forms";
import { TrainerSlot } from "#enums/trainer-slot";
import type Pokemon from "#app/field/pokemon";
import { getPokemonNameWithAffix } from "#app/messages";
import { SwitchEffectTransferModifier } from "#app/modifier/modifier";
import { Command } from "#app/ui/command-ui-handler";
import i18next from "i18next";
import { SummonPhase } from "./summon-phase";
import { SubstituteTag } from "#app/data/battler-tags";
import { SwitchType } from "#enums/switch-type";
import { HeldItemId } from "#enums/held-item-id";
export class SwitchSummonPhase extends SummonPhase {
public readonly phaseName: "SwitchSummonPhase" | "ReturnPhase" = "SwitchSummonPhase";
@ -145,29 +145,11 @@ export class SwitchSummonPhase extends SummonPhase {
);
// If the recipient pokemon lacks a baton, give our baton to it during the swap
if (
!globalScene.findModifier(
m =>
m instanceof SwitchEffectTransferModifier &&
(m as SwitchEffectTransferModifier).pokemonId === switchedInPokemon.id,
)
) {
const batonPassModifier = globalScene.findModifier(
m =>
m instanceof SwitchEffectTransferModifier &&
(m as SwitchEffectTransferModifier).pokemonId === this.lastPokemon.id,
) as SwitchEffectTransferModifier;
if (!switchedInPokemon.heldItemManager.hasItem(HeldItemId.BATON)) {
const batonPassModifier = this.lastPokemon.heldItemManager.hasItem(HeldItemId.BATON);
if (batonPassModifier) {
globalScene.tryTransferHeldItemModifier(
batonPassModifier,
switchedInPokemon,
false,
undefined,
undefined,
undefined,
false,
);
globalScene.tryTransferHeldItem(HeldItemId.BATON, this.lastPokemon, switchedInPokemon, false);
}
}
}