Files
TetaRdPG/docs/engine-design.md
Tetardtek e8f108a7e8
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 34s
design: maîtrise monstre — auto-combat déverrouillé par succès tactiques (N victoires)
2026-03-25 01:22:28 +01:00

132 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TetaRdPG — Engine Design
> Version : 1.0 — 2026-03-25
> Décision architecturale : le moteur RPG est un template neutre, l'Odyssée est sa première customisation.
---
## Principe
```
Couche 1 — Moteur (template, forkable)
CombatService → attaque / fuir, formules dégâts GDD
Stats → Force, Agilité, Intelligence, Chance, Vitalité
Économie → Or, monnaie premium, endurance
Progression → XP, niveaux, déblocages
Forge / Craft → amélioration, recettes, matériaux
Quêtes → fetch, complete, rewards
Achievements → event-driven, paliers
Couche 2 — Univers (spécifique à l'Odyssée, pas dans le template)
TurnManager → tour par tour enrichi (sorts, compagnons, patterns IA)
SpellSystem → 3 voies du Dao, arbre de sorts, mana/endurance
CompanionModule → Mira/Vell, IA contextuelle
NarrativeEngine → PNJ évolutifs, dialogues par palier, fragments du Chant
BossPhaseSystem → mécaniques uniques (ex: guérison Hydre ≠ DPS)
```
## Règle
Le moteur (couche 1) ne doit **jamais** dépendre de la couche 2.
Un fork du moteur = combat basique fonctionnel, zéro référence à l'Odyssée.
L'Odyssée importe le moteur, pas l'inverse.
## Impact sur le combat rework
Le `CombatService` actuel n'est pas jeté — il devient le moteur de base.
Le rework **étend** sans casser :
```
CombatService (existant) → reste, calcule dégâts/XP/loot
└── TurnManager (nouveau) → orchestre les tours, gère l'ordre
├── SpellSystem → sorts par voie, coût, effets
├── CompanionAI → décisions IA Mira/Vell
└── BossPhaseManager → phases spéciales (narratif)
```
## La Métamorphose — Evoland pattern (décision 2026-03-25)
Finir les 3 arcs de l'Acte I (Marais → Égouts → Désert) déclenche **Le Serment des Trois**.
Le jeu lui-même évolue — le joueur vit la métamorphose du têtard.
```
ACTE I (niv 1-13) — Le monde simple
Combat : auto (POST /combat/start)
Slots : 🗡️ Arme + 🛡️ Armure (2 slots)
Types : weapon | armor | consumable
Sorts : aucun
Compagnons : aucun
⬇️ LE SERMENT DES TROIS ⬇️
(quête narrative, arc desert complété)
ACTE II (niv 13+) — Le monde éveillé
Combat : tour par tour (POST /combat/turn/start)
Slots : 🗡️ Main droite + 🛡️ Main gauche + 🪖 Casque + 👕 Armure + 💍 Anneau (5 slots)
OU ⚔️ Arme deux mains (remplace main droite + gauche)
Types : weapon_1h | weapon_2h | shield | helmet | armor | ring | consumable
Sorts : Dao du Courant (3 voies, 15 sorts)
Compagnons : Mira, Vell (quêtes narratives)
```
### Règle de coexistence
- Zones 1-3 gardent le combat simple (grind rapide, ×5/×10 toujours dispo)
- Zones 4+ : combat tour par tour **obligatoire** tant que le monstre n'est pas maîtrisé
- Les items Acte I restent utilisables — les nouveaux types n'existent qu'en Acte II
### Maîtrise monstre — auto-combat progressif (décision 2026-03-25)
En Acte II, chaque nouveau monstre impose le combat tactique.
Après N victoires tactiques, le joueur débloque le combat auto pour ce monstre.
```
1ère rencontre → Combat tactique obligatoire
↓ (N victoires)
🏆 Succès "Maîtrise : <monstre>" débloqué
Combat auto (×1/×5/×10) déverrouillé pour CE monstre
```
**Implémentation :**
- Utiliser le système d'achievements existant (event-driven)
- Nouveau criteria_type : `monster_tactical_wins` (par monstre_id)
- Seuil de maîtrise : 3-5 victoires tactiques (à équilibrer)
- CombatService.startCombat() vérifie l'achievement avant d'autoriser l'auto en zone 4+
- Si pas maîtrisé → 403 "Ce monstre requiert le combat tactique"
- Le frontend grise le bouton auto et affiche la progression "2/5 victoires tactiques"
**Pourquoi c'est bon :**
- Force l'apprentissage des patterns ennemis (le tactique a du sens)
- Récompense la maîtrise (le grind redevient rapide une fois compris)
- Le joueur ne se lasse jamais : il alterne découverte (tactique) et farm (auto)
- Compatible avec le multi-combat existant (×5/×10 = auto uniquement)
- Le joueur garde tout (or, items, stats) — c'est une évolution, pas un reset
### Impact sur l'Item entity
```
Acte I (existant, inchangé) :
ItemType = 'weapon' | 'armor' | 'consumable'
equipped = boolean (1 arme + 1 armure max)
Acte II (extension) :
ItemType += 'weapon_2h' | 'shield' | 'helmet' | 'ring'
equipped_slot = 'main_hand' | 'off_hand' | 'head' | 'body' | 'ring' | null
Contrainte : weapon_2h → off_hand bloqué
```
### Pourquoi c'est cohérent
Le GDD original prévoit des déblocages par niveau (forge niv 10, boutique avancée niv 15).
L'Acte II est le plus gros déblocage du jeu — le gameplay entier évolue.
Narrativement : le têtard commence à se transformer. Le Dao s'éveille.
## Conséquence template
Quand un streamer fork TetaRdPG pour son royaume (Phase 4 — Twitch Kingdom) :
- Il hérite du moteur complet (couche 1)
- Il peut remplacer l'Odyssée par son propre lore (couche 2)
- Ou il joue dans l'univers partagé de l'Odyssée — c'est son choix