Pathfinder 1e for Foundry VTT
    Preparing search index...

    Hierarchy

    • any
      • SpellbookModel
    Index

    Constructors

    Properties

    ability: string
    arcaneSpellFailure: boolean
    autoSpellLevelCalculation: boolean
    autoSpellLevels: undefined | boolean
    baseDCFormula: string
    casterType: undefined | string
    castPerDayAllOffsetFormula: string
    cl: { formula: string; offsetFormula: string }
    class: string
    clNotes: string
    concentration: undefined | {}
    concentrationFormula: string
    concentrationNotes: string
    domainSlotValue: number
    hasCantrips: boolean
    hasProgressionChoices: undefined | boolean
    hybrid: boolean = false
    inUse: boolean
    isSchool: undefined | boolean
    kind: string
    levels: Record<
        string,
        {
            base: number;
            castPerDayOffsetFormula: string;
            preparedOffsetFormula: string;
        },
    >
    maxSpellLevel: undefined | number
    minSpellLevel: undefined | number
    mode: string
    name: string
    noAbilityLimit: boolean
    prepared: boolean = false
    preparedAllOffsetFormula: string
    psychic: boolean
    pure: boolean = false
    range: undefined | SpellRanges
    spellPoints: {
        maxFormula: string;
        restoreFormula: string;
        useSystem: boolean;
        value: number;
    }
    spellSlotAbilityBonusFormula: string
    spontaneous: boolean = false

    Accessors

    • get id(): string

      Book ID

      Returns string

    • set id(value: string): void

      Parameters

      • value: string

      Returns void

    • get isPrepared(): boolean

      Returns boolean

    • get isSemiSpontaneous(): boolean

      Returns boolean

    • get isSpontaneous(): boolean

      Returns boolean

    • get items(): ItemSpellPF[]

      Retrieve associated spell items

      Returns ItemSpellPF[]

    • get label(): string

      Label

      Returns string

    • get spellPreparationMode(): string

      Returns string

    • get spells(): {}

      Returns {}

    • get unlimitedCantrips(): boolean

      Can cantrips be cast unlimited number of times?

      Returns boolean

    • get usesSpellpoints(): boolean

      Returns boolean

    Methods

    • Internal

      Finalize data

      Parameters

      • OptionalrollData: object

        Roll data instance

      • cache: Spellbook

        Pre-calculated data for re-use from _generateSpellbookCache

      Returns undefined

    • Prepare base data

      Called by BaseCharacterModel#prepareBaseData()

      Parameters

      • key: string

        Book ID

      Returns void

    • Returns void

    • Data dependent on other items

      Returns void

    • Returns {
          ability: StringField<
              { initial: "int"; required: boolean },
              AssignmentType<{ initial: "int"; required: boolean }>,
              InitializedType<{ initial: "int"; required: boolean }>,
              InitializedType<{ initial: "int"; required: boolean }>,
          >;
          arcaneSpellFailure: BooleanField<
              { initial: true; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
          >;
          autoSpellLevelCalculation: BooleanField<
              { initial: true; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
          >;
          autoSpellLevels: BooleanField<
              { initial: true; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
          >;
          baseDCFormula: FormulaField;
          casterType: StringField<
              { initial: "high"; required: false },
              AssignmentType<{ initial: "high"; required: false }>,
              InitializedType<{ initial: "high"; required: false }>,
              InitializedType<{ initial: "high"; required: false }>,
          >;
          castPerDayAllOffsetFormula: FormulaField;
          cl: SchemaField<
              { formula: FormulaField; offsetFormula: FormulaField },
              { initial: undefined; required: boolean },
              AssignmentType<
                  { formula: FormulaField; offsetFormula: FormulaField },
                  SimpleMerge<{ initial: undefined; required: boolean }, DefaultOptions>,
              >,
              {
                  formula: InitializedType<DefaultOptions>;
                  offsetFormula: InitializedType<DefaultOptions>;
              },
              {
                  formula: InitializedType<DefaultOptions>;
                  offsetFormula: InitializedType<DefaultOptions>;
              },
          >;
          class: StringField<
              { blank: true; initial: ""; required: false },
              AssignmentType<{ blank: true; initial: ""; required: false }>,
              InitializedType<{ blank: true; initial: ""; required: false }>,
              InitializedType<{ blank: true; initial: ""; required: false }>,
          >;
          clNotes: StringField<
              DefaultOptions,
              AssignmentType<DefaultOptions>,
              InitializedType<DefaultOptions>,
              InitializedType<DefaultOptions>,
          >;
          concentrationFormula: FormulaField;
          concentrationNotes: StringField<
              DefaultOptions,
              AssignmentType<DefaultOptions>,
              InitializedType<DefaultOptions>,
              InitializedType<DefaultOptions>,
          >;
          domainSlotValue: NumberField<
              { initial: 0; integer: true; min: 0 },
              AssignmentType<{ initial: 0; integer: true; min: 0 }>,
              InitializedType<{ initial: 0; integer: true; min: 0 }>,
              InitializedType<{ initial: 0; integer: true; min: 0 }>,
          >;
          hasCantrips: BooleanField<
              { initial: true; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
              >,
          >;
          inUse: BooleanField<
              { initial: false; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
              >,
          >;
          kind: StringField<
              { initial: undefined; required: boolean },
              AssignmentType<{ initial: undefined; required: boolean }>,
              InitializedType<{ initial: undefined; required: boolean }>,
              InitializedType<{ initial: undefined; required: boolean }>,
          >;
          levels: TypedObjectField<
              SchemaField<
                  {
                      base: NumberField<
                          { initial: undefined; integer: true; min: 0; required: boolean },
                          AssignmentType<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                          >,
                          InitializedType<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                          >,
                          InitializedType<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                          >,
                      >;
                      castPerDayOffsetFormula: FormulaField;
                      preparedOffsetFormula: FormulaField;
                      value: NumberField<
                          { integer: true; min: 0; required: false },
                          AssignmentType<{ integer: true; min: 0; required: false }>,
                          InitializedType<{ integer: true; min: 0; required: false }>,
                          InitializedType<{ integer: true; min: 0; required: false }>,
                      >;
                  },
                  DefaultOptions,
                  AssignmentType<
                      {
                          base: NumberField<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                              AssignmentType<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                              >,
                              InitializedType<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                              >,
                              InitializedType<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                              >,
                          >;
                          castPerDayOffsetFormula: FormulaField;
                          preparedOffsetFormula: FormulaField;
                          value: NumberField<
                              { integer: true; min: 0; required: false },
                              AssignmentType<{ integer: true; min: 0; required: false }>,
                              InitializedType<{ integer: true; min: 0; required: false }>,
                              InitializedType<{ integer: true; min: 0; required: false }>,
                          >;
                      },
                      SimpleMerge<DefaultOptions, DefaultOptions>,
                  >,
                  {
                      base: InitializedType<
                          { initial: undefined; integer: true; min: 0; required: boolean },
                      >;
                      castPerDayOffsetFormula: InitializedType<DefaultOptions>;
                      preparedOffsetFormula: InitializedType<DefaultOptions>;
                      value: InitializedType<{ integer: true; min: 0; required: false }>;
                  },
                  {
                      base: InitializedType<
                          { initial: undefined; integer: true; min: 0; required: boolean },
                      >;
                      castPerDayOffsetFormula: InitializedType<DefaultOptions>;
                      preparedOffsetFormula: InitializedType<DefaultOptions>;
                      value: InitializedType<{ integer: true; min: 0; required: false }>;
                  },
              >,
              DefaultOptions,
              AssignmentType<
                  SchemaField<
                      {
                          base: NumberField<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                              AssignmentType<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                              >,
                              InitializedType<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                              >,
                              InitializedType<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                              >,
                          >;
                          castPerDayOffsetFormula: FormulaField;
                          preparedOffsetFormula: FormulaField;
                          value: NumberField<
                              { integer: true; min: 0; required: false },
                              AssignmentType<{ integer: true; min: 0; required: false }>,
                              InitializedType<{ integer: true; min: 0; required: false }>,
                              InitializedType<{ integer: true; min: 0; required: false }>,
                          >;
                      },
                      DefaultOptions,
                      AssignmentType<
                          {
                              base: NumberField<
                                  { initial: undefined; integer: true; min: 0; required: boolean },
                                  AssignmentType<
                                      { initial: undefined; integer: true; min: 0; required: boolean },
                                  >,
                                  InitializedType<
                                      { initial: undefined; integer: true; min: 0; required: boolean },
                                  >,
                                  InitializedType<
                                      { initial: undefined; integer: true; min: 0; required: boolean },
                                  >,
                              >;
                              castPerDayOffsetFormula: FormulaField;
                              preparedOffsetFormula: FormulaField;
                              value: NumberField<
                                  { integer: true; min: 0; required: false },
                                  AssignmentType<{ integer: true; min: 0; required: false }>,
                                  InitializedType<{ integer: true; min: 0; required: false }>,
                                  InitializedType<{ integer: true; min: 0; required: false }>,
                              >;
                          },
                          SimpleMerge<DefaultOptions, DefaultOptions>,
                      >,
                      {
                          base: InitializedType<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                          >;
                          castPerDayOffsetFormula: InitializedType<DefaultOptions>;
                          preparedOffsetFormula: InitializedType<DefaultOptions>;
                          value: InitializedType<{ integer: true; min: 0; required: false }>;
                      },
                      {
                          base: InitializedType<
                              { initial: undefined; integer: true; min: 0; required: boolean },
                          >;
                          castPerDayOffsetFormula: InitializedType<DefaultOptions>;
                          preparedOffsetFormula: InitializedType<DefaultOptions>;
                          value: InitializedType<{ integer: true; min: 0; required: false }>;
                      },
                  >,
                  DefaultOptions,
              >,
              {
                  [key: string]: {
                      base: InitializedType<
                          { initial: undefined; integer: true; min: 0; required: boolean },
                      >;
                      castPerDayOffsetFormula: InitializedType<DefaultOptions>;
                      preparedOffsetFormula: InitializedType<DefaultOptions>;
                      value: InitializedType<{ integer: true; min: 0; required: false }>;
                  };
              },
              {
                  [key: string]: {
                      base: InitializedType<
                          { initial: undefined; integer: true; min: 0; required: boolean },
                      >;
                      castPerDayOffsetFormula: InitializedType<DefaultOptions>;
                      preparedOffsetFormula: InitializedType<DefaultOptions>;
                      value: InitializedType<{ integer: true; min: 0; required: false }>;
                  };
              },
          >;
          limitedCantrips: BooleanField<
              { initial: undefined; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: undefined; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: undefined; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: undefined; required: false }, DefaultOptions>,
              >,
          >;
          mode: StringField<
              { initial: "spontaneous"; required: boolean },
              AssignmentType<{ initial: "spontaneous"; required: boolean }>,
              InitializedType<{ initial: "spontaneous"; required: boolean }>,
              InitializedType<{ initial: "spontaneous"; required: boolean }>,
          >;
          name: StringField<
              { initial: undefined; required: boolean },
              AssignmentType<{ initial: undefined; required: boolean }>,
              InitializedType<{ initial: undefined; required: boolean }>,
              InitializedType<{ initial: undefined; required: boolean }>,
          >;
          noAbilityLimit: BooleanField<
              { initial: undefined; required: boolean },
              AssignmentType<
                  SimpleMerge<{ initial: undefined; required: boolean }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: undefined; required: boolean }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: undefined; required: boolean }, DefaultOptions>,
              >,
          >;
          preparedAllOffsetFormula: FormulaField;
          psychic: BooleanField<
              { initial: false; required: false },
              AssignmentType<
                  SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
              >,
              InitializedType<
                  SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
              >,
          >;
          spellPoints: SchemaField<
              {
                  maxFormula: FormulaField;
                  restoreFormula: FormulaField;
                  useSystem: BooleanField<
                      { initial: false; required: false },
                      AssignmentType<
                          SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                      >,
                      InitializedType<
                          SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                      >,
                      InitializedType<
                          SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                      >,
                  >;
                  value: NumberField<
                      { initial: 0; integer: true; min: 0 },
                      AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                  >;
              },
              { initial: undefined; required: boolean },
              AssignmentType<
                  {
                      maxFormula: FormulaField;
                      restoreFormula: FormulaField;
                      useSystem: BooleanField<
                          { initial: false; required: false },
                          AssignmentType<
                              SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                          >,
                          InitializedType<
                              SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                          >,
                          InitializedType<
                              SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                          >,
                      >;
                      value: NumberField<
                          { initial: 0; integer: true; min: 0 },
                          AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                          InitializedType<{ initial: 0; integer: true; min: 0 }>,
                          InitializedType<{ initial: 0; integer: true; min: 0 }>,
                      >;
                  },
                  SimpleMerge<{ initial: undefined; required: boolean }, DefaultOptions>,
              >,
              {
                  maxFormula: InitializedType<DefaultOptions>;
                  restoreFormula: InitializedType<DefaultOptions>;
                  useSystem: InitializedType<
                      SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                  >;
                  value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
              },
              {
                  maxFormula: InitializedType<DefaultOptions>;
                  restoreFormula: InitializedType<DefaultOptions>;
                  useSystem: InitializedType<
                      SimpleMerge<{ initial: false; required: false }, DefaultOptions>,
                  >;
                  value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
              },
          >;
          spellSlotAbilityBonusFormula: FormulaField;
      }

    • Return spell slot modifier from ability score modifier.

      Parameters

      • mod: number

        The associated ability modifier.

      • level: number

        Spell level.

      Returns number

      Amount of spell levels to increase.

      pf1.models.actor.components.SpellbookModel.getAbilitySlotMod(2, 1); // => 1
      pf1.models.actor.components.SpellbookModel.getAbilitySlotMod(6, 1); // => 2
      pf1.models.actor.components.SpellbookModel.getAbilitySlotMod(6, 7); // => 0
    • Parameters

      • source: any

      Returns any

    • Parameters

      • source: any

      Returns void