isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
37 lines (31 loc) • 1.19 kB
text/typescript
import type { PillEffect } from "isaac-typescript-definitions";
import { ItemConfigPillEffectType } from "isaac-typescript-definitions";
import { VANILLA_PILL_EFFECTS } from "../core/constantsVanilla";
import { filterMap } from "../functions/array";
import { PILL_EFFECT_TYPES } from "./pillEffectTypes";
export const PILL_EFFECT_TYPE_TO_PILL_EFFECTS = {
// 0
[ItemConfigPillEffectType.POSITIVE]: getPillEffectsOfType(
ItemConfigPillEffectType.POSITIVE,
),
// 1
[ItemConfigPillEffectType.NEGATIVE]: getPillEffectsOfType(
ItemConfigPillEffectType.NEGATIVE,
),
// 2
[ItemConfigPillEffectType.NEUTRAL]: getPillEffectsOfType(
ItemConfigPillEffectType.NEUTRAL,
),
// 3
[ItemConfigPillEffectType.MODDED]: getPillEffectsOfType(
ItemConfigPillEffectType.MODDED,
),
} as const satisfies Record<ItemConfigPillEffectType, readonly PillEffect[]>;
function getPillEffectsOfType(
matchingPillEffectType: ItemConfigPillEffectType,
): readonly PillEffect[] {
return filterMap(VANILLA_PILL_EFFECTS, (pillEffect) => {
const pillEffectType = PILL_EFFECT_TYPES[pillEffect];
return pillEffectType === matchingPillEffectType ? pillEffect : undefined;
});
}