Commit Graph
37 Commits
Author SHA1 Message Date
pastilhas 7800acaf56 feat: add timeLimit option and time-based game-over logic
- Add timeLimit to GameOptions (default 600 seconds)
- Game-over triggers when time limit exceeded
- Remove all efficiency-based game-over logic
- Pass timeLimit through to useScore
- Check time limit during started and has-key states
2025-10-22 22:07:59 +01:00
pastilhas 7ccf7cdd55 refactor: simplify scoring to remove efficiency-based complexity
- Remove efficiency calculation and game-over at 150%
- Remove optimal steps tracking and complex logic timing
- Simplify to time + keystrokes only scoring
- New formula: score = min(1000, (1000 - time_penalty - keystroke_penalty) × size_multiplier)
  - time_penalty = seconds / 10
  - keystroke_penalty = keystrokes / 2
  - size_multiplier = max(1.0, (rows × cols) / 500)
- Maze size-based multiplier rewards larger mazes
- Remove optimalSteps and efficiency from ScoreManager type
- Pass rows and cols to useScore for size calculation
- Align with vim-sudoku's simplified scoring approach
2025-10-22 22:03:44 +01:00
pastilhas 75ff8bc76e 2.0.0 2025-10-19 16:16:31 +01:00
pastilhas f1d59692be 1.3.0 2025-10-19 16:16:23 +01:00
pastilhas f5150b8324 updated README 2025-10-19 16:13:50 +01:00
pastilhas a69b7bbb5f organized types 2025-10-19 16:11:38 +01:00
pastilhas 252027dab2 no more ReturnType<typeof> 2025-10-19 15:55:52 +01:00
pastilhas a6f066d738 scoreManager implemented flawlessly 2025-10-19 15:29:01 +01:00
pastilhas 07f218f4dd 0 works both ways now 2025-10-19 15:09:41 +01:00
pastilhas 47aea08d49 proper anchor invalidation 2025-10-19 14:43:18 +01:00
pastilhas aa42066f57 anchor moves all work except zero. <dot> also working 2025-10-19 13:51:57 +01:00
pastilhas b6f5d7ae9f player moving, hjkl and counts... anchors not working yet 2025-10-19 13:32:01 +01:00
pastilhas 70a8167fb0 refactor: implement clean architecture with separation of concerns
- Add useMazeNavigation for pure maze geometry and path validation
- Add useVimMotions for pure Vim-style input parsing
- Add useAnimation for pure movement animation system
- Refactor useCursor to use specialized hooks with cleaner interface
- Refactor useHero to pure game logic without DOM manipulation
- Refactor useHeroRender to pure visual presentation layer
- Fix dual position system - hero position now authoritative
- Replace global events with callback props and return values
- Implement state-driven rendering instead of direct DOM queries
- Update GameManager interface with new HeroManager and HeroRenderer
- Maintain backward compatibility with legacy Cursor type
- Update UNIFIED_API.md with new architecture and interfaces
2025-10-19 13:27:35 +01:00
pastilhas 2c7816306c fix: rename GameStatus 'hasKey' to 'has-key'
- Update GameStatus type to use kebab-case convention
- Change all occurrences in useHero.ts
- Update UNIFIED_API.md documentation
- Maintains consistency with other status values
2025-10-19 13:05:35 +01:00
pastilhas 7c36f9dc14 refactor: integrate key management into cursor module
- Move useKeyBindings functionality into useCursor as useGameKeys
- Flatten GameManager interface using intersection types
- Rename clearLog/getLog to clearKeyLog/getKeyLog for clarity
- Remove separate useKeyBindings module and exports
- Update all documentation to reflect new architecture
- Maintain backward compatibility for platform hooks
2025-10-19 12:56:35 +01:00
pastilhas 81489557c3 player stopped moving 2025-10-19 03:39:37 +01:00
pastilhas ec954ccbb4 simplification 2025-10-19 03:34:43 +01:00
pastilhas 970bf22a6a no useCallbacks or useMemos 2025-10-19 03:28:27 +01:00
pastilhas 544581401b player moving 2025-10-19 03:07:52 +01:00
pastilhas 6108640267 useGame=>useCursor=>useHero=>useHeroRender 2025-10-19 03:01:22 +01:00
pastilhas 7e9058b2c9 proper hero death / respawn 2025-10-19 02:43:32 +01:00
pastilhas ef635f6112 proper hero renderer and positioning 2025-10-19 02:39:18 +01:00
pastilhas 310355104a useHeroRender 2025-10-19 02:30:50 +01:00
pastilhas f302c67778 e to ev 2025-10-19 02:06:59 +01:00
pastilhas e253a6b51d start and quit game working 2025-10-19 02:00:22 +01:00
pastilhas 4db86e1cfe working on unified API and major refactoring 2025-10-19 01:48:20 +01:00
pastilhas 8f62c6c2b5 working on unified API and major refactoring 2025-10-19 01:14:59 +01:00
pastilhas ee58ab25fb working on refactor 2025-10-17 03:07:07 +01:00
pastilhas acd4ec2053 1.2.1 2025-10-16 15:46:43 +01:00
pastilhas ea1a0c7343 importing styles from here 2025-10-16 15:46:35 +01:00
pastilhas f109b05f3e 1.1.0 2025-10-15 19:36:22 +01:00
pastilhas bdbe7b6914 css now theme aware 2025-10-15 19:35:43 +01:00
pastilhas 498e0adfb9 1.0.1 2025-10-14 13:46:07 +01:00
pastilhas 8f9bb1b51a github info 2025-10-14 13:46:02 +01:00
Pastilhas 00473f00d1 Update README.md 2025-10-14 13:45:25 +01:00
Pastilhas 9d74e5a455 Update README.md 2025-10-14 13:43:17 +01:00
pastilhas c8eb84ce7e first 2025-10-14 13:33:51 +01:00