JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
Interaction.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
10
11#include <string>
12#include <string_view>
13#include <vector>
14
17#include "Core/Math/Vector2.h"
18
19namespace core {
20
21class TileMap;
22class WorldFlags;
23
31 const Interactable* interactable = nullptr;
33 std::size_t index = 0;
34};
35
38 const Interactable* interactable = nullptr;
39 std::size_t index = 0;
43 [[nodiscard]] bool found() const {
44 return interactable != nullptr;
45 }
46};
47
60[[nodiscard]] GridPosition aimedCell(GridPosition from, Vector2 facing);
61
87[[nodiscard]] InteractionTarget findInteractionTarget(
88 GridPosition from, Vector2 facing, const TileMap& map,
89 const std::vector<InteractionCandidate>& candidates, const WorldFlags& flags);
90
94 bool happened = false;
96 bool consumed = false;
98 std::string type;
100 std::string promptKey;
101};
102
111
112} // namespace core
Position entière dans la grille d'un niveau (colonne, ligne).
Composant d'une entité de carte avec laquelle le joueur peut interagir (données pures).
Vecteur 2D à composantes flottantes, propre à Core (sans dépendance DirectX).
Grille dense de tuiles typées (EX-GP-001), origine haut-gauche.
Definition TileMap.h:25
L'ensemble des faits acquis d'une partie : coffres ouverts, quêtes franchies, portes déverrouillées.
Definition WorldFlags.h:37
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
GridPosition aimedCell(GridPosition from, Vector2 facing)
La case que vise un personnage, d'après son orientation.
Definition Interaction.cpp:32
InteractionTarget findInteractionTarget(GridPosition from, Vector2 facing, const TileMap &map, const std::vector< InteractionCandidate > &candidates, const WorldFlags &flags)
Désigne la cible d'interaction d'un personnage.
Definition Interaction.cpp:49
InteractionOutcome interact(const InteractionTarget &target, WorldFlags &flags)
Résout une interaction sur une cible désignée, en levant son drapeau s'il y a lieu.
Definition Interaction.cpp:94
Position d'une case dans la grille d'un niveau, en coordonnées entières.
Definition GridPosition.h:20
Marque une entité comme cible d'interaction et porte de quoi la désigner.
Definition Interactable.h:30
Une cible candidate : son composant et l'entité qui la porte.
Definition Interaction.h:30
const Interactable * interactable
Definition Interaction.h:31
std::size_t index
Indice libre, rendu tel quel dans le résultat. L'appelant y met ce qu'il veut.
Definition Interaction.h:33
Ce qu'une interaction a produit.
Definition Interaction.h:92
std::string type
Type de l'entité sollicitée, pour que l'appelant sache quoi jouer.
Definition Interaction.h:98
bool happened
Vrai si l'interaction a eu lieu.
Definition Interaction.h:94
std::string promptKey
Clé de localisation à afficher, si l'entité en porte une.
Definition Interaction.h:100
bool consumed
Vrai si elle vient d'être consommée — c'est la première et la dernière fois.
Definition Interaction.h:96
Ce que la désignation a trouvé.
Definition Interaction.h:37
const Interactable * interactable
Definition Interaction.h:38
std::size_t index
Definition Interaction.h:39
GridPosition aimedCell
La case visée, que la cible existe ou non — l'invite visuelle en a besoin.
Definition Interaction.h:41
bool found() const
Vrai si une cible a été désignée.
Definition Interaction.h:43