unsigned vulnerable_to = ~0U;
};
-class HitPoints: public Msp::Game::Component
+struct HitPointsData
+{
+ unsigned remaining_hits;
+};
+
+class HitPoints: public Msp::Game::BufferedComponent<HitPointsData>
{
public:
using Setup = HitPointsSetup;
private:
const Setup &setup;
- unsigned remaining_hits;
public:
HitPoints(Msp::Game::Handle<Msp::Game::Entity>, const Setup &);
void take_damage(unsigned, unsigned);
- bool is_alive() const { return remaining_hits; }
+ bool is_alive() const { return read().remaining_hits; }
};
#endif