From be88609c825e18201f240415fe74a31c1a789484 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 19 May 2021 18:00:16 -0400 Subject: Added git command; refactoring --- src/creature.h | 78 ++++++++++++++++++++-------------------------------------- 1 file changed, 26 insertions(+), 52 deletions(-) (limited to 'src/creature.h') diff --git a/src/creature.h b/src/creature.h index b2a01e6..c343482 100644 --- a/src/creature.h +++ b/src/creature.h @@ -4,7 +4,6 @@ #include "entry.h" #include "feature.h" #include "item.h" -#include #include namespace entry { @@ -16,6 +15,7 @@ namespace entry { namespace creature { class Creature; + struct creatureImpl; struct dmgType { std::string type; @@ -40,6 +40,7 @@ namespace creature { class Creature : public entry::Entry { public: + Creature(); virtual ~Creature() {} virtual void init() override; @@ -49,41 +50,37 @@ namespace creature { int getAbilitySaveBonus(const rules::Ability& ability) const; std::map getSkills(void) const; std::map getSaves(void) const; - //Override getText virtual std::string getText() const override; - - // Inline getters - std::string getCreatureName(void) const {return getName();} - std::string getGivenName(void) const {return givenName;} - std::string getSize(void) const {return size;} - std::string getAlignment(void) const {return alignment;} - double getCR(void) const {return cr;} - NatArmor getNaturalArmor(void) const {return natural_armor;} - std::string getLanguages(void) const {return langs;} - int getHP(void) const {return hp;} - int getHPMax(void) const {return hpMax;} - std::vector getSenses(void) const {return senses;} - std::string getSpeed(void) const {return speed;} - int getScore(const rules::Ability& ability) const {return stats.at(ability);} - int getBonus(const rules::Ability& ability) const {return std::floor((getScore(ability) - 10) / 2.0);} - int getProficiency(void) const {return prof;} - std::vector> getFeatures(void) const {return features;} + std::string getCreatureName(void) const; + std::string getGivenName(void) const; + std::string getSize(void) const; + std::string getAlignment(void) const; + double getCR(void) const; + NatArmor getNaturalArmor(void) const; + std::string getLanguages(void) const; + int getHP(void) const; + int getHPMax(void) const; + std::vector getSenses(void) const; + std::string getSpeed(void) const; + int getScore(const rules::Ability& ability) const; + int getBonus(const rules::Ability& ability) const; + int getProficiency(void) const; + std::vector> getFeatures(void) const; std::shared_ptr getSpellcasting(void) const; - std::vector> getInventory(void) const {return inventory;} - std::vector getDmgImmunities(void) const {return d_immunities;} - std::vector getDmgResistances(void) const {return d_resistances;} - std::vector getDmgVulnerabilities(void) const {return d_vulnerabilities;} - std::vector getCondImmunities(void) const {return c_immunities;} - + std::vector> getInventory(void) const; + std::vector getDmgImmunities(void) const; + std::vector getDmgResistances(void) const; + std::vector getDmgVulnerabilities(void) const; + std::vector getCondImmunities(void) const; // Setters (mutators) - void setGivenName(std::string name) {givenName = name;} + void setGivenName(const std::string& name); void applyDamage(int amount, const std::string& type, const std::vector& qualifiers); void applyHealing(int amount); void setScore(const rules::Ability& ability, int score); void setProfLevel(const rules::Skill& skill, int level); - void setProficiency(int p) {prof = p;} + void setProficiency(int p); void addInventoryItem(std::shared_ptr item); void addSpellcasting(void); void addSpell(std::shared_ptr spell); @@ -91,33 +88,10 @@ namespace creature { void removeInventoryItem(std::shared_ptr item); void longRest(void); - NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Entry, Creature, givenName, hpMax, hp, inventory, stats, skills, prof, size, alignment, hit_die_count, hit_die_sides, speed, saves, senses, langs, cr, observant, natural_armor, d_immunities, d_resistances, d_vulnerabilities, c_immunities, features); + NLOHMANN_FRIEND_DECLARES(Creature); private: - std::string givenName; - int hpMax; - int hp; - std::vector> inventory; - std::map stats; - std::map skills; - int prof; - std::string size; - std::string alignment; - int hit_die_count; - int hit_die_sides; - std::string speed; - std::vector saves; - std::vector senses; - std::string langs; - double cr; - bool observant; - NatArmor natural_armor; - std::vector d_immunities; - std::vector d_resistances; - std::vector d_vulnerabilities; - std::vector c_immunities; - std::vector> features; - + std::shared_ptr data; }; // Helper function to get all attacks (weapons and pseudo-weapons included) -- cgit v1.2.3