From 6b610137b1365b965f006fdf34295096c3140e06 Mon Sep 17 00:00:00 2001 From: Bertie690 Date: Thu, 5 Jun 2025 21:23:51 -0400 Subject: [PATCH] Revert "Revert predicate stuff for now" This reverts commit 565e18fcb2213cc20151599dd83be59ea547a283. --- src/battle-scene.ts | 12 +++++++++++- src/modifier/modifier.ts | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 34d26b3975c..98736b8020a 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -19,7 +19,12 @@ import { type Constructor, } from "#app/utils/common"; import { deepMergeSpriteData } from "#app/utils/data"; -import type { Modifier, ModifierPredicate, TurnHeldItemTransferModifier } from "./modifier/modifier"; +import type { + Modifier, + ModifierIdentityPredicate, + ModifierPredicate, + TurnHeldItemTransferModifier, +} from "./modifier/modifier"; import { ConsumableModifier, ConsumablePokemonModifier, @@ -3361,6 +3366,11 @@ export default class BattleScene extends SceneBase { return (isPlayer ? this.modifiers : this.enemyModifiers).filter(modifierFilter); } + findModifier( + modifierFilter: ModifierIdentityPredicate, + player?: boolean, + ): T | undefined; + findModifier(modifierFilter: ModifierPredicate, player?: boolean): PersistentModifier | undefined; /** * Find the first modifier that pass the `modifierFilter` function * @param modifierFilter The function used to filter a target's modifiers diff --git a/src/modifier/modifier.ts b/src/modifier/modifier.ts index 2bebbcae90c..8c8cf777cb8 100644 --- a/src/modifier/modifier.ts +++ b/src/modifier/modifier.ts @@ -55,6 +55,7 @@ import { import { globalScene } from "#app/global-scene"; export type ModifierPredicate = (modifier: Modifier) => boolean; +export type ModifierIdentityPredicate = (modifier: Modifier) => modifier is T; const iconOverflowIndex = 24;