feat: add custom gameOver condition to GameOptions

- Add optional gameOver field to GameOptions
- Can be a boolean value or a function that receives scoreManager
- Function receives current score metrics to make dynamic decisions
- Enables flexible game-over conditions beyond just time limit
- Example: gameOver: (sm) => sm.efficiency > 150 for efficiency threshold
- Checked every frame during 'started' and 'has-key' states
This commit is contained in:
2025-11-02 17:01:53 +00:00
parent 156c6db9d2
commit 060c8abb24
3 changed files with 30 additions and 3 deletions
+1
View File
@@ -12,6 +12,7 @@ export type GameOptions = {
rows: number;
cols: number;
timeLimit?: number;
gameOver?: boolean | ((scoreManager: ScoreManager) => boolean);
};
export type KeyLogEntry = { key: string; timestamp: number };