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

+18 -2
View File
@@ -68,8 +68,12 @@ animations:
frames: [8, 9, 10, 11]
frame_ms: 100
# Placeholder: igual que sam.yaml, reaprofitem `walk_*` fins que
# arribe l'art específic del braç llançant el látigo.
# Placeholder mentre no arribe l'art real (el GIF de morcus encara no té
# frames d'atac específics — reaprofitem `walk_*`). El bloc està declarat
# perquè `Player::animationName` el busque sense fallback i la mecànica
# de l'atac estiga lligada amb morcus tan bon punt s'afegisquen els
# frames; ara mateix visualment el sprite caminarà mentre llança el
# látigo (acceptat per al placeholder).
attack_down:
frames: [0, 1, 2, 3]
frame_ms: 50
@@ -82,6 +86,18 @@ animations:
frames: [8, 9, 10, 11]
frame_ms: 50
# Cooldown post-swing (recovery): igual que a sam.yaml, placeholder als
# frames de `stand_*`. Quan arriben els frames reals només cal canviar
# els índexs ací.
recover_down:
frames: [0]
recover_up:
frames: [4]
recover:
frames: [8]
# Inèrcia només de frenada. L'acceleració és sempre instantània (soltar
# el teclat + prémer una direcció = velocitat plena); en canvi, quan es
# solta la direcció el jugador decau linealment a 0 en `brake_time_ms`.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

+17 -3
View File
@@ -73,17 +73,31 @@ animations:
# (TODO: dibuixar-ne d'específics quan arribe l'art). El sprite del
# látigo viu al `WhipAttack` i es renderitza superposat per z-order.
attack_down:
frames: [0, 1, 2, 3]
frames: [28, 29, 30, 31]
frame_ms: 50
attack_up:
frames: [4, 5, 6, 7]
frames: [24, 25, 26, 27]
frame_ms: 50
attack:
frames: [8, 9, 10, 11]
frames: [20, 21, 22, 23]
frame_ms: 50
# Animacions de cooldown post-swing (recovery): mentre dura
# `whip_cooldown_ms` el jugador continua bloquejat però l'animació ja
# no és la d'atac. Placeholder: reaprofiten els frames de `stand_*`
# (la silueta no canvia respecte d'ells); quan arriben els frames
# reals només cal canviar els índexs ací, sense tocar el codi.
recover_down:
frames: [1]
recover_up:
frames: [5]
recover:
frames: [9]
# Inèrcia només de frenada. L'acceleració és sempre instantània (soltar
# el teclat + prémer una direcció = velocitat plena); en canvi, quan es
# solta la direcció el jugador decau linealment a 0 en `brake_time_ms`.