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

interface Data {
    __kind?: string;
    assocSkillCode: null | string;
    attack: { disabled?: boolean; modifier?: number; spread?: number };
    baseRangeBase: number;
    drawBase: number;
    impactBase: {
        aspect: ImpactAspect;
        die: null | number;
        modifier: null | number;
        numDice: number;
    };
    maxVolleyMult: number;
    minParts: number;
    name: string;
    projectileType: string;
    shortcode: string;
    traits: PlainObject;
    type: "missile";
}

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.

baseRangeBase: number

Base range (feet) seeding MissileStrikeMode.baseRange before modifiers.

drawBase: number

Base draw/reload time seeding MissileStrikeMode.draw before modifiers.

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.

maxVolleyMult: number

Maximum volley multiplier permitted when firing rapidly.

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").

projectileType: string

Ammunition type consumed, or "none" when the weapon itself is thrown.

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: "missile"

Discriminator fixing this as a missile mode.