mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-04 15:32:18 +02:00
Added modifier predicate overload to hasModifier
This commit is contained in:
parent
6b610137b1
commit
8cf8c854ce
@ -3316,9 +3316,23 @@ export default class BattleScene extends SceneBase {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
hasModifier(modifier: PersistentModifier, enemy = false): boolean {
|
/**
|
||||||
const modifiers = !enemy ? this.modifiers : this.enemyModifiers;
|
* Check whether a given predicate function returns `true` for any of a given side's modifiers.
|
||||||
return modifiers.indexOf(modifier) > -1;
|
* @param predicate - The {@linkcode ModifierPredicate} to check against.
|
||||||
|
* THe predicate function will be called once for each of the given side's modifiers until it returns `true`,
|
||||||
|
* or the end of the array.
|
||||||
|
* @param enemy - Whether to search the enemy (`true`) or player (`false`) side of the field; default `false`
|
||||||
|
*/
|
||||||
|
hasModifier(modifier: ModifierPredicate, enemy?: boolean): boolean;
|
||||||
|
/**
|
||||||
|
* Check whether a given PersistentModifier exists on the given side of the field.
|
||||||
|
* @param modifier - The {@linkcode PersistentModifier} to check against.
|
||||||
|
* @param enemy - Whether to search the enemy (`true`) or player (`false`) side of the field; default `false`
|
||||||
|
*/
|
||||||
|
hasModifier(modifier: PersistentModifier, enemy?: boolean): boolean;
|
||||||
|
hasModifier(modifier: ModifierPredicate | PersistentModifier, enemy = false): boolean {
|
||||||
|
const modifiers = enemy ? this.enemyModifiers : this.modifiers;
|
||||||
|
return typeof modifier === "function" ? modifiers.some(modifier) : modifiers.indexOf(modifier) > -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -3358,24 +3372,26 @@ export default class BattleScene extends SceneBase {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all of the modifiers that pass the `modifierFilter` function
|
* Get all of the modifiers that pass the `modifierFilter` function
|
||||||
* @param modifierFilter The function used to filter a target's modifiers
|
* @param modifierFilter - The function used to filter a target's modifiers
|
||||||
* @param isPlayer Whether to search the player (`true`) or the enemy (`false`); Defaults to `true`
|
* @param isPlayer - Whether to search the player (`true`) or the enemy (`false`) party; default `true`.
|
||||||
* @returns the list of all modifiers that passed the `modifierFilter` function
|
* @returns - An array containing all modifiers that passed the `modifierFilter` function.
|
||||||
*/
|
*/
|
||||||
|
findModifiers(modifierFilter: ModifierPredicate, isPlayer?: boolean): PersistentModifier[];
|
||||||
|
findModifiers<T extends PersistentModifier>(modifierFilter: ModifierIdentityPredicate<T>, isPlayer?: boolean): T[];
|
||||||
findModifiers(modifierFilter: ModifierPredicate, isPlayer = true): PersistentModifier[] {
|
findModifiers(modifierFilter: ModifierPredicate, isPlayer = true): PersistentModifier[] {
|
||||||
return (isPlayer ? this.modifiers : this.enemyModifiers).filter(modifierFilter);
|
return (isPlayer ? this.modifiers : this.enemyModifiers).filter(modifierFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
findModifier(modifierFilter: ModifierPredicate, player?: boolean): PersistentModifier | undefined;
|
||||||
findModifier<T extends PersistentModifier>(
|
findModifier<T extends PersistentModifier>(
|
||||||
modifierFilter: ModifierIdentityPredicate<T>,
|
modifierFilter: ModifierIdentityPredicate<T>,
|
||||||
player?: boolean,
|
player?: boolean,
|
||||||
): T | undefined;
|
): T | undefined;
|
||||||
findModifier(modifierFilter: ModifierPredicate, player?: boolean): PersistentModifier | undefined;
|
|
||||||
/**
|
/**
|
||||||
* Find the first modifier that pass the `modifierFilter` function
|
* Get the first modifier that passes the `modifierFilter` function.
|
||||||
* @param modifierFilter The function used to filter a target's modifiers
|
* @param modifierFilter - The function used to filter a target's modifiers.
|
||||||
* @param player Whether to search the player (`true`) or the enemy (`false`); Defaults to `true`
|
* @param isPlayer - Whether to search the player (`true`) or the enemy (`false`) party; default `true`.
|
||||||
* @returns the first modifier that passed the `modifierFilter` function; `undefined` if none passed
|
* @returns - The first modifier that passed the `modifierFilter` function, or `undefined` if none are found.
|
||||||
*/
|
*/
|
||||||
findModifier(modifierFilter: ModifierPredicate, player = true): PersistentModifier | undefined {
|
findModifier(modifierFilter: ModifierPredicate, player = true): PersistentModifier | undefined {
|
||||||
return (player ? this.modifiers : this.enemyModifiers).find(modifierFilter);
|
return (player ? this.modifiers : this.enemyModifiers).find(modifierFilter);
|
||||||
|
@ -281,7 +281,7 @@ export class SpeciesFormChangeItemTrigger extends SpeciesFormChangeTrigger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
canChange(pokemon: Pokemon): boolean {
|
canChange(pokemon: Pokemon): boolean {
|
||||||
return !!globalScene.findModifier(
|
return globalScene.hasModifier(
|
||||||
m =>
|
m =>
|
||||||
m instanceof PokemonFormChangeItemModifier &&
|
m instanceof PokemonFormChangeItemModifier &&
|
||||||
m.pokemonId === pokemon.id &&
|
m.pokemonId === pokemon.id &&
|
||||||
|
@ -36,7 +36,7 @@ export class BerryPhase extends FieldPhase {
|
|||||||
* @param pokemon - The {@linkcode Pokemon} to check
|
* @param pokemon - The {@linkcode Pokemon} to check
|
||||||
*/
|
*/
|
||||||
eatBerries(pokemon: Pokemon): void {
|
eatBerries(pokemon: Pokemon): void {
|
||||||
const hasUsableBerry = !!globalScene.findModifier(
|
const hasUsableBerry = globalScene.hasModifier(
|
||||||
m => m instanceof BerryModifier && m.shouldApply(pokemon),
|
m => m instanceof BerryModifier && m.shouldApply(pokemon),
|
||||||
pokemon.isPlayer(),
|
pokemon.isPlayer(),
|
||||||
);
|
);
|
||||||
|
@ -183,8 +183,8 @@ export default class ModifierSelectUiHandler extends AwaitableUiHandler {
|
|||||||
this.player = args[0];
|
this.player = args[0];
|
||||||
|
|
||||||
const partyHasHeldItem =
|
const partyHasHeldItem =
|
||||||
this.player && !!globalScene.findModifiers(m => m instanceof PokemonHeldItemModifier && m.isTransferable).length;
|
this.player && globalScene.hasModifier(m => m instanceof PokemonHeldItemModifier && m.isTransferable);
|
||||||
const canLockRarities = !!globalScene.findModifier(m => m instanceof LockModifierTiersModifier);
|
const canLockRarities = globalScene.hasModifier(m => m instanceof LockModifierTiersModifier);
|
||||||
|
|
||||||
this.transferButtonContainer.setVisible(false);
|
this.transferButtonContainer.setVisible(false);
|
||||||
this.transferButtonContainer.setAlpha(0);
|
this.transferButtonContainer.setAlpha(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user