Deukhoofd 8d4860f553
All checks were successful
continuous-integration/drone/push Build is passing
Support for Heal function for Creatures.
2020-02-13 14:48:09 +01:00

48 lines
1.6 KiB
C++

#ifndef CREATURELIB_EVENTDATA_HPP
#define CREATURELIB_EVENTDATA_HPP
#include "../Models/DamageSource.hpp"
#include "EventDataKind.hpp"
namespace CreatureLib::Battling {
// Predeclare some classes.
class Creature;
class EventData {
public:
virtual ~EventData() = default;
virtual EventDataKind GetKind() = 0;
};
class DamageEvent : public EventData {
Creature* _creature;
DamageSource _damageSource;
uint32_t _originalHealth;
uint32_t _newHealth;
public:
DamageEvent(Creature* c, DamageSource s, uint32_t oHealth, uint32_t newHealth)
: _creature(c), _damageSource(s), _originalHealth(oHealth), _newHealth(newHealth) {}
EventDataKind GetKind() override { return EventDataKind ::Damage; }
Creature* GetCreature() const { return _creature; }
DamageSource GetDamageSource() const { return _damageSource; }
uint32_t GetOriginalHealth() const { return _originalHealth; }
uint32_t GetNewHealth() const { return _newHealth; }
};
class HealEvent : public EventData {
Creature* _creature;
uint32_t _originalHealth;
uint32_t _newHealth;
public:
HealEvent(Creature* c, uint32_t oHealth, uint32_t newHealth)
: _creature(c), _originalHealth(oHealth), _newHealth(newHealth) {}
EventDataKind GetKind() override { return EventDataKind ::Damage; }
Creature* GetCreature() const { return _creature; }
uint32_t GetOriginalHealth() const { return _originalHealth; }
uint32_t GetNewHealth() const { return _newHealth; }
};
}
#endif // CREATURELIB_EVENTDATA_HPP