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

    Class TrainingCombatSystem

    Training-specific combat system for Korean martial arts practice Focuses on technique accuracy, form analysis, and educational feedback

    Hierarchy

    • CombatSystem
      • TrainingCombatSystem
    Index

    Constructors

    Methods

    • Updates player states for recovery (pain dissipation, consciousness recovery, balance recovery). Call this regularly in game loop.

      Parameters

      • player: PlayerState

        Player to update

      • deltaTime: number

        Time elapsed since last update (ms)

      Returns PlayerState

      Updated player state

    • Calculate improvement trend from recent accuracy scores

      Returns "stable" | "improving" | "declining"

    • Cleanup per-player combat state.

      Call this when a player permanently leaves the match or when match-level cleanup is performed to avoid unbounded Map growth.

      Parameters

      • playerId: string

        ID of the player to cleanup

      Returns void

      플레이어데이터정리

    • Dispose of all combat system resources.

      Korean: 전투 시스템 자원 정리

      Cleans up Three.js resources (geometries, raycaster) used by the collision detection system to prevent memory leaks. Should be called when the CombatSystem is destroyed or reinitialized.

      Returns void

      전투시스템자원정리

    • Generate areas for improvement based on scores

      Parameters

      • accuracy: number
      • technique: number
      • form: number

      Returns string[]

    • Get the collision detection system instance.

      Returns CollisionDetection

      CollisionDetection instance

      충돌감지시스템가져오기

    • Get combat statistics

      Parameters

      Returns {
          balancePercent: number;
          healthPercent: number;
          kiPercent: number;
          staminaPercent: number;
      }

    • Get training statistics

      Returns {
          improvementTrend: "stable" | "improving" | "declining";
          overallAccuracy: number;
          recentAccuracy: number[];
          successfulTechniques: number;
          successRate: number;
          totalAttempts: number;
      }

    • Process defensive action and determine animation type.

      Determines the appropriate defensive animation based on:

      • Defender's balance and stamina (defensive power)
      • Attacker's technique power
      • Combat readiness state

      Korean: 방어 행동 처리

      Parameters

      • defender: PlayerState

        Defending player state

      • _attacker: PlayerState
      • attackPower: number

        Power of the incoming attack

      Returns "block_success" | "parry_deflect" | "guard_break"

      Defensive animation type to play (parry_deflect, block_success, or guard_break)

      const animType = combatSystem.processDefensiveAction(
      defender,
      attacker,
      technique.damage
      );
      // Returns: 'parry_deflect', 'block_success', or 'guard_break'

      방어행동처리

    • Fix: Update resolveAttack to match interface signature and add animation-aware hit detection

      Korean: 공격 해결 (애니메이션 인식)

      Integrates animation timing and physical reach calculation for reality-based hit detection. Hits only register when:

      1. Animation is in hit window (extension phase)
      2. Attacker is within effective reach based on limb length and animation
      3. Existing accuracy and stance checks pass

      Parameters

      • attacker: PlayerState

        Attacking player state

      • defender: PlayerState

        Defending player state

      • technique: KoreanTechnique

        Technique being executed

      • OptionaltargetedVitalPointId: string

        Optional specific vital point target

      • OptionalanimationContext: { animationType: AnimationType; currentTime: number }

        Optional animation timing context for reality-based hit detection

      Returns CombatResult

      Combat result with hit/miss and damage information

    Properties

    accuracyHistory: number[] = []
    successfulTechniques: number = 0
    techniqueAttempts: number = 0
    trainingDummy: PlayerState
    trigramSystem: TrigramSystem