feat(whip): separa draw_rect i damage_rect; sprites 80×32 / 16×96; feet_y delegat a l'owner; recover_* per al cooldown

This commit is contained in:
JailDesigner committed 2026-04-28 18:28:19 +02:00
1 parent 121558b1fd
commit 8f66961c7b
15 files changed
+353 -127

No files matched your search

+11 -6
View File
@@ -1,5 +1,7 @@
#pragma once
#include <SDL3/SDL.h>
#include <cstddef>
#include <cstdint>
#include <functional>
@@ -57,15 +59,18 @@ struct WorldPos {
// - `owner` : Player que ha llançat l'atac (no rep dany propi).
// - `direction` : Player::Cardinal castat a int (1=N, 2=S, 3=E, 4=W) per
// evitar dependència cíclica al header.
// - `spawn_x/y` : cantonada superior-esquerra de la hitbox màxima
// (sense retallar) en píxels.
// - `range_px` : longitud de la hitbox abans de retallar contra murs i
// sarcòfags. Llegida del YAML del jugador.
// - `owner_box` : pixel_rect del jugador (típicament 16×32 a AEE). El
// WhipAttack en deriva tant la `draw_rect_` (sprite del
// látigo, més gran que el jugador per cobrir wind-up i
// solapament) com la `damage_rect_` (caixa de dany al
// nivell dels peus, retallada per murs/sarcs).
// - `range_px` : longitud nominal de la hitbox de dany abans de
// retallar contra murs i sarcòfags. Llegida del YAML
// del jugador.
struct WhipSpawnPayload {
Player* owner{nullptr};
int direction{0};
float spawn_x{0.0F};
float spawn_y{0.0F};
SDL_FRect owner_box{0.0F, 0.0F, 0.0F, 0.0F};
float range_px{0.0F};
};