feat: detailed characters + Noita-style mouse aiming
Character detail: - Player: 68 body parts (was 42) — eyes, hair, cape, hat, gloves - Goblin: 56 body parts (was 39) — red eyes, pointed ears, teeth, skin tones - New body labels: eye, hair, cape, tooth, ear - Updated preview_ascii label map for new part types Mouse aiming (Noita-style): - Track mouse position via CursorMoved events - Track left-click via MouseInput events - Left-click shoots projectile toward mouse cursor direction - Player faces left/right based on mouse X relative to player screen X - Keyboard shoot (hjkl) still works as fallback - Player.facing_right field added - WindowInput: mouse_x, mouse_y, mouse_left, shoot_mouse fields - on_mouse_move(), on_mouse_button() handlers - clear_keys() also clears mouse state on focus loss All 171 tests + 14 scenarios pass.
This commit is contained in:
@@ -45,13 +45,15 @@ Terminal (`--mode terminal`):
|
||||
GPU (`--mode ascii` / `--mode graphics`):
|
||||
- `a` / `d` or `←` / `→` — move
|
||||
- `w` / `↑` / `space` — jump
|
||||
- `h` / `j` / `k` / `l` — shoot left / down / up / right
|
||||
- `h` / `j` / `k` / `l` — shoot left / down / up / right (keyboard fallback)
|
||||
- **Left-click** — shoot toward mouse cursor (Noita-style aiming)
|
||||
- **Mouse position** — player faces mouse direction (left/right)
|
||||
- `f` — toggle fireball mode
|
||||
- `>` / `.` — descend when standing on stairs
|
||||
- `e` — use/equip first inventory item
|
||||
- `r` — drop first inventory item
|
||||
- `1`–`0` / `x` — paint material brush
|
||||
- `y` / `u` / `i` / `o` — move camera
|
||||
- `y` / `u` / `i` / `o` — move camera offset
|
||||
- `q` / `esc` — quit
|
||||
|
||||
## Shaders
|
||||
|
||||
Reference in New Issue
Block a user