The result of computing an impact — a rolled quantum of damage to be applied to a body, independent of what caused it.

ImpactResult is deliberately source-agnostic: a melee/missile hit, a fall, a spell, a trap, etc. all produce an ImpactResult, which then feeds the injury-resolution stage (armor → effective impact → injury level). It is not a success test — there is no roll-under-mastery outcome here; it simply carries the rolled impact dice, the damage aspect, where the blow is aimed (if anywhere), and a label for its source.

In automated combat it is produced when a blow lands (see CombatResult); the same class is reused for any non-combat damage.

<source>ImpactResult (raw impact: roll, total, aspect, aim) → injury resolution (armor → effective impact → injury level) → injury.

The total here is pre-armor; whether it actually wounds is decided downstream, where armor may reduce the effective impact to zero.

Hierarchy (View Summary)

Constructors

Properties

The impact (damage) formula used: dice + modifier + aspect.

label: string

A label for what caused the impact (weapon name, "fall", "spell", …).

The rolled impact dice.

Accessors

  • get description(): string
  • Human-readable description shown on the result's chat card.

    Returns string

  • get kind(): string
  • The serialization discriminator for this instance — the concrete class's static Kind. Written into the JSON by toJSON under the kind key and read back by sohl.utils.defaultFromJSON to select the constructor. Derived from the class, never stored per-instance.

    Returns string

  • get name(): string
  • Internal identifier for this result (distinct from the display title).

    Returns string

  • get parent(): SohlLogic<any>
  • The Logic that owns this entity. Always present (the constructor rejects a missing parent) and transient — it is not serialized and is re-supplied when the entity is revived or cloned.

    Returns SohlLogic<any>

Methods

  • Resolve the test outcome. The base implementation is a no-op that returns true; subclasses override it to roll dice, compute success levels, and apply mishaps.

    Returns Promise<boolean>

    true if the result should be displayed (e.g. posted to chat); false if the test was cancelled or is not allowed to proceed.