Commit graph

42 commits

Author SHA1 Message Date
52b0919d3f feat: improve tractor beam visual with 2-layer glow and pulse animation
Replace the single static rectangle with a 2-layer beam (outer glow +
inner core) and sinusoidal opacity pulse. Add per-frame beam height
tracking to follow boss position. Include 8 unit tests for pure math
functions (beam height calculation, pulse alpha).

Refs: GAL-33
2026-05-06 19:35:16 +02:00
db061820b9 Merge branch 'todo-fix' 2026-05-06 15:12:28 +02:00
a2c85b153a chore: re-apply Linear-style issue IDs to TODO.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 15:12:16 +02:00
9d80626cc6 feat: add scrolling starfield background
Add 150 stars with randomized positions, sizes, speeds, and brightness.
Stars scroll downward with parallax depth effect and wrap around at
screen edges. Also fixes Bevy 0.13 API issues in game_state.rs
(KeyCode::R → KeyR, Input → ButtonInput).
2026-05-06 15:05:32 +02:00
c9188f58f6 chore: add wav files to .gitignore 2026-05-04 22:15:51 +02:00
6dd8559912 chore: add opencode config, replace AGENT.md with AGENTS.md 2026-05-04 22:15:32 +02:00
b04bd3e74b refactor: replace nixify with flake-utils and rust-overlay in flake.nix 2026-05-04 22:15:27 +02:00
3c226b3f78 feat: add restart from game over with R key 2026-05-04 22:15:16 +02:00
e484c09f14 chore: remove unused RestartRestarted component 2026-05-04 22:15:12 +02:00
704a4476f0 fix: remove orphaned duplicate code in cleanup_game_entities 2026-05-04 22:14:58 +02:00
28e4e53da9 feat: add start menu with interactive button
- Add StartMenu as the default game state
- Create StartMenuUI and StartButton components
- Implement menu UI with BGLGA title and Start Game button
- Add button interaction system with hover effects
- Set up proper state transitions from menu to game
- Update TODO.md to mark task as completed

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 09:31:03 +02:00
aee3c9c91b chore: update TODO.md
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-06-27 09:22:36 +02:00
efef8df102 feat: Implement boss tractor beam and player capture
This commit introduces a new mechanic where boss enemies can use a tractor beam to capture the player.

Key changes:
- Bosses can now fire a tractor beam that targets the player.
- If the player is caught in the beam for a certain duration, they are "captured".
- Captured players are carried by the boss as it returns to its formation.
- If the boss is destroyed while carrying a player, the player is freed.
- If the player is captured, they lose a life and respawn.
- Refactored player and enemy systems to handle the new capture logic and states.
- Added GEMINI.md and CLAUDE.md to track assistant configurations.
2025-06-26 09:46:49 +02:00
d27d27bb5a refactor: clean up formatting and improve readability in components and player logic 2025-04-16 08:46:12 +02:00
008f9cc24a feat: add Captured and TractorBeam components, enhance enemy behavior with capture mechanics 2025-04-16 08:41:17 +02:00
1d1b927007 chore: remove commit message instructions file 2025-04-15 12:50:29 +02:00
037924a4f4 feat: add AGENT.md for project setup instructions and remove CLAUDE.md 2025-04-15 12:32:11 +02:00
9aad8dd130 refactor: improve code formatting and readability in components and resources 2025-04-15 12:28:17 +02:00
4727c370d2 feat: add commit message guidelines
- Introduce guidelines for writing commit messages.
- Emphasize the use of Conventional Commit format.
- Include tips for brevity and clarity in descriptions.
2025-04-15 12:26:10 +02:00
4a64e12945 refactor: remove unused imports from multiple files
- Removed `std::time::Duration` import from `components.rs`, `resources.rs`, and `enemy.rs` as it was unnecessary.
- Cleaned up imports in `systems.rs` by removing `FormationState`.
2025-04-15 12:26:01 +02:00
3c92823cb6 chore: add 'result' directory to .gitignore 2025-04-15 12:06:28 +02:00
3520d5122b feat: add TODO list for core gameplay loop and enemy behavior mechanics 2025-04-15 12:06:22 +02:00
54d1fd66d2 chore: remove obsolete .goosehints file 2025-04-15 12:06:09 +02:00
c61a28de29 feat: add cratedocs server configuration to mcp.json 2025-04-15 12:05:18 +02:00
9fa4a14d54 Refactor flake.nix to use LD_LIBRARY_PATH for dependencies.
Replaced direct buildInputs with LD_LIBRARY_PATH configuration to streamline dependency handling. This makes library paths explicitly managed and simplifies runtime linking for the required packages. Updated the devShells configuration accordingly.
2025-04-14 16:44:25 +02:00
908a9c5c86 chore: adapt flake.nix for Linux
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-04-14 16:31:34 +02:00
c525b376b0 enemy formations
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-04-11 10:51:05 +02:00
0b8527b955 split files
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-04-11 10:44:23 +02:00
3dbfb9dac1 iii
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-04-11 10:43:48 +02:00
ef055fe3c5 feat: Add enemy type differentiation and adjust movement logic for Grunt and Boss enemies 2025-04-05 19:21:09 +02:00
e8dceaca27 chore: Add workspace.xml to .gitignore to prevent IDE configuration files from being tracked 2025-04-05 12:54:17 +02:00
6acfee2f95 feat: Enhance enemy attack dive mechanics with swooping movement towards the center 2025-04-05 12:53:14 +02:00
45482f9e11 refactor: Optimize attack dive timer logic and enemy movement checks 2025-04-05 12:48:58 +02:00
66fd1e8b1b feat: Implement enemy attack dive mechanics and shooting behavior 2025-04-05 12:42:16 +02:00
4256b0046c feat: Implement enemy formation behavior and attack dive mechanics 2025-04-05 00:26:22 +02:00
fe5579727f feat: Implement scoring and stage management systems 2025-04-05 00:21:44 +02:00
0f4737fffd feat: Implement Game Over state and UI cleanup 2025-04-05 00:13:56 +02:00
9e5addb59d iii
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-03-29 17:45:15 +01:00
201b4589b3 fixup! feat: Implement player lives, destruction, and respawn
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-03-29 13:49:42 +01:00
10b4648f78 feat: add more hints for the AI
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-03-29 13:46:57 +01:00
557b38af79 feat: Implement player lives, destruction, and respawn
Adds a player lives system with respawning and temporary invincibility.

- Introduces  resource (starts at 3).
- Modifies player-enemy collision to decrement lives and despawn player.
- Implements  for delayed respawn.
- Adds  component with a timer for post-respawn protection, including a blinking visual effect.
- Updates window title dynamically to show remaining lives.

Reverted collision detection from  (due to build errors)
back to using .

Fixed several borrow checker (E0499, E0596) and type mismatch (E0308)
errors encountered during implementation, primarily within the
 system.

Added  conditions for systems like shooting, collision checking,
and respawning.

Updates README.md to reflect the current state and completed TODO item.
2025-03-29 13:45:43 +01:00
0a5382187e feat: initial commit
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2025-03-29 10:58:19 +01:00