fix(game): HUD lives desde YAML, prompt P1 en single-P2, countdown 9..0 configurable

This commit is contained in:
JailDesigner committed 2026-05-08 21:14:33 +02:00
1 parent 78e164fce4
commit 5e862ceadc
9 files changed
+66 -29

No files matched your search

+10 -6
View File
@@ -55,7 +55,11 @@ class Hud {
CAN_JOIN,
WAIT };
Hud(EventBus& bus, std::shared_ptr<Text> font);
// `initial_lives` es la cantidad de vides amb què s'activa un slot
// (P1 al ctor i, més tard, els que arriben via "join in progress").
// Ve del YAML del jugador (`Player::death_config.initial_lives`),
// així el marcador segueix automàticament la configuració del joc.
Hud(EventBus& bus, std::shared_ptr<Text> font, int initial_lives);
~Hud();
Hud(const Hud&) = delete;
@@ -111,10 +115,6 @@ class Hud {
static constexpr int LINE1_Y = 4;
static constexpr int LINE2_Y = 13;
// Vides inicials per jugador (placeholder fins que GameScene ho
// configure des del Config del nivell).
static constexpr int DEFAULT_LIVES = 3;
struct Block {
Mode mode{Mode::IDLE};
// Coordenades de pantalla on viu el bloc (constants durant la
@@ -143,7 +143,7 @@ class Hud {
};
struct PlayerStats {
int lives{DEFAULT_LIVES};
int lives{0};
int score{0};
int treasures{0};
// `false` → el bloc mostra el prompt actiu (`join_prompt`) o
@@ -179,4 +179,8 @@ class Hud {
std::array<PlayerStats, 2> players_;
int pyramid_{1};
int room_{1};
// Vides amb què s'arrenca un slot (`activatePlayer`). Cachejat al
// ctor des de `Player::death_config.initial_lives` per no llegir el
// singleton estàtic en el camí calent del bus de events.
int initial_lives_{0};
};