All files / Hungry-Hippo-Game/src/config gameModes.ts

100% Statements 17/17
100% Branches 0/0
100% Functions 0/0
100% Lines 17/17

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                                  1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
export type GameMode = 'Easy' | 'Medium' | 'Hard';
 
export interface ModeSettings {
  fruitSpeed: number;  
  allowPenalty: boolean;
  allowEffect: boolean;
}
 
/**
 * Maps each `GameMode` to its corresponding game settings.
 * 
 * - `Easy`: fruitSpeed = 100, no penalty.
 * - `Medium`: fruitSpeed = 125, penalty applied.
 * - `Hard`: fruitSpeed = 150, penalty applied.
 * 
 * Can be used to dynamically configure game behavior based on user-selected mode.
 */
export const MODE_CONFIG: Record<GameMode, ModeSettings> = {
  Easy: {
    fruitSpeed: 100,
    allowPenalty: false,
    allowEffect: false,
  },
  Medium: {
    fruitSpeed: 125,
    allowPenalty: true,
    allowEffect: true,
  },
  Hard: {
    fruitSpeed: 150,
    allowPenalty: true,
    allowEffect: true,
  },
};