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
|
#define PKMNLIB_BATTLE_HPP
|
||||||
|
|
||||||
#include <CreatureLib/Battling/Models/Battle.hpp>
|
#include <CreatureLib/Battling/Models/Battle.hpp>
|
||||||
|
#include "../EventHooks/WeatherChangeEvent.hpp"
|
||||||
#include "../Library/BattleLibrary.hpp"
|
#include "../Library/BattleLibrary.hpp"
|
||||||
#include "../PkmnScriptCategory.hpp"
|
#include "../PkmnScriptCategory.hpp"
|
||||||
|
|
||||||
|
@ -21,11 +22,13 @@ namespace PkmnLib::Battling {
|
||||||
delete _weatherScript;
|
delete _weatherScript;
|
||||||
}
|
}
|
||||||
_weatherScript = _library->LoadScript(static_cast<ScriptCategory>(PkmnScriptCategory::Weather), name);
|
_weatherScript = _library->LoadScript(static_cast<ScriptCategory>(PkmnScriptCategory::Weather), name);
|
||||||
|
_eventHook.TriggerEvent(new WeatherChangeEvent(name));
|
||||||
}
|
}
|
||||||
void ClearWeather() {
|
void ClearWeather() {
|
||||||
_weatherScript->OnRemove();
|
_weatherScript->OnRemove();
|
||||||
delete _weatherScript;
|
delete _weatherScript;
|
||||||
_weatherScript = nullptr;
|
_weatherScript = nullptr;
|
||||||
|
_eventHook.TriggerEvent(new WeatherChangeEvent(""_cnc));
|
||||||
}
|
}
|
||||||
const Arbutils::CaseInsensitiveConstString& GetWeatherName() noexcept { return _weatherScript->GetName(); }
|
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