|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Ce qu'un personnage porte : son sac, et ce qu'il a sur lui. More...
#include <Inventory.h>
Public Member Functions | |
| const std::string & | at (EquipmentSlot slot) const |
| bool | isEquipped (EquipmentSlot slot) const |
Public Attributes | |
| std::array< std::string, EQUIPMENT_SLOT_COUNT > | equipped {} |
| L'équipement porté, par emplacement : un identifiant de catalogue, ou une chaîne vide. | |
| std::vector< InventoryStack > | backpack |
| Le sac, dans l'ordre où il a été rempli. | |
| int | purseCopper = 0 |
| Bourse, en pièces de cuivre — la même unité que les prix du catalogue. | |
Ce qu'un personnage porte : son sac, et ce qu'il a sur lui.
C'est tout le lot. La classe d'armure, les dégâts de l'arme, la vitesse encombrée ne sont pas des champs de cette structure : ce sont des fonctions de ce qu'elle contient, recalculées à chaque lecture (derivedStatsFor). Le défaut classique consiste à appliquer un bonus en l'ajoutant à la volée (ca += 2) et à le retrancher au retrait ; après trois équipements et deux retraits dans le désordre, la classe d'armure a dérivé, et rien ne le signale — le personnage est simplement devenu un peu plus, ou un peu moins, résistant.
Une valeur qu'on ne stocke pas ne peut pas dériver. C'est un critère d'acceptation du lot, pas une préférence de style.
|
inlinenodiscard |
|
inlinenodiscard |
| std::vector<InventoryStack> core::Inventory::backpack |
Le sac, dans l'ordre où il a été rempli.
| std::array<std::string, EQUIPMENT_SLOT_COUNT> core::Inventory::equipped {} |
L'équipement porté, par emplacement : un identifiant de catalogue, ou une chaîne vide.
| int core::Inventory::purseCopper = 0 |
Bourse, en pièces de cuivre — la même unité que les prix du catalogue.