#ifndef PKMNLIB_STATUSCHANGEEVENT_HPP #define PKMNLIB_STATUSCHANGEEVENT_HPP #include #include "../Pokemon/Pokemon.hpp" #include "PkmnEventKind.hpp" namespace PkmnLib::Battling { class StatusChangeEvent final : public CreatureLib::Battling::EventData { ArbUt::BorrowedPtr _pokemon; ArbUt::StringView _statusName; public: explicit StatusChangeEvent(const ArbUt::BorrowedPtr& pkmn, const ArbUt::StringView& name) : _pokemon(pkmn), _statusName(name) {} [[nodiscard]] CreatureLib::Battling::EventDataKind GetKind() const noexcept override { return static_cast(PkmnEventDataKind::StatusChange); } const ArbUt::BorrowedPtr& GetPokemon() const noexcept { return _pokemon; } const ArbUt::StringView& GetStatusName() const noexcept { return _statusName; } }; } #endif // PKMNLIB_STATUSCHANGEEVENT_HPP