#include "rules.h" namespace rules { const std::map Ability::abilities { {"str", "Strength"}, {"dex", "Dexterity"}, {"con", "Constitution"}, {"int", "Intelligence"}, {"wis", "Wisdom"}, {"cha", "Charisma"} }; const std::map Skill::skill2ability { {"Athletics", "str"}, {"Acrobatics", "dex"}, {"Sleight of Hand", "dex"}, {"Stealth", "dex"}, {"Arcana", "int"}, {"History", "int"}, {"Investigation", "int"}, {"Nature", "int"}, {"Religion", "int"}, {"Animal Handling", "wis"}, {"Insight", "wis"}, {"Medicine", "wis"}, {"Perception", "wis"}, {"Survival", "wis"}, {"Deception", "cha"}, {"Intimidation", "cha"}, {"Performance", "cha"}, {"Persuasion", "cha"} }; const std::map Qualifier::negative2positive { {"nonmagical", "magical"}, {"non-silvered", "silvered"}, {"non-adamantine", "adamantine"} }; const std::set Condition::conditions {"blinded", "charmed", "deafened", "frightened", "grappled", "incapacitated", "invisible", "paralyzed", "petrified", "poisoned", "prone", "restrained", "stunned", "unconscious", "exhausted1", "exhausted2", "exhausted3", "exhausted4", "exhausted5", "exhausted6"}; std::ostream& operator<<(std::ostream& os, const Ability& a) { os << std::string(a); return os; } std::ostream& operator<<(std::ostream& os, const Skill& s) { os << std::string(s); return os; } std::ostream& operator<<(std::ostream& os, const Qualifier& q) { os << std::string(q); return os; } std::ostream& operator<<(std::ostream& os, const Condition& c) { os << std::string(c); return os; } }