-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcharacter.h
203 lines (180 loc) · 7.3 KB
/
character.h
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#ifndef CHARACTER_H
#define CHARACTER_H
#include "shared.h"
#include "characteristic.h"
#include "complication.h"
#include "option.h"
#include "powers.h"
#include "skilltalentorperk.h"
#include <QObject>
#include <QPixmap>
class Character
{
public:
Character();
Character(const Character& c);
Character(Character&& c): Character(c) { }
~Character() { }
Character& operator=(const Character& c);
Character& operator=(Character&& c);
QString alternateIds() { return _alternateIds; }
Character& alternateIds(QString a) { _alternateIds = a; return *this; }
QString campaignName() { return _campaignName; }
Character& campaignName(QString n) { _campaignName = n; return *this; }
QString characterName() { return _characterName; }
Character& characterName(QString n) { _characterName = n; return *this; }
QString eyeColor() { return _eyeColor; }
Character& eyeColor(QString n) { _eyeColor = n; return *this; }
QString gamemaster() { return _gamemaster; }
Character& gamemaster(QString n) { _gamemaster = n; return *this; }
QString genre() { return _genre; }
Character& genre(QString n) { _genre = n; return *this; }
QString hairColor() { return _hairColor; }
Character& hairColor(QString n) { _hairColor = n; return *this; }
QString playerName() { return _playerName; }
Character& playerName(QString n) { _playerName = n; return *this; }
Points xp() { return _xp; }
Character& xp(Points n) { _xp = n; return *this; }
Characteristic& STR() { return _STR; }
Characteristic& DEX() { return _DEX; }
Characteristic& CON() { return _CON; }
Characteristic& INT() { return _INT; }
Characteristic& EGO() { return _EGO; }
Characteristic& PRE() { return _PRE; }
Characteristic& OCV() { return _OCV; }
Characteristic& DCV() { return _DCV; }
Characteristic& OMCV() { return _OMCV; }
Characteristic& DMCV() { return _DMCV; }
Characteristic& SPD() { return _SPD; }
Characteristic& PD() { return _PD; }
Characteristic& ED() { return _ED; }
Characteristic& REC() { return _REC; }
Characteristic& END() { return _END; }
Characteristic& BODY() { return _BODY; }
Characteristic& STUN() { return _STUN; }
QString height() { return _height; }
Character& height(QString h) { _height = h; return *this; }
QString weight() { return _weight; }
Character& weight(QString w) { _weight = w; return *this; }
int& tempPD() { return _tempPD; }
int& tempED() { return _tempED; }
int& rPD() { return _rPD; }
int& rED() { return _rED; }
int& temprPD() { return _temprPD; }
int& temprED() { return _temprED; }
int& FD() { return _FD; }
int& MD() { return _MD; }
int& PowD() { return _PowD; }
int& running() { return _running; }
int& leaping() { return _leaping; }
int& swimming() { return _swimming; }
Characteristic& characteristic(int x) {
switch (x) {
case 0: return _STR;
case 1: return _DEX;
case 2: return _CON;
case 3: return _INT;
case 4: return _EGO;
case 5: return _PRE; // NOLINT
case 6: return _OCV; // NOLINT
case 7: return _DCV; // NOLINT
case 8: return _OMCV; // NOLINT
case 9: return _DMCV; // NOLINT
case 10: return _SPD; // NOLINT
case 11: return _PD; // NOLINT
case 12: return _ED; // NOLINT
case 13: return _REC; // NOLINT
case 14: return _END; // NOLINT
case 15: return _BODY; // NOLINT
default: return _STUN; // NOLINT
}
}
QList<shared_ptr<Complication>>& complications() { return _complications; }
QList<shared_ptr<SkillTalentOrPerk>>& skillsTalentsOrPerks() { return _skillsTalentsOrPerks; }
QList<shared_ptr<Power>>& powersOrEquipment() { return _powers; }
QString& image() { return _image; }
qulonglong& imageDate() { return _imageDate; }
QByteArray& imageData() { return _imageData; }
QString& notes() { return _notes; }
void clearEnhancers() { _hasJackOfAllTrades = _hasLinguist = _hasScholar = _hasScientist = _hasTraveler = _hasWellConnected = false; }
bool& hasJackOfAllTrades() { return _hasJackOfAllTrades; }
bool& hasLinguist() { return _hasLinguist; }
bool& hasScholar() { return _hasScholar; }
bool& hasScientist() { return _hasScientist; }
bool& hasTakesNoSTUN() { return _hasTakesNoSTUN; }
bool& hasTraveler() { return _hasTraveler; }
bool& hasWellConnected() { return _hasWellConnected; }
QJsonDocument copy(Option&);
void erase();
#ifdef __wasm__
bool load(Option&, const QByteArray&);
#else
bool load(Option&, QString);
#endif
void paste(Option&, QJsonDocument&);
bool store(Option&, QString);
private:
Characteristic _STR;
Characteristic _DEX;
Characteristic _CON;
Characteristic _INT;
Characteristic _EGO;
Characteristic _PRE;
Characteristic _OCV;
Characteristic _DCV;
Characteristic _OMCV;
Characteristic _DMCV;
Characteristic _SPD;
Characteristic _PD;
Characteristic _ED;
Characteristic _REC;
Characteristic _END;
Characteristic _BODY;
Characteristic _STUN;
QString _height;
QString _weight;
int _FD = 0;
int _MD = 0;
int _PowD = 0;
int _rPD = 0;
int _rED = 0;
int _temprPD = 0;
int _temprED = 0;
int _tempPD = 0;
int _tempED = 0;
int _running = 12; // NOLINT
int _leaping = 4;
int _swimming = 4;
bool _hasJackOfAllTrades = false;
bool _hasLinguist = false;
bool _hasScholar = false;
bool _hasScientist = false;
bool _hasTraveler = false;
bool _hasWellConnected = false;
bool _hasTakesNoSTUN = false;
QList<shared_ptr<Complication>> _complications;
QList<shared_ptr<SkillTalentOrPerk>> _skillsTalentsOrPerks;
QList<shared_ptr<Power>> _powers;
QList<std::tuple<QString, Characteristic*>> statPairs {
{ "STR", &_STR }, { "DEX", &_DEX }, { "CON", &_CON }, { "INT", &_INT }, { "EGO", &_EGO },
{ "PRE", &_PRE }, { "OCV", &_OCV }, { "OMCV", &_OMCV }, { "DCV", &_DCV }, { "DMCV", &_DMCV },
{ "SPD", &_SPD }, { "PD", &_PD }, { "ED", &_ED }, { "REC", &_REC }, { "END", &_END },
{ "BODY",&_BODY }, { "STUN", &_STUN }
};
QString _alternateIds = "";
QString _campaignName = "";
QString _characterName = "";
QString _eyeColor = "";
QString _gamemaster = "";
QString _genre = "";
QString _hairColor = "";
QString _notes = "";
QString _playerName = "";
Points _xp = 0_cp;
QString _image = "";
qulonglong _imageDate = 0;
QByteArray _imageData;
void fromJson(Option&, QJsonDocument& doc);
QJsonDocument toJson(Option&);
};
#endif // CHARACTER_H