A type of RollTerm used to denote and perform an arithmetic operation.

Hierarchy (view full)

Properties

operator: string

The term's operator value.

options: object

An object of additional options which describes and modifies the term.

_evaluated: boolean = false

An internal flag for whether the term has been evaluated

_root: Roll

A reference to the Roll at the root of the evaluation tree.

isIntermediate: boolean = false

Is this term intermediate, and should be evaluated first as part of the simplification process?

PRECEDENCE: Readonly<Record<string, number>> = ...

An object of operators with their precedence values.

OPERATORS: string[] = ...

An array of operators which represent arithmetic operations

REGEXP: RegExp = ...

A regular expression used to match a term of this type

SERIALIZE_ATTRIBUTES: string[] = ...

An array of additional attributes which should be retained when the term is serialized

FLAVOR_REGEXP_STRING: string = "(?:\\[([^\\]]+)\\])"

A regular expression pattern which identifies optional term-level flavor text

FLAVOR_REGEXP: RegExp = ...

A regular expression which identifies term-level flavor text

Accessors

  • get flavor(): string
  • Optional flavor text which modifies and describes this term.

    Returns string

  • get expression(): string
  • A string representation of the formula expression for this RollTerm, prior to evaluation.

    Returns string

  • get total(): string
  • A string or numeric representation of the final output for this term, after evaluation.

    Returns string

  • get formula(): string
  • A string representation of the formula, including optional flavor text.

    Returns string

  • get isDeterministic(): boolean
  • Whether this term is entirely deterministic or contains some randomness.

    Returns boolean

  • get resolver(): RollResolver
  • A reference to the RollResolver app being used to externally resolve this term.

    Returns RollResolver

Methods

  • Evaluate the term, processing its inputs and finalizing its total.

    Parameters

    • Optional options: {
          minimize: boolean;
          maximize: boolean;
          allowStrings: boolean;
      } = {}

      Options which modify how the RollTerm is evaluated

      • minimize: boolean

        Minimize the result, obtaining the smallest possible value.

      • maximize: boolean

        Maximize the result, obtaining the largest possible value.

      • allowStrings: boolean

        If true, string terms will not throw an error when evaluated.

    Returns RollTerm | Promise<RollTerm>

    Returns a Promise if the term is non-deterministic.

  • Serialize the RollTerm to a JSON string which allows it to be saved in the database or embedded in text. This method should return an object suitable for passing to the JSON.stringify function.

    Returns object

  • Protected

    Evaluate the term.

    Parameters

    • Optional options: object = {}

      Options which modify how the RollTerm is evaluated, see RollTerm#evaluate

    Returns RollTerm | Promise<RollTerm>

    Returns a Promise if the term is non-deterministic.

  • Determine if evaluating a given RollTerm with certain evaluation options can be done so deterministically.

    Parameters

    • term: RollTerm

      The term.

    • Optional options: {
          maximize: boolean;
          minimize: boolean;
      } = {}

      Options for evaluating the term.

      • maximize: boolean

        Force the result to be maximized.

      • minimize: boolean

        Force the result to be minimized.

    Returns boolean

  • Construct a RollTerm from a provided data object

    Parameters

    • data: object

      Provided data from an un-serialized term

    Returns RollTerm

    The constructed RollTerm

  • Reconstruct a RollTerm instance from a provided JSON string

    Parameters

    • json: string

      A serialized JSON representation of a DiceTerm

    Returns RollTerm

    A reconstructed RollTerm from the provided JSON

  • Protected

    Define term-specific logic for how a de-serialized data object is restored as a functional RollTerm

    Parameters

    • data: object

      The de-serialized term data

    Returns RollTerm

    The re-constructed RollTerm object