JailDesigner
5b90a9a767
tweak(hud): jugador inactiu = marcador apagat (tot atenuat, no en blanc)
2026-05-29 21:11:53 +02:00
JailDesigner
5ba562178b
tweak(hud): el bloc d'un jugador inactiu es deixa apagat (sense dibuixar, reservant l'ample)
2026-05-29 21:06:29 +02:00
JailDesigner
55b37ba594
tweak(hud): alinea verticalment els slots de vides amb la línia del marcador (centre del bbox, no el declarat)
2026-05-29 21:00:21 +02:00
JailDesigner
20825c8138
tweak(hud): puja una mica l'alçada dels slots de vides (factor d'ajust sobre el glif)
2026-05-29 20:56:37 +02:00
JailDesigner
9235e684e8
tweak(hud): redueix els slots de vides a l'alçada real del glif i els pinta sense glow
2026-05-29 20:52:17 +02:00
JailDesigner
56065995fd
tweak(hud): fila del marcador centrada amb posicions fixes (sense justificar a les vores)
2026-05-29 20:44:37 +02:00
JailDesigner
17e9206d26
tweak(hud): vides com a slots fixos (NUM_SLOTS = MAX_VIDES-1) que s'encenen/atenuen
2026-05-29 20:43:26 +02:00
JailDesigner
3bc87ad652
tweak(hud): l'últim dígit de la puntuació sempre encès (puntuació 0 no apaga el marcador)
2026-05-29 20:41:05 +02:00
JailDesigner
0abd661905
tweak(hud): vides com a icones de la nau en miniatura en lloc d'un número
2026-05-29 20:14:32 +02:00
JailDesigner
a808226481
tweak(hud): zeros de farciment de la puntuació atenuats i etiqueta NIVELL en verd atenuat
2026-05-29 20:11:37 +02:00
JailDesigner
317e2a3fd9
tweak(hud): marcador en tres blocs ancorats (P1 esquerra, P2 dreta, nivell centrat) amb color per jugador
2026-05-29 20:09:28 +02:00
JailDesigner
455b7a6893
feat(demo): demos a 1 i 2 jugadors, esquiva de bales enemigues i vides infinites
2026-05-28 13:14:19 +02:00
JailDesigner
92f76d091d
fix(col·lisions): les bales d'enemic deixen de comptar com a foc amic (out-of-bounds a lives_per_player) i maten d'un toc
2026-05-28 13:13:36 +02:00
JailDesigner
c1956e0028
feat(demo): attract mode amb pilot IA, escenaris curats i música contínua del títol
2026-05-28 12:01:12 +02:00
JailDesigner
71ed9dc24f
feat(hud): paleta per segments (P1 blanc, vides ambre, nivell verd, P2 rosa)
2026-05-26 19:17:22 +02:00
JailDesigner
86775d4642
refactor(audio): renombrar hit.wav a bullet_zap.wav (desintegració de bala, no HURT d'enemic)
2026-05-26 19:05:43 +02:00
JailDesigner
b936f410ce
feat(audio): so enemy_hit per a debris_partial (impacte parcial a enemic amb HP>1)
2026-05-26 19:03:19 +02:00
JailDesigner
ddcd2076a1
refactor(audio): renombrar explosion/explosion2 a enemy_explosion/player_explosion
2026-05-26 18:57:26 +02:00
JailDesigner
885caa6bc3
feat(orb): contra-atac amb bullet_double dirigida al jugador en rebre impacte
2026-05-26 18:53:34 +02:00
JailDesigner
164f58c883
refactor(enemies): renombrar big_pentagon a orb i enemy_big_orb a enemy_orb
2026-05-26 18:09:29 +02:00
JailDesigner
9e745dc3fc
tune(enemy): trossos parcials i firework petit en color wounded
2026-05-25 22:47:31 +02:00
JailDesigner
14b10c663e
tune(enemy): big_pentagon orb circular, firework petit per hit, sense wounded chain
2026-05-25 22:28:36 +02:00
JailDesigner
f64c72f9a6
feat(enemy): sistema d'HP declaratiu i nou enemic big_pentagon
2026-05-25 21:46:48 +02:00
JailDesigner
610eaf257e
refactor(debris): la bala impacta al cos O als trossos, mai a tots dos
2026-05-25 21:26:32 +02:00
JailDesigner
14295ce859
feat(enemy): els enemics poden disparar bales via tick d'IA
2026-05-25 20:05:01 +02:00
JailDesigner
5ad433e63a
feat(enemy): afegir behaviors WANDER/CHASE/FLEE i target multi-ship
2026-05-25 18:08:11 +02:00
JailDesigner
61e40e88f4
feat(enemy): migrar el moviment dels enemics a un sistema d'IA declaratiu
2026-05-25 17:45:30 +02:00
JailDesigner
9c0502eefb
feat(enemy): sistema d'events declaratius via YAML
2026-05-25 13:34:48 +02:00
JailDesigner
bea844d51e
feat(entities): migrar bullet a data/entities/bullet/bullet.yaml
2026-05-25 11:42:43 +02:00
JailDesigner
39bda0775e
feat(entities): migrar la configuració dels 3 enemics a data/entities/<type>/*.yaml
2026-05-25 10:01:12 +02:00
JailDesigner
6447932212
feat(entities): migrar la configuració del player a data/entities/player/player.yaml
2026-05-25 08:32:49 +02:00
JailDesigner
252e881e93
refactor: renombra jugador*/zona/radi/MARGE/origen/letra residuals a anglès
2026-05-24 08:09:41 +02:00
JailDesigner
807f71ffa7
refactor(defaults): renombra VELOCITAT/CANVI_ANGLE/MAX_BALES a anglès
2026-05-24 07:57:12 +02:00
JailDesigner
e5e3729215
refactor(enemies): renombra QUADRAT/MOLINILLO a SQUARE/PINWHEEL
2026-05-24 07:40:54 +02:00
JailDesigner
70ca19eb87
fix(wounded-chain): amplifier 1.25 perquè la cadena agafi el contacte post-rebot
2026-05-22 23:32:28 +02:00
JailDesigner
7e52eaeddb
tweak(friendly-fire): la bala empeny la nau abans de morir → els debris hereten la inèrcia
2026-05-22 23:24:42 +02:00
JailDesigner
d86b10c14e
tweak(collision): impuls extra a l'enemic en el moment que mata la nau (factor 0.3·mass·vel)
2026-05-22 22:59:27 +02:00
JailDesigner
c32b564da1
feat(firework): halo neon per partícula amb color de glow propi (explosió enemic: línia blanca + halo daurat)
2026-05-22 21:57:11 +02:00
JailDesigner
18e05e36e6
feat(bullet): debris en trencar-se amb so HIT mogut des d'enemy.herir()
2026-05-22 18:42:23 +02:00
JailDesigner
bf79eecca0
fix(bullet): col·lisió swept, sense grace_timer, mor al border visual
2026-05-22 18:24:54 +02:00
JailDesigner
87138f9a1f
feat(ship): la nau entra a HURT al xocar amb un enemic, mor en un segon impacte
2026-05-22 17:30:33 +02:00
JailDesigner
0cc1f7623a
feat(fireworks): burst radial blanc al explotar enemic + tuning
2026-05-21 17:41:10 +02:00
JailDesigner
2869c63517
tune(debris): N=1, shrink completo y sin herencia angular en enemigos
2026-05-21 17:11:08 +02:00
JailDesigner
ae1d1397b1
revert: vuelve al modelo de efd18ff + ENEMY_LIFETIME 3.0 -> 4.5
2026-05-21 13:46:25 +02:00
JailDesigner
9b25e875f3
fix(debris): bug rotacion cuadratica + shrink exponencial; geometria autoritativa
2026-05-21 13:37:12 +02:00
JailDesigner
048263a1d0
feat(debris): modelo INTACTO→MENGUANDO→0 (sin pop, fade-out por tamaño)
2026-05-21 12:53:01 +02:00
JailDesigner
efd18ff852
feat(debris): vida híbrida (mínima + umbral velocidad) + multiplier para enemigos
2026-05-21 12:07:50 +02:00
JailDesigner
ff5dfab94d
tune(bullet): empuje cuasi-físico (momento real de la bala)
...
Sustitueix IMPACT_IMPULSE (magnitud arbitrària radial) per
IMPACT_MOMENTUM_FACTOR (factor de transferència del moment de la bala).
El impulse ara és bullet.body.velocity * (bullet.body.mass * factor),
és a dir el moment lineal real de la bala, dirigit cap a on viatjava.
Amb factor=1.0 i la bala (m=0.5, v=700 px/s):
- Pentagon (m=5) → Δv = 70 px/s (doble de la seva velocity base)
- Quadrat (m=8) → Δv = 44 px/s
- Molinillo (m=4) → Δv = 88 px/s
Visiblement notable durant el segon de "ferit" abans de l'explosió.
El factor és tunable per pujar/baixar segons gusts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 10:37:23 +02:00
JailDesigner
2cf5292b16
feat(collision): cadena herit→sa via fregada física (Fase 6)
...
Systems::Collision::detectWoundedChain itera parells d'enemics: si
exactament un està herit i toquen (Physics::checkCollision), el sa entra
en estat herit propagant last_hit_by_ → la cascada de morts segueix
acreditant el shooter original. El rebot físic ja el gestiona
PhysicsWorld; aquí només propaguem l'estat.
Hook a detectAll just després de detectBulletEnemy: les balles tenen
prioritat sobre la cadena del mateix frame.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 10:29:29 +02:00
JailDesigner
5cb547db0a
feat(collision): primer impacte fereix, segon mata; mort diferida via timer (Fase 3)
...
- Defaults::Physics::Debris::ENEMY_VELOCITY_INHERITANCE (placeholder 1.0).
- Enemy::herir(shooter_id) emmagatzema last_hit_by_ per a atribució posterior.
- collision_system: helper anònim explodeNow(ctx, enemy, shooter_id) que
llegeix velocity/dades ABANS de destruir() (corregeix bug latent: el codi
anterior llegia getVelocityVector() després de destruir, que zera velocity
→ l'explosió mai heretava inèrcia).
- detectBulletEnemy: primer impacte aplica impulse + herir(); segon impacte
sobre enemy ferit dispara explodeNow immediata.
- processWoundedDeaths: explota enemics amb wound timer expirat aquest frame.
- detectAll: processWoundedDeaths abans de detectBulletEnemy (les expiracions
maten primer; les bales del mateix frame ja no toquen el cos destruït).
Puntos s'atribueixen a la mort real, no a l'impacte inicial.
Build neta i smoke test xvfb OK.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 10:26:13 +02:00