pokerogue/src/utils/modifier-utils.ts
Sirz Benjie 1029afcdbf
[Refactor] Remove circular dependencies (part 4) (#5964)
* Add abilityAttr.is methods

* [WIP] move modifier stuff around

* Untangle circular deps from modifiers

* Move unlockables to own file

* Untangle all circular deps outside of MEs

* Move constants in MEs to their own files

* Re-add missing import to battle.ts

* Add necessary overload for getTag

* Add missing type import in weather.ts

* Init modifier types and pools in loading-scene

* Remove stray commented code

* Apply kev's suggestions from code review

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>

---------

Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-06-11 19:42:04 -07:00

36 lines
1.2 KiB
TypeScript

import { ModifierPoolType } from "#enums/modifier-pool-type";
import {
dailyStarterModifierPool,
enemyBuffModifierPool,
modifierPool,
trainerModifierPool,
wildModifierPool,
} from "#app/modifier/modifier-pools";
import type { ModifierPool, ModifierTypeFunc } from "#app/@types/modifier-types";
import { modifierTypes } from "#app/data/data-lists";
import type { ModifierType } from "#app/modifier/modifier-type";
export function getModifierPoolForType(poolType: ModifierPoolType): ModifierPool {
switch (poolType) {
case ModifierPoolType.PLAYER:
return modifierPool;
case ModifierPoolType.WILD:
return wildModifierPool;
case ModifierPoolType.TRAINER:
return trainerModifierPool;
case ModifierPoolType.ENEMY_BUFF:
return enemyBuffModifierPool;
case ModifierPoolType.DAILY_STARTER:
return dailyStarterModifierPool;
}
}
// TODO: document this
export function getModifierType(modifierTypeFunc: ModifierTypeFunc): ModifierType {
const modifierType = modifierTypeFunc();
if (!modifierType.id) {
modifierType.id = Object.keys(modifierTypes).find(k => modifierTypes[k] === modifierTypeFunc)!; // TODO: is this bang correct?
}
return modifierType;
}