feat(player): estat EXITED i porta oberta despawna jugadors via player_exited
This commit is contained in:
1 parent
377e5d0b97
commit
5c5cd1d5da
5 files changed
+93
-22
No files matched your search
@@ -7,11 +7,14 @@
|
||||
#include "game/entities/interactable.hpp"
|
||||
|
||||
// Porta de sortida del nivell. Tres estats:
|
||||
// CLOSED → inicial; bloqueja el pas.
|
||||
// CLOSED → inicial; el passadís de Map bloqueja el pas via `Map::collides`.
|
||||
// OPENING → animació d'obertura en curs. Quan el component acaba →
|
||||
// transita a OPEN.
|
||||
// OPEN → accessible. Al contacte amb el jugador publica
|
||||
// `level_complete` al bus (si n'hi ha).
|
||||
// transita a OPEN. El passadís ja és transitable (s'allibera
|
||||
// a `open()` amb `Map::door_open = true`).
|
||||
// OPEN → accessible. Al contacte amb un jugador, crida `Player::exit()`
|
||||
// — el jugador queda despawnat i emet `player_exited` al bus.
|
||||
// L'agregació "tots els jugadors han eixit → `level_complete`"
|
||||
// viu a EntityManager.
|
||||
//
|
||||
// El que decideix quan s'obri és extern (`EntityManager` comptant sarcs
|
||||
// oberts) via `open()`. L'animació `opening` es fa servir com a
|
||||
@@ -38,7 +41,6 @@ class Door : public Interactable {
|
||||
void setAnimation(const AnimationComponent& anim);
|
||||
|
||||
State state_{State::CLOSED};
|
||||
bool level_complete_emitted_{false};
|
||||
|
||||
// Les 3 animacions precalculades al ctor des del YAML. L'activa
|
||||
// s'assigna a `anim_` (heretat d'Entity) segons l'estat.
|
||||
|
||||
Reference in new issue
Block a user