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

    Class BodyMindSoulEffectSheet

    AppV2 sheet for ActiveEffects with trigger support. Handles triggers via manual array updates (not submitOnChange) because Foundry's ArrayField doesn't support partial dot-notation updates.

    Hierarchy (View Summary)

    Index
    DEFAULT_OPTIONS: {
        actions: {
            addAppendKeyword: (event: any, target: any) => void;
            addCondition: (event: any, target: any) => Promise<void>;
            addModification: any;
            addOutcome: (event: any, target: any) => Promise<void>;
            addSubCondition: (event: any, target: any) => Promise<void>;
            addTrigger: (event: any, target: any) => Promise<void>;
            clearAuraTarget: (event: any, target: any) => void;
            configureAuraLight: (event: any, target: any) => Promise<void>;
            configureCondition: (event: any, target: any) => Promise<void>;
            configureOutcome: (event: any, target: any) => Promise<void>;
            configureSubCondition: (event: any, target: any) => Promise<void>;
            deleteAppendKeyword: (event: any, target: any) => void;
            deleteCondition: (event: any, target: any) => Promise<void>;
            deleteModification: any;
            deleteOutcome: (event: any, target: any) => Promise<void>;
            deleteSubCondition: (event: any, target: any) => Promise<void>;
            deleteTrigger: (event: any, target: any) => Promise<void>;
            editImage: (event: any, target: any) => void;
            importTrigger: (event: any, target: any) => void;
            makeStackable: (event: any, target: any) => Promise<void>;
            toggleConfigPanel: (event: any, target: any) => void;
        };
        classes: string[];
        form: {
            closeOnSubmit: boolean;
            handler: (event: any, form: any, formData: any) => Promise<void>;
            submitOnChange: boolean;
            submitOnClose: boolean;
        };
        tag: string;
        window: { height: number; icon: string; resizable: boolean; width: number };
    } = ...
    PARTS: {
        auraConfig: { scrollable: string[]; template: string };
        details: any;
        drawAppend: { template: string };
        header: any;
        modifications: { 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

    • 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

    • 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>

    • 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

      • event: any
      • target: any

      Returns void

    • Parameters

      • event: any
      • target: any

      Returns 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 void

    • Parameters

      • event: any
      • target: any

      Returns 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>