Adds support for changing variant by variant name.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
9270dcca8c
commit
40d6e8a389
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
|
|
Loading…
Reference in New Issue