-
Notifications
You must be signed in to change notification settings - Fork 4
/
D20SavingThrow.hpp
43 lines (34 loc) · 1.3 KB
/
D20SavingThrow.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
#ifndef __D20SavingThrow
#define __D20SavingThrow
#include "GlobalDef.hpp"
#include "Rollable.hpp"
namespace D20Rules
{
class D20Character;
namespace Rollables
{
class D20SavingThrow : public Rollable
{
private:
D20Rules::Definitions::BaseType iBase;
Loki::StrongPtr<D20Rules::Definitions::ModifierType, false> iModifier;
D20Rules::Definitions::MiscType iMisc;
D20Rules::Definitions::MiscType iTemp;
void updateTotal() { *iTotal = iBase + *iModifier + iMisc + iTemp; }
public:
D20SavingThrow(Definitions::BaseType iNewBase, Definitions::MiscType iNewMisc);
D20SavingThrow();
inline Definitions::BaseType getBase() { return iBase; }
inline Definitions::ModifierType getModifier() { return *iModifier; }
inline Definitions::MiscType getMisc() { return iMisc; }
inline Definitions::MiscType getTemp() { return iTemp; }
inline int getTotal() { updateTotal(); return *iTotal; }
void addBase(Definitions::LevelType iLevel, Definitions::SavingThrowRating strRating);
void removeBase(Definitions::LevelType iLevel, Definitions::SavingThrowRating strRating);
inline void setMisc(Definitions::MiscType iNewMisc) { iMisc = iNewMisc; }
inline void setTemp(Definitions::MiscType iNewTemp) { iTemp = iNewTemp; }
friend class D20Character;
};
}
}
#endif