feat(editor): mostra mommies i altres dynamic hazards al mode editor
This commit is contained in:
1 parent
a43ae21014
commit
da361a1452
8 files changed
+71
-20
No files matched your search
@@ -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
|
||||
|
||||
@@ -61,6 +61,12 @@ class Mummy : public DynamicHazard {
|
||||
// En estat ROAMING delega a `step()` com sempre via la base.
|
||||
void update(float delta_time) override;
|
||||
|
||||
// Inicia la fase SPAWNING amb l'animació `raise`. Es crida al
|
||||
// spawnPendingActors() del joc, no al ctor: així l'editor (que
|
||||
// materialitza les entitats sense aquest hook) veu la mòmia ja en
|
||||
// ROAMING visible, sense quedar-se "soterrada".
|
||||
void onJustSpawned() override;
|
||||
|
||||
// Contacte amb el jugador: publica `player_hit` amb el dany.
|
||||
void onPlayerContact(Player* player) override;
|
||||
|
||||
|
||||
Reference in new issue
Block a user