Container item

Bags, backpacks, chests, etc.

Hierarchy (view full)

Constructors

Properties

Accessors

Methods

_addTypeRollData _canCreateItemLink _configure _containedItemUpdate _generateLinkData _getArmorWeightMultiplier _initialize _onCreate _onDelete _onMemorizedUpdate _onUpdate _preCreate _prepareActions _prepareChanges _prepareDependentData _prepareIdentifier _prepareScriptCalls _prepareTraits _preUpdate _preUpdateNumericValueGuard _rechargeActions _rechargeUses _resetChargesOnQuantityUpdate _sizeAdjustedHealth _transformContainerUpdateData _updateInheritedCharges _updateMaxUses addCharges addItemBooleanFlag adjustContained convertCurrency createContainerContent createItemLink deleteContainerContent displayCard executeScriptCalls getAllDamageSources getAllLinkedItems getAttackSources getChangeTargets getChatData getConditionalTargets getContextChanges getDefaultChargeCost getDefaultChargeFormula getDescription getDescriptionData getFlag getItemBooleanFlags getItemDictionaryFlag getItemDictionaryFlags getLabels getLinkedItems getLinkedItemsSync getName getProficiency getRawEffectData getRollData getScriptCalls getTotalCurrency getTypeChatData getValue getWeightMultiplier hasItemBooleanFlag memorizeVariables prepareBaseData prepareDerivedData prepareDurability prepareLinks prepareWeight recharge removeItemBooleanFlag removeItemDictionaryFlag removeItemLink setActive setItemDictionaryFlag update updateContainerContents use _adjustNewItem _createSupplements _hasSizeUpdate _hasVisionUpdate _onChatCardAction _onChatCardButton _onCreateOperation _onDeleteOperation _onUpdateOperation chatListeners createDialog defaultName getDefaultArtwork

Constructors

  • Parameters

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

    Returns ItemContainerPF

Properties

_memoryVariables: undefined | null | {}
actions: any

A Collection of ItemActions.

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

An object containing links to other items.

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

Type declaration

  • hasActions: false
  • hasChanges: true

    Whether this item has changes and change flags.

  • hasIdentifier: true
  • 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 effect(): null | ActiveEffect
  • An active effect associated with this item.

    Returns null | ActiveEffect

    • Most item types don't have associated effect.
  • 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 rootItem(): Item
  • Internal

    Root item.

    Specifically the item at bottom of the container tree.

    Returns Item

  • get subType(): null | string
  • The item's subtype, or null if the item has no subtype

    Returns null | string

  • 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

    Handle conhtained item CRUD

    Parameters

    • itemId: string

      Item ID

    • itemData: null | object

      Item's update data

    • items: object

      Parent's items update object

    • context: object

      Context

    Returns Promise<void>

  • Perform one-time initialization tasks which only occur when the Document is first constructed.

    Returns 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

    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.

    This item type can not be recharged.

  • 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" } } } }
  • 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.

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

    • options: {
          rollData: object;
      } = {}

      Additional options

      • rollData: object

        Roll data

    Returns object

    • Active Effect creation data
  • Returns the currency this item contains

    Parameters

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

      Additional options affecting how the value is returned

      • inLowestDenomination: undefined | boolean

        Whether to return the value in copper, or in gold (default)

    Returns number

    The total amount of currency this item contains, in gold pieces

  • 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

  • Returns the displayed value of an item according to multiple options

    Parameters

    • __namedParameters: {
          inLowestDenomination: undefined | boolean;
          recursive: undefined | boolean;
      } = {}

      Various optional parameters affecting value calculations

      • inLowestDenomination: undefined | boolean
      • recursive: undefined | boolean

    Returns number

    The item's value

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