-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBarbarian.cpp
51 lines (36 loc) · 956 Bytes
/
Barbarian.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <string>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include "Barbarian.hpp"
using namespace std;
Barbarian::Barbarian() : Creature::Creature() {
attackRolls = 2;
attackDieSides = 6;
defenseRolls = 2;
defenseDieSides = 6;
armor = 0;
str = 12;
name = "Barbarian";
}
int Barbarian::attack() {
int attackTotal = 0;
for (int i = 0; i < attackRolls; i++) {
attackTotal+=roll(attackDieSides);
}
cout << name << " attacks for " << attackTotal << endl;
return attackTotal;
}
int Barbarian::defend(int damage) {
int defenseValue = 0;
for (int i = 0; i < defenseRolls; i++) {
defenseValue = defenseValue + roll(defenseDieSides);
}
cout << name << " defends for " << defenseValue << endl;
if (defenseValue >= damage) {
return 0;
}
else {
return damage - defenseValue;
}
}