JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
hmi::CombatMode Class Referencefinal

Le second mode de jeu : le combat se déroule sur la carte d'exploration, mais l'exploration, elle, ne tourne plus. More...

#include <CombatMode.h>

Inheritance diagram for hmi::CombatMode:
hmi::IGameMode

Public Member Functions

std::string_view name () const override
std::vector< std::string_view > passOrder () const override
 L'ordre des passes que step() enchaîne, nommées, pour les diagnostics.
void onLoad (IGameModePasses &passes) override
 Appelé quand le mode devient actif, une fois le niveau chargé.
core::LevelOutcome step (IGameModePasses &passes, const core::PlayerInput &input, float fixedDelta) override
 Avance d'un pas fixe, en enchaînant les passes dans l'ordre propre au mode.
void onUnload (IGameModePasses &passes) override
 Appelé quand le mode cesse d'être actif (bascule vers un autre mode, ou fin de session).
Public Member Functions inherited from hmi::IGameMode
 IGameMode ()=default
virtual ~IGameMode ()=default
 IGameMode (const IGameMode &)=delete
IGameModeoperator= (const IGameMode &)=delete
 IGameMode (IGameMode &&)=delete
IGameModeoperator= (IGameMode &&)=delete

Detailed Description

Le second mode de jeu : le combat se déroule sur la carte d'exploration, mais l'exploration, elle, ne tourne plus.

Ce qui est gelé, et pourquoi

Trois passes de l'exploration disparaissent ici, et chacune pour une raison précise :

  • moveCharacter — le personnage ne se déplace plus à l'intention du joueur mais au budget de déplacement de son tour (LOT-19). Laisser la passe d'exploration active donnerait un combat où l'on marche librement pendant le tour d'un autre.
  • updateMechanisms — une plaque de pression qui s'enfoncerait au milieu d'un tour ferait dépendre le combat de la position d'un pion sur un mécanisme, ce qu'aucune règle ne décrit.
  • evaluateOutcome — l'issue du niveau n'a pas de sens pendant un combat : tomber à zéro point de vie est une issue du combat (core::CombatOutcome), et l'évaluer ici ferait recharger le niveau au lieu d'ouvrir l'agonie (LOT-72).

Ce qui reste tourne parce que le combat reste une scène : les particules et la secousse d'écran finissent ce qu'elles ont commencé, les animations continuent de jouer — un combattant immobile respire —, et la caméra suit ce qu'il faut regarder.

Ce que ce mode ne fait pas encore

Ni initiative, ni tour actif, ni résolution d'action : c'est le LOT-20. Ce lot-ci livre la bascule — geler le monde, monter la rencontre, en revenir sans rien perdre — et l'état de la rencontre engagée vit dans core::EncounterRun, hors de ce mode, précisément pour que l'aller-retour se vérifie sans fenêtre.

Sans état, donc, comme hmi::ExplorationMode : le mode ne décide que de l'ordre. Le tour courant, lui, sera une mémoire, et c'est le LOT-20 qui la portera.

Member Function Documentation

◆ name()

std::string_view hmi::CombatMode::name ( ) const
nodiscardoverridevirtual
Returns
Le nom du mode, pour les diagnostics et les journaux.

Implements hmi::IGameMode.

◆ onLoad()

void hmi::CombatMode::onLoad ( IGameModePasses & passes)
overridevirtual

Appelé quand le mode devient actif, une fois le niveau chargé.

Implements hmi::IGameMode.

◆ onUnload()

void hmi::CombatMode::onUnload ( IGameModePasses & passes)
overridevirtual

Appelé quand le mode cesse d'être actif (bascule vers un autre mode, ou fin de session).

Implements hmi::IGameMode.

◆ passOrder()

std::vector< std::string_view > hmi::CombatMode::passOrder ( ) const
nodiscardoverridevirtual

L'ordre des passes que step() enchaîne, nommées, pour les diagnostics.

Documentation exécutable : un test compare cette liste à la séquence réellement appelée, de sorte qu'un ordre modifié sans mettre la liste à jour échoue au lieu de mentir.

Implements hmi::IGameMode.

◆ step()

core::LevelOutcome hmi::CombatMode::step ( IGameModePasses & passes,
const core::PlayerInput & input,
float fixedDelta )
overridevirtual

Avance d'un pas fixe, en enchaînant les passes dans l'ordre propre au mode.

Parameters
passesLes passes offertes par l'orchestrateur.
inputIntention de jeu déjà résolue pour ce pas.
fixedDeltaDurée du pas fixe, en secondes.
Returns
L'issue du niveau à l'issue du pas.

Implements hmi::IGameMode.


The documentation for this class was generated from the following files:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Game/CombatMode.h
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Game/CombatMode.cpp