Remove status handling, as its already in CreatureLib
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
2e2dfbaf1d
commit
b5ea856443
|
@ -46,10 +46,6 @@ export void PkmnLib_Pokemon_SetEffortValue(Pokemon* p, CreatureLib::Library::Sta
|
||||||
p->SetEffortValue(stat, value);
|
p->SetEffortValue(stat, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
export u8 PkmnLib_Pokemon_SetStatus(Pokemon* p, const char* name) { Try(p->SetStatus(ArbUt::StringView(name))); };
|
|
||||||
export u8 PkmnLib_Pokemon_ClearStatus(Pokemon* p) { Try(p->ClearStatus()); };
|
|
||||||
export const char* PkmnLib_Pokemon_GetStatusName(Pokemon* p) { return p->GetStatusName().c_str(); }
|
|
||||||
|
|
||||||
SIMPLE_GET_FUNC(Pokemon, GetFriendship, uint8_t)
|
SIMPLE_GET_FUNC(Pokemon, GetFriendship, uint8_t)
|
||||||
export void PkmnLib_Pokemon_SetFriendship(Pokemon* p, u8 value) { p->SetFriendship(value); }
|
export void PkmnLib_Pokemon_SetFriendship(Pokemon* p, u8 value) { p->SetFriendship(value); }
|
||||||
export void PkmnLib_Pokemon_ChangeFriendship(Pokemon* p, i8 amount) { p->ChangeFriendship(amount); }
|
export void PkmnLib_Pokemon_ChangeFriendship(Pokemon* p, i8 amount) { p->ChangeFriendship(amount); }
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
#define PKMNLIB_PKMNEVENTKIND_HPP
|
#define PKMNLIB_PKMNEVENTKIND_HPP
|
||||||
#include <CreatureLib/Battling/EventHooks/EventDataKind.hpp>
|
#include <CreatureLib/Battling/EventHooks/EventDataKind.hpp>
|
||||||
|
|
||||||
ENUM_WITH_START_VALUE(PkmnEventDataKind, uint8_t, 128, WeatherChange, StatusChange)
|
ENUM_WITH_START_VALUE(PkmnEventDataKind, uint8_t, 128, WeatherChange)
|
||||||
|
|
||||||
#endif // PKMNLIB_PKMNEVENTKIND_HPP
|
#endif // PKMNLIB_PKMNEVENTKIND_HPP
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
#ifndef PKMNLIB_STATUSCHANGEEVENT_HPP
|
|
||||||
#define PKMNLIB_STATUSCHANGEEVENT_HPP
|
|
||||||
|
|
||||||
#include <CreatureLib/Battling/EventHooks/Events/EventData.hpp>
|
|
||||||
#include "../Pokemon/Pokemon.hpp"
|
|
||||||
#include "PkmnEventKind.hpp"
|
|
||||||
|
|
||||||
namespace PkmnLib::Battling {
|
|
||||||
class StatusChangeEvent final : public CreatureLib::Battling::EventData {
|
|
||||||
ArbUt::BorrowedPtr<Pokemon> _pokemon;
|
|
||||||
ArbUt::StringView _statusName;
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit StatusChangeEvent(const ArbUt::BorrowedPtr<Pokemon>& pkmn, const ArbUt::StringView& name)
|
|
||||||
: _pokemon(pkmn), _statusName(name) {}
|
|
||||||
|
|
||||||
[[nodiscard]] CreatureLib::Battling::EventDataKind GetKind() const noexcept override {
|
|
||||||
return static_cast<CreatureLib::Battling::EventDataKind>(PkmnEventDataKind::StatusChange);
|
|
||||||
}
|
|
||||||
|
|
||||||
const ArbUt::BorrowedPtr<Pokemon>& GetPokemon() const noexcept { return _pokemon; }
|
|
||||||
const ArbUt::StringView& GetStatusName() const noexcept { return _statusName; }
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // PKMNLIB_STATUSCHANGEEVENT_HPP
|
|
|
@ -2,6 +2,6 @@
|
||||||
#define PKMNLIB_PKMNSCRIPTCATEGORY_HPP
|
#define PKMNLIB_PKMNSCRIPTCATEGORY_HPP
|
||||||
#include <CreatureLib/Battling/ScriptHandling/ScriptCategory.hpp>
|
#include <CreatureLib/Battling/ScriptHandling/ScriptCategory.hpp>
|
||||||
|
|
||||||
ENUM_WITH_START_VALUE(PkmnScriptCategory, uint8_t, 128, Weather, Status)
|
ENUM_WITH_START_VALUE(PkmnScriptCategory, uint8_t, 128, Weather)
|
||||||
|
|
||||||
#endif // PKMNLIB_PKMNSCRIPTCATEGORY_HPP
|
#endif // PKMNLIB_PKMNSCRIPTCATEGORY_HPP
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#include "Pokemon.hpp"
|
#include "Pokemon.hpp"
|
||||||
#include <CreatureLib/Battling/Models/Battle.hpp>
|
#include <CreatureLib/Battling/Models/Battle.hpp>
|
||||||
#include "../EventHooks/StatusChangeEvent.hpp"
|
|
||||||
#include "../PkmnScriptCategory.hpp"
|
#include "../PkmnScriptCategory.hpp"
|
||||||
|
|
||||||
void PkmnLib::Battling::Pokemon::Evolve(ArbUt::BorrowedPtr<const Library::PokemonSpecies> mon,
|
void PkmnLib::Battling::Pokemon::Evolve(ArbUt::BorrowedPtr<const Library::PokemonSpecies> mon,
|
||||||
|
@ -28,26 +27,6 @@ void PkmnLib::Battling::Pokemon::Evolve(ArbUt::BorrowedPtr<const Library::Pokemo
|
||||||
// TODO: Event hook
|
// TODO: Event hook
|
||||||
}
|
}
|
||||||
|
|
||||||
void PkmnLib::Battling::Pokemon::SetStatus(const ArbUt::StringView& name) {
|
|
||||||
if (_statusScript != nullptr) {
|
|
||||||
_statusScript->OnRemove();
|
|
||||||
}
|
|
||||||
_statusScript = std::unique_ptr<CreatureLib::Battling::BattleScript>(
|
|
||||||
_library->LoadScript(static_cast<ScriptCategory>(PkmnScriptCategory::Status), name));
|
|
||||||
if (_battleData.Battle.HasValue()) {
|
|
||||||
_battleData.Battle.GetValue()->TriggerEventListener<StatusChangeEvent>(this, name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void PkmnLib::Battling::Pokemon::ClearStatus() {
|
|
||||||
if (_statusScript == nullptr)
|
|
||||||
return;
|
|
||||||
_statusScript->OnRemove();
|
|
||||||
_statusScript = nullptr;
|
|
||||||
if (_battleData.Battle.HasValue()) {
|
|
||||||
_battleData.Battle.GetValue()->TriggerEventListener<StatusChangeEvent>(this, ""_cnc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CreatureLib::Battling::Creature* PkmnLib::Battling::Pokemon::Clone() const {
|
CreatureLib::Battling::Creature* PkmnLib::Battling::Pokemon::Clone() const {
|
||||||
auto moves = std::vector<CreatureLib::Battling::LearnedAttack*>(_attacks.Count());
|
auto moves = std::vector<CreatureLib::Battling::LearnedAttack*>(_attacks.Count());
|
||||||
auto i = 0;
|
auto i = 0;
|
||||||
|
@ -83,9 +62,6 @@ CreatureLib::Battling::Creature* PkmnLib::Battling::Pokemon::Clone() const {
|
||||||
}
|
}
|
||||||
_volatile.Clone(c->_volatile);
|
_volatile.Clone(c->_volatile);
|
||||||
c->_types = std::vector<u8>(_types);
|
c->_types = std::vector<u8>(_types);
|
||||||
if (_statusScript != nullptr) {
|
|
||||||
c->_statusScript = std::unique_ptr<PkmnScript::BattleScript>(_statusScript->Clone());
|
|
||||||
}
|
|
||||||
c->_friendship = _friendship;
|
c->_friendship = _friendship;
|
||||||
c->RecalculateFlatStats();
|
c->RecalculateFlatStats();
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ namespace PkmnLib::Battling {
|
||||||
CreatureLib::Library::ClampedStatisticSet<uint8_t, 0, 252> _effortValues;
|
CreatureLib::Library::ClampedStatisticSet<uint8_t, 0, 252> _effortValues;
|
||||||
|
|
||||||
ArbUt::BorrowedPtr<const PkmnLib::Library::Nature> _nature;
|
ArbUt::BorrowedPtr<const PkmnLib::Library::Nature> _nature;
|
||||||
std::unique_ptr<CreatureLib::Battling::BattleScript> _statusScript = nullptr;
|
|
||||||
uint8_t _friendship = 0;
|
uint8_t _friendship = 0;
|
||||||
bool _isEgg;
|
bool _isEgg;
|
||||||
|
|
||||||
|
@ -71,14 +70,6 @@ namespace PkmnLib::Battling {
|
||||||
void Evolve(ArbUt::BorrowedPtr<const Library::PokemonSpecies> mon,
|
void Evolve(ArbUt::BorrowedPtr<const Library::PokemonSpecies> mon,
|
||||||
ArbUt::BorrowedPtr<const Library::PokemonForme> forme);
|
ArbUt::BorrowedPtr<const Library::PokemonForme> forme);
|
||||||
|
|
||||||
void SetStatus(const ArbUt::StringView& name);
|
|
||||||
void ClearStatus();
|
|
||||||
const ArbUt::StringView& GetStatusName() noexcept {
|
|
||||||
if (_statusScript == nullptr)
|
|
||||||
return ArbUt::StringView::EmptyString();
|
|
||||||
return _statusScript->GetName();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t GetFriendship() const noexcept { return _friendship; }
|
uint8_t GetFriendship() const noexcept { return _friendship; }
|
||||||
void SetFriendship(uint8_t value) noexcept { _friendship = value; }
|
void SetFriendship(uint8_t value) noexcept { _friendship = value; }
|
||||||
void ChangeFriendship(int8_t amount) noexcept {
|
void ChangeFriendship(int8_t amount) noexcept {
|
||||||
|
|
Loading…
Reference in New Issue