diff options
Diffstat (limited to 'src/creature.cc')
| -rw-r--r-- | src/creature.cc | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/src/creature.cc b/src/creature.cc index f48888c..6491024 100644 --- a/src/creature.cc +++ b/src/creature.cc @@ -115,6 +115,17 @@ namespace creature {          }      } +    int Creature::saveOrDamage(const rules::Ability& ability, int DC, int amount, const std::string& type, const std::vector<rules::Qualifier>& qualifiers, bool saveHalves) { +        // TODO: Something about evasion +        int rolled = dice::roll(20) + getAbilitySaveBonus(ability); +        if(rolled >= DC and saveHalves) { +            applyDamage(amount/2, type, qualifiers); +        } else if(rolled < DC) { +            applyDamage(amount, type, qualifiers); +        } +        return rolled; +    } +      void Creature::applyHealing(int amount) {          data->hp += amount;          if(data->hp > data->hpMax) { | 
