#include "armor.h" #include "creature.h" #include "entry.h" #include "rules.h" #include #include using namespace std; namespace entry{ string getTextHelper(const Armor& a, string dexBonusLight, string dexBonusMedium) { stringstream text; text << "AC: " << a.getACBonus(); if(a.getArmorType() == "light") { text << " + dex" << dexBonusLight; } else if(a.getArmorType() == "medium") { text << " + dex max 2" << dexBonusMedium; } if(a.getStrRequirement() > 0) { text << ", Mininum str: " << a.getStrRequirement(); } if(a.stealthDisadvantage()) { text << ", Imposes stealth disadvantage"; } text << ". " << a.Substantial::getText(); return text.str(); } string Armor::getText() const { return getTextHelper(*this, "", ""); } string Armor::getText(const creature::Creature& c) const { stringstream text; text << getName() << " (" << getType() << "): "; int dex = c.getBonus(rules::Ability::Dex()); string dexBonusLight = " (i.e., " + to_string(getACBonus() + dex) + ")"; string dexBonusMedium = " (i.e., " + to_string(getACBonus() + ((dex > 2)? 2 : dex)) + ")"; text << getTextHelper(*this, dexBonusLight, dexBonusMedium); return text.str(); } }