50 [[nodiscard]]
int levelFor(
int experiencePoints)
const;
73 [[nodiscard]]
bool ok()
const {
128 return abilities[
static_cast<std::size_t
>(which)];
176 [[nodiscard]]
bool ok()
const {
198[[nodiscard]] LoadedCharacterSheet
loadCharacterSheet(
const std::filesystem::path& path,
199 const CharacterOptions& options,
200 const CharacterCreationRules& rules,
201 const ExperienceTable& table);
204[[nodiscard]]
int proficiencyBonus(
const CharacterSheet& sheet,
const ExperienceTable& table);
210[[nodiscard]]
int savingThrowModifier(
const CharacterSheet& sheet,
const ExperienceTable& table,
228 std::string_view skillId);
284 std::string name,
const std::array<int, 6>& baseAbilities,
const Species* species,
Les six caractéristiques et leur modificateur (EX-DND-010).
Espèces, historiques et classes : de quoi construire un personnage (LOT-36).
Objets portés, emplacements d'équipement et statistiques dérivées (LOT-14, EX-INV-020).
Le catalogue des compétences et la caractéristique de chacune (LOT-13).
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
ExperienceTable loadExperienceTable(const std::filesystem::path &path)
Charge la table d'expérience depuis Source/Elements/Rpg/rules/experience.json.
Definition CharacterSheet.cpp:80
SkillCheckModifier skillModifier(const CharacterSheet &sheet, const ExperienceTable &table, const SkillCatalog &catalog, std::string_view skillId)
Definition CharacterSheet.cpp:256
int savingThrowModifier(const CharacterSheet &sheet, const ExperienceTable &table, Ability which)
Le modificateur d'un jet de sauvegarde : caractéristique, plus la maîtrise si elle s'applique.
Definition CharacterSheet.cpp:250
LoadedCharacterSheet loadCharacterSheet(const std::filesystem::path &path, const CharacterOptions &options, const CharacterCreationRules &rules, const ExperienceTable &table)
Charge un personnage depuis son fichier JSON (Source/Elements/Rpg/characters/, schéma character....
Definition CharacterSheet.cpp:111
LevelUpResult gainExperience(CharacterSheet &sheet, const ExperienceTable &table, int hitDie, int amount)
Ajoute des points d'expérience et applique la montée de niveau qui en découle.
Definition CharacterSheet.cpp:288
Ability
Une des six caractéristiques d'un personnage ou d'une créature (EX-DND-010).
Definition Ability.h:24
constexpr int abilityModifier(int score) noexcept
Modificateur d'une valeur de caractéristique : (score - 10) / 2, arrondi vers le bas.
Definition Ability.h:49
int proficiencyBonus(const CharacterSheet &sheet, const ExperienceTable &table)
Le bonus de maîtrise de la fiche, lu dans la table au niveau courant.
Definition CharacterSheet.cpp:246
CharacterSheet buildCharacterSheet(std::string name, const std::array< int, 6 > &baseAbilities, const Species *species, const PlayableClass *playableClass, const Background *background, const CharacterCreationRules &rules, const ExperienceTable &table)
Construit une fiche depuis une espèce, une classe et un historique.
Definition CharacterSheet.cpp:322
int maximumHitPointsFor(int hitDie, int level, int constitutionModifier)
Les points de vie d'un niveau, selon la règle du livre.
Definition CharacterSheet.cpp:272
CharacterCreationRules loadCharacterCreationRules(const std::filesystem::path &path)
Charge les constantes depuis Source/Elements/Rpg/rules/character-creation.json.
Definition CharacterSheet.cpp:26
Un historique : maîtrises, langues accordées et capacité.
Definition CharacterOptions.h:74
Les deux constantes de règle qu'une fiche emploie, lues dans la donnée.
Definition CharacterSheet.h:67
int unarmoredArmorClass
Definition CharacterSheet.h:68
bool ok() const
Vrai si les deux valeurs ont été lues. Une règle absente ne se devine pas.
Definition CharacterSheet.h:73
int maximumAbilityScore
Definition CharacterSheet.h:69
std::vector< std::string > errors
Definition CharacterSheet.h:70
La fiche d'une créature jouable ou non : héros, PNJ, ennemi.
Definition CharacterSheet.h:102
int ability(Ability which) const
La valeur d'une caractéristique.
Definition CharacterSheet.h:127
std::string classId
Definition CharacterSheet.h:107
bool isDown() const
Vrai si la fiche est tombée à 0 point de vie.
Definition CharacterSheet.h:135
float speedInTiles() const
La vitesse en cases de la grille tactique (LOT-19, LOT-22).
Definition CharacterSheet.cpp:242
std::string name
Definition CharacterSheet.h:103
std::set< Ability > savingThrowProficiencies
Jets de sauvegarde maîtrisés.
Definition CharacterSheet.h:124
int modifier(Ability which) const
Le modificateur d'une caractéristique.
Definition CharacterSheet.h:131
int currentHitPoints
Definition CharacterSheet.h:116
std::string speciesId
Identifiants des trois choix qui ont construit la fiche.
Definition CharacterSheet.h:106
int experiencePoints
Definition CharacterSheet.h:114
int armorClass
Definition CharacterSheet.h:117
float speedMeters
Vitesse de base, en mètres — l'unité du corpus. speedInTiles() la convertit.
Definition CharacterSheet.h:119
std::set< std::string > skillProficiencies
Compétences maîtrisées, par identifiant du catalogue.
Definition CharacterSheet.h:122
std::string backgroundId
Definition CharacterSheet.h:108
int maximumHitPoints
Definition CharacterSheet.h:115
std::array< int, 6 > abilities
Les six valeurs finales, augmentations d'espèce comprises, indexées par core::Ability.
Definition CharacterSheet.h:111
int level
Definition CharacterSheet.h:113
Une ligne de la table d'expérience : le seuil d'un niveau et son bonus de maîtrise.
Definition CharacterSheet.h:31
int experience
Definition CharacterSheet.h:33
int proficiencyBonus
Definition CharacterSheet.h:34
int level
Definition CharacterSheet.h:32
La table d'expérience, du niveau 1 au niveau 20.
Definition CharacterSheet.h:45
int thresholdAt(int level) const
Le seuil d'expérience d'un niveau. 0 si la table ne le porte pas.
Definition CharacterSheet.cpp:67
int maximumLevel() const
Le niveau le plus élevé que la table porte.
Definition CharacterSheet.cpp:72
std::vector< ExperienceLevel > levels
Definition CharacterSheet.h:46
int levelFor(int experiencePoints) const
Le niveau qu'atteint un total de points d'expérience.
Definition CharacterSheet.cpp:52
std::vector< std::string > errors
Definition CharacterSheet.h:47
int proficiencyBonusAt(int level) const
Le bonus de maîtrise d'un niveau. 0 si la table ne le porte pas.
Definition CharacterSheet.cpp:62
Ce qu'un personnage porte : son sac, et ce qu'il a sur lui.
Definition Inventory.h:147
Ce qu'une montée de niveau a produit — de quoi le dire au joueur (EX-DND-003).
Definition CharacterSheet.h:148
int hitPointsGained
Definition CharacterSheet.h:151
int previousProficiencyBonus
Definition CharacterSheet.h:152
int newLevel
Definition CharacterSheet.h:150
int previousLevel
Definition CharacterSheet.h:149
int newProficiencyBonus
Definition CharacterSheet.h:153
bool gainedLevel() const
Vrai si un niveau au moins a été gagné.
Definition CharacterSheet.h:156
Une fiche chargée depuis un fichier, et ce qui n'a pas pu l'être.
Definition CharacterSheet.h:168
CharacterSheet sheet
Definition CharacterSheet.h:169
std::vector< std::string > errors
Definition CharacterSheet.h:174
bool ok() const
Definition CharacterSheet.h:176
Inventory inventory
Ce que le personnage PORTE (LOT-14), lu dans le même fichier.
Definition CharacterSheet.h:173
Une classe jouable et sa table de progression.
Definition CharacterOptions.h:101
Les compétences chargées, et ce qui n'a pas pu l'être.
Definition Skill.h:35
Le modificateur d'un jet de compétence.
Definition CharacterSheet.h:220
bool proficient
Definition CharacterSheet.h:223
bool found
Definition CharacterSheet.h:222
int value
Definition CharacterSheet.h:221
Une espèce jouable : ce que species.schema.json décrit.
Definition CharacterOptions.h:52