JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
Inventory.h File Reference

Objets portés, emplacements d'équipement et statistiques dérivées (LOT-14, EX-INV-020). More...

#include <array>
#include <filesystem>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include "Core/Rpg/Ability.h"
#include "Core/Rpg/Dice.h"
#include "Core/Rpg/Equipment.h"
#include "Core/Rpg/RpgEnums.h"

Go to the source code of this file.

Classes

struct  core::Item
 Un objet du catalogue qui n'est ni une arme ni une armure : matériel, outil, monture, marchandise, babiole, objet magique. More...
struct  core::ItemCatalog
 Le catalogue d'objets, et ce qui n'a pas pu être lu. More...
struct  core::EncumbranceRules
 Les bornes de charge, lues dans la donnée (rules/encumbrance.json). More...
struct  core::InventoryStack
 Une ligne du sac : un identifiant de catalogue et une quantité. More...
struct  core::Inventory
 Ce qu'un personnage porte : son sac, et ce qu'il a sur lui. More...
struct  core::ItemLookup
 Les trois catalogues qu'un inventaire consulte pour peser et pour dériver. More...
struct  core::DerivedStats
 Ce que l'équipement porté produit — recalculé, jamais accumulé. More...

Namespaces

namespace  core
 Espace de noms du moteur et de la logique de jeu.

Enumerations

enum class  core::EncumbranceLevel { core::Unencumbered , core::Encumbered , core::HeavilyEncumbered , core::OverCapacity }
 État de charge d'un personnage, dans l'ordre croissant de gêne. More...
enum class  core::EquipmentSlot {
  core::Head , core::Neck , core::Cloak , core::Torso ,
  core::Belt , core::Hands , core::RingLeft , core::RingRight ,
  core::MainHand , core::OffHand , core::Ranged , core::Ammunition ,
  core::Feet , core::Bracers , core::Pouch , core::Trinket
}
 Les seize emplacements d'équipement de la planche 2 du corpus. More...

Functions

ItemCatalog core::loadItems (const std::filesystem::path &itemsDir)
 Charge les objets depuis leur dossier (Rpg/items/).
EncumbranceRules core::loadEncumbranceRules (const std::filesystem::path &rulesFile)
 Charge les bornes de charge depuis rules/encumbrance.json.
std::string_view core::equipmentSlotName (EquipmentSlot slot)
 Nom textuel d'un emplacement, tel que la donnée et les clés de traduction l'écrivent.
std::optional< EquipmentSlotcore::parseEquipmentSlot (std::string_view name)
 Inverse d'equipmentSlotName. std::nullopt si le nom est inconnu — jamais deviné.
std::string core::equip (Inventory &inventory, EquipmentSlot slot, std::string itemId)
 Équipe itemId à slot, et rend ce que l'emplacement portait.
std::string core::unequip (Inventory &inventory, EquipmentSlot slot)
 Retire ce que slot porte.
void core::addToBackpack (Inventory &inventory, const std::string &itemId, int quantity=1)
 Ajoute quantity exemplaires de itemId au sac, en empilant si la ligne existe déjà.
int core::removeFromBackpack (Inventory &inventory, const std::string &itemId, int quantity=1)
 Retire quantity exemplaires de itemId.
int core::carriedWeightGrams (const Inventory &inventory, const ItemLookup &lookup)
 Le poids total porté, sac et équipement compris, en grammes.
std::vector< std::string > core::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 devrait, et le dire vaut mieux que de peser faux en silence.
DerivedStats core::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.

Variables

constexpr std::size_t core::EQUIPMENT_SLOT_COUNT = 16
 Nombre d'emplacements, pour dimensionner les tableaux qui les indexent.

Detailed Description

Objets portés, emplacements d'équipement et statistiques dérivées (LOT-14, EX-INV-020).