JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
core::Interactable Struct Reference

Marque une entité comme cible d'interaction et porte de quoi la désigner. More...

#include <Interactable.h>

Public Member Functions

bool isConsumable () const
 Vrai si l'interaction ne peut avoir lieu qu'une fois.

Public Attributes

std::string type
 Type de l'entité, libre : "chest", "sign", "npc", "portal"
GridPosition position
 Case occupée par l'entité.
std::string consumedFlag
 Clé du drapeau de monde qui dit si cette interaction a déjà eu lieu.
std::string promptKey
 Clé de localisation de l'invite affichée quand la cible est à portée.

Detailed Description

Marque une entité comme cible d'interaction et porte de quoi la désigner.

Donnée pure sans logique (EX-ARCH-011). Le composant ne dit pas ce que l'interaction fait : un coffre, un panneau et un PNJ portent le même composant et se distinguent par leur type, que le gameplay interprète. Core ne connaît aucune sémantique de type — c'est la règle que core::MapEntity pose déjà, et la reprendre ici évite qu'une énumération fermée oblige chaque lot suivant à modifier ce fichier pour ajouter une famille.

La case est portée en plus du Transform parce que l'interaction raisonne en cases, pas en unités monde : la cible est « la case devant le personnage », et la retrouver depuis une position flottante demanderait une division dont l'arrondi déciderait du résultat aux frontières.

Member Function Documentation

◆ isConsumable()

bool core::Interactable::isConsumable ( ) const
inlinenodiscard

Vrai si l'interaction ne peut avoir lieu qu'une fois.

Member Data Documentation

◆ consumedFlag

std::string core::Interactable::consumedFlag

Clé du drapeau de monde qui dit si cette interaction a déjà eu lieu.

Vide pour une entité qu'on peut solliciter indéfiniment — un panneau se relit, un PNJ se reparle. Renseignée pour ce qui ne se prend qu'une fois : le coffre. Voir core::keyForEntity(), qui la fabrique.

◆ position

GridPosition core::Interactable::position

Case occupée par l'entité.

◆ promptKey

std::string core::Interactable::promptKey

Clé de localisation de l'invite affichée quand la cible est à portée.

Une clé, jamais un texte : l'invite est de l'interface, et le Core n'écrit pas de français. Vide pour une entité qui n'annonce rien.

◆ type

std::string core::Interactable::type

Type de l'entité, libre : "chest", "sign", "npc", "portal"


The documentation for this struct was generated from the following file:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/Core/Ecs/Components/Interactable.h