Bring Library class in line with style lines.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2020-06-20 18:50:55 +02:00
parent add77325a4
commit 14458ec30c
21 changed files with 133 additions and 166 deletions

View File

@@ -11,13 +11,11 @@ CreatureSpecies::CreatureSpecies(uint16_t id, const ArbUt::CaseInsensitiveConstS
SetVariant("default"_cnc, defaultVariant);
}
bool CreatureSpecies::HasVariant(const ArbUt::CaseInsensitiveConstString& name) const { return _variants.Has(name); }
bool CreatureSpecies::TryGetVariant(const ArbUt::CaseInsensitiveConstString& name,
ArbUt::BorrowedPtr<const SpeciesVariant>& out) const {
ArbUt::BorrowedPtr<const SpeciesVariant>& out) const noexcept {
return TryGetVariant(name.GetHash(), out);
}
bool CreatureSpecies::TryGetVariant(uint32_t hash, ArbUt::BorrowedPtr<const SpeciesVariant>& out) const {
bool CreatureSpecies::TryGetVariant(uint32_t hash, ArbUt::BorrowedPtr<const SpeciesVariant>& out) const noexcept {
auto find = _variants.GetStdMap().find(hash);
if (find == _variants.end())
return false;
@@ -25,13 +23,6 @@ bool CreatureSpecies::TryGetVariant(uint32_t hash, ArbUt::BorrowedPtr<const Spec
return true;
}
ArbUt::BorrowedPtr<const SpeciesVariant>
CreatureSpecies::GetVariant(const ArbUt::CaseInsensitiveConstString& name) const {
return _variants.Get(name);
}
ArbUt::BorrowedPtr<const SpeciesVariant> CreatureSpecies::GetVariant(uint32_t key) const { return _variants.Get(key); }
bool CreatureSpecies::HasVariant(uint32_t hash) const { return _variants.Has(hash); }
void CreatureSpecies::SetVariant(const ArbUt::CaseInsensitiveConstString& name, const SpeciesVariant* variant) {
_variants.GetStdMap().insert({name, std::unique_ptr<const SpeciesVariant>(variant)});
}

View File

@@ -28,27 +28,33 @@ namespace CreatureLib::Library {
const SpeciesVariant* defaultVariant, float genderRatio,
const ArbUt::CaseInsensitiveConstString& growthRate, uint8_t captureRate);
virtual ~CreatureSpecies() { _variants.Clear(); }
virtual ~CreatureSpecies() noexcept { _variants.Clear(); }
inline uint16_t GetId() const { return _id; }
inline float GetGenderRate() const { return _genderRate; }
inline const ArbUt::CaseInsensitiveConstString& GetGrowthRate() const { return _growthRate; }
inline uint8_t GetCaptureRate() const { return _captureRate; }
inline uint16_t GetId() const noexcept { return _id; }
inline float GetGenderRate() const noexcept { return _genderRate; }
inline const ArbUt::CaseInsensitiveConstString& GetGrowthRate() const noexcept { return _growthRate; }
inline uint8_t GetCaptureRate() const noexcept { return _captureRate; }
[[nodiscard]] bool HasVariant(const ArbUt::CaseInsensitiveConstString& key) const;
[[nodiscard]] bool HasVariant(uint32_t hash) const;
[[nodiscard]] inline bool HasVariant(const ArbUt::CaseInsensitiveConstString& key) const noexcept {
return _variants.Has(key);
}
[[nodiscard]] inline bool HasVariant(uint32_t hash) const noexcept { return _variants.Has(hash); }
[[nodiscard]] bool TryGetVariant(const ArbUt::CaseInsensitiveConstString& name,
ArbUt::BorrowedPtr<const SpeciesVariant>& out) const;
[[nodiscard]] bool TryGetVariant(uint32_t hash, ArbUt::BorrowedPtr<const SpeciesVariant>& out) const;
[[nodiscard]] ArbUt::BorrowedPtr<const SpeciesVariant>
GetVariant(const ArbUt::CaseInsensitiveConstString& key) const;
[[nodiscard]] ArbUt::BorrowedPtr<const SpeciesVariant> GetVariant(uint32_t key) const;
[[nodiscard]] Gender GetRandomGender(ArbUt::Random& rand) const;
[[nodiscard]] const ArbUt::CaseInsensitiveConstString& GetName() const { return _name; }
ArbUt::BorrowedPtr<const SpeciesVariant>& out) const noexcept;
[[nodiscard]] bool TryGetVariant(uint32_t hash, ArbUt::BorrowedPtr<const SpeciesVariant>& out) const noexcept;
[[nodiscard]] inline ArbUt::BorrowedPtr<const SpeciesVariant>
GetVariant(const ArbUt::CaseInsensitiveConstString& key) const {
return _variants.Get(key);
}
[[nodiscard]] inline ArbUt::BorrowedPtr<const SpeciesVariant> GetVariant(uint32_t key) const {
return _variants.Get(key);
}
[[nodiscard]] Gender GetRandomGender(ArbUt::Random& rand) const noexcept;
[[nodiscard]] inline const ArbUt::CaseInsensitiveConstString& GetName() const { return _name; }
void SetVariant(const ArbUt::CaseInsensitiveConstString& name, const SpeciesVariant* variant);
const ArbUt::Dictionary<uint32_t, std::unique_ptr<const SpeciesVariant>>& GetVariantsIterator() const {
inline const ArbUt::Dictionary<uint32_t, std::unique_ptr<const SpeciesVariant>>& GetVariantsIterator() const {
return _variants;
}
};

View File

@@ -11,8 +11,4 @@ void LearnableAttacks::AddLevelAttack(uint8_t level, const AttackData* attack) {
_learnedByLevel.Insert(level, levelData);
}
_distinctAttacks.insert(attack);
}
const ArbUt::List<const AttackData*>& LearnableAttacks::GetAttacksForLevel(uint8_t level) const {
return _learnedByLevel.Get(level);
}
}

View File

@@ -29,7 +29,9 @@ namespace CreatureLib::Library {
void AddLevelAttack(uint8_t level, const AttackData* attack);
const ArbUt::List<const AttackData*>& GetAttacksForLevel(uint8_t level) const;
inline const ArbUt::List<const AttackData*>& GetAttacksForLevel(uint8_t level) const {
return _learnedByLevel.Get(level);
}
virtual const AttackData* GetRandomAttack(ArbUt::Random& rand) const {
if (_distinctAttacks.empty()) {

View File

@@ -1,16 +1,5 @@
#include "SpeciesVariant.hpp"
#include <algorithm>
#include <utility>
const ArbUt::List<uint8_t>& CreatureLib::Library::SpeciesVariant::GetTypes() const { return _types; }
size_t CreatureLib::Library::SpeciesVariant::GetTypeCount() const { return _types.Count(); }
uint8_t CreatureLib::Library::SpeciesVariant::GetType(size_t index) const { return _types[index]; }
uint16_t CreatureLib::Library::SpeciesVariant::GetStatistic(CreatureLib::Library::Statistic stat) const {
return _baseStatistics.GetStat(stat);
}
const CreatureLib::Library::TalentIndex
CreatureLib::Library::SpeciesVariant::GetTalentIndex(const ArbUt::CaseInsensitiveConstString& talent) const {
@@ -25,23 +14,4 @@ CreatureLib::Library::SpeciesVariant::GetTalentIndex(const ArbUt::CaseInsensitiv
}
}
throw CreatureException("The given talent is not a valid talent for this creature.");
}
CreatureLib::Library::TalentIndex CreatureLib::Library::SpeciesVariant::GetRandomTalent(ArbUt::Random* rand) const {
return TalentIndex(false, rand->Get(_talents.Count()));
}
const std::unique_ptr<const CreatureLib::Library::LearnableAttacks>&
CreatureLib::Library::SpeciesVariant::GetLearnableAttacks() const {
return _attacks;
}
CreatureLib::Library::SpeciesVariant::SpeciesVariant(ArbUt::CaseInsensitiveConstString name, float height, float weight,
uint32_t baseExperience, ArbUt::List<uint8_t> types,
CreatureLib::Library::StatisticSet<uint16_t> baseStats,
ArbUt::List<ArbUt::CaseInsensitiveConstString> talents,
ArbUt::List<ArbUt::CaseInsensitiveConstString> secretTalents,
const LearnableAttacks* attacks)
: _name(std::move(name)), _height(height), _weight(weight), _baseExperience(baseExperience),
_types(std::move(types)), _baseStatistics(baseStats), _talents(std::move(talents)),
_secretTalents(std::move(secretTalents)), _attacks(attacks) {}
}

View File

@@ -28,11 +28,14 @@ namespace CreatureLib::Library {
std::unique_ptr<const LearnableAttacks> _attacks;
public:
SpeciesVariant(ArbUt::CaseInsensitiveConstString name, float height, float weight, uint32_t baseExperience,
ArbUt::List<uint8_t> types, Library::StatisticSet<uint16_t> baseStats,
ArbUt::List<ArbUt::CaseInsensitiveConstString> talents,
ArbUt::List<ArbUt::CaseInsensitiveConstString> secretTalents, const LearnableAttacks* attacks);
SpeciesVariant(const ArbUt::CaseInsensitiveConstString& name, float height, float weight,
uint32_t baseExperience, const ArbUt::List<uint8_t>& types,
Library::StatisticSet<uint16_t> baseStats,
const ArbUt::List<ArbUt::CaseInsensitiveConstString>& talents,
const ArbUt::List<ArbUt::CaseInsensitiveConstString>& secretTalents,
const LearnableAttacks* attacks)
: _name(name), _height(height), _weight(weight), _baseExperience(baseExperience), _types((types)),
_baseStatistics(baseStats), _talents(talents), _secretTalents(secretTalents), _attacks(attacks){};
virtual ~SpeciesVariant() = default;
inline const ArbUt::CaseInsensitiveConstString& GetName() const { return _name; }
@@ -40,12 +43,14 @@ namespace CreatureLib::Library {
inline float GetWeight() const { return _weight; }
inline uint32_t GetBaseExperience() const { return _baseExperience; }
[[nodiscard]] size_t GetTypeCount() const;
[[nodiscard]] uint8_t GetType(size_t index) const;
[[nodiscard]] const ArbUt::List<uint8_t>& GetTypes() const;
[[nodiscard]] uint16_t GetStatistic(Library::Statistic stat) const;
[[nodiscard]] const size_t GetTalentCount() const { return _talents.Count(); }
[[nodiscard]] const size_t GetSecretTalentCount() const { return _secretTalents.Count(); }
[[nodiscard]] inline size_t GetTypeCount() const { return _types.Count(); }
[[nodiscard]] inline uint8_t GetType(size_t index) const { return _types[index]; }
[[nodiscard]] inline const ArbUt::List<uint8_t>& GetTypes() const { return _types; }
[[nodiscard]] inline uint16_t GetStatistic(Library::Statistic stat) const {
return _baseStatistics.GetStat(stat);
}
[[nodiscard]] inline const size_t GetTalentCount() const noexcept { return _talents.Count(); }
[[nodiscard]] inline const size_t GetSecretTalentCount() const noexcept { return _secretTalents.Count(); }
[[nodiscard]] const ArbUt::CaseInsensitiveConstString& GetTalent(const TalentIndex& index) const {
if (index.IsSecret() && _secretTalents.Count() > 0) {
auto i = index.GetIndex();
@@ -60,8 +65,13 @@ namespace CreatureLib::Library {
}
[[nodiscard]] const TalentIndex GetTalentIndex(const ArbUt::CaseInsensitiveConstString& talent) const;
[[nodiscard]] const std::unique_ptr<const CreatureLib::Library::LearnableAttacks>& GetLearnableAttacks() const;
[[nodiscard]] TalentIndex GetRandomTalent(ArbUt::Random* rand) const;
[[nodiscard]] inline ArbUt::BorrowedPtr<const CreatureLib::Library::LearnableAttacks>
GetLearnableAttacks() const {
return _attacks;
}
[[nodiscard]] inline TalentIndex GetRandomTalent(ArbUt::Random* rand) const noexcept {
return TalentIndex(false, rand->Get(_talents.Count()));
}
[[nodiscard]] inline const ArbUt::List<ArbUt::CaseInsensitiveConstString>& GetTalents() const {
return _talents;
}

View File

@@ -8,10 +8,10 @@ namespace CreatureLib::Library {
uint8_t _index;
public:
TalentIndex() : _secret(false), _index(0){};
TalentIndex(bool secret, uint8_t index) : _secret(secret), _index(index) {}
constexpr inline bool IsSecret() const { return _secret; }
constexpr inline bool GetIndex() const { return _index; }
inline TalentIndex() noexcept : _secret(false), _index(0){};
inline TalentIndex(bool secret, uint8_t index) noexcept : _secret(secret), _index(index) {}
constexpr inline bool IsSecret() const noexcept { return _secret; }
constexpr inline bool GetIndex() const noexcept { return _index; }
};
}