54 [[nodiscard]]
const Item*
find(std::string_view
id)
const;
149 std::array<std::string, EQUIPMENT_SLOT_COUNT>
equipped{};
157 return equipped[
static_cast<std::size_t
>(slot)];
161 return !
at(slot).empty();
181void addToBackpack(Inventory& inventory,
const std::string& itemId,
int quantity = 1);
184int removeFromBackpack(Inventory& inventory,
const std::string& itemId,
int quantity = 1);
Les six caractéristiques et leur modificateur (EX-DND-010).
Notation de dés NdF+M : analyse, évaluation, bornes (EX-NFR-002).
Armes, armures et le calcul de la classe d'armure (LOT-34).
Les quatre énumérations fermées du RPG : dégâts, conditions, écoles, tailles.
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
ItemCatalog loadItems(const std::filesystem::path &itemsDir)
Charge les objets depuis leur dossier (Rpg/items/).
Definition Inventory.cpp:88
std::vector< std::string > unknownIds(const Inventory &inventory, const ItemLookup &lookup)
Les identifiants que les catalogues ne portent pas — un sac qui en contient ne pèse pas ce qu'il devr...
Definition Inventory.cpp:237
std::optional< EquipmentSlot > parseEquipmentSlot(std::string_view name)
Inverse d'equipmentSlotName. std::nullopt si le nom est inconnu — jamais deviné.
Definition Inventory.cpp:74
std::string equip(Inventory &inventory, EquipmentSlot slot, std::string itemId)
Équipe itemId à slot, et rend ce que l'emplacement portait.
Definition Inventory.cpp:147
EncumbranceRules loadEncumbranceRules(const std::filesystem::path &rulesFile)
Charge les bornes de charge depuis rules/encumbrance.json.
Definition Inventory.cpp:129
std::string_view equipmentSlotName(EquipmentSlot slot)
Nom textuel d'un emplacement, tel que la donnée et les clés de traduction l'écrivent.
Definition Inventory.cpp:65
void addToBackpack(Inventory &inventory, const std::string &itemId, int quantity)
Ajoute quantity exemplaires de itemId au sac, en empilant si la ligne existe déjà.
Definition Inventory.cpp:157
int removeFromBackpack(Inventory &inventory, const std::string &itemId, int quantity)
Retire quantity exemplaires de itemId.
Definition Inventory.cpp:169
Ability
Une des six caractéristiques d'un personnage ou d'une créature (EX-DND-010).
Definition Ability.h:24
@ Strength
Definition Ability.h:25
std::string unequip(Inventory &inventory, EquipmentSlot slot)
Retire ce que slot porte.
Definition Inventory.cpp:153
DerivedStats derivedStatsFor(const CharacterSheet &sheet, const Inventory &inventory, const ItemLookup &lookup, const CharacterCreationRules &creation, const EncumbranceRules &carrying)
Calcule tout ce que l'équipement porté produit, depuis la fiche et les catalogues.
Definition Inventory.cpp:255
constexpr std::size_t EQUIPMENT_SLOT_COUNT
Nombre d'emplacements, pour dimensionner les tableaux qui les indexent.
Definition Inventory.h:119
int carriedWeightGrams(const Inventory &inventory, const ItemLookup &lookup)
Le poids total porté, sac et équipement compris, en grammes.
Definition Inventory.cpp:224
EncumbranceLevel
État de charge d'un personnage, dans l'ordre croissant de gêne.
Definition Inventory.h:86
@ HeavilyEncumbered
Au-delà du second : vitesse diminuée davantage, et désavantage.
Definition Inventory.h:89
@ Encumbered
Au-delà du premier seuil : vitesse diminuée.
Definition Inventory.h:88
@ OverCapacity
Au-delà de la capacité de charge : il ne peut plus porter.
Definition Inventory.h:90
@ Unencumbered
Rien ne le ralentit.
Definition Inventory.h:87
EquipmentSlot
Les seize emplacements d'équipement de la planche 2 du corpus.
Definition Inventory.h:99
@ Feet
Definition Inventory.h:112
@ Ammunition
Definition Inventory.h:111
@ MainHand
Definition Inventory.h:108
@ RingRight
Definition Inventory.h:107
@ Cloak
Definition Inventory.h:102
@ OffHand
Definition Inventory.h:109
@ RingLeft
Definition Inventory.h:106
@ Pouch
Definition Inventory.h:114
@ Neck
Definition Inventory.h:101
@ Torso
Definition Inventory.h:103
@ Head
Definition Inventory.h:100
@ Trinket
Definition Inventory.h:115
@ Hands
Definition Inventory.h:105
@ Ranged
Definition Inventory.h:110
@ Belt
Definition Inventory.h:104
@ Bracers
Definition Inventory.h:113
Les deux constantes de règle qu'une fiche emploie, lues dans la donnée.
Definition CharacterSheet.h:67
La fiche d'une créature jouable ou non : héros, PNJ, ennemi.
Definition CharacterSheet.h:102
Ce que l'équipement porté produit — recalculé, jamais accumulé.
Definition Inventory.h:212
Ability attackAbility
Caractéristique du jet d'attaque : Force au corps à corps, Dextérité à distance.
Definition Inventory.h:220
std::optional< Dice > damage
Dés de dégâts de l'arme en main directrice.
Definition Inventory.h:217
int carryingCapacityGrams
Definition Inventory.h:223
int carriedWeightGrams
Poids porté, en grammes, et la charge qui en découle.
Definition Inventory.h:222
int armorClass
Classe d'armure, armure et bouclier compris (core::armorClassFor, LOT-34).
Definition Inventory.h:214
EncumbranceLevel encumbrance
Definition Inventory.h:224
float speedMeters
Vitesse une fois la charge retirée, en mètres. Jamais négative.
Definition Inventory.h:226
std::optional< DamageType > damageType
Definition Inventory.h:218
Les bornes de charge, lues dans la donnée (rules/encumbrance.json).
Definition Inventory.h:67
float encumberedSpeedPenaltyMeters
Definition Inventory.h:71
int carryingCapacityGramsPerStrength
Definition Inventory.h:68
bool isLoaded() const noexcept
Definition Inventory.h:76
int heavilyEncumberedGramsPerStrength
Definition Inventory.h:70
int encumberedGramsPerStrength
Definition Inventory.h:69
float heavilyEncumberedSpeedPenaltyMeters
Definition Inventory.h:72
Les deux catalogues chargés, et ce qui n'a pas pu l'être.
Definition Equipment.h:81
Une ligne du sac : un identifiant de catalogue et une quantité.
Definition Inventory.h:127
int quantity
Definition Inventory.h:129
std::string itemId
Definition Inventory.h:128
Ce qu'un personnage porte : son sac, et ce qu'il a sur lui.
Definition Inventory.h:147
int purseCopper
Bourse, en pièces de cuivre — la même unité que les prix du catalogue.
Definition Inventory.h:153
const std::string & at(EquipmentSlot slot) const
Definition Inventory.h:156
std::vector< InventoryStack > backpack
Le sac, dans l'ordre où il a été rempli.
Definition Inventory.h:151
bool isEquipped(EquipmentSlot slot) const
Definition Inventory.h:160
std::array< std::string, EQUIPMENT_SLOT_COUNT > equipped
L'équipement porté, par emplacement : un identifiant de catalogue, ou une chaîne vide.
Definition Inventory.h:149
Le catalogue d'objets, et ce qui n'a pas pu être lu.
Definition Inventory.h:50
std::vector< std::string > errors
Definition Inventory.h:52
std::vector< Item > items
Definition Inventory.h:51
const Item * find(std::string_view id) const
Definition Inventory.cpp:83
Les trois catalogues qu'un inventaire consulte pour peser et pour dériver.
Definition Inventory.h:187
const EquipmentCatalog * equipment
Definition Inventory.h:189
int weightGramsOf(std::string_view id) const
Definition Inventory.cpp:185
const ItemCatalog * items
Definition Inventory.h:188
Un objet du catalogue qui n'est ni une arme ni une armure : matériel, outil, monture,...
Definition Inventory.h:31
std::string name
Definition Inventory.h:33
std::string text
Definition Inventory.h:46
int weightGrams
Poids en grammes.
Definition Inventory.h:41
std::string rarity
Definition Inventory.h:44
bool requiresAttunement
Definition Inventory.h:45
std::string id
Definition Inventory.h:32
int price
Prix en pièces de cuivre — l'unité interne du projet (LOT-32).
Definition Inventory.h:38
bool stackable
Vrai si plusieurs exemplaires se rangent dans une même ligne d'inventaire.
Definition Inventory.h:43
std::string source
Definition Inventory.h:34
std::string category
Famille d'usage, telle que la donnée l'écrit (gear, tool, mount...).
Definition Inventory.h:36