-
Notifications
You must be signed in to change notification settings - Fork 4
/
Rollable.hpp
50 lines (41 loc) · 1.26 KB
/
Rollable.hpp
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
#ifndef __Rollable
#define __Rollable
#include <list>
#include "GlobalDef.hpp"
namespace D20Rules
{
namespace Rollables
{
class Rollable
{
protected:
Loki::StrongPtr<short int> iTotal;
virtual void updateTotal() {};
public:
Rollable();
Rollable(const Rollable &rCopy);
Rollable(const int iNewTotal);
virtual ~Rollable() {}
class Result
{
public:
unsigned int RollResult;
bool Success;
};
class MultipleResults
{
public:
unsigned int RollResult;
unsigned int Successes;
bool Success;
};
Rollable::Result Roll(const unsigned int iDC) const; // See documention below.
Rollable::Result Roll(const unsigned int iDC, const std::list<int> &lExtraModifiers) const; // See documention below.
Rollable::MultipleResults Roll(const std::list<int> &lDCList) const; // See documention below.
Rollable::MultipleResults Roll(const std::list<int> &lDCList, const std::list<int> &lExtraModifiers) const; // See documention below.
int Roll(const Definitions::Dice dRollType, const unsigned int iRolls) const; // See documention below.
int Roll(const Definitions::Dice dRollType, const std::list<int> &lExtraModifiers, const unsigned int iRolls) const; // See documention below.
};
}
}
#endif