Implemented and fixed all code required to run at least a single turn.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-12-05 12:56:41 +01:00
parent 5d6ac316eb
commit 6f32d1245b
17 changed files with 171 additions and 58 deletions

View File

@@ -17,6 +17,8 @@ namespace CreatureLib::Battling {
class BattleLibrary;
class Creature : public ScriptSource {
const BattleLibrary* _library;
GetProperty(const Library::CreatureSpecies*, Species);
GetProperty(const Library::SpeciesVariant*, Variant);
@@ -37,7 +39,6 @@ namespace CreatureLib::Battling {
Battle* _battle;
BattleSide* _side;
BattleLibrary* _library;
std::string _nickname = "";
int8_t _talentIndex;
@@ -52,12 +53,17 @@ namespace CreatureLib::Battling {
ScriptSet _volatile = {};
public:
Creature(const Library::CreatureSpecies* species, const Library::SpeciesVariant* variant, uint8_t level,
uint32_t experience, Core::StatisticSet<uint8_t> statExp, Core::StatisticSet<uint8_t> statPotential,
uint32_t uid, Library::Gender gender, uint8_t coloring, const Library::Item* heldItem,
std::string nickname, int8_t talent, std::vector<LearnedAttack*> attacks);
Creature(const BattleLibrary* library, const Library::CreatureSpecies* species,
const Library::SpeciesVariant* variant, uint8_t level, uint32_t experience,
Core::StatisticSet<uint8_t> statExp, Core::StatisticSet<uint8_t> statPotential, uint32_t uid,
Library::Gender gender, uint8_t coloring, const Library::Item* heldItem, std::string nickname,
int8_t talent, std::vector<LearnedAttack*> attacks);
virtual ~Creature() = default;
virtual ~Creature() {
for (auto attack : _attacks) {
delete attack;
}
};
void SetBattleData(Battle* battle, BattleSide* side);
Battle* GetBattle() const;
@@ -76,10 +82,9 @@ namespace CreatureLib::Battling {
void GetActiveScripts(std::vector<ScriptWrapper>& scripts) override;
// region Stat APIs
std::vector<LearnedAttack*>& GetAttacks() { return _attacks; }
void SetBattle(Battle* battle);
void SetBattleLibrary(BattleLibrary* library);
// region Stat APIs
void ChangeStatBoost(Core::Statistic stat, int8_t diffAmount);
[[nodiscard]] uint32_t GetFlatStat(Core::Statistic stat) const;