diff --git a/data/entities/momia/momia.gif b/data/entities/momia/momia.gif deleted file mode 100644 index 9352a96..0000000 Binary files a/data/entities/momia/momia.gif and /dev/null differ diff --git a/data/entities/momia/momia.yaml b/data/entities/momia/momia.yaml deleted file mode 100644 index 7602bc2..0000000 --- a/data/entities/momia/momia.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: momia -type: dynamic_hazard -sprite: - path: momia.gif - size: [16, 32] -tile_size: [1, 1] -# Variant 16×32 de la momia: el sprite fa 16×32 (dos 16×16: cap i peus) -# i la caja de col·lisió amb el mapa és 16×16, coincident amb el -# rectangle-base 16×16 dels peus. Com que `size` i `base_size` són -# iguals, el padding és zero i la caja s'alinea exactament amb la -# silueta inferior del sprite; amb `anchor: feet` ocupa la cel·la -# 16×16 del corredor on naix. -anchor: feet -collision: - size: [16, 16] - base_size: [16, 16] -flags: - collides: true - interactable: false -# Strip de 12 frames en graella 4×3 (mateix esquema que el jugador): -# 0..3 → walk_down (cara avall) -# 4..7 → walk_up (cara amunt) -# 8..11 → walk (lateral; flip horitzontal segons el sentit) -# La momia no té variants `stand_*` perquè mai no para. -animations: - walk_down: { frames: [0, 1, 2, 3], fps: 8, loop: true } - walk_up: { frames: [4, 5, 6, 7], fps: 8, loop: true } - walk: { frames: [8, 9, 10, 11], fps: 8, loop: true } -ai: - type: corridor_wanderer - direction_choice: random - initial_direction: right -stats: - speed: 30 - damage: 1 diff --git a/data/entities/mummy/mummy.gif b/data/entities/mummy/mummy.gif index d085a11..9352a96 100644 Binary files a/data/entities/mummy/mummy.gif and b/data/entities/mummy/mummy.gif differ diff --git a/data/entities/mummy/mummy.yaml b/data/entities/mummy/mummy.yaml index 4639414..f271a60 100644 --- a/data/entities/mummy/mummy.yaml +++ b/data/entities/mummy/mummy.yaml @@ -2,22 +2,22 @@ name: mummy type: dynamic_hazard sprite: path: mummy.gif - size: [12, 24] + size: [16, 32] tile_size: [1, 1] -# La momia usa falsa perspectiva: el sprite fa 12×24 (dos 12×12: cap i -# peus) però la caja de col·lisió amb el mapa és 16×16, concèntrica amb -# el rectangle-base 12×12 dels peus (igual que fa el jugador). Així la -# caixa s'estén 2 px a cada costat i 2 px per sota dels peus visuals, -# i amb `anchor: feet` s'alinea exactament amb el tile 16×16 on naix — -# la momia va pel centre del corredor i la caja ocupa la cel·la completa. +# Variant 16×32 de la momia: el sprite fa 16×32 (dos 16×16: cap i peus) +# i la caja de col·lisió amb el mapa és 16×16, coincident amb el +# rectangle-base 16×16 dels peus. Com que `size` i `base_size` són +# iguals, el padding és zero i la caja s'alinea exactament amb la +# silueta inferior del sprite; amb `anchor: feet` ocupa la cel·la +# 16×16 del corredor on naix. anchor: feet collision: size: [16, 16] - base_size: [12, 12] + base_size: [16, 16] flags: collides: true interactable: false -# Strip de 12 frames en graella 12×1 (mateix esquema que el jugador): +# Strip de 12 frames en graella 4×3 (mateix esquema que el jugador): # 0..3 → walk_down (cara avall) # 4..7 → walk_up (cara amunt) # 8..11 → walk (lateral; flip horitzontal segons el sentit) diff --git a/data/maps/pyramid.yaml b/data/maps/pyramid.yaml index 34ebc0a..13f5bfd 100644 --- a/data/maps/pyramid.yaml +++ b/data/maps/pyramid.yaml @@ -124,7 +124,7 @@ entities: sarc_position: [3, 4] - type: door position: [9, 1] - - type: momia + - type: mummy position: [10, 7] - - type: momia + - type: mummy position: [7, 9] diff --git a/source/game/entities/concrete/mummy.cpp b/source/game/entities/concrete/mummy.cpp index 9128738..1edef50 100644 --- a/source/game/entities/concrete/mummy.cpp +++ b/source/game/entities/concrete/mummy.cpp @@ -306,4 +306,3 @@ void Mummy::onPlayerContact(Player* player) { } REGISTER_ENTITY("mummy", Mummy) -REGISTER_ENTITY_AS("momia", Mummy, Momia) diff --git a/source/game/entities/entity_factory.hpp b/source/game/entities/entity_factory.hpp index 4fba022..3df2a66 100644 --- a/source/game/entities/entity_factory.hpp +++ b/source/game/entities/entity_factory.hpp @@ -45,10 +45,10 @@ class EntityFactory { // La macro genera un objecte anònim dins un namespace anònim: el seu // constructor s'executa abans de `main` i registra la factory. El nom // del símbol es compon amb `TAG`, perquè així es poden registrar àlies -// per una mateixa classe (p.ex. "mummy" i "momia" → Mummy) sense que -// els símbols xoquen. La forma curta `REGISTER_ENTITY(NAME, CLASS)` -// reusa `CLASS` com a tag; per àlies cal usar `REGISTER_ENTITY_AS` i -// passar un identificador únic. +// per una mateixa classe (p.ex. dues claus diferents al YAML lligades a +// la mateixa classe C++) sense que els símbols xoquen. La forma curta +// `REGISTER_ENTITY(NAME, CLASS)` reusa `CLASS` com a tag; per àlies cal +// usar `REGISTER_ENTITY_AS` i passar un identificador únic. // // IMPORTANT: perquè el registrador es cridi, el `.cpp` que el conté ha // d'estar enllaçat directament a l'executable (no dins una STATIC lib