#pragma once #include "external/fkyaml_node.hpp" #include "game/entities/hazard.hpp" // Roca rodant: perill dinàmic amb trajectòria en línia recta. La direcció // inicial ve del bloc `ai:` del YAML (right/left/up/down) i es pot // sobreescriure per spawn. No canvia per ella mateixa; qui la vulgui // rebotar/aturar ha de cridar `setDirection(0,0)` externament. class RollingRock : public DynamicHazard { public: explicit RollingRock(const fkyaml::node& yaml); // Avança en línia recta fins a la primera col·lisió: si la caixa // candidata sortiria del playfield o trepitjaria un sarc, s'atura // (direcció → 0,0) i l'actualització es manté en aquella posició fins // que un agent extern la torni a empènyer. No rebota per decisió // de disseny: la roca és trampa estàtica disfressada de dinàmica. void step(float delta_time) override; void onPlayerContact(Player* player) override; };