fix(hazard): aterrar damunt d'un Hole salta el LANDING_STUN
This commit is contained in:
1 parent
4da50571eb
commit
3e5217066f
5 files changed
+80
-5
No files matched your search
@@ -12,6 +12,7 @@
|
||||
#include "game/map/map.hpp"
|
||||
|
||||
class EventBus;
|
||||
class EntityManager;
|
||||
|
||||
class Player : public AnimatedSprite {
|
||||
public:
|
||||
@@ -345,6 +346,14 @@ class Player : public AnimatedSprite {
|
||||
// correspongui (sarcòfags). Si el bus no s'injecta, no emet res.
|
||||
void setEventBus(EventBus* bus) { bus_ = bus; }
|
||||
|
||||
// Injecta el manager d'entitats del nivell. L'usa `integrateJump` per
|
||||
// detectar aterratges sobre decals-trigger (forats, plaques de
|
||||
// pressió...) i disparar la transició corresponent en lloc del
|
||||
// LANDING_STUN normal. Propietat externa (mateixa convenció que
|
||||
// `setEventBus`); si no s'injecta, l'aterratge segueix el camí
|
||||
// normal (els tests stand-alone del Player no necessiten injectar-lo).
|
||||
void setEntityManager(EntityManager* manager) { entity_manager_ = manager; }
|
||||
|
||||
// Tile actual del jugador (centre de `baseBox()` convertit a
|
||||
// coordenades de tile del tilemap, usant Map::tile_size i
|
||||
// Map::tilemap_origin_*). Retorna (col, row).
|
||||
@@ -815,6 +824,12 @@ class Player : public AnimatedSprite {
|
||||
// Player només en guarda un punter per publicar events.
|
||||
EventBus* bus_{nullptr};
|
||||
|
||||
// Manager d'entitats del nivell (opcional). Propietat externa
|
||||
// (GameScene); l'usa `integrateJump` per consultar
|
||||
// `findFloorTriggerAt` a l'aterratge i decidir si el frame del LAND
|
||||
// ha de disparar `enterHoleFall` en lloc d'un LANDING_STUN normal.
|
||||
EntityManager* entity_manager_{nullptr};
|
||||
|
||||
// Últim tile publicat. Inicialitzats a un sentinel fora de rang perquè
|
||||
// el primer frame en què el bus estigui connectat ja emeti un event.
|
||||
int last_tile_col_{-9999};
|
||||
|
||||
Reference in new issue
Block a user