The full trace of a Zone-Number + Zone-Die hit determination (BodyStructure.aimZone): the aim, the rolled die, the resulting zone number, and the resolved zone / part / location. When hitZoneNumber owns no zone (it exceeds BodyStructure.maxZoneNumber, or the zone it lands in holds no hittable part) the blow misses — zone and location are undefined and isMiss is true.

interface ZoneAimResult {
    hitZoneNumber: number;
    isMiss: boolean;
    location?: sohl.entity.body.BodyLocation;
    targetZoneNumber: number;
    zone?: sohl.entity.body.BodyZone;
    zoneDie: number;
    zoneDieResult: number;
}

Properties

hitZoneNumber: number

(targetZoneNumber - 1) + zoneDieResult.

isMiss: boolean

Whether the blow missed — no hittable zone owns hitZoneNumber.

The resolved hit location, or undefined on a miss.

targetZoneNumber: number

The zone number aimed at (clamped up to 1).

The zone owning hitZoneNumber, or undefined on a miss.

zoneDie: number

The zone die rolled (clamped up to 1); result is uniform in 1..zoneDie.

zoneDieResult: number

The rolled die value, 1..zoneDie.