The sohl.entity access surface: the class getters plus the override API.

interface SohlEntitySurface {
    AttackResult: typeof sohl.entity.result.AttackResult;
    BodyLocation: typeof sohl.entity.body.BodyLocation;
    BodyPart: typeof sohl.entity.body.BodyPart;
    BodyStructure: typeof sohl.entity.body.BodyStructure;
    BodyZone: typeof sohl.entity.body.BodyZone;
    CombatModifier: typeof sohl.entity.modifier.CombatModifier;
    CombatResult: typeof sohl.entity.result.CombatResult;
    DefendResult: typeof sohl.entity.result.DefendResult;
    ImpactModifier: typeof sohl.entity.modifier.ImpactModifier;
    ImpactResult: typeof sohl.entity.result.ImpactResult;
    MasteryLevelModifier: typeof sohl.entity.modifier.MasteryLevelModifier;
    MeleeStrikeMode: typeof sohl.entity.strikemode.MeleeStrikeMode;
    MissileStrikeMode: typeof sohl.entity.strikemode.MissileStrikeMode;
    OpposedTestResult: typeof sohl.entity.result.OpposedTestResult;
    SohlAction: typeof sohl.entity.action.SohlAction;
    StrikeModeBase: typeof sohl.entity.strikemode.StrikeModeBase;
    SuccessTestResult: typeof sohl.entity.result.SuccessTestResult;
    TestResult: typeof sohl.entity.result.TestResult;
    ValueDelta: typeof sohl.entity.modifier.ValueDelta;
    ValueModifier: typeof sohl.entity.modifier.ValueModifier;
    base<K extends keyof SohlEntityRegistry>(name: K): SohlEntityRegistry[K];
    register<K extends keyof SohlEntityRegistry>(
        name: K,
        cls: SohlEntityRegistry[K],
    ): void;
}

Hierarchy (View Summary)

Properties

AttackResult: typeof sohl.entity.result.AttackResult

The attacker's side of a combat exchange. See sohl.entity.result.AttackResult.

BodyLocation: typeof sohl.entity.body.BodyLocation

One hit location within a sohl.entity.body.BodyPart. See BodyLocation.

BodyPart: typeof sohl.entity.body.BodyPart

One anatomical division (head, torso, a limb). See sohl.entity.body.BodyPart.

BodyStructure: typeof sohl.entity.body.BodyStructure

Root anatomy: parts, adjacency, and hit-location resolution. See sohl.entity.body.BodyStructure.

BodyZone: typeof sohl.entity.body.BodyZone

One anatomical region (head, arms, torso, legs). See sohl.entity.body.BodyZone.

CombatModifier: typeof sohl.entity.modifier.CombatModifier

Combat-tagged mastery-level modifier (attack/defense tests). See CombatModifier.

CombatResult: typeof sohl.entity.result.CombatResult

Full attack-vs-defense exchange outcome. See CombatResult.

DefendResult: typeof sohl.entity.result.DefendResult

The defender's side of a combat exchange. See DefendResult.

ImpactModifier: typeof sohl.entity.modifier.ImpactModifier

Damage/impact modifier — dice plus aspect. See ImpactModifier.

ImpactResult: typeof sohl.entity.result.ImpactResult

Resolved impact/damage outcome. See ImpactResult.

MasteryLevelModifier: typeof sohl.entity.modifier.MasteryLevelModifier

sohl.entity.modifier.ValueModifier specialized for d100 roll-under mastery tests. See sohl.entity.modifier.MasteryLevelModifier.

MeleeStrikeMode: typeof sohl.entity.strikemode.MeleeStrikeMode

A melee strike mode. See MeleeStrikeMode.

MissileStrikeMode: typeof sohl.entity.strikemode.MissileStrikeMode

A missile (ranged) strike mode. See MissileStrikeMode.

OpposedTestResult: typeof sohl.entity.result.OpposedTestResult

Two success tests compared to determine a winner. See OpposedTestResult.

SohlAction: typeof sohl.entity.action.SohlAction

Executable action — a context-menu entry / chat-card button. See sohl.entity.action.SohlAction.

StrikeModeBase: typeof sohl.entity.strikemode.StrikeModeBase

Abstract base for a weapon/technique's mode of use in combat. See StrikeModeBase.

SuccessTestResult: typeof sohl.entity.result.SuccessTestResult

Single d100 roll-under mastery test outcome. See sohl.entity.result.SuccessTestResult.

TestResult: typeof sohl.entity.result.TestResult

Abstract base for test/combat resolution outcomes. See TestResult.

ValueDelta: typeof sohl.entity.modifier.ValueDelta

One operator-tagged delta applied by a sohl.entity.modifier.ValueModifier. See ValueDelta.

ValueModifier: typeof sohl.entity.modifier.ValueModifier

Auditable base-plus-ordered-deltas value tracker. See sohl.entity.modifier.ValueModifier.

Methods

  • Override the class registered under name. cls must extend (or be) the canonical SoHL base for that name. Every construction routed through sohl.entity.<name> — and every subclass of it — then resolves to cls.

    Call from a module's init/setup hook, before the first construction of that class.

    Type Parameters

    Parameters

    • name: K

      The registered class name to override.

    • cls: SohlEntityRegistry[K]

      The replacement class (a subclass of the canonical base).

    Returns void

    If name is unknown or cls does not extend the canonical base.