21 #include <yaml-cpp/yaml.h> 22 #include "../Mod/Unit.h" 23 #include "../Mod/StatString.h" 28 enum SoldierRank { RANK_ROOKIE, RANK_SQUADDIE, RANK_SERGEANT, RANK_CAPTAIN, RANK_COLONEL, RANK_COMMANDER};
29 enum SoldierGender { GENDER_MALE, GENDER_FEMALE };
30 enum SoldierLook { LOOK_BLONDE, LOOK_BROWNHAIR, LOOK_ORIENTAL, LOOK_AFRICAN };
33 class SoldierNamePool;
38 class EquipmentLayoutItem;
52 int _id, _improvement, _psiStrImprovement;
57 SoldierGender _gender;
59 int _missions, _kills, _recovery;
60 bool _recentlyPromoted, _psiTraining;
62 std::vector<EquipmentLayoutItem*> _equipmentLayout;
65 std::string _statString;
74 YAML::Node
save()
const;
76 std::string
getName(
bool statstring =
false,
unsigned int maxLength = 20)
const;
78 void setName(
const std::string &name);
146 void calcStatString(
const std::vector<StatString *> &statStrings,
bool psiStrengthEval);
void addKillCount(int count)
Add a kill to the counter.
Definition: Soldier.cpp:397
bool isPromoted()
Get whether the unit was recently promoted.
Definition: Soldier.cpp:422
std::string getName(bool statstring=false, unsigned int maxLength=20) const
Gets the soldier's name.
Definition: Soldier.cpp:200
std::string getCraftString(Language *lang) const
Gets the soldier's craft string.
Definition: Soldier.cpp:253
Represents a craft stored in a base.
Definition: Craft.h:45
Armor * getArmor() const
Gets the soldier armor.
Definition: Soldier.cpp:433
Definition: SoldierDiary.h:70
UnitStats * getInitStats()
Get pointer to initial stats.
Definition: Soldier.cpp:405
void addMissionCount()
Add a mission to the counter.
Definition: Soldier.cpp:389
void setPsiTraining()
set the psi training status
Definition: Soldier.cpp:576
void setCraft(Craft *craft)
Sets the soldier's craft.
Definition: Soldier.cpp:241
RuleSoldier * getRules() const
Gets soldier rules.
Definition: Soldier.cpp:371
Stores info about a soldier's death.
Definition: SoldierDeath.h:31
void trainPsi1Day()
Trains a soldier's psionic abilities (anytimePsiTraining option).
Definition: Soldier.cpp:527
std::vector< EquipmentLayoutItem * > * getEquipmentLayout()
Gets the soldier's equipment-layout.
Definition: Soldier.cpp:483
void load(const YAML::Node &node, const Mod *mod, SavedGame *save)
Loads the soldier from YAML.
Definition: Soldier.cpp:100
UnitStats * getCurrentStats()
Get pointer to current stats.
Definition: Soldier.cpp:413
The game data that gets written to disk when the game is saved.
Definition: SavedGame.h:99
void trainPsi()
Trains a soldier's psychic stats.
Definition: Soldier.cpp:491
Craft * getCraft() const
Gets the soldier's craft.
Definition: Soldier.cpp:232
SoldierGender getGender() const
Gets the soldier's gender.
Definition: Soldier.cpp:353
Contains all the game-specific static data that never changes throughout the game, like rulesets and resources.
Definition: Mod.h:87
int getMissions() const
Gets the soldier's missions.
Definition: Soldier.cpp:335
int getPsiStrImprovement() const
returns this soldier's psionic strength improvement score for this month.
Definition: Soldier.cpp:593
SoldierDeath * getDeath() const
Gets the soldier death info.
Definition: Soldier.cpp:602
void setName(const std::string &name)
Sets the soldier's name.
Definition: Soldier.cpp:223
int getImprovement() const
returns this soldier's psionic skill improvement score for this month.
Definition: Soldier.cpp:585
SoldierLook getLook() const
Gets the soldier's look.
Definition: Soldier.cpp:362
void setArmor(Armor *armor)
Sets the soldier armor.
Definition: Soldier.cpp:442
bool isInPsiTraining() const
Returns whether the unit is in psi training or not.
Definition: Soldier.cpp:568
void heal()
Heals wound recoveries.
Definition: Soldier.cpp:474
int getRankSprite() const
Gets a sprite version of the soldier's rank.
Definition: Soldier.cpp:303
void die(SoldierDeath *death)
Kills the soldier.
Definition: Soldier.cpp:611
void setWoundRecovery(int recovery)
Sets the soldier's wound recovery time.
Definition: Soldier.cpp:460
SoldierDiary * getDiary()
Gets the soldier's diary.
Definition: Soldier.cpp:632
Contains strings used throughout the game for localization.
Definition: Language.h:39
int getKills() const
Gets the soldier's kills.
Definition: Soldier.cpp:344
Represents a specific type of armor.
Definition: Armor.h:35
Represents a soldier hired by the player.
Definition: Soldier.h:48
SoldierRank getRank() const
Gets the soldier's rank.
Definition: Soldier.cpp:313
std::string getRankString() const
Gets a string version of the soldier's rank.
Definition: Soldier.cpp:276
This struct holds some plain unit attribute data together.
Definition: Unit.h:30
int getId() const
Gets the soldier's unique ID.
Definition: Soldier.cpp:381
Represents the creation data for an X-COM unit.
Definition: RuleSoldier.h:35
void calcStatString(const std::vector< StatString *> &statStrings, bool psiStrengthEval)
Calculate statString.
Definition: Soldier.cpp:643
int getWoundRecovery() const
Gets the soldier's wound recovery time.
Definition: Soldier.cpp:451
~Soldier()
Cleans up the soldier.
Definition: Soldier.cpp:84
Soldier(RuleSoldier *rules, Armor *armor, int id=0)
Creates a new soldier.
Definition: Soldier.cpp:42
Definition: BaseInfoState.cpp:40
void promoteRank()
Increase the soldier's military rank.
Definition: Soldier.cpp:321
YAML::Node save() const
Saves the soldier to YAML.
Definition: Soldier.cpp:153