Black Trigram (흑괘) - Korean Martial Arts Combat Simulator API - v0.7.0
    Preparing search index...

    Class KnockbackPhysics

    Knockback Physics Engine.

    Korean: 밀침 물리 엔진

    Calculates realistic knockback displacement based on attack force, stance resistance, and balance state. Integrates with BalanceSystem for stumbling and falling mechanics.

    const physics = new KnockbackPhysics();

    // Calculate knockback from heavy strike
    const config: KnockbackConfig = {
    force: 800, // 80 damage
    direction: new THREE.Vector3(1, 0, 0).normalize(),
    duration: 0.8,
    balanceState: { current: 35, max: 100 }, // Low balance
    currentStance: TrigramStance.LI, // Fire stance (low resistance)
    };

    const result = physics.calculateKnockback(config, 80);
    // Result: 2.5m base * 1.3 (Fire penalty) * 1.5 (low balance) = ~4.9m
    // shouldFall: false (balance > 20%)
    // recoveryWindow: 1.05s (0.7s * 1.5 for low balance)

    밀침물리

    Index

    Constructors

    Methods

    • Applies knockback force to player position over time.

      Korean: 밀침 힘 적용 (Apply Knockback Force)

      Uses smooth ease-out cubic curve for realistic knockback feel:

      • Fast initial displacement (impact)
      • Gradual deceleration (friction/resistance)
      • Smooth stop at final position

      Parameters

      • playerPosition: Vector3

        Current player position

      • result: KnockbackResult

        Knockback result with displacement

      • _deltaTime: number
      • progress: number

        Knockback progress (0 to 1)

      Returns Vector3

      New player position

      // In game loop (60fps)
      const newPosition = physics.applyKnockbackForce(
      playerPosition,
      knockbackResult,
      deltaTime,
      elapsedTime / knockbackResult.duration
      );

      // Progress 0.0: At original position
      // Progress 0.5: ~88% of total displacement (ease-out)
      // Progress 1.0: At final position

      밀침힘적용

    • Calculates knockback displacement and effects.

      Korean: 밀침 계산 (Calculate Knockback)

      Determines knockback distance, duration, and fall state based on:

      1. Base knockback from damage amount
      2. Stance resistance modifier (8 trigram effects)
      3. Balance state modifier (stumbling/falling)
      4. Recovery window (vulnerable state after)

      Parameters

      • config: KnockbackConfig

        Knockback configuration with force and state

      • attackDamage: number

        Damage dealt by attack (0-100+)

      Returns KnockbackResult

      Knockback result with displacement and timing

      // Light strike on stable player
      const light = physics.calculateKnockback({
      force: 300,
      direction: attackVector,
      duration: 0.3,
      balanceState: { current: 85, max: 100 },
      currentStance: TrigramStance.GEON,
      }, 30);
      // Result: ~0.3m knockback (0.5m * 0.9 Geon * 0.7 high balance)

      // Critical strike on low-balance player
      const critical = physics.calculateKnockback({
      force: 1200,
      direction: attackVector,
      duration: 1.2,
      balanceState: { current: 15, max: 100 },
      currentStance: TrigramStance.SON,
      }, 110);
      // Result: ~9.6m knockback, shouldFall: true, 3.0s recovery

      밀침계산

    • Private

      Calculates knockback animation duration.

      Korean: 밀침 지속시간 계산 (Calculate Knockback Duration)

      Linear relationship between distance and duration:

      • 0.5m = 0.3s (light)
      • 1.2m = 0.48s
      • 2.5m = 0.86s
      • 4.0m = 1.2s (critical)

      Parameters

      • distance: number

        Knockback distance in meters

      Returns number

      Duration in seconds

      밀침지속시간계산

    • Private

      Calculates recovery window (vulnerability duration).

      Korean: 회복 대기시간 계산 (Calculate Recovery Window)

      Recovery windows by damage:

      • Light (<40): 0.2s vulnerability
      • Medium (40-70): 0.4s vulnerability
      • Heavy (70-100): 0.7s vulnerability
      • Critical (100+): 1.5s vulnerability + grounded

      Low balance increases vulnerability by 50%.

      Parameters

      • damage: number

        Attack damage amount

      • balanceState: BalanceState

        Current balance state

      Returns number

      Vulnerability duration in seconds

      회복대기시간계산

    • Private

      Gets balance modifier for knockback distance.

      Korean: 균형 배율 (Balance Modifier)

      Balance thresholds:

      • High balance (>70%): 0.70x (30% reduction)
      • Medium balance (40-70%): 1.00x (normal)
      • Low balance (20-40%): 1.50x (50% increase, stumbling)
      • Critical balance (<20%): 2.00x (100% increase, falling)

      Parameters

      Returns number

      Balance multiplier (0.7 to 2.0)

      균형배율

    • Private

      Gets base knockback distance from damage amount.

      Korean: 기본 밀침 거리 (Base Knockback Distance)

      Damage thresholds:

      • Light (20-40): 0.5m knockback, 0.3s duration
      • Medium (40-70): 1.2m knockback, 0.5s duration
      • Heavy (70-100): 2.5m knockback, 0.8s duration
      • Critical (100+): 4.0m knockback, 1.2s duration + fall

      Parameters

      • damage: number

        Attack damage amount

      Returns number

      Base knockback distance in meters

      기본밀침거리

    • Gets bilingual Korean-English name for recovery state.

      Korean: 회복 상태 이름 (Recovery State Name)

      Returns { english: string; korean: string }

      Korean and English state names

      회복상태이름

    • Private

      Gets stance resistance modifier for knockback.

      Korean: 자세 저항 배율 (Stance Resistance Modifier)

      Trigram stance resistance modifiers:

      • ☶ 간 (Gan/Mountain): +40% resistance (defensive mastery)
      • ☷ 곤 (Gon/Earth): +30% resistance (grounded techniques)
      • ☰ 건 (Geon/Heaven): +10% resistance (balanced force)
      • ☵ 감 (Gam/Water): 0% (neutral, adaptive)
      • ☱ 태 (Tae/Lake): 0% (neutral, fluid)
      • ☳ 진 (Jin/Thunder): -10% resistance (explosive power)
      • ☴ 손 (Son/Wind): -20% resistance (fluid, mobile)
      • ☲ 리 (Li/Fire): -30% resistance (aggressive, exposed)

      Parameters

      Returns number

      Resistance modifier (-0.3 to +0.4)

      자세저항배율

    • Gets bilingual Korean-English name for stumbling state.

      Korean: 휘청거림 상태 이름 (Stumbling State Name)

      Returns { english: string; korean: string }

      Korean and English state names

      휘청거림상태이름

    • Checks if player is currently in knockback state.

      Korean: 밀침 상태 확인 (Check Knockback State)

      Parameters

      • elapsedTime: number

        Time elapsed since knockback started

      • duration: number

        Total knockback duration

      Returns boolean

      True if still in knockback animation

      밀침상태확인

    • Checks if player is in recovery window (vulnerable state).

      Korean: 회복 대기 확인 (Check Recovery Window)

      Parameters

      • elapsedTime: number

        Time elapsed since knockback ended

      • recoveryWindow: number

        Total recovery window duration

      Returns boolean

      True if in vulnerable recovery state

      회복대기확인

    • Gets bilingual Korean-English name for knockback state.

      Korean: 밀침 상태 이름 (Knockback State Name)

      Parameters

      • shouldFall: boolean

        Whether knockback causes fall

      Returns { english: string; korean: string }

      Korean and English state names

      밀침상태이름