Reverted changes to HeldItemBase

This commit is contained in:
Wlowscha 2025-09-06 17:21:35 +02:00
parent b7df2e806a
commit 26d32d382b
No known key found for this signature in database
GPG Key ID: 3C8F1AD330565D04
3 changed files with 15 additions and 15 deletions

View File

@ -2,7 +2,7 @@ import type { Ability } from "#abilities/ability";
import type { PokemonSpecies } from "#data/pokemon-species";
import type { HeldItemId } from "#enums/held-item-id";
import type { TrainerItemId } from "#enums/trainer-item-id";
import type { HeldItem } from "#items/held-item";
import type { HeldItemBase } from "#items/held-item";
import type { TrainerItem } from "#items/trainer-item";
import type { Move } from "#moves/move";
@ -11,6 +11,6 @@ export const allMoves: Move[] = [];
export const allSpecies: PokemonSpecies[] = [];
//@ts-expect-error
export const allHeldItems: Record<HeldItemId, HeldItem> = {};
export const allHeldItems: Record<HeldItemId, HeldItemBase> = {};
//@ts-expect-error
export const allTrainerItems: Record<TrainerItemId, TrainerItem> = {};

View File

@ -160,8 +160,9 @@ export function applyHeldItems<T extends HeldItemEffect>(effect: T, params: Held
if (pokemon) {
// TODO: Make this use `getHeldItems` and make `heldItems` array private
for (const item of pokemon.heldItemManager.getHeldItems()) {
if (allHeldItems[item].effects.includes(effect)) {
allHeldItems[item].apply(effect, params);
const heldItem = allHeldItems[item];
if (heldItem.effects.includes(effect)) {
heldItem!.apply(effect, params);
}
}
}

View File

@ -7,13 +7,7 @@ import type { UniqueArray } from "#utils/common";
import i18next from "i18next";
import type { HeldItemEffectParamMap } from "./held-item-parameter";
/** Tuple type containing >1 `HeldItemEffect`s */
export type EffectTuple = Readonly<[HeldItemEffect, ...HeldItemEffect[]]>;
/**
* Abstract class for all non-cosmetic held items (i.e. ones that can have their effects applied).
*/
export abstract class HeldItem<T extends EffectTuple> {
export abstract class HeldItemBase {
public type: HeldItemId;
public readonly maxStackCount: number;
public isTransferable = true;
@ -121,7 +115,15 @@ export abstract class HeldItem<T extends EffectTuple> {
this.isSuppressable = false;
return this;
}
}
/** Tuple type containing >1 `HeldItemEffect`s */
export type EffectTuple = Readonly<[HeldItemEffect, ...HeldItemEffect[]]>;
/**
* Abstract class for all non-cosmetic held items (i.e. ones that can have their effects applied).
*/
export abstract class HeldItem<T extends EffectTuple> extends HeldItemBase {
/**
* A readonly tuple containing all {@linkcode HeldItemEffect | effects} that this class can apply.
* @privateRemarks
@ -172,7 +174,4 @@ export abstract class ConsumableHeldItem<T extends EffectTuple> extends HeldItem
}
/** Abstract class for all `HeldItem`s that can be consumed during battle. */
export abstract class CosmeticHeldItem extends HeldItem<[typeof HeldItemEffect.COSMETIC]> {
effects: readonly [typeof HeldItemEffect.COSMETIC];
apply() {}
}
export abstract class CosmeticHeldItem extends HeldItemBase {}