Files
CreatureLib/src/Battling/EventHooks/Events/ExperienceGainEvent.hpp
Deukhoofd de8b5de7b4
All checks were successful
continuous-integration/drone/push Build is passing
Mark several classes as final for devirtualization performance benefits.
Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
2020-10-15 18:21:50 +02:00

22 lines
961 B
C++

#ifndef CREATURELIB_EXPERIENCEGAINEVENT_HPP
#define CREATURELIB_EXPERIENCEGAINEVENT_HPP
#include "EventData.hpp"
namespace CreatureLib::Battling {
class ExperienceGainEvent final : public EventData {
ArbUt::BorrowedPtr<Creature> _creature;
uint32_t _previousExperience;
uint32_t _newExperience;
public:
ExperienceGainEvent(const ArbUt::BorrowedPtr<Creature>& creature, uint32_t previousExp, uint32_t newExp)
: _creature(creature), _previousExperience(previousExp), _newExperience(newExp) {}
EventDataKind GetKind() const noexcept override { return EventDataKind ::ExperienceGain; }
const ArbUt::BorrowedPtr<Creature>& GetCreature() const noexcept { return _creature; }
uint32_t GetPreviousExperience() const noexcept { return _previousExperience; }
uint32_t GetNewExperience() const noexcept { return _newExperience; }
};
}
#endif // CREATURELIB_EXPERIENCEGAINEVENT_HPP