Updates needed for breaking change in how abilities work.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -56,7 +56,7 @@ CreatureLib::Battling::Creature* PkmnLib::Battling::Pokemon::Clone() const {
|
||||
c->_activeTalent = std::unique_ptr<PkmnScript::BattleScript>(_activeTalent->Clone(c));
|
||||
}
|
||||
c->_hasOverridenTalent = _hasOverridenTalent;
|
||||
c->_overridenTalentName = _overridenTalentName;
|
||||
c->_overridenTalent = _overridenTalent;
|
||||
if (_status != nullptr) {
|
||||
c->_status = std::unique_ptr<PkmnScript::BattleScript>(_status->Clone(c));
|
||||
}
|
||||
|
||||
@@ -18,8 +18,10 @@ namespace PkmnLib::Library {
|
||||
|
||||
PokemonLibrary(PkmnLib::Library::LibrarySettings* settings, SpeciesLibrary* species, MoveLibrary* moves,
|
||||
ItemLibrary* items, CreatureLib::Library::GrowthRateLibrary* growthRates,
|
||||
CreatureLib::Library::TypeLibrary* typeLibrary, NatureLibrary* natures)
|
||||
: DataLibrary(settings, species, moves, items, growthRates, typeLibrary), _natures(natures) {}
|
||||
CreatureLib::Library::TypeLibrary* typeLibrary,
|
||||
CreatureLib::Library::TalentLibrary* talentLibrary, NatureLibrary* natures)
|
||||
: DataLibrary(settings, species, moves, items, growthRates, typeLibrary, talentLibrary), _natures(natures) {
|
||||
}
|
||||
|
||||
const std::unique_ptr<const PkmnLib::Library::LibrarySettings>& GetSettings() const {
|
||||
return (const std::unique_ptr<const LibrarySettings>&)CreatureLib::Library::DataLibrary::GetSettings();
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
#include "PokemonForme.hpp"
|
||||
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
PkmnLib::Library::PokemonForme::PokemonForme(const ArbUt::StringView& name, float height, float weight,
|
||||
uint32_t baseExperience, const ArbUt::List<uint8_t>& types,
|
||||
CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
||||
const ArbUt::List<ArbUt::StringView>& talents,
|
||||
const ArbUt::List<ArbUt::StringView>& secretTalents,
|
||||
StatisticSet<uint16_t> baseStats,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const Talent>>& talents,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const Talent>>& secretTalents,
|
||||
const LearnableMoves* moves, std::unordered_set<uint32_t> flags)
|
||||
: SpeciesVariant(name, height, weight, baseExperience, types, baseStats, talents, secretTalents, moves,
|
||||
std::move(flags)) {}
|
||||
|
||||
@@ -9,12 +9,14 @@ namespace PkmnLib::Library {
|
||||
public:
|
||||
PokemonForme(const ArbUt::StringView& name, float height, float weight, uint32_t baseExperience,
|
||||
const ArbUt::List<uint8_t>& types, CreatureLib::Library::StatisticSet<uint16_t> baseStats,
|
||||
const ArbUt::List<ArbUt::StringView>& talents, const ArbUt::List<ArbUt::StringView>& secretTalents,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const CreatureLib::Library::Talent>>& talents,
|
||||
const ArbUt::List<ArbUt::BorrowedPtr<const CreatureLib::Library::Talent>>& secretTalents,
|
||||
const LearnableMoves* moves, std::unordered_set<uint32_t> flags = {});
|
||||
|
||||
private:
|
||||
public:
|
||||
inline const ArbUt::StringView& GetAbility(const CreatureLib::Library::TalentIndex& index) const {
|
||||
inline const ArbUt::BorrowedPtr<const CreatureLib::Library::Talent>&
|
||||
GetAbility(const CreatureLib::Library::TalentIndex& index) const {
|
||||
return GetTalent(index);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -66,6 +66,10 @@ static std::string NicknameWrapper(const PkmnLib::Battling::Pokemon* obj) {
|
||||
return std::string(obj->GetNickname().value());
|
||||
}
|
||||
|
||||
static const ArbUt::StringView& GetActiveAbilityWrapper(PkmnLib::Battling::Pokemon* p) {
|
||||
return p->GetActiveTalent()->GetName();
|
||||
}
|
||||
|
||||
static CScriptHandle AddVolatileWrapper(PkmnLib::Battling::Pokemon* obj, const ArbUt::StringView& name) {
|
||||
auto handle = CScriptHandle();
|
||||
auto* resolver = static_cast<AngelScriptResolver*>(obj->GetLibrary()->GetScriptResolver().get());
|
||||
@@ -90,8 +94,6 @@ void RegisterPokemonClass::RegisterPokemonType(asIScriptEngine* engine) {
|
||||
GetHeldItem);
|
||||
REGISTER_GETTER("Pokemon", "uint32 get_CurrentHealth() const property", CreatureLib::Battling::Creature,
|
||||
GetCurrentHealth);
|
||||
REGISTER_GETTER("Pokemon", "const constString& get_ActiveAbility() const property", CreatureLib::Battling::Creature,
|
||||
GetActiveTalent);
|
||||
REGISTER_GETTER("Pokemon", "bool get_IsFainted() const property", CreatureLib::Battling::Creature, IsFainted);
|
||||
REGISTER_GETTER("Pokemon", "uint32 get_MaxHealth() const property", CreatureLib::Battling::Creature, GetMaxHealth);
|
||||
REGISTER_GETTER("Pokemon", "const Species@ get_DisplaySpecies() const property", CreatureLib::Battling::Creature,
|
||||
@@ -111,6 +113,10 @@ void RegisterPokemonClass::RegisterPokemonType(asIScriptEngine* engine) {
|
||||
auto r = engine->RegisterObjectMethod("Pokemon", "void set_Weight(float value) property",
|
||||
asMETHOD(PkmnLib::Battling::Pokemon, SetWeight), asCALL_THISCALL);
|
||||
Ensure(r >= 0);
|
||||
r = engine->RegisterObjectMethod("Pokemon", "const constString& get_ActiveAbility() const property",
|
||||
asFUNCTION(GetActiveAbilityWrapper), asCALL_CDECL_OBJFIRST);
|
||||
Ensure(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("Pokemon", "void set_Height(float value) property",
|
||||
asMETHOD(PkmnLib::Battling::Pokemon, SetHeight), asCALL_THISCALL);
|
||||
Ensure(r >= 0);
|
||||
|
||||
@@ -63,7 +63,7 @@ void RegisterSpeciesTypes::RegisterSpeciesType(asIScriptEngine* engine) {
|
||||
}
|
||||
|
||||
const ArbUt::StringView& GetAbility(PkmnLib::Library::PokemonForme* p, bool hidden, uint8_t index) {
|
||||
return p->GetAbility(CreatureLib::Library::TalentIndex(hidden, index));
|
||||
return p->GetAbility(CreatureLib::Library::TalentIndex(hidden, index))->GetName();
|
||||
}
|
||||
|
||||
void RegisterSpeciesTypes::RegisterFormeType(asIScriptEngine* engine) {
|
||||
|
||||
Reference in New Issue
Block a user