-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplay_scenarios.py
More file actions
185 lines (153 loc) · 6.86 KB
/
play_scenarios.py
File metadata and controls
185 lines (153 loc) · 6.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#!/usr/bin/env python3
"""
Launcher pour les scénarios D&D 5e
Permet de choisir et lancer n'importe quel scénario
"""
import sys
def main():
print("=" * 70)
print(" 🎲 AVENTURES D&D 5e - SÉLECTION DE SCÉNARIO")
print("=" * 70)
print("\nScénarios disponibles:\n")
print(" 1. La Chasse aux Gobelins")
print(" Niveau 3 | Durée: 1-2h | Difficulté: Facile")
print(" Sauvez le Village de Brume des gobelins!")
print("\n 2. Tales from the Yawning Portal - The Sunless Citadel")
print(" Niveau 1 | Durée: 2-3h | Difficulté: Moyenne")
print(" Explorez une citadelle engloutie et affrontez l'arbre maudit!")
print("\n 3. La Tombe des Rois Serpents")
print(" Niveau 2 | Durée: 2h | Difficulté: Moyenne")
print(" Pillez une pyramide ancienne et affrontez le Roi Serpent momifié!")
print("\n 4. L'Oeil de Gruumsh")
print(" Niveau 3 | Durée: 2-3h | Difficulté: Moyenne")
print(" Affrontez une tribu d'orques dans les Montagnes de Fer!")
print("\n 5. La Secte du Crâne")
print(" Niveau 4 | Durée: 2-3h | Difficulté: Difficile")
print(" Infiltrez les catacombes et arrêtez un culte nécromantique!")
print("\n 6. Le Collier de Zark")
print(" Niveau 2 | Durée: 1-2h | Difficulté: Moyenne")
print(" Enquête sur le vol d'un précieux collier d'émeraude!")
print("\n 7. L'Auberge du Sanglier Gris")
print(" Niveau 1 | Durée: 1-2h | Difficulté: Facile")
print(" Une nuit mouvementée dans une auberge sur la route du Nord!")
print("\n 8. Les Cryptes de Kelemvor")
print(" Niveau 3 | Durée: 2-3h | Difficulté: Moyenne")
print(" Explorez des cryptes hantées et affrontez un nécromancien!")
print("\n 9. Le Masque Utruz")
print(" Niveau 2 | Durée: 2-3h | Difficulté: Moyenne")
print(" Enquête et intrigue autour d'un masque maudit lors d'un bal!")
print("\n 10. Défis à Phlan")
print(" Niveau 1 | Durée: 1-2h | Difficulté: Facile")
print(" Plusieurs mini-missions dans la ville frontière de Phlan!")
print("\n" + "=" * 70)
while True:
try:
choice = input("\nChoisissez un scénario (1-10) ou 'q' pour quitter: ").strip()
if choice.lower() == 'q':
print("\nÀ bientôt, aventurier! 🎲")
sys.exit(0)
choice_num = int(choice)
if choice_num == 1:
print("\n🏰 Lancement de 'La Chasse aux Gobelins'...")
from chasse_gobelins_refactored import ChasseGobelinsScenario
scenario = ChasseGobelinsScenario(
pdf_path="scenarios/Chasse-aux-gobs.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 2:
print("\n🏰 Lancement de 'The Sunless Citadel'...")
from yawning_portal_game import YawningPortalScenario
scenario = YawningPortalScenario(
pdf_path="scenarios/Tales from the Yawning Portal.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 3:
print("\n🔺 Lancement de 'La Tombe des Rois Serpents'...")
from tombe_rois_serpents_game import TombeRoisSerpentsScenario
scenario = TombeRoisSerpentsScenario(
pdf_path="scenarios/Tombe-des-rois-serpents.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 4:
print("\n👁️ Lancement de 'L'Oeil de Gruumsh'...")
from oeil_gruumsh_game import OeilDeGruumshScenario
scenario = OeilDeGruumshScenario(
pdf_path="scenarios/Oeil-de-Gruumsh.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 5:
print("\n💀 Lancement de 'La Secte du Crâne'...")
from secte_du_crane_game import SecteDuCraneScenario
scenario = SecteDuCraneScenario(
pdf_path="scenarios/Secte-du-crane.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 6:
print("\n💎 Lancement de 'Le Collier de Zark'...")
from collier_de_zark_game import CollierDeZarkScenario
scenario = CollierDeZarkScenario(
pdf_path="scenarios/Collier-de-Zark.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 7:
print("\n🍺 Lancement de 'L'Auberge du Sanglier Gris'...")
from auberge_sanglier_gris_game import AubergeSanglierGrisScenario
scenario = AubergeSanglierGrisScenario(
pdf_path="scenarios/Auberge-du-sanglier-gris.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 8:
print("\n⚰️ Lancement de 'Les Cryptes de Kelemvor'...")
from cryptes_de_kelemvor_game import CryptesDeKelemvorScenario
scenario = CryptesDeKelemvorScenario(
pdf_path="scenarios/Cryptes-de-Kelemvor.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 9:
print("\n🎭 Lancement de 'Le Masque Utruz'...")
from masque_utruz_game import MasqueUtruzScenario
scenario = MasqueUtruzScenario(
pdf_path="scenarios/Masque-utruz.pdf",
use_ncurses=False
)
scenario.play()
break
elif choice_num == 10:
print("\n🏰 Lancement de 'Défis à Phlan'...")
from defis_a_phlan_game import DefisAPlanScenario
scenario = DefisAPlanScenario(
pdf_path="scenarios/Defis-a-Phlan.pdf",
use_ncurses=False
)
scenario.play()
break
else:
print("❌ Choix invalide. Veuillez entrer 1-10 ou 'q'")
except ValueError:
print("❌ Veuillez entrer un nombre valide")
except KeyboardInterrupt:
print("\n\nInterrompu par l'utilisateur. Au revoir! 👋")
sys.exit(0)
except Exception as e:
print(f"\n❌ Erreur: {e}")
import traceback
traceback.print_exc()
sys.exit(1)
if __name__ == "__main__":
main()