JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
Ability.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 <optional>
12#include <span>
13#include <string_view>
14
15namespace core {
16
32
49[[nodiscard]] constexpr int abilityModifier(int score) noexcept {
50 const int ecart = score - 10;
51 // `ecart / 2` tronquerait vers zéro pour un écart négatif impair : -3 / 2 == -1, et non -2.
52 return ecart >= 0 ? ecart / 2 : (ecart - 1) / 2;
53}
54
56[[nodiscard]] std::string_view abilityName(Ability ability) noexcept;
57
59[[nodiscard]] std::optional<Ability> parseAbility(std::string_view name) noexcept;
60
62[[nodiscard]] std::span<const Ability> allAbilities() noexcept;
63
64} // namespace core
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
std::span< const Ability > allAbilities() noexcept
Les six caractéristiques, dans l'ordre de la fiche.
Definition Ability.cpp:47
std::optional< Ability > parseAbility(std::string_view name) noexcept
Inverse d'abilityName. std::nullopt si le nom est inconnu — jamais deviné.
Definition Ability.cpp:38
Ability
Une des six caractéristiques d'un personnage ou d'une créature (EX-DND-010).
Definition Ability.h:24
@ Strength
Definition Ability.h:25
@ Wisdom
Definition Ability.h:29
@ Intelligence
Definition Ability.h:28
@ Charisma
Definition Ability.h:30
@ Dexterity
Definition Ability.h:26
@ Constitution
Definition Ability.h:27
constexpr int abilityModifier(int score) noexcept
Modificateur d'une valeur de caractéristique : (score - 10) / 2, arrondi vers le bas.
Definition Ability.h:49
std::string_view abilityName(Ability ability) noexcept
Nom textuel d'une caractéristique, tel que les données l'écrivent.
Definition Ability.cpp:19