Trigger event hook on weather change/
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
6955c2c69f
commit
aa1e6ae5b3
|
@ -2,6 +2,7 @@
|
|||
#define PKMNLIB_BATTLE_HPP
|
||||
|
||||
#include <CreatureLib/Battling/Models/Battle.hpp>
|
||||
#include "../EventHooks/WeatherChangeEvent.hpp"
|
||||
#include "../Library/BattleLibrary.hpp"
|
||||
#include "../PkmnScriptCategory.hpp"
|
||||
|
||||
|
@ -21,11 +22,13 @@ namespace PkmnLib::Battling {
|
|||
delete _weatherScript;
|
||||
}
|
||||
_weatherScript = _library->LoadScript(static_cast<ScriptCategory>(PkmnScriptCategory::Weather), name);
|
||||
_eventHook.TriggerEvent(new WeatherChangeEvent(name));
|
||||
}
|
||||
void ClearWeather() {
|
||||
_weatherScript->OnRemove();
|
||||
delete _weatherScript;
|
||||
_weatherScript = nullptr;
|
||||
_eventHook.TriggerEvent(new WeatherChangeEvent(""_cnc));
|
||||
}
|
||||
const Arbutils::CaseInsensitiveConstString& GetWeatherName() noexcept { return _weatherScript->GetName(); }
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef PKMNLIB_PKMNEVENTKIND_HPP
|
||||
#define PKMNLIB_PKMNEVENTKIND_HPP
|
||||
#include <Arbutils/Enum.hpp>
|
||||
#include <CreatureLib/Battling/EventHooks/EventDataKind.hpp>
|
||||
|
||||
ENUM_WITH_START_VALUE(PkmnEventDataKind, uint8_t, ((uint8_t)CreatureLib::Battling::EventDataKindHelper::Highest()) + 1,
|
||||
WeatherChange)
|
||||
|
||||
#endif // PKMNLIB_PKMNEVENTKIND_HPP
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef PKMNLIB_WEATHERCHANGEEVENT_HPP
|
||||
#define PKMNLIB_WEATHERCHANGEEVENT_HPP
|
||||
#include <Arbutils/ConstString.hpp>
|
||||
#include <CreatureLib/Battling/EventHooks/EventData.hpp>
|
||||
#include "PkmnEventKind.hpp"
|
||||
|
||||
namespace PkmnLib::Battling {
|
||||
class WeatherChangeEvent : public CreatureLib::Battling::EventData {
|
||||
Arbutils::CaseInsensitiveConstString _weatherName;
|
||||
|
||||
public:
|
||||
explicit WeatherChangeEvent(const Arbutils::CaseInsensitiveConstString& name) : _weatherName(name) {}
|
||||
|
||||
[[nodiscard]] CreatureLib::Battling::EventDataKind GetKind() const noexcept override {
|
||||
return static_cast<CreatureLib::Battling::EventDataKind>(PkmnEventDataKind::WeatherChange);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endif // PKMNLIB_WEATHERCHANGEEVENT_HPP
|
Loading…
Reference in New Issue