Calculate maximum possible reach for a technique.
Korean: 기술의 최대 가능 도달 거리
Calculates reach at peak animation time (maximum extension). Uses hybrid reach system with reachConfig if provided.
Fighter's physical attributes
Animation type
Current trigram stance
OptionalreachConfig: PhysicalReachConfigOptional technique reach configuration with baseExtension
Maximum effective reach in meters
const calculator = new PhysicalReachCalculator();
// With reachConfig for accurate designed reach
const maxReachWithConfig = calculator.calculateMaxReach(
MUSA_PHYSICAL,
AnimationType.FRONT_KICK,
TrigramStance.GEON,
{ bodyPart: "leg", techniqueType: "kick", baseExtension: 1.05 }
);
// Uses max(1.05, 1.0) = 1.05
// Without reachConfig (backward compatible)
const maxReachLegacy = calculator.calculateMaxReach(
MUSA_PHYSICAL,
AnimationType.FRONT_KICK,
TrigramStance.GEON
);
// Uses animation multiplier only (1.0)
Calculate effective reach for a technique at a specific animation time.
Korean: 특정 애니메이션 시간의 유효 도달 거리 계산
This is the core method that integrates:
Hybrid Reach System: Uses the maximum of:
reachConfig.baseExtension (designer-specified reach)maxReachMultiplier (animation-driven reach)This ensures techniques get at least their designed reach while allowing animations to extend beyond the base if needed.
Body Pivot Mechanics for Kicks: Kicks benefit from whole-body rotation that punches don't utilize:
This accounts for the biomechanics of kicks where the fighter rotates their entire body to extend reach, unlike punches which rely primarily on arm extension.
Fighter's physical attributes
Animation being executed
Current time in animation (seconds)
Current trigram stance
OptionalreachConfig: PhysicalReachConfigOptional technique reach configuration with baseExtension
Physical reach calculation result
const calculator = new PhysicalReachCalculator();
// With reachConfig (uses max of baseExtension and animation multiplier)
const frontKick = calculator.calculateReach(
MUSA_PHYSICAL,
AnimationType.FRONT_KICK,
0.27, // Peak time
TrigramStance.GEON,
{ bodyPart: "leg", techniqueType: "kick", baseExtension: 1.05 }
);
// Uses max(1.05, 1.0) = 1.05 for proper designed reach
// Without reachConfig (uses only animation multiplier - backward compatible)
const legacyKick = calculator.calculateReach(
MUSA_PHYSICAL,
AnimationType.FRONT_KICK,
0.27,
TrigramStance.GEON
);
// Uses animation multiplier (1.0) only
PrivategetPrivateGet limb length for a technique type.
Korean: 기술 유형에 대한 팔다리 길이 가져오기
Fighter's physical attributes
Type of technique
Limb length in centimeters
Determine technique type from animation type.
Public method exposed to avoid duplication across codebase.
Korean: 애니메이션 타입에서 기술 유형 결정
Animation type
Technique type
Physical Reach Calculator.
Korean: 물리적 도달 계산기
Calculates reality-based reach using archetype physical attributes and animation timing.
Korean
물리적도달계산기