All files / types injury.ts

100% Statements 6/6
100% Branches 2/2
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61                                            24x   24x   24x   24x   24x                                                            
/**
 * Shared Injury Types
 * 
 * **Korean**: 공유 부상 타입
 * 
 * Common injury types and data structures used across the trauma visualization
 * system. Separated from React components to avoid coupling system logic to UI.
 * 
 * @module types/injury
 * @category Types
 * @korean 부상타입
 */
 
import { BodyRegion } from "./common";
 
/**
 * Injury type classification
 * 
 * **Korean**: 부상 유형 분류
 * 
 * @public
 */
export enum InjuryType {
  /** Blunt force trauma */
  BRUISE = "bruise",
  /** Sharp weapon/strike */
  CUT = "cut",
  /** Deep cut with blood trail */
  LACERATION = "laceration",
  /** Bone damage indicator */
  FRACTURE = "fracture",
}
 
/**
 * Individual injury data for visualization
 * 
 * **Korean**: 시각화를 위한 개별 부상 데이터
 * 
 * Used by both the injury tracking system and trauma visualization components.
 * 
 * @public
 */
export interface Injury {
  /** Unique identifier */
  readonly id: string;
  /** Body region affected */
  readonly region: BodyRegion;
  /** Type of injury */
  readonly type: InjuryType;
  /** Position on body [x, y, z] relative to character center */
  readonly position: [number, number, number];
  /** Severity (0.0 to 1.0) */
  readonly severity: number;
  /** Number of hits to same location (for progressive bruising) */
  readonly hitCount: number;
  /** Timestamp when injury was created */
  readonly timestamp: number;
  /** Optional player ID for multi-player scenarios */
  readonly playerId?: string | number;
}