Body, Mind & Soul — API Reference
    Preparing search index...

    Class BodyMindSoulStackableEffectSheet

    Sheet for the "stackable" ActiveEffect subtype. Reuses the base effect sheet's tabs/parts/handlers and adds a "Stages" tab for stack-count controls and per-stage content (threshold, name, description, drawAppend, modifications).

    Hierarchy (View Summary)

    Index
    DEFAULT_OPTIONS: {
        actions: {
            addStage: (event: any, target: any) => Promise<void>;
            addStageCondition: (event: any, target: any) => Promise<void>;
            addStageModification: (event: any, target: any) => Promise<void>;
            addStageOutcome: (event: any, target: any) => Promise<void>;
            addStageTrigger: (event: any, target: any) => Promise<void>;
            configureStageCondition: (event: any, target: any) => Promise<void>;
            configureStageOutcome: (event: any, target: any) => Promise<void>;
            decrementStack: (event: any, target: any) => Promise<void>;
            deleteStage: (event: any, target: any) => Promise<void>;
            deleteStageCondition: (event: any, target: any) => Promise<void>;
            deleteStageModification: (event: any, target: any) => Promise<void>;
            deleteStageOutcome: (event: any, target: any) => Promise<void>;
            deleteStageTrigger: (event: any, target: any) => Promise<void>;
            importStageTrigger: (event: any, target: any) => void;
            incrementStack: (event: any, target: any) => Promise<void>;
            toggleStagePanel: (event: any, target: any) => Promise<void>;
        };
    } = ...
    PARTS: {
        auraConfig: { scrollable: string[]; template: string };
        details: any;
        drawAppend: { template: string };
        header: any;
        modifications: { scrollable: string[]; template: string };
        stages: { scrollable: string[]; template: string };
        tabs: { template: string };
        triggers: { scrollable: string[]; template: string };
    } = ...
    TABS: {
        primary: {
            initial: string;
            labelPrefix: string;
            tabs: { icon: string; id: string; tooltip: string }[];
        };
    } = ...
    TEMPLATE_ROOT: string = "systems/body-mind-and-soul/templates/effect"
    • Mirror of the modification field combobox for appendKeywords rows. Selecting an option writes the rule's field via partial update; free-typed values are caught by the parent change listener.

      Parameters

      • combobox: any
      • keywordOptions: any

      Returns void

    • Parameters

      • partId: any
      • htmlElement: any
      • options: any

      Returns void

    • Variant of the mixin's combobox attacher that writes back via the stage-aware update path instead of system.modifications.

      Parameters

      • combobox: any
      • fieldOptions: any

      Returns void

    • Wire up:

      • per-stage modification combobox + filter (reused from the mixin)
      • per-stage modification field/operation/value/label edits (stage-aware path)
      • stage threshold renames (delete old key, create new key with same payload)
      • stage name/description/drawAppend edits

      Parameters

      • htmlElement: any

      Returns void

    • Build the keyword option list — one entry per keyword Item in the world, { key, label } where key is system.key (the canonical short identifier) and label is the item name.

      Returns any

    • Override the mixin's _filterOperationSelect for stage modification rows. Filters the DOM select exactly as the mixin does, but does NOT fire a document.update to system.modifications — stage callers write via _writeStageMods.

      Parameters

      • row: any
      • fieldValue: any

      Returns any

    • Parameters

      • threshold: any

      Returns any

    • Mutate a single field on a stage trigger and write back the full triggers array. Mirrors the swing-trigger change handler's switch but routes through the system.stages..triggers path.

      Parameters

      • threshold: any
      • field: any
      • target: any

      Returns Promise<void>

    • Parameters

      • options: any

      Returns Promise<any>

    • Parameters

      • partId: any
      • context: any
      • options: any

      Returns Promise<any>

    • Build template context data for the triggers tab.

      Parameters

      • context: any

      Returns Promise<void>

    • Parameters

      • oldKey: any
      • newKey: any

      Returns Promise<any>

    • Add a visible "Make Stackable" header-bar button (next to the close button) on base-type AEs. Mirrors the pattern actor-sheet.mjs uses for Rest / Apply Damage / Apply Restore — direct DOM injection into the window controls strip rather than the auto-generated kebab submenu.

      Parameters

      • options: any

      Returns Promise<any>

    • Parameters

      • threshold: any
      • mods: any

      Returns Promise<any>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Open Foundry's native AmbientLightConfig sheet (full Light tab UI) on a non-embedded AmbientLightDocument seeded with the AE's auraLightConfig. On submit, write the edited config back to system.auraLightConfig instead of trying to persist the temp light document.

      Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns void

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Convert this AE from "base" to "stackable". Foundry treats Document type as effectively immutable post-create, so we copy → delete → recreate with the new type. Stack-specific fields default in via their schema initials. The new AE gets a new _id (callers should re-target if they were holding a UUID).

      Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Process form submission — handles simple fields and changes array. Trigger fields are handled by change listeners and action handlers.

      Parameters

      • event: any
      • form: any
      • formData: any

      Returns Promise<void>

    • Toggle a stage row's sub-panel open/closed (mirrors the swing-row pattern). Re-clicking the same panel closes it; clicking a different panel switches.

      Parameters

      • event: any
      • target: any

      Returns Promise<void>