19 #ifndef OPENXCOM_SOLDIER_H
20 #define OPENXCOM_SOLDIER_H
23 #include <yaml-cpp/yaml.h>
24 #include "../Ruleset/Unit.h"
25 #include "../Ruleset/StatString.h"
30 enum SoldierRank { RANK_ROOKIE, RANK_SQUADDIE, RANK_SERGEANT, RANK_CAPTAIN, RANK_COLONEL, RANK_COMMANDER};
31 enum SoldierGender { GENDER_MALE, GENDER_FEMALE };
32 enum SoldierLook { LOOK_BLONDE, LOOK_BROWNHAIR, LOOK_ORIENTAL, LOOK_AFRICAN };
35 class SoldierNamePool;
40 class EquipmentLayoutItem;
53 int _id, _improvement;
58 SoldierGender _gender;
60 int _missions, _kills, _recovery;
61 bool _recentlyPromoted, _psiTraining;
63 std::vector<EquipmentLayoutItem*> _equipmentLayout;
65 std::wstring _statString;
74 YAML::Node
save()
const;
76 std::wstring
getName(
bool statstring =
false,
unsigned int maxLength = 20)
const;
78 void setName(
const std::wstring &name);
142 void calcStatString(
const std::vector<StatString *> &statStrings,
bool psiStrengthEval);
Represents a specific type of armor.
Definition: Armor.h:37
Represents a craft stored in a base.
Definition: Craft.h:45
Contains strings used throughout the game for localization.
Definition: Language.h:44
Represents the creation data for a specific type of unit.
Definition: RuleSoldier.h:34
Set of rules and stats for a game.
Definition: Ruleset.h:70
The game data that gets written to disk when the game is saved.
Definition: SavedGame.h:81
Stores info about a soldier's death.
Definition: SoldierDeath.h:34
Represents a soldier hired by the player.
Definition: Soldier.h:50
void setName(const std::wstring &name)
Sets the soldier's name.
Definition: Soldier.cpp:197
bool isPromoted()
Get whether the unit was recently promoted.
Definition: Soldier.cpp:396
int getRankSprite() const
Gets a sprite version of the soldier's rank.
Definition: Soldier.cpp:277
Craft * getCraft() const
Gets the soldier's craft.
Definition: Soldier.cpp:206
void trainPsi()
Trains a soldier's psychic stats.
Definition: Soldier.cpp:465
Soldier(RuleSoldier *rules, Armor *armor, const std::vector< SoldierNamePool * > *names=0, int id=0)
Creates a new soldier.
Definition: Soldier.cpp:43
void die(SoldierDeath *death)
Kills the soldier.
Definition: Soldier.cpp:557
SoldierDeath * getDeath() const
Gets the soldier death info.
Definition: Soldier.cpp:548
int getImprovement()
returns this soldier's psionic improvement score for this month.
Definition: Soldier.cpp:539
std::wstring getCraftString(Language *lang) const
Gets the soldier's craft string.
Definition: Soldier.cpp:227
void addKillCount(int count)
Add a kill to the counter.
Definition: Soldier.cpp:371
YAML::Node save() const
Saves the soldier to YAML.
Definition: Soldier.cpp:134
Armor * getArmor() const
Gets the soldier armor.
Definition: Soldier.cpp:407
void load(const YAML::Node &node, const Ruleset *rule, SavedGame *save)
Loads the soldier from YAML.
Definition: Soldier.cpp:97
void calcStatString(const std::vector< StatString * > &statStrings, bool psiStrengthEval)
Calculate statString.
Definition: Soldier.cpp:579
RuleSoldier * getRules() const
Gets soldier rules.
Definition: Soldier.cpp:345
void setCraft(Craft *craft)
Sets the soldier's craft.
Definition: Soldier.cpp:215
std::wstring getName(bool statstring=false, unsigned int maxLength=20) const
Gets the soldier's name.
Definition: Soldier.cpp:174
void trainPsi1Day()
Trains a soldier's psionic abilities (anytimePsiTraining option).
Definition: Soldier.cpp:490
SoldierLook getLook() const
Gets the soldier's look.
Definition: Soldier.cpp:336
void setArmor(Armor *armor)
Sets the soldier armor.
Definition: Soldier.cpp:416
int getKills() const
Gets the soldier's kills.
Definition: Soldier.cpp:318
void setWoundRecovery(int recovery)
Sets the soldier's wound recovery time.
Definition: Soldier.cpp:434
void heal()
Heals wound recoveries.
Definition: Soldier.cpp:448
int getId() const
Gets the soldier's unique ID.
Definition: Soldier.cpp:355
void addMissionCount()
Add a mission to the counter.
Definition: Soldier.cpp:363
int getWoundRecovery() const
Gets the soldier's wound recovery time.
Definition: Soldier.cpp:425
int getMissions() const
Gets the soldier's missions.
Definition: Soldier.cpp:309
UnitStats * getCurrentStats()
Get pointer to current stats.
Definition: Soldier.cpp:387
void setPsiTraining()
set the psi training status
Definition: Soldier.cpp:530
std::vector< EquipmentLayoutItem * > * getEquipmentLayout()
Gets the soldier's equipment-layout.
Definition: Soldier.cpp:457
UnitStats * getInitStats()
Get pointer to initial stats.
Definition: Soldier.cpp:379
bool isInPsiTraining()
Returns whether the unit is in psi training or not.
Definition: Soldier.cpp:522
SoldierRank getRank() const
Gets the soldier's rank.
Definition: Soldier.cpp:287
void promoteRank()
Increase the soldier's military rank.
Definition: Soldier.cpp:295
std::string getRankString() const
Gets a string version of the soldier's rank.
Definition: Soldier.cpp:250
SoldierGender getGender() const
Gets the soldier's gender.
Definition: Soldier.cpp:327
~Soldier()
Cleans up the soldier.
Definition: Soldier.cpp:82
COPYING:
Definition: BaseInfoState.cpp:41
This struct holds some plain unit attribute data together.
Definition: Unit.h:33