Persisted fields for a melee strike mode (extends StrikeModeBase.Data).

interface Data {
    __kind?: string;
    assocSkillCode: null | string;
    attack: { disabled?: boolean; modifier?: number; spread?: number };
    defense: {
        block: {
            disabled?: boolean;
            modifier?: number;
            successLevelMod?: number;
        };
        counterstrike: {
            disabled?: boolean;
            modifier?: number;
            successLevelMod?: number;
        };
    };
    impactBase: {
        aspect: ImpactAspect;
        die: null
        | number;
        modifier: null | number;
        numDice: number;
    };
    lengthBase: number;
    minParts: number;
    name: string;
    shortcode: string;
    traits: PlainObject;
    type: "melee";
}

Hierarchy (View Summary)

Properties

__kind?: string

Discriminator kind, written on serialization (SohlEntity.toJSON) and read back on revival. Optional as constructor input — it is derived from the concrete class, not supplied by callers.

assocSkillCode: null | string

Shortcode of the skill governing this mode, resolved to a SkillLogic at runtime.

attack: { disabled?: boolean; modifier?: number; spread?: number }

Attack-roll configuration for this mode.

Type declaration

  • Optionaldisabled?: boolean

    When true, the mode cannot be used to attack.

  • Optionalmodifier?: number

    Flat attack mastery-level modifier seeded as the "AtkMod" delta.

  • Optionalspread?: number

    Hit-location scatter for the attack. Melee-only in practice, but declared on the base Data so schema validation accepts it.

defense: {
    block: {
        disabled?: boolean;
        modifier?: number;
        successLevelMod?: number;
    };
    counterstrike: {
        disabled?: boolean;
        modifier?: number;
        successLevelMod?: number;
    };
}

Block and counterstrike defense configuration.

Type declaration

  • block: { disabled?: boolean; modifier?: number; successLevelMod?: number }

    Block (defensive parry) configuration.

    • Optionaldisabled?: boolean

      When true, the mode cannot be used to block.

    • Optionalmodifier?: number

      Flat block mastery-level modifier seeded as the "BlkMod" delta.

    • OptionalsuccessLevelMod?: number

      Adjustment applied to the block test's success level.

  • counterstrike: { disabled?: boolean; modifier?: number; successLevelMod?: number }

    Counterstrike (defend-and-attack) configuration.

    • Optionaldisabled?: boolean

      When true, the mode cannot be used to counterstrike.

    • Optionalmodifier?: number

      Flat counterstrike mastery-level modifier seeded as the "CtrMod" delta.

    • OptionalsuccessLevelMod?: number

      Adjustment applied to the counterstrike test's success level.

impactBase: {
    aspect: ImpactAspect;
    die: null | number;
    modifier: null | number;
    numDice: number;
}

Base impact (damage) definition before runtime modifiers.

Type declaration

  • aspect: ImpactAspect

    Damage aspect (e.g., blunt, edged, piercing) this mode inflicts.

  • die: null | number

    Die size. null when the strike mode's die "does not apply" (e.g., a bow whose impact die comes from the projectile); combination logic then uses whichever source's die is non-null. When specified, an integer ≥ 2.

  • modifier: null | number

    Flat amount added to the rolled impact total. null when this mode's modifier "does not apply" (use the other source's); 0 means an explicit modifier of none.

  • numDice: number

    Number of impact dice contributed by the mode itself. 0 means this mode contributes no dice.

lengthBase: number

Weapon length (feet) seeding MeleeStrikeMode.reach before body reach is added.

minParts: number

Minimum body parts (limbs) required to wield the weapon in this mode.

name: string

Display name of the mode (e.g., "Cut", "Thrust", "Shoot").

shortcode: string

Short code identifying this strike mode within its parent weapon's strikeModes array — unique among that weapon's modes. Blank for a combat technique's single strike mode (which is keyed by its skill).

traits: PlainObject

Arbitrary trait/flag bag (e.g., noAttack, noBlock).

type: "melee"

Discriminator fixing this as a melee mode.