Rinascita/sources/rinascita.py

164 lines
10 KiB
Python

from asci_lib import Asci
from maps import *
world_maps = (world, smoastraund_house, hospital, narfec_castle, monastery)
def events(xp, current_map, x, y, stat):
coords = (x, y)
name = stat[-1]
# Outdoor world
if current_map == 0:
# Point of interest : mountains
if coords == (12, 6): return {
"base": [0, "[IL N'Y A RIEN A VOIR ICI.]"],
16: [0, "[ENTRE LES PIERRES EBOULEE VOUS ENTRAPERCEVEZ LES RESTES D'UN MUR.]\n1.Fouiller les decombres\n2.Aller voir plus haut", 2],
17: [2, "[VOUS METTEZ AU JOUR LES RESTES D'UNE MAISON. LE MOBILIER, BIEN QUE DEFONCE ET HORS D'USAGE A L'AIR ENTRETENU]"],
18: [-2, "[ALORS QUE VOUS ESCALADIEZ LE JEUNE PIERRIER, VOS YEUX SE POSENT SUR UNE MAIN A DEMI ENSEVELIE. LE MALHEUREUX LA-DESSOUS N'A AUCUNE CHANCE D'ETRE ENCORE VIVANT. ENCORE SECOUE DE VOTRE DECOUVERTE VOUS REDESCENDEZ AU PIED DE L'EBOULIS]"],
19: [1, "[EN RETOURNANT SUR VOS PAS VOUS TROUVEZ UNE PIERRE SEMBLABLE A CELLE QU'AVAIT SMOASTRAUND.]"]
}
# Andon the factor
if coords == (71, 45): return {
"base": [0, "Je n'ai pas de courrier pour toi, {}, reviens plus tard !".format(name)],
23: [0, "Ah ! {} ! J'ai entendu dire qu'il y avait eu un mort !\n1.Salut Andon. Un mort, dans les montagnes des Syerpenes ? Je suis au courrant.\n2.Ah bon ?".format(name), 2],
24: [2, "Dans les montagnes ?! Mais non, le moine ! Un copiste a ete retrouve mort au monastere de Tal'za."],
25: [1, "Tu n'en a pas entendu parle ? On a retrouve le corps d'un moine dans le monastere de Tal'za."],
26: [0, "Il parait que la Reine est inquiete, un mort plus le tremblement de terre...\n1.Sais-tu comment il est mort ?\n2.Ou est ce monastere ?\n3.Tu m'as l'air bien enthousisate...\n4.C'est le deuxieme mort, le tremblement de terre a fait une victime.", 4],
27: [-1, "Aucune idée ! D'ennui sans doute..."],
28: [-2, "Le monastere de Tal'za est assez au nord, à l'est. Suit la riviere Iense vers le nord, tu vas vite trouver le bois de Gonloube. Poursuit au nord-est et tu devrais le trouver."],
29: [-3, "Evidemment, plusieurs mois ou il ne se passe rien et la... Tellement de choses sont en train de se passer !"],
30: [-4, "Un deuxieme mort alors ? Extraordinaire ! Fait ce que tu veux, moi je veux aller voir ca de plus pres !"]
}
elif coords == (78, 20): return {
"base": [0, "Je n'ai pas de courrier pour toi, {}, reviens plus tard !".format(name)],
26: [5, "Je savais que tu viendrais !"]
}
# Smoastraund's house
elif current_map == 1:
# Smoastraund
if coords == (3, 1): return {
"base": [0, "[SMOASTRAUND EST MORT.]"],
0: [1, "J'ai... une derniere chose a te rheu rheu rheu rrr... A te dire... {}. Va dans la remise, Rheu rueh, et donne moi la pierrarrgh rheu Terenheti te la donneraarrgh rheu rheu...".format(name)],
1: [0, "S'il te plait {}, apporte moi la pierre. Reuh rheu.".format(name)],
2: [1, "Merci ! [LES YEUX DE SMOASTRAUND FIXERENT LE VIDE, SES MAINS SE CRISPERENT SUR LE CAILLOUX] Quatre fois sonnera rheu rheu l'hecatombe. // Les petits d'abord, les grands suivrheu... suivront. // Et la peur et la mort se repandront. Rheu rheu ! // La Reine les suivra dans la tombe. Retient ses vers mon ami ! Retiens ses vers... Reuh reuh. [SMOASTRAUND S'AFFAISSA BRUTALEMENT SUR SON LIT]"],
3: [0, "Le quatrain resonna dans votre tete. Quatre fois sonnera l'hecatombe. // Les petits d'abords, les grand suivront. // Et la peur et la mort se repandront. // La Reine les suivra dans la tombe."]
}
# Terenheti
elif coords == (16, 4): return {
"base": [0, "Je suis Terenheti, la femme de Smoastraund."],
1: [1, "La pierre ? Oui, la voici."],
3: [0, "Le palais de Narfec ? Il est nord de la riviere d'Iense, tu ne peux pas le rater."],
20: [0, "Besoin d'aide ?\n1.Oui, j'ai trouve une pierre...\n2.Non merci, tout va bien.", 2],
21: [2, "Hum, laisse-moi la voir ? Ce n'est pas tout a fait la meme"],
22: [-2, "D'accord {}, reviens si tu as besoin d'aide.".format(name)],
23: [0, "Je vais etudier la pierre reviens plus tard."]
}
# Hospital
elif current_map == 2:
if coords == (16, 3):
if stat[0] < 100: return [0, "Tsst, du repos. Voila ce qu'il vous faut.", 50]
else: return [0, "Vous etes en pleine forme !"]
# Narfec castle
elif current_map == 3:
# Guards
if coords == (11, 5) or coords == (15, 5):
if xp < 3: return [0, "Vous n'etes pas autorise a entrer."]
else: return {
"base": [0, "La Reine Acth d'Emcim'di vous attend."],
3: [0, "[LE GARDE DEGAINE SON EPEE] Halte ! Qui etes-vous ?\n1.Je suis {0} et je viens voir la Reine pour une affaire urgente.\n2.Je viens avertir la Reine d'une terrible prophetie.\n3.Cela ne vous regarde pas.".format(name), 3],
4: [0, "Dites-en plus ?\n1.C'est a propos d'une prophetie\n2.Cela ne vous regarde pas.", 2],
5: [2, "Vous pouvez entrer."],
6: [-3, "Vous n'etes pas autorise a voir la Reine."],
}
# Queen
elif coords == (18, 2):
if xp <= 6: return [0, "Gaaarrde ! On s'est introduit dans ma chambre ! [DEUX GARDES SE PRECIPITENT VERS VOUS. L'UN DES DEUX VOUS PASSE SON EPEE AU TRAVERS DU CORPS. VOUS MOURREZ SUR LE COUP]", 0, -stat[0]]
else: return {
"base": [0, "Veuillez sortir de ma chambre. Immediatement."],
7: [0, "Vous vouliez m'entrenir d'une prophetie ?\n1.Oui, sur son lit de mort, Smoastraund m'a confie une ultime prediction : vous etes en danger de mort.\n2.Vous etes en danger de mort.", 2],
8: [2, "Allons bon... Je prendrais les dispositions qui s'imposent. Merci de m'avoir prevenue. Aller donc vous restaurer, les cuisines sont a l'est."],
9: [1, "Hmm... Admettez que tout cela est assez peu convainquant... Je prendrais neanmoins quelques mesures. Merci de votre visite. Vous avez l'air affame, allez donc voir mon cuisinier, vous le trouverez dans l'aile est."],
10: [0, "Notre entretient est termine."],
}
# Cook
elif coords == (24, 2): return {
"base": [0, "Vous n'avez rien a faire ici."],
10: [0, "Tenez. [ALORS QUE LE CUISINIER VOUS DONNAIT UN BOUT DE PAIN ET DU VIN, UN BRUIT SOURD SE REPANDIT. LES MURS TREMBLERENT, EBRANLANT TOUTE LA STRUCTURE DU CHATEAU.]\n1.Qu'est-ce que c'etait ?\n2.Vous avez entendu ?", 2],
11: [2, "Un tremblement de terre... Cela fait bien longtemps que nous n'en avions plus eu..."],
12: [1, "Oui, j'ai entendu, les glissements de terrain sont rares par ici et cela fait longtemps que nous n'en avions pas eu."],
13: [0, "Cela fait des decenies que les montagnes des Syerpenes ne bougent pas, ce n'est pas un bon presage...\n1.Il y a des gens qui vivent la-bas ?\n2.Qu'entendez-vous par mauvais presage ?", 2],
14: [2, "Il y avait un vieil ermite je crois... Tres au nord..."],
15: [-2, "Aussi loin que ma memoire remonte, nous n'avons eu que deux ou trois tremblements, et a chaque fois, des choses etranges se sont produites..."],
16: [0, "Prenez soin de vous."]
}
# Monastery
elif current_map == 4:
# Point of interest : monastery
if coords == (17, 17): return [0, "[DERRIERE VOUS, LA LOURDE PORTE DU MONASTERE. DANS LE HALL PERE MACOPE SURVEILLE LE CLOITRE. LE SOL DE PAVE LAISSE PLACE AU CENTRE A UN JARDIN DECOUPE EN QUATRE PARTIE, ET PIECE D'EAU AU CENTRE. LES AILES OUEST ET EST SONT OCCUPÉES PAR QUATRES FRERES, LE SCRIPTORIUM SE SITUE PLUS AU NORD, DANS LE PROLONGEMENT DE L'AILE EST ET LA CELLULE DU PERE MACOPE EST PLACEE DE L'AUTRE COTÉ]"]
# Monastery'chief
elif coords == (14, 21): return {
"base": [0, "Bienvenue dans la maison de Dieu mon fils."],
31: [0, "Bonjour et bienvenue mon fils. Ce qui nous arrive est terrible, monstrueux !\n1.Expliquez-vous ?\n2.Je l'ai toujours dit : lire tue.\n3.Pouvez-vous me decrire les derniers evenements ?", 3],
32: [-1, "Mais enfin, n'etes-vous pas au courrant !? Dieu a rappele frere Rolen a lui !"],
33: [-2, "Mecreant ! Surveillez votre langue dans les lieux consacres !"],
34: [1, "Hier au soir, frere Rolen finissait un manuscrit pour la Reine. L'ouvrage ne devait souffrir d'aucun retard, aussi resta-t-il tard eveille. Je me suis rendu compte de son abscence aux offices de laudes. M'etant rendu dans sa cellule et ne le trouvant point a son ouvrage, je me rendit au scriptorium. Le pauvre gisait, mort, sur son pupitre."],
35: [0, "Les autres freres sont tous dans leur cellule."]
}
# Brother 1
elif coords == (1, 13): return {
35: [0, "Je n'ai pas vu frere Rolen...\n1.Ou etiez-vous aux Vigiles ?\n2.Avez-vous entendu quelque chose ?\n3.A quoi travaillais frere Rolen ?\n4.Frere Rolen avait-il des rivaux ?", 4],
36: [-1, "J'etais ici meme, je n'ai quitte ma cellule que pour aller aux Laudes puis pere Macope a decouvert le corps. Je ne suis pas sorti depuis."],
37: [-2, "Non, je devais dormir au moment des faits."],
38: [-3, "Il enluminais un receuil de propheties pour la Reine."],
39: [-4, "Sans doute quelques'un oui... Il etait appliqué a son travail, et pere Macope se faisant vieux.. Frere Rolen etait naturellement presenti pour lui succeder."]
}
return [0, "Hmm ?"]
def fights(xp, current_map, x, y, stat):
return True
def display_stat(stat):
print("<*> Statisques <*>")
print("Points de vie : {}".format(stat[0]))
def extra_function(xp, current_map, x, y, stat):
pass
def start(stat=[100], data=[0, 1, -4, -2]):
if len(stat) == 1:
name = input("Entrez votre nom :\n>")
stat.append(name)
rpg_python = Asci(world_maps, events, fights, display_stat, extra_function)
stat, data = rpg_python.mainloop(100, stat, data=data, legend=("@", "^", "*?", "$"))
print("Pour continuer :\nstart({}, {})".format(stat, data))