PkmnLib/src/Battling/EventHooks/CaptureAttemptEvent.hpp

27 lines
1.1 KiB
C++

#ifndef PKMNLIB_CAPTUREATTEMPTEVENT_HPP
#define PKMNLIB_CAPTUREATTEMPTEVENT_HPP
#include <CreatureLib/Battling/EventHooks/Events/EventData.hpp>
#include "../Pokemon/Pokemon.hpp"
#include "Arbutils/Memory/Memory.hpp"
#include "PkmnEventKind.hpp"
namespace PkmnLib::Battling {
class CaptureAttemptEvent final : public CreatureLib::Battling::EventData {
ArbUt::BorrowedPtr<PkmnLib::Battling::Pokemon> _pokemon;
CaptureLibrary::CaptureResult _result;
public:
explicit CaptureAttemptEvent(PkmnLib::Battling::Pokemon* pokemon, const CaptureLibrary::CaptureResult& result)
: _pokemon(pokemon), _result(result) {}
[[nodiscard]] CreatureLib::Battling::EventDataKind GetKind() const noexcept override {
return static_cast<CreatureLib::Battling::EventDataKind>(PkmnEventDataKind::CaptureAttempt);
}
const ArbUt::BorrowedPtr<PkmnLib::Battling::Pokemon>& GetPokemon() const noexcept { return _pokemon; }
const CaptureLibrary::CaptureResult& GetResult() const noexcept { return _result; }
};
}
#endif // PKMNLIB_CAPTUREATTEMPTEVENT_HPP