-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
132 lines (96 loc) · 3.49 KB
/
main.py
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
"""
Text-based RPM in french
This small game is for learning purpose, what did you expect? :)
Created by Jerome Tissieres - Nov 2017
"""
from room import Room
from item import Item
from character import Enemy, Character, Friend
# Define the rooms
cuisine = Room("la cuisine")
cuisine.set_description("Une cuisine sombre et sale.")
salle_a_manger = Room("la salle a manger")
salle_a_manger.set_description("Une grande salle à manger pour 8 personnes.")
salon = Room("le salon")
salon.set_description("Un salon accueillant avec un grand canapé.")
# Define the links between the rooms
cuisine.link_room(salle_a_manger, "sud")
salle_a_manger.link_room(cuisine, "nord")
salle_a_manger.link_room(salon, "ouest")
salon.link_room(salle_a_manger, "est")
# Define the items
fromage = Item("fromage")
fromage.set_readable_name("du fromage")
fromage.set_description("Il sent encore plus mauvais que le zombie !")
cuisine.set_item(fromage)
livre = Item("livre")
livre.set_readable_name("un livre")
livre.set_description("Un très gros livre intitulé \"Python pour les nuls\".")
salon.set_item(livre)
# Define the people
dave = Enemy("Dave", "Un zombie puant")
dave.set_conversation("Arrrgggg... yahhhhh... manger...")
dave.set_weakness("fromage")
salon.set_character(dave)
olga = Friend("Olga", "Un squelette sympa")
olga.set_conversation("Salut ! Je suis un tas d'os.")
cuisine.set_character(olga)
tabatha = Enemy("Tabatha", "Une énorme araignée aux pattes velues.")
tabatha.set_conversation("Pfffff.... Je m'ennuie...")
tabatha.set_weakness("livre")
salle_a_manger.set_character(tabatha)
#Start:
current_room = cuisine
backpack = []
dead = False
while dead == False:
print("\n")
current_room.get_details()
inhabitant = current_room.get_character()
if inhabitant is not None:
inhabitant.describe()
object = current_room.get_item()
if object is not None:
object.describe()
command = input("Que voulez-vous faire ?\n[nord, sud, est, ouest, parler, attaquer, prendre]\n> ")
# Se déplacer entre les room
if command in ["nord", "sud", "est", "ouest"]:
current_room = current_room.move(command)
# Parler a quelqu'un
elif command == "parler":
if inhabitant is not None:
print("[Tu dis]: Bonjour! ")
inhabitant.talk()
else:
print("Il n'y a personne a qui parler ici.")
# Attaquer quelqu'un
elif command == "attaquer":
if inhabitant is not None:
print("Avec quoi veux-tu l'attaquer ?")
print("Contenu de ton sac : ")
print(backpack)
fight_with = input(" > ")
# Avons-nous ceci dans le sac?
if fight_with in backpack:
if inhabitant.fight(fight_with) == True:
# What happens if you win?
print("Bien joué !")
else:
print("Tu as mort !")
print("Fin du jeu.")
dead = True
else:
print("Tu n'as pas " + fight_with)
else:
print("Il n'y a personne avec qui se battre ici.")
# Prendre qqchose
elif command == "prendre":
if object is not None:
print("Tu as mis " + object.get_readable_name() + " dans ton sac.")
backpack.append(object.get_name())
current_room.set_item(None)
else:
print("Il n'y a rien a prendre ici !")
# Commande inconnue
else:
print("Je ne sais pas comment faire ceci : " + command)