feat(stats): Player com a font de veritat de vides/score/tresors i sarcs amb recompensa
This commit is contained in:
1 parent
d186f66c2c
commit
f5d251c33b
14 files changed
+226
-34
No files matched your search
@@ -158,6 +158,21 @@ class Player : public AnimatedSprite {
|
||||
// xarxa — és únic per dins del procés.
|
||||
[[nodiscard]] auto getId() const -> int { return id_; }
|
||||
|
||||
// Stats que pinta el HUD. El Player n'és la font de veritat; cada
|
||||
// mutació es publica via `player_stats_changed` al bus (vegeu
|
||||
// `publishStatsChanged`). Els getters són per a tests i diagnòstic;
|
||||
// el HUD no els consulta — escolta el bus.
|
||||
[[nodiscard]] auto getLives() const -> int { return lives_remaining_; }
|
||||
[[nodiscard]] auto getScore() const -> int { return score_; }
|
||||
[[nodiscard]] auto getTreasures() const -> int { return treasures_; }
|
||||
|
||||
// Acumuladors. Deltas positius i negatius (sense clamp). Publiquen
|
||||
// `player_stats_changed` només si el delta no és 0, per estalviar
|
||||
// soroll al bus. Els consumidors típics: GameScene reparteix puntuació
|
||||
// de sarcs i pickups (futur) cridant aquests mètodes.
|
||||
void addScore(int delta);
|
||||
void addTreasures(int delta);
|
||||
|
||||
// Accés i mutació de la velocitat intencionada d'aquest frame. El
|
||||
// GameScene els toca entre `tick` i `applyMovement` per implementar
|
||||
// col·lisions jugador↔jugador (escalar a push_factor, anul·lar en
|
||||
@@ -852,6 +867,17 @@ class Player : public AnimatedSprite {
|
||||
// inicial quan el jugador re-entra mid-partida.
|
||||
int lives_remaining_{0};
|
||||
|
||||
// Puntuació acumulada i nombre de tresors recollits. Es modifiquen
|
||||
// via `addScore` / `addTreasures` (o reset a `resetForJoin`). El HUD
|
||||
// els sincronitza via `player_stats_changed`.
|
||||
int score_{0};
|
||||
int treasures_{0};
|
||||
|
||||
// Publica un snapshot complet (vides/score/tresors) al bus si està
|
||||
// injectat. Centralitza la generació de l'event perquè cap mutador
|
||||
// se l'oblide.
|
||||
void publishStatsChanged();
|
||||
|
||||
// Coordenades del spawn de respawn (cantó superior-esquerra del
|
||||
// sprite). Les assigna el GameScene via `setSpawnPoint`. 0/0 fins que
|
||||
// el GameScene n'invoque el setter al ctor / `loadRoom`.
|
||||
|
||||
Reference in new issue
Block a user