Adds support for changing variant by variant name.
continuous-integration/drone/push Build is passing

This commit is contained in:
Deukhoofd committed 2021-11-21 13:44:48 +01:00
1 parent 9270dcca8c
commit 40d6e8a389
2 files changed
+10 -1

No files matched your search

+9 -1
View File
@@ -56,6 +56,14 @@ namespace CreatureLib::Battling {
ChangeVariant(variant);
}
void Battling::Creature::ChangeVariant(const ArbUt::StringView& variantName) {
auto opt = _species->TryGetVariant(variantName);
if (!opt.has_value()) {
THROW("Unknown variant: ", variantName);
}
ChangeVariant(opt.value());
}
void Creature::ChangeVariant(const ArbUt::BorrowedPtr<const Library::SpeciesVariant>& variant) {
_variant = variant;
@@ -430,4 +438,4 @@ Battling::Creature::~Creature() {
if (_battleData.OnBattleField && _battleData.Side.HasValue()) {
_battleData.Side.GetValue()->ForceClearCreature(_battleData.Index.GetCreatureIndex());
}
}
}
+1
View File
@@ -92,6 +92,7 @@ namespace CreatureLib::Battling {
inline const ArbUt::BorrowedPtr<const Library::SpeciesVariant>& GetVariant() const noexcept { return _variant; }
virtual void ChangeSpecies(const ArbUt::BorrowedPtr<const Library::CreatureSpecies>& species,
const ArbUt::BorrowedPtr<const Library::SpeciesVariant>& variant);
virtual void ChangeVariant(const ArbUt::StringView& variantName);
virtual void ChangeVariant(const ArbUt::BorrowedPtr<const Library::SpeciesVariant>& variant);
inline level_int_t GetLevel() const noexcept { return _level; }
inline uint32_t GetExperience() const noexcept { return _experience; }