Buff item

More or less ephemeral effects, such as spell buffs.

Hierarchy (view full)

Constructors

Properties

Accessors

Methods

Constructors

  • Parameters

    • Rest...args: [data?: ItemDataConstructorData, context?: Context<ActorPF>]

    Returns ItemBuffPF

Properties

_memoryVariables: undefined | null | {}
actions: any

A Collection of ItemActions.

changes: undefined | Collection<any>
links: undefined | Record<string, ItemPF>

An object containing links to other items.

scriptCalls: any
system: Readonly<{
    hasActions: true;
    hasChanges: true;
    hasIdentifier: true;
    isPhysical: boolean;
    subtypeName: false;
}> = ...

A static object holding system-specific metadata applicable to all instances of this Document class.

Type declaration

  • hasActions: true

    Whether this item has actions.

  • hasChanges: true

    Whether this item has changes and change flags.

  • hasIdentifier: true

    Whether this item receives an identifier.

  • isPhysical: boolean

    Whether this item is a physical one, possessing properties like quantity or weight.

  • subtypeName: false

    Subtype name should be used as default name.

Accessors

  • get alignments(): null | string
  • The item's alignment attributes, or null if the item has no alignment attributes

    Returns null | string

  • get allDamageSources(): undefined | ItemChange[]
  • Generic damage source retrieval for default action, includes default conditionals and other item specific modifiers.

    Returns undefined | ItemChange[]

    All relevant changes, or undefined if action was not found.

  • get attackSources(): undefined | object[]
  • Return attack sources for default action.

    Returns undefined | object[]

    Array of value and label pairs for attack bonus sources on the main attack.

  • get hasChanges(): any
  • Whether the item is tangible physical object in reality.

    Returns any

    • You can utilize this with raw data via CONFIG.Item.documentClasses[type]?.isPhysical
  • get isActive(): any
  • Is the item is fully functional.

    This returns composite result of if the item is equipped, has quantity, is not disabled, is not out of charges, etc. and is not representative if the item can be set active or not via setActive.

    Returns any

  • get isPhysical(): any
  • Whether the item is tangible physical object in reality.

    Returns any

    • You can utilize this with raw data via CONFIG.Item.documentClasses[type]?.isPhysical
  • get isProficient(): boolean
  • Is the owning actor proficiency at using this as weapon.

    Returns boolean

    PF1 v10

  • get memoryVariables(): string[]
  • Returns string[]

    The keys of data variables to memorize between updates, for e.g. determining the difference in update.

  • get isPhysical(): boolean
  • Whether the item is tangible physical object in reality.

    Returns boolean

    • You can utilize this with raw data via CONFIG.Item.documentClasses[type]?.isPhysical

Methods

  • Internal

    Test if specified link can be created.

    Parameters

    • type: string

      The type of link.

    • item: Item

      The target item to link to.

    Returns boolean

    Whether a link to the item is possible here.

  • Internal

    Parameters

    • type: string

      The type of link.

    • item: object

      The target item to link to.

    • uuid: string

      The link identifier for the item.

    Returns any[]

    An array to insert into this item's link data.

  • Internal

    Parameters

    • context: object

      Context

    • user: User

      Triggering user

    Returns Promise<void>

  • Prepare data potentially dependent on other items.

    This should be run at in Item.prepareDerivedData() if no actor is present, or in actor's prepareDerivedData after document preparation is done.

    Parameters

    • final: boolean = false

      Is this final call to this?

    Returns void

  • Internal

    Recharges item's uses, if any.

    Parameters

    • options: {
          exact: boolean;
          period: undefined | string;
          rollData: undefined | object;
      } = {}

      Options

      • exact: boolean

        Exact time period only

      • period: undefined | string

        Recharge only if matching this time period

      • rollData: undefined | object

        Roll data

    Returns undefined | object

    • Update data or undefined if no update is needed.
  • Internal

    Recharges item's uses, if any.

    Parameters

    • options: {
          exact: undefined | boolean;
          maximize: undefined | boolean;
          period: undefined | string;
          rollData: undefined | object;
          value: undefined | number;
      } = {}

      Options

      • exact: undefined | boolean

        Match only exact time period

      • maximize: undefined | boolean

        Maximize instead of using recharge formula

      • period: undefined | string

        Recharge only if it matches this time period

      • rollData: undefined | object

        Roll data instance

      • value: undefined | number

        Set charges to specific value

    Returns Promise<undefined | object>

    • Update data or undefined if no update is necessary.
  • Internal

    Transform given data so it becomes valid update data within parent item.

    This can, for example, be used to generate batched update to the real item.

    Parameters

    • data: object

      Update data

    • Optionaloptions: {
          recursive: undefined | boolean;
      } = {}

      Additional options

      • recursive: undefined | boolean

        Create data recursively, meant for the real item document.

    Returns object

    • Transformed update data
    _transformContainerUpdateData({ name: "new name" })
    // => { system: { items: { [itemID]: { name: "new name" } } } }
  • Generic charge addition (or subtraction) function that either adds charges or quantity, based on item data.

    Parameters

    • value: number

      The amount of charges to add.

    Returns Promise<void | ItemBuffPF>

    Updated document or undefined if no update is possible.

  • Sets a boolean flag on this item.

    Parameters

    • flagName: string

      The name/key of the flag to set.

    • context: object = {}

      Update context

    Returns Promise<boolean>

    Whether something was changed.

  • Creates a link to another item.

    Parameters

    • type:
          | "children"
          | "charges"
          | "supplement"
          | "classAssociatons"

      The type of link.

    • item: Item

      The target item to link into this.

    • OptionalextraData: object

      Additional data to store int he link

    Returns boolean

    • Whether a link was created.
  • Display the chat card for an Item as a message in chat

    Parameters

    • OptionalaltChatData: object = {}

      Optional data that will be merged into the chat data object.

    • Optionaloptions: {
          token: undefined | TokenDocument;
      } = {}

      Additional options.

      • token: undefined | TokenDocument

        Relevant token if any.

    Returns Promise<void | ChatMessage>

    Chat message instance if one was created.

  • Executes all script calls on this item of a specified category.

    Parameters

    • category: string

      The category of script calls to call.

    • OptionalextraParams: Record<string, any> = {}

      A dictionary of extra parameters to pass as variables for use in the script.

    • Optionalshared: object = {}

      Shared data object

    Returns Promise<object>

    The shared object between calls which may have been given data.

  • Attack sources for a specific action.

    Parameters

    • actionId: string

      Action ID

    • Optionaloptions: {
          rollData: undefined | object;
      } = {}

      Additional options

      • rollData: undefined | object

        Roll data instance

    Returns undefined | object[]

    Array of value and label pairs for attack bonus sources on the main attack, or undefined if the action is missing.

  • Generates lists of change targets this item can have.

    Parameters

    • target: string

      The target key, as defined in PF1.buffTargets.

    Returns Record<string, string>

    A list of changes

  • Finds, filters and alters changes relevant to a context, and returns the result (as an array)

    Parameters

    • context:
          | "mattack"
          | "nattack"
          | "rattack"
          | "tattack"
          | "wdamage"
          | "mwdamage"
          | "rwdamage"
          | "twdamage"
          | "rdamage"
          | "mdamage"
          | "ndamage"
          | "sdamage"
          | "tdamage" = ...

      The given context.

    Returns ItemChange[]

    • The matching changes.
    • Always returns empty array if no actor is present.
  • Get default charge cost for all actions.

    Parameters

    • Optionaloptions: {
          rollData: undefined | object;
      } = {}

      Additional options

      • rollData: undefined | object

        Roll data instance

    Returns number

    Number for default cost.

  • Get full description.

    Parameters

    • options: {
          body: undefined | boolean;
          chatcard: undefined | boolean;
          data: undefined | object;
          header: undefined | boolean;
          isolated: undefined | boolean;
          rollData: undefined | object;
      } = {}

      Item type dependant options for rendering the description.

      • body: undefined | boolean

        Include main description body if such exists.

      • chatcard: undefined | boolean

        Instruct template to render chat card in mind.

      • data: undefined | object

        Template data for rendering

      • header: undefined | boolean

        Include header if such exists.

      • isolated: undefined | boolean
      • rollData: undefined | object

        Roll data for transforming description

    Returns string

    • Full description.
  • Description Data

    Parameters

    • options: {
          isolated: undefined | boolean;
          rollData: undefined | object;
      } = {}

      Additional options

      • isolated: undefined | boolean

        Include extra data to reflect it not being so easily available in context.

      • rollData: undefined | object

        Roll data instance

    Returns object

    • Description context data
  • Internal

    Duration of the buff in seconds.

    Parameters

    • Optionaloptions: {
          rollData: undefined | object;
      } = {}

      Aditional options

      • rollData: undefined | object

        Roll data

    Returns null | number

    Duration in seconds or null if if it has no duration.

  • Get item links of type

    Parameters

    • type: string

      Link type

    • includeLinkData: boolean = false

      Include link data, return value changes from item array to object array

    • Optionaloptions: {
          _results: undefined | Set<any>;
          recursive: undefined | boolean;
      } = {}

      Additional options

      • _results: undefined | Set<any>

        Internal use only.

      • recursive: undefined | boolean

        Retrieved linked items recursively.

    Returns object[] | Item[]

    • Linked items, or objects with linked items and additional data
  • Retrieve list of linked items for a type, synchronously. Intended mainly for fetching child or charge links quickly.

    Parameters

    • type: string

      Link type, e.g. "children", "charges", or "classAssociations"

    • Optionaloptions: {
          _results: undefined | Set<string>;
          recursive: undefined | boolean;
      } = {}

      Additional options

      • _results: undefined | Set<string>

        Internal use only

      • recursive: undefined | boolean

        Retrieve links recursively.

    Returns object[] | Item[]

    Linked items or their compendium index data

    const childItems = item.getLinkedItemsSync("children");
    
  • Parameters

    • Optionalweapon: boolean = true

      Get proficiency as a weapon. Armor otherwise.

    Returns boolean

    • Whether or not the owner of the item is proficient.
    • If item type does not support proficiency.

    PF1 v10

  • Determines the starting data for an ActiveEffect based off this item.

    Parameters

    • __namedParameters: {} = {}

      Additional options

      Returns Promise<object>

      • Active Effect creation data
    • Per item type chat data.

      Parameters

      • data: ChatData

        A partial of a chat data object that can be modified to add per item type data.

      • labels: Record<string, any>

        The labels for this item.

      • props: string[]

        Additional property strings

      • rollData: object

        A rollData object to be used for checks

      • Optionaloptions: {
            actionId: undefined | string;
            chatcard: undefined | boolean;
        } = {}

        Additional options

        • actionId: undefined | string

          Action this pertains to, if any.

        • chatcard: undefined | boolean

          Is this for a chat card?

      Returns void

    • Recharges item's uses, if any.

      Parameters

      • options: {
            commit: undefined | boolean;
            context: undefined | object;
            exact: undefined | boolean;
            maximize: undefined | boolean;
            period:
                | undefined
                | "round"
                | "minute"
                | "hour"
                | "day"
                | "week"
                | "any";
            rollData: undefined | object;
            value: undefined | number;
        } = {}

        Options

        • commit: undefined | boolean

          Commit update directly. If false, returns the update data instead.

        • context: undefined | object

          Update context

        • exact: undefined | boolean

          Use exact time period. Otherwise "week" for example will also recharge items with "day" period.

        • maximize: undefined | boolean

          Recharge to full regardless of recharge formula.

        • period:
              | undefined
              | "round"
              | "minute"
              | "hour"
              | "day"
              | "week"
              | "any"

          Recharge period. Use "any" to ignore item's configuration.

        • rollData: undefined | object

          Roll data instance to use for formulas.

        • value: undefined | number

          Recharge to specific value, respecting maximum and minimum bounds.

      Returns Promise<undefined | object | ItemBuffPF>

      • Promise for the update, update data object, or undefined (no update needed).
    • Removes a boolean flag from this item.

      Parameters

      • flagName: string

        The name/key of the flag to remove.

      • context: object = {}

        Update context

      Returns Promise<boolean>

      Whether something was changed.

    • Removes a dictionary flag from this item.

      Parameters

      • flagName: string

        The name/key of the flag to remove.

      • context: object = {}

        Update context

      Returns Promise<boolean>

      Whether something was changed.

    • Removes all link references to an item.

      Parameters

      • uuid: string

        The UUID of the item to remove links to.

      • Optionaloptions: {
            commit: undefined | boolean;
        } = {}

        Additional options

        • commit: undefined | boolean

          Commit changes to database. If false, resulting update data is returned instead.

      Returns Promise<undefined | object | Item>

      • Updated document, update data, or undefined
    • Set item's active state.

      Parameters

      • active: any

        Active state

      • context: any

        Optional update context

      Returns Promise<Item>

      • Update promise if item type supports the operation.
      • If item does not support the operation.
    • Sets a dictionary flag value on this item.

      Parameters

      • flagName: string

        The name/key of the flag to set.

      • value: string | number

        The flag's new value.

      • context: object = {}

        Update context

      Returns Promise<boolean>

      Whether something was changed.

    • Use an attack, using SharedActionData

      Parameters

      • options: {
            actionId: undefined | string;
            chatMessage: undefined | boolean;
            cost: undefined | number;
            dice: undefined | string;
            ev: undefined | null | Event;
            options: undefined | UseOptions;
            rollMode: undefined | string;
            skipDialog: undefined | boolean;
            token: undefined | TokenDocument;
        } = {}

        Options

        • actionId: undefined | string

          The ID of the action to use, defaults to the first action

        • chatMessage: undefined | boolean

          Whether to send a chat message for this action

        • cost: undefined | number

          Cost override. Replaces charge cost or slot cost as appropriate.

        • dice: undefined | string

          The base dice to roll for this action

        • ev: undefined | null | Event

          The event that triggered the use, if any

        • options: undefined | UseOptions

          Additional use options.

        • rollMode: undefined | string

          The roll mode to use for the chat message

        • skipDialog: undefined | boolean

          Whether to skip the dialog for this action

        • token: undefined | TokenDocument

          Token this action is for, if any.

      Returns Promise<void | ActionUse | SharedActionData>

      • Action use, shared data, or nothing.
      • On some invalid inputs.
    • Protected

      Adjust temporary item before creation

      Parameters

      • Optionalitem: ItemPF

        Temporary document

      • Optionaldata: object

        Creation data

      • Optionaloverride: boolean = false

        Override values even if defined

      Returns void

    • Internal

      Determine whether a given change set affect senses

      Parameters

      • changes: object

        An object containing changeFlags and changes to be inspected.

      Returns boolean

      • Vision alteration detected
    • Internal

      Chat card actions

      Parameters

      • action: string

        Button action ID

      • options: {
            button: undefined | Element;
            event: undefined | Event;
            item: undefined | ItemPF;
        } = {}

        Additional options

        • button: undefined | Element

          Button element

        • event: undefined | Event

          Triggering event

        • item: undefined | ItemPF

          Item associated with card

      Returns any

      • ???
    • On-Create Operation

      Post-create processing so awaiting the original operation has all secondary updates completed when it returns.

      Parameters

      • documents: Document[]

        Documents

      • operation: any

        Operations and context data

      • user: User

        Triggering user

      Returns Promise<void>

    • On-Delete Operation

      Post-delete processing so awaiting the original operation has all secondary updates completed when it returns.

      Parameters

      • documents: Document[]

        Documents

      • operation: any

        Operations and context data

      • user: User

        Triggering user

      Returns Promise<void>

    • On-Update Operation

      Post-update processing so awaiting the original operation has all secondary updates completed when it returns.

      Parameters

      • documents: Document[]

        Documents

      • operation: any

        Operations and context data

      • user: User

        Triggering user

      Returns Promise<void>

    • Item create dialog.

      Parameters

      • data: object = {}

        Initial form data

      • Optionalcontext: {
            options: undefined | object;
            pack: undefined | null | string;
            parent: undefined | null | Actor;
            types: undefined | string[];
        } = {}

        Additional options.

        • options: undefined | object

          Dialog context options.

        • pack: undefined | null | string

          Pack ID parameter passed to Item.create() options

        • parent: undefined | null | Actor

          Parent parameter passed to Item.create() options

        • types: undefined | string[]

          Item types to limit creation choices to.

      Returns Promise<null | Item>

      Synchronized with Foundry VTT v12.331

    • Override to provide naming by subType potential.

      Parameters

      • context: {
            pack: undefined | null | string;
            parent: undefined | null | Document;
            type: undefined | string;
        } = {}

        Context where the name would be used

        • pack: undefined | null | string

          Pack this would be within

        • parent: undefined | null | Document

          Parent document

        • type: undefined | string

          Type

      Returns string

      Synced with Foundry v12.331