feat(editor): mostra mommies i altres dynamic hazards al mode editor

This commit is contained in:
JailDesigner committed 2026-05-12 13:58:45 +02:00
1 parent a43ae21014
commit da361a1452
8 files changed
+71 -20

No files matched your search

+18 -12
View File
@@ -142,18 +142,10 @@ Mummy::Mummy(const fkyaml::node& yaml)
changeDirection(0.0F, 1.0F);
}
// Estat SPAWN inicial: la mòmia naix en SPAWNING amb l'animació
// `raise` activa (16 frames @ 8fps, no-loop). La duració del SPAWN
// la marca la pròpia animació — `Mummy::update` la tickeja, i quan
// `completed()`, crida `endSpawn()` i restaura la `walk_*` per la
// direcció actual. Passem 0 al countdown del DynamicHazard perquè
// no s'utilitza en aquest cas (el nostre `update` retorna abans).
enterSpawn(0.0F);
anim_ = anim_raise_;
if (anim_.has_value()) {
anim_->reset();
flip_ = anim_->flipMode();
}
// L'estat SPAWNING amb l'animació `raise` s'arma a `onJustSpawned`,
// no al ctor. Així el manager pot instanciar la mòmia sense disparar
// la cinemàtica (cas del mode editor) i veure-la ja en ROAMING amb
// la `walk_*` triada per `changeDirection` més amunt.
// Configuració de l'estat HURT: opcional. Si el bloc no apareix, la
// mòmia no entrarà mai a HURT efectiu (defensiu); el WhipAttack la
@@ -180,6 +172,20 @@ Mummy::Mummy(const fkyaml::node& yaml)
}
}
void Mummy::onJustSpawned() {
// Cinemàtica d'aparició: la mòmia "s'aixeca" reproduint `raise`
// (16 frames no-loop). El countdown del DynamicHazard NO s'utilitza
// (passem 0): `Mummy::update` controla la transició a ACTIVE per
// `anim_->completed()`. Cap crida a la base perquè el `triggerSpawnExit`
// del DynamicHazard arma aquest mateix countdown que aquí no toca.
enterSpawn(0.0F);
anim_ = anim_raise_;
if (anim_.has_value()) {
anim_->reset();
flip_ = anim_->flipMode();
}
}
void Mummy::changeDirection(float dx, float dy) {
setDirection(dx, dy);
// Una animació per cada cardinal — el flip viu al YAML