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 62 63 64 65 66 67 68 69 70 71 72 | // Test utility types for Black Trigram Korean martial arts game import type { MockedFunction } from "vitest"; import { PlayerState } from "./systems"; import type { PlayerArchetype, TrigramStance } from "./types"; // Mock player state for testing Korean martial arts combat export interface MockPlayerState extends PlayerState { readonly _isMock: true; } // Test combat scenario configuration export interface TestCombatScenario { readonly player1: Partial<PlayerState>; readonly player2: Partial<PlayerState>; readonly scenario: string; readonly expectedOutcome?: string; } // Test archetype configuration for Korean martial arts export interface TestArchetypeConfig { readonly archetype: PlayerArchetype; readonly preferredStances: readonly TrigramStance[]; readonly testDamageMultiplier: number; readonly mockBehavior: "aggressive" | "defensive" | "balanced"; } // Test vital point configuration export interface TestVitalPointConfig { readonly id: string; readonly testAccuracy: number; readonly testDamage: number; readonly mockEffects: readonly string[]; } // Test combat result for assertion export interface TestCombatResult { readonly damage: number; readonly hit: boolean; readonly critical: boolean; readonly vitalPoint: boolean; readonly attacker: PlayerArchetype; readonly defender: PlayerArchetype; } // Test game state for integration testing export interface TestGameState { readonly gamePhase: string; readonly player1: MockPlayerState; readonly player2: MockPlayerState; readonly timeRemaining: number; readonly currentRound: number; } // Mock audio manager for testing - Updated for Vitest export interface MockAudioManager { readonly playMusic: MockedFunction<() => void>; readonly stopMusic: MockedFunction<() => void>; readonly playSFX: MockedFunction<() => void>; readonly playAttackSound: MockedFunction<(damage: number) => void>; readonly playHitSound: MockedFunction<(damage: number) => void>; readonly setVolume: MockedFunction<(volume: number) => void>; readonly isEnabled: boolean; } // Test utilities for Korean martial arts game export interface TestUtils { readonly createMockPlayer: (archetype: PlayerArchetype) => MockPlayerState; readonly createMockCombat: () => TestCombatScenario; readonly mockAudioManager: MockAudioManager; } |