JailDesigner
56c3f978d3
tweak(joc): les frases de fase tornen a l'ambre, desacoblades del PULSA START blanc del títol
2026-05-30 08:41:23 +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
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
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
d7a9bd4ab2
tweak(game over): en acabar la partida es torna al logo en lloc del títol
2026-05-29 19:13:07 +02:00
JailDesigner
2f6d6c405f
feat(demo): transició títol→demo amb dive de càmera + cortinilla negra (substitueix el fundido)
2026-05-29 10:03:17 +02:00
JailDesigner
068f42782b
feat(demo): transició per fosa a/desde negre en el salt títol→demo
2026-05-29 09:21:02 +02:00
JailDesigner
472c543c7b
feat(demo): el marcador mostra el rètol de demo en lloc de puntuacions
2026-05-29 09:16:55 +02:00
JailDesigner
4e67a67ace
feat(demo): la graella del fons apareix ja muntada en entrar a la demo
2026-05-29 09:12:30 +02:00
JailDesigner
1e63d3ae9d
feat(demo): silenciar els efectes de so durant la demo (música intacta)
2026-05-29 09:09:37 +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
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
ddcd2076a1
refactor(audio): renombrar explosion/explosion2 a enemy_explosion/player_explosion
2026-05-26 18:57:26 +02:00
JailDesigner
61a4886e62
refactor(shapes): reorganitzar data/shapes en subcarpetes per categoria (enemy/bullet/ship/effect)
2026-05-26 18:25:15 +02:00
JailDesigner
ff11567471
feat(stages): sistema d'onades declaratives amb condicions de transició
2026-05-26 13:32:43 +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
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
443b461974
feat(service-menu): esquelet amb F12, brackets sci-fi i highlight animat
2026-05-24 11:25:09 +02:00
JailDesigner
35d720bb77
feat(locale): sistema i18n YAML amb català i anglès
2026-05-24 10:28:56 +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
b1ee23cd20
tweak(stage-messages): missatges level start/completed amb color ambre del PRESS START
2026-05-22 23:02:23 +02:00
JailDesigner
1ea38d4f6a
fix(ship-death): debris hereten inèrcia (captura velocitat abans del markHit) i comparteixen dispersió amb enemics
2026-05-22 22:47:02 +02:00
JailDesigner
a342d79b86
feat(starfield): mou estrelles amb la mitjana de velocitats de les naus
2026-05-22 19:51:40 +02:00
JailDesigner
1db7368c9f
feat(starfield): capa parallax al fons del playfield amb tint blanc-cyan
2026-05-22 19:46:57 +02:00
JailDesigner
88b002b277
feat(playfield): ones d'aigua a la rejilla per explosions i pas de nau
2026-05-22 19:22:09 +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
20f5b83649
feat(playfield): reaccions orbit al pas de la nau i pulse al spawn de fireworks
2026-05-21 23:03:48 +02:00
JailDesigner
a44748c0c4
feat(border): bump del border per explosions properes a la paret
2026-05-21 22:48:49 +02:00
JailDesigner
e678f8d538
feat(border): refactor a Graphics::Border amb bumps i flash verd clar per impactes contra les parets
2026-05-21 22:39:08 +02:00
JailDesigner
07985228b2
feat(playfield): refactor a Playfield amb animació de creació durant l'INIT_HUD
2026-05-21 20:44:17 +02:00
JailDesigner
f30b195778
feat(grid): graella verda fosca de fons al playfield (16x8)
2026-05-21 20:16:44 +02:00
JailDesigner
8b32a0a404
fix(join): registrar el cos físic del jugador al món quan s'uneix
2026-05-21 19:44:29 +02:00
JailDesigner
74d855357d
feat(trail): estela daurada de partícules quan la nau accelera
2026-05-21 19:29:32 +02:00
JailDesigner
e6eaf870c6
tune(bullets): puja MAX_BALES a 50 i deshardcoded el slot per jugador
2026-05-21 18:51:55 +02:00
JailDesigner
0cc1f7623a
feat(fireworks): burst radial blanc al explotar enemic + tuning
2026-05-21 17:41:10 +02:00
JailDesigner
56ce1a3236
feat(fireworks): infraestructura (manager + pool + render, sin spawn aún)
2026-05-21 17:22:46 +02:00
JailDesigner
bb21191c5b
refactor(defaults): substitueix els 999.0F restants per HIT_TIMER_INACTIVE_PLAYER
2026-05-21 09:48:20 +02:00
JailDesigner
7139dea7f6
refactor(defaults): centralitza init hud, tips, hit timer, line thickness i debug overlay
2026-05-21 09:45:55 +02:00
JailDesigner
08100f60e8
refactor(defaults): centralitza constants de bullet, ship, enemy, hud i notifier
2026-05-21 09:39:36 +02:00
JailDesigner
97c98272c9
refactor: consolidar Ship::isAlive/isHit/isActive en isActive()
...
Els tres mètodes retornaven el mateix bool a partir d'is_hit_:
isActive() = !is_hit_ (override de Entity)
isAlive() = !is_hit_
isHit() = is_hit_
Eren tres formes diferents de preguntar el mateix, repartides sense
criteri pels call-sites (collision_system, game_scene). Conservem
isActive() perquè és l'override polimòrfic d'Entity i esborrem els
altres dos. Actualitzats els 5 call-sites externs.
Hallazgo #11 de CODE_REVIEW.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 17:37:37 +02:00
JailDesigner
e1d6cd1bb9
refactor: fusionar GameScene::init() al ctor (coherent amb Scene)
...
L'interfície Scene només declara handleEvent/update/draw/isFinished.
GameScene::init() era un mètode públic addicional que ningú (ni el
Director) cridava externament: només el propi ctor el cridava al
final. El comentari del header ("llamado por Director tras crear la
escena") era fals: el Director mai l'invoca.
TitleScene i LogoScene ja inicialitzen tot al ctor sense exposar
init(). Aquesta diferència trencava l'expectativa del lifecycle.
Movem tot el cos de init() al ctor i esborrem la declaració i la
definició. Aprofitem per:
- Eliminar el guard "if (!stage_config_)" que pressuposava re-init,
cas que mai s'arribava a donar.
- Treure el comentari DEPRECATED sobre spawn_position_ (residu).
Hallazgo #1 de CODE_REVIEW.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 17:25:02 +02:00