Final tests on Vanes' side

This commit is contained in:
Shadow15510 2021-12-31 13:57:58 +01:00
parent c8da81f751
commit c660590227
10 changed files with 107 additions and 57 deletions

View File

@ -19,7 +19,7 @@ Il faut placer le dossier `idk_demo` à la racine de la Graph 90+E. Ce dossier c
### Lancement
Allez dans le menu Python, ouvrez le dossier `idk_demo` et lancez le script `idk.py` (via [F1]). Une fois le script importé (cela peut prendre quelques instant), exécutez la fonction `idk()` et suivez les instructions.
Allez dans le menu Python, ouvrez le dossier `idk_demo` et lancez le script `idk.py` (via [F1]). Une fois le script importé (cela peut prendre quelques instants), exécutez la fonction `idk()` et suivez les instructions.
### Contrôles
@ -27,7 +27,7 @@ Pour interagir, le joueur doit entrer le numéro ou la lettre correspondante pui
- 1, 2, 3 5 : se déplacer
- 4 : statistiques du joueur (nom, vitesse, agilité, attaque, défense, points de magie et de vie)
- 7 : les sorts connus du joueur
- 8 : information générale (nom du monde actuelle, période de la journée et heure, classe du joueur et pièce d'or)
- 8 : informations générales (nom du monde actuelle, période de la journée et heure, classe du joueur et pièce d'or)
- 6 : inventaire (arme et armure)
- 9 : dormir (permet de passer le temps d'un certain nombre d'heure
- q : quitter
@ -72,9 +72,9 @@ De plus, ce même système est à la base de la régération naturelle du joueur
C'est le gros point fort du jeu, les cartes sont assez grandes. Il y a une grande carte par monde (soif neufs cartes) et chaque monde est muni de maisons ce qui porte le nombre total de cartes explorables à 48.
Se repérer et se déplacer peut se révéler être long et c'est loin d'être évident de se repérer au début. Comme souvent dans mes jeux, j'invite le joueur à jouer avec un crayon et un papier pour noter au fur et à mesure le monde dans lequel il est et où sont les points de passages vers quel autre monde. De même, tous les mondes ne communiquent pas entre eux, il est parfois nécessaire de passer par un autre monde pour aller là où on veut.
Se repérer et se déplacer peut se révéler être long et c'est loin d'être évident de s'y retrouver au début. Comme souvent dans mes jeux, j'invite le joueur à jouer avec un crayon et un papier pour noter au fur et à mesure le monde dans lequel il est et où sont les points de passages vers quel autre monde. De même, tous les mondes ne communiquent pas entre eux, il est parfois nécessaire de passer par un autre monde pour aller là où on veut.
Les points de passages sont quasiment une mécanique à part entière. Dans la mythologie nordique, les mondes sont reliés par des sortes de portes cachées. N'ayant pas voulu rendre la tâche trop facile pour le joueur, ces "portes" sont cachées dans IDK aussi. Dans certains mondes, plusieurs indices permettent de deviner où sont les portes (dans les mondes que le joueur est sensé découvrir en premier). Dans d'autres monde, trouver les points de passage peut être moins évident. À noter que ces points de passages n'ont pas non plus fait l'objet d'une recherche très poussée pour les cacher au maximum.
Les points de passages sont quasiment une mécanique à part entière. Dans la mythologie nordique, les mondes sont reliés par des sortes de portes cachées. N'ayant pas voulu rendre la tâche trop facile pour le joueur, ces "portes" sont cachées dans IDK aussi. Dans certains mondes, plusieurs indices permettent de deviner où sont les portes (dans les mondes que le joueur est sensé découvrir en premier). Dans d'autres mondes, trouver les points de passage peut s'avérer plus délicat. À noter que ces points de passages n'ont pas non plus fait l'objet d'une recherche très poussée pour les cacher au maximum.
#### Les combats

View File

@ -91,7 +91,23 @@ def alfheim_po(coords):
if coords == (34, 20): return [0, "Quelques arbres au sud vous masque la vue. Au nord, l'imposant palais des Elfes et ses quatres colonnes finement travaillee s'offrent a vous. La lourde porte a deux battants en bois massif et fer forge vous fait face. Au sud est, les bruits d'un bourg en pleine activite montent a vos oreilles."]
def alfheim_npc(data, stat):
pass
coords = data[2], data[3]
if coords == (23, 17):
if stat[9] == -1 or data[0] == stat[9]:
stat[9] = data[0]
return [0, "[LE CONDUCTEUR DE LA CHARRETTE SE TOURNA VERS VOUS] Ou voulez-vous aller ? Je vous emmene pour 5 pieces.\n1. Midgard\n2. Asgard\n3. Vanaheim\n4. Svartalfheim", 4]
else:
destinations = ("Midgard", "Asgard", "Vanaheim", "Svartalfheim")
dest_coords = ((3, 10, 58), (0, 126, 71), (1, 28, 13), (8, 109, 66))
for i in range(1, 5):
if data[0] == stat[9] + i:
stat[9] = -1
if stat[1] < 5: return [-i, "Je ne travaille pas gratuitement."]
else:
data[1], data[2], data[3] = dest_coords[i - 1][0], dest_coords[i - 1][1], dest_coords[i - 1][2]
return [-i, "C'est parti pour {} !".format(destinations[i - 1]), 0, (1, -5), (4, 60)]

View File

@ -129,13 +129,13 @@ def asgard_npc(data, stat):
elif coords == (121, 21):
if stat[8] == 3: return {
21: [0, "Alors ?"],
25: [1, "Je savais que je pouvais compter sur toi ! Cela n'a rien a voir, mais j'ai entendu dire que Freyr cherche un certains {}, tu le connais ? [+15 PO]".format(stat[5]), 0, (1, 15), (8, -3)]
25: [1, "Je savais que je pouvais compter sur toi ! Cela n'a rien a voir, mais j'ai entendu dire que Freyr cherche un certain {}, tu le connais ? [+15 PO]".format(stat[5]), 0, (1, 15), (8, -3)]
}
else: return {
"base": [0, "Daric, je peux vous aider ?"],
16: [0, "J'ai besoin d'un coup de main.\n1. Je vous ecoute.\n2. Desole.", 2],
17: [2, "Cela fait plusieurs fois deja qu'Egel, mon voisin, s'introduit dans mon jardin. Je n'arrive pas a lui faire entendre raison.\n1. Qu'attendez-vous de moi ?\n2. Cela ne m'interesse pas, bonne journee.", 2],
17: [1, "Cela fait plusieurs fois deja qu'Egel, mon voisin, s'introduit dans mon jardin. Je n'arrive pas a lui faire entendre raison.\n1. Qu'attendez-vous de moi ?\n2. Cela ne m'interesse pas, bonne journee.", 2],
19: [2, "On m'a dit que le dieu de la Justice pouvait m'aider, mais il ne m'ecoutera jamais. Tu peux interceder en ma faveur ?", 0, (8, 3)],
20: [-4, "Dans ce cas..."],
18: [-2, "Cela ne fait rien."],
@ -236,6 +236,9 @@ def h_10_npc(data, stat):
xp = data[0]
if coords == (25, 11):
if stat[8]:
return [0, "Fini ce que tu as a faire."]
if xp == 0:
stat[3][0] = 1
return [1, "Je suis Odin, Roi des Ases. Actuellement nous avons quelques differents avec les Vanes. Vous irez donc porter cette dague a Freyja, a Vanaheim. Elle comprendra. [ODIN VOUS DONNE UNE DAGUE]"]
@ -261,8 +264,8 @@ def h_10_npc(data, stat):
33: [2, "Ca, c'est un choix strategique !"],
90: [0, "Tient donc ! Cela fait longtemps que je n'avais pas vu ta face, traitre !\n1. Freyja m'a demande de vous transmettre ce message.\n2. Espece de vieux barbu borgne !", 2],
91: [3, "[ODIN VOUS ARRACHA LE PARCHEMIN DES DOIGTS.] Ah ! Une treve ? Hum. Soit."],
92: [-2, "Que croyais-tu ? [ODIN S'AVANCE VERS VOUS CALMEMENT.] C'est moi qui t'ai redonne la vie... Et je peux la reprendre. [UN FROID IMMENSE EMPLIT VOTRE POITRINE, VOUS NE PARVENEZ PLUS A RESPIRER, VOUS VOUS EFFONDREZ, FACE CONTRE TERRE, MORT.]", 0, (1, -(2 * stat[0]))],
91: [3, "[ODIN VOUS ARRACHA LE PARCHEMIN DES DOIGTS.] Ah ! Une treve ? Hum. Soit. [ODIN SE RETOURNA BRUTALEMENT VERS VOUS] Tu es encore la !? Hors de ma vue !"],
92: [-2, "Que croyais-tu ? [ODIN S'AVANCE VERS VOUS CALMEMENT.] C'est moi qui t'ai redonne la vie... Et je peux la reprendre. [UN FROID IMMENSE EMPLIT VOTRE POITRINE, VOUS NE PARVENEZ PLUS A RESPIRER, VOUS VOUS EFFONDREZ, FACE CONTRE TERRE, MORT.]", 0, (0, -(2 * stat[0]))],
100: [2, "[VOUS TENDEZ LA TETE A ODIN.] Les conseils de Mimir ne vous auront pas servit tres longtemps... [ODIN PRIT LA TETE DANS SES MAINS, UNE INTENSE LUMIERE LES PARCOURUS ET LORSQUE LA LUMINOSITE REVIENT A UN NIVEAU SOUTENABLE, LA TETE AVAIT RETROUVE LA VIE.]"]
}

View File

@ -125,6 +125,9 @@ def routine(data, stat):
if stat[2][4] < stat[0] // 2 and not (stat[4] % 60):
stat[2][4] += 1
if data[0] >= 48 and stat[8] == 2:
stat[8] = 0
# Game mecanics
def fight(stat, opponent_stat, opponent_name):
@ -221,8 +224,6 @@ def fight(stat, opponent_stat, opponent_name):
# player_stat = [vitesse, agilité, attaque, défense]
player_stat = [stat[2][0], stat[2][1], stat[2][2] + stat[3][0] * 5, stat[2][3] + stat[3][1] * 5]
player = opponent = 0
end = False
while not end:
choice = 0
@ -253,9 +254,14 @@ def fight(stat, opponent_stat, opponent_name):
choice = 0
# Who start
while player == opponent:
player = stat_test(player_stat, 0)[1]
opponent = stat_test(opponent_stat[:-1], 0)[1]
player = opponent = False
while player == False and opponent == False:
player = stat_test(player_stat, 0)[0]
opponent = stat_test(opponent_stat[:-1], 0)[0]
if player == True and opponent == True:
if player_stat[0] < opponent_stat[0]: opponent = False
else: player = False
# Fight
if player > opponent:
@ -338,13 +344,9 @@ def inventory(data, stat):
def sleep(data, stat):
if 360 < stat[4] < 1140:
print_text("Vous ne pouvez pas dormir de jour.")
return
sleep_hours = 0
while not sleep_hours:
print("Combien d'heure\nvoulez-vous dormir ?")
print("Combien d'heures\nvoulez-vous dormir ?")
sleep_hours = get_input() % 25
if sleep_hours < 0: sleep_hours = 0
@ -358,7 +360,7 @@ def sleep(data, stat):
if stat[0] < 100: stat[0] += 5 * sleep_hours
if stat[2][4] < 50: stat[2][4] += sleep_hours // 2
print_text("Vous vous reposez.")
print_text("Vous vous reposez {0} heure{1}.".format(sleep_hours, ("", "s")[sleep_hours > 1]))
def spell(data, stat):
@ -382,8 +384,16 @@ def spell(data, stat):
input()
def quick_save(data, stat):
data_copy = data[:]
data_copy[2] += 10
data_copy[3] += 3
print("idk({0}, {1})".format(stat[:-1], data_copy))
input()
events = {"*": npc, "?": point_of_interest}
keys = {4: display_stat, 7: spell, 8: misc_stat, 6: inventory, 9: sleep}
keys = {4: display_stat, 7: spell, 8: misc_stat, 6: inventory, 9: sleep, "s": quick_save}
# Main function
def idk(stat=None, data=None):
@ -443,7 +453,7 @@ def idk(stat=None, data=None):
stat, data = idk_game.mainloop(102, stat, data, routine=routine, door="^_", walkable=".,`' ", exit_key="q")
if data[0] == 102:
print_text("Ainsi s'acheva la premiere guerre du monde.")
print_text("Ainsi s'acheva la premiere guerre du monde. Les Ases garderent la tete de Mimir pour ses conseils avises, mais il n'y eu jamais de represailles. Les Ases et les Vanes se melerent ne formant ainsi qu'une seule et meme grande famille.")
else:
print("idk({0}, {1})".format(stat[:-1], data))

View File

@ -163,7 +163,7 @@ def jotunheim_npc(data, stat):
if coords == (34, 56): return {
"base": [0, "Utarg, pour vous servir."],
36: [0, "Utarg, vous me cherchiez ?\n1. Oui, Thrym m'a demande de vous donner ceci [VOUS LUI DONNEZ LA LETTRE].\n2. Quelles sont les relations entre les Geants et les Ases ?", 2],
37: [3, "[UTARG LIT LE BILLET.] Hum. Thrym me demande de detacher une garnison et de me rendre a Vanaheim. On se retrouve a l'auberge."],
37: [3, "[UTARG LIT LE BILLET.] Hum. Thrym me demande de detacher une garnison et de me rendre a Vanaheim. On se retrouve a l'auberge, au nord de Vanaheim."],
38: [-2, "Plusieurs differents ont eloignes les Ases des Geants : meutres, enlevements, traitrises... Ce serait long a expliquer."]
}
@ -336,8 +336,8 @@ h_35 = (r"""
| |
|======================\ /======================|
|==|/\|=|/\|=|/\|=|/\|=/^^\=|/\|=|/\|=|/\|=|/\|==|""",
(24, 19, 5, 0, 0),
(25, 19, 5, 0, 0)) # * : (17, 5)
(24, 19, 5, 64, 85),
(25, 19, 5, 65, 85)) # * : (17, 5)
def h_35_npc(data, stat):
coords = data[2], data[3]

View File

@ -129,7 +129,7 @@ def midgard_npc(data, stat):
if coords == (67, 46):
return {
"base": ["Hmm ?"],
"base": [0, "Hmm ?"],
96: [2, "[ODIN ET FREYJA S'AVANCERENT SOUS LES COLONNES ET CRACHERENT DANS UNE CUVE. UNE EPAISSE FUMMEE S'ELEVA DE CETTE DERNIERE ET LAISSA APPARAITRE UN CORPS EN DISPARAISSANT, 'KVASIR' DIT FREYJA EN MONTRANT LE NOUVEAU DIEU. EN GUISE D'ACCORD DE PAIX, LES ASES DONNERENT MIMIR ET HOENIR TANDIS QUE LES VANES CEDERNT NJORD, FREYR ET KVASIR. FRYEYJA SE PENCHA VERS VOUS.] {}, je te rejoint a Vanaheim.".format(stat[5])]
}
@ -159,6 +159,7 @@ def midgard_npc(data, stat):
elif coords == (51, 60):
return {
"base": [0, "Hmm ?"],
0: [0, "Vous cherchez quelque chose ?\n1. Oui : Asgard.\n2. Je cherche Vanaheim.\n3. Non, tout va bien.", 3],
1: [-1, "Vous devriez essayer au nord, en passant par la foret, a l'est."],
2: [-2, "Hum, vous avez regarde du cote de la petite maison tout a l'ouest ? Un bon ami a moi, Laard est souvent a cote."],
@ -169,7 +170,7 @@ def midgard_npc(data, stat):
elif coords == (66, 56):
return {
"base": [0, "Bonjour, je suis Lithy."],
27: [0, "Les morts au combat sont repartis entre les Ases et les Vanes. Tot ou tard tu devras choisir ton camp et renier l'autre.\n1. Sur quel critere les morts sont-ils repartis ?\n2. Freyr m'a dit que je derangeais... ?", 2],
27: [0, "Je suis Lithy. Les morts au combat sont repartis entre les Ases et les Vanes. Tot ou tard tu devras choisir ton camp et renier l'autre.\n1. Sur quel critere les morts sont-ils repartis ?\n2. Freyr m'a dit que je derangeais... ?", 2],
28: [-1, "Les combattans morts lors d'attaques reviennent en general a Odin alors que ceux qui sont morts pour defendre leurs biens sont plutot l'apanage des Vanes."],
29: [0, "Votre position vous situe entre Ases et Vanes, a la veille d'une guerre comme celle-ci, les Vanes comme les Ases redoutent les informateurs caches. Vous allez devoir afficher clairement votre camp.\n1. Je suis oblige de choisir ?\n2. Comment je peux choisir ?", 2],
30: [-1, "Oui, ne serait-ce que parce qu'Odin n'acceptera jamais le doute : il vous fera tuer."],
@ -198,7 +199,7 @@ def midgard_npc(data, stat):
if stat[1] < 5: return [-i, "Je ne travaille pas gratuitement."]
else:
data[1], data[2], data[3] = dest_coords[i - 1][0], dest_coords[i - 1][1], dest_coords[i - 1][2]
return [-i, "C'est parti pour {} !".format(destinations[i - 1]), 0, (1, -5)]
return [-i, "C'est parti pour {} !".format(destinations[i - 1]), 0, (1, -5), (4, 60)]
@ -343,7 +344,8 @@ h_28 = (r"""
(25, 14, 3, 61, 69)) # * : (27, 6)
def h_28_npc(data, stat):
coords == data[2], data[3]
coords = data[2], data[3]
if coords == (27, 6):
if xp == 42: return [10, 10, 10, 10, 100], "Soldat Ase", 10, 2
if data[0] == 42: return [10, 10, 10, 10, 100], "Targ", 40, 2
elif data[0] == 44: return [0, "[ENCORE SUANT DU COMBAT, VOUS REGARDEZ AVEC UNE CERTAINE SATISFACTION LE TAS DE CHAIR QUI FUT VOTRE ADVERSAIRE.]"]

View File

@ -219,16 +219,16 @@ def h_43_npc(data, stat):
if stat[9] == -1 or data[0] == stat[9]:
stat[9] = data[0]
return [0, "Bienvenue, dans mon armurerie ! Je suis Bertfrid, besoin d'une armure ?\n1. Oui, d'une rondache. [-10 PO]\n2. d'un pavois [-20 PO]\n3. d'une cotte de mailles [-30 PO]\n4. d'une broigne [-40 PO]\n5. d'un harnois [-50 PO]"]
return [0, "Bienvenue, dans mon armurerie ! Je suis Bertfrid, besoin d'une armure ?\n1. Oui, d'une rondache. [-10 PO]\n2. d'un pavois [-20 PO]\n3. d'une cotte de mailles [-30 PO]\n4. d'une broigne [-40 PO]\n5. d'un harnois [-50 PO]", 5]
else:
shields = ("UNE RONDACHE", "UN PAVOIS", "UNE COTTE DE MAILLES", "UNE BROIGNE", "UN HARNOIS")
for i in range(1, 6):
if data[0] == stat[9] + i:
stat[9] = -1
if stat[1] < (i + 1) * 10: return [-i, "Vous n'avez pas assez."]
stat[3][1] = i + 1
return [-i, "C'est un bon achat. [BERTFRID DECROCHA {}]".format(shields[i - 1]), 0, (1, -(i + 1) * 10)]
if stat[1] < i * 10: return [-i, "Vous n'avez pas assez."]
stat[3][1] = i
return [-i, "C'est un bon achat. [BERTFRID DECROCHA {}]".format(shields[i - 1]), 0, (1, -i * 10)]
elif coords == (13, 9):
if stat[3][1] == 0: return [0, "J'achete, je ne vend pas ! Allez voir Bertfrid du cote du four a metaux, elle vous renseignera"]

View File

@ -76,13 +76,13 @@ nidavellir = (r"""
/ / \ / / \ / \/ \ / \ /\ / / """,
# Autres mondes (Nidavellir = 6)
(93, 8, 3, 77, 62), # Midgard
(9, 57, 7, 92, 2), # Muspellheim
(9, 57, 7, 92, 9), # Muspellheim
(39, 19, 8, 109, 66), # Svartalfheim
# Maisons
(69, 26, 37, 15, 14), # Auberge
( 7, 31, 38, 15, 14),
(35, 38, 39, 14, 14), # Armurerie
(35, 38, 39, 14, 14), # Forge
(22, 42, 40, 12, 14),
(23, 51, 41, 10, 19),

View File

@ -97,11 +97,11 @@ def svartalfheim_npc(data, stat):
coords = data[2], data[3]
if coords == (120, 49) or coords == (104, 30):
if stat[4] >= 1260 and stat[4] <= 300: return [0, "Hmm, hein ? Quoi ? Zavez pas vu l'heure ??"]
if not (360 <= stat[4] <= 1200): return [0, "Hmm, hein ? Quoi ? Zavez pas vu l'heure ??"]
if stat[9] == -1 or data[0] == stat[9]:
stat[9] = data[0]
return [0, "Hey, toi ! Tu veux traverser ?\n1.Traverser [2 PO]\n2.Ne pas traverser"]
return [0, "Hey, toi ! Tu veux traverser ?\n1. Traverser [2 PO]\n2. Ne pas traverser", 2]
elif data[0] == stat[9] + 1:
stat[9] = -1
@ -141,7 +141,7 @@ h_45 = (r"""
| |====| |====| |
|=================| | | |==================|
|^| """,
(24, 19, 4, 90, 15)) # * : (15, 4)
(24, 19, 8, 90, 15)) # * : (15, 4)
def h_45_npc(data, stat):
pass
@ -161,18 +161,18 @@ h_46 = (r"""
| |
| |
|=======|^|========|""",
(9, 9, 4, 6, 24),
(9, 9, 8, 6, 24),
) # * : (13, 2) * : (13, 4)
def h_46_npc(data, stat):
coords = data[2], data[3]
if coords == (13, 2):
if data[0] in (70, 72): return [15, 20, 30, 30, 100], "Soldat Ase", 10, 2
if data[0] in (70, 72): return [12, 10, 15, 15, 100], "Soldat Ase", 10, 2
elif data[0] == 74: return [0, "[LA DEPOUILLE SANGLANTE DU SOLDAT EST AFFALLEE SUR LE BANC. UNE MARE DE SANG COAGULE DEJA A SES PIEDS.]"]
if coords == (13, 4):
if data[0] in (70, 72): return [15, 20, 30, 30, 100], "Soldat Ase", 10, 2
if data[0] in (70, 72): return [12, 10, 20, 15, 100], "Soldat Ase", 10, 2
elif data[0] == 74: return [0, "[DES MORCEAUX DE CORPS JONCHENT LE SOL ET LA TABLE.]"]
@ -197,7 +197,7 @@ h_47 = (r"""
| |__| |__| |
| |
|^|==========================|""",
(1, 14, 4, 91, 33)) # * : (3, 4) * : (15, 8)
(1, 14, 8, 91, 33)) # * : (3, 4) * : (15, 8)
def h_47_npc(data, stat):
pass
@ -222,7 +222,7 @@ h_48 = (r"""
| \__/ \__/ \__/ \__/ |
|==| |======| |=| |=| |======| |==|
| | | | |^=| | | | | """,
(19, 14, 4, 57, 59)) # * : (34, 5) * : (29, 6)
(19, 14, 8, 57, 59)) # * : (34, 5) * : (29, 6)
def h_48_npc(data, stat):
pass

View File

@ -44,7 +44,7 @@ vanaheim = (r"""
/ \ /\ / \ / \ .'' |_| ,'`' ',` |_| /\ / \ /
/ \ / \ ,., .,`, /\ ', ,` / \ /
/\ / \ /\ / \ /\ / \ / \ /\ /
/ \ / \ / \ / \ /\ / \ /\ / \ / \
/ \ / \ / \ / \ /\ * / \ /\ / \ / \
/ \ / \ / \ / \ /\ / / \ /\ / \
/ \ / \ /\ / / \ / \ / \ / \ / \
/ \ / / \ / / \
@ -70,6 +70,7 @@ def vanaheim_npc(data, stat):
# Riethas
if coords == (31, 12):
if stat[8] == 5: return {
82: [0, "Kamuel est au sud, a la limite des montagnes."],
86: [2, "Parfait, merci beaucoup !", 0, (1, -25), (8, -5)],
}
@ -81,11 +82,12 @@ def vanaheim_npc(data, stat):
}
# Kamuel
if coords == ():
if coords == (41, 45):
if stat[8] == 5:
if data[0] == 84: return [20, 20, 20, 20, 100], "Kamuel", 50, 2
else: return {
82: ["Kamuel, que voulez-vous ?\n1. Tu dois de l'argent a Riethas.\n2. Vous tuer.", 2],
"base": [0, "Kamuel, que puis-je pour vous ?"],
82: [0, "Kamuel, que voulez-vous ?\n1. Tu dois de l'argent a Riethas.\n2. Vous tuer.", 2],
83: [3, "Bien sur, voila. [+50 PO]", 0, (1, 50)],
}
@ -104,7 +106,7 @@ def vanaheim_npc(data, stat):
if stat[1] < 5: return [-i, "Je ne travaille pas gratuitement."]
else:
data[1], data[2], data[3] = dest_coords[i - 1][0], dest_coords[i - 1][1], dest_coords[i - 1][2]
return [-i, "C'est parti pour {} !".format(destinations[i - 1]), 0, (1, -5)]
return [-i, "C'est parti pour {} !".format(destinations[i - 1]), 0, (1, -5), (4, 60)]
def vanaheim_po(coords):
if coords == (42, 20): return [0, "Vous vous trouvez sur le bord d'une large place verdoyante et bien entretenue. Entoure de montagnes, Vanaheim semble hors d'atteinte du temps. Quelques maisons et arbres completent le decor."]
@ -153,7 +155,8 @@ def h_21_npc(data, stat):
# Utarg
elif coords == (21, 6): return {
"base": [0, "Uiiips ?"],
40: [2, "D'apres nos informateurs, Odin va d'abord attaquer Midgard, et plus precisement le manoir au sud. On se retrouve dans le parc. Bon route, {} !".format(stat[5])],
40: [2, "Ah, enfin ! D'apres nos informateurs, Odin va d'abord attaquer Midgard, et plus precisement le manoir au sud. On se retrouve dans le parc. Bon route, {} !".format(stat[5])],
42: [0, "[UTARG EST DEJA EN ROUTE POUR MIDGARD.]"]
}
@ -188,6 +191,9 @@ def h_22_npc(data, stat):
# Freyja
if coords == (2, 8):
if xp == 45 and stat[8] == 0:
stat[8] = 1
if not (360 <= stat[4] <= 1200):
return [0, "Revenez plus tard s'il vous plait : il fait nuit."]
@ -200,24 +206,24 @@ def h_22_npc(data, stat):
32: [-1, "Bien, bien, mais depeche-toi !"],
33: [1, "Voila une heureuse nouvelle !\n[FREYJA AVAIT A PEINE FINI SA PHRASE QU'UN TRAIT DE FEU TRAVERSA LE CIEL.]\nOdin nous declare la guerre ! Nous devons rassembler nos forces. Va a Jotunheim, et previent Thrym."],
44: [0, "Ah, {} !\n1. Nous avons pris le manoir de Midgard.\n2. Quels liens vous unissent aux Geants ?\n3. Savez-vous ou je peux trouver une bibliotheque ?".format(stat[5]), 2],
45: [-1, "Parfait ! Tu as quartier libre. Prend ces quelques pieces en guise de recompenses. [+15 PO]", 0, (1, 15)],
44: [0, "Ah, {} !\n1. Nous avons pris le manoir de Midgard.\n2. Quels liens vous unissent aux Geants ?\n3. Savez-vous ou je peux trouver une bibliotheque ?".format(stat[5]), 3],
45: [-1, "Parfait ! Vois avec Freyr pour ta recompense."],
46: [-2, "A l'origine des Vanes est Thjazi, un Geant, il enleva Idunn, une Asyne, ce qui signa le debut de nos conflits avec les Ases. Ces differents n'ont cesses de s'amplifier avec le temps, les Ases ne perdant pas une occasion de tuer un Geant. Finalement, les Geants et nous ne formons qu'une seule et meme famille, ces liens sont encore plus forts depuis que Freyr, mon frere, s'est marie avec Gerd, une Geante. Leur monde est Jotunheim, tu peux y acceder uniquement par Vanaheim."],
47: [-3, "Hmm, je crois qu'il y en a une vers Alfheim."],
56: [1, "Tu as trouve quelque chose ?\n1. Les runes signifient 'kvasir'.", 1],
58: [2, "'kvasir' ? Cela ne me dit rien... Laissons cela de cote, Va voir Freyr, il te precisera ta prochaine mission."],
56: [0, "Tu as trouve quelque chose ?\n1. Les runes signifient 'kvasir'.", 1],
57: [3, "'kvasir' ? Cela ne me dit rien... Laissons cela de cote, Va voir Freyr, il te precisera ta prochaine mission."],
74: [0, "Te voila enfin !\n1. C'est un succes.\n2. Ou en est la guerre ?", 2],
75: [3, "Bien joue {} ! Tu as merite un peu de repos. Reviens me voir quand tu sera repose.".format(stat[5])],
76: [-2, "Hum... Nous ne parvenons pas a sortir du statu quo. Chez les Ases comme chez nous, les troupes sont fatiguees. Ce ne sont que des rumeurs, mais une treve pourrait se profiler."],
78: [0, "Va te reposer {}.".format(stat[5])],
78: [0, "Riethas cherche quelqu'un pour un service... Tu le trouveras a Vanaheim, dans la direction de Nordri."],
88: [2, "Apres avoir convoque les autres Vanes nous avons conclu qu'il faut cesser cette guerre. Tu iras donc porter ce message a Odin. [FREYJA VOUS TEND UN PARCHEMIN SELLE.]"],
94: [0, "Alors ?\n1. Odin a accepte la treve.", 1],
95: [1, "Parfait ! La treve se deroulera a Midgard, sous les colonnes du palais."],
95: [1, "Parfait ! J'ai dit a Odin treve se deroulera a Midgard, sous les colonnes du palais. On se retrouve la-bas."],
98: [2, "L'echange d'otage a ete tres inegal, j'ai ordonne l'execution de Mimir ! [FREYJA VOUS TENDIT LA TETE DE MIMIR.] Va donc porter cela a Odin."]
}
@ -240,10 +246,23 @@ def h_22_npc(data, stat):
return [1, "Chez les Vanes, nous rendons hommage aux messagers, en guise de remerciement, je vais vous apprendre le sort de Soin [FREYR DESSINA DANS L'AIR DES RUNES VIOLETTE QUI TOURNOYERENT UN INSTANT AVANT DE S'ESTOMPER PEU A PEU.]\nEt maintenant : direction Asgard !\n[UNE LOURDE TORPEUR S'ABATTIT SUR VOUS. VOUS VOUS SENTEZ LEGER. LE DUR CHOC CONTRE LE SOL VOUS REVEILLA.]"]
else:
return [1, "Chez les Vanes, nous rendons hommage aux messagers, voici quelques pieces d'or, faites en bon usage ! [UNE LOURDE TORPEUR S'ABATTIT SUR VOUS. VOUS VOUS SENTEZ LEGER. LE DUR CHOC CONTRE LE SOL VOUS REVEILLA.]", 0, (1, 5)]
elif xp == 44:
if stat[8] == 0: return [0, "Va donc annoncer la nouvelle a Freyja !"]
if stat[8] == 2: return [0, "Tsst, tu as deja eu ta recompense. Essaye plutot de comprendre ce que signifie ces runes."]
check = True
for spell_id, spell_level in stat[7]:
if spell_id == 2: check = False
if check:
stat[7].append((2, 2))
return [0, "En remerciement je vais t'apprendre le sort Givre de niveau II. [FREYR COMMENCA A CHANTER UNE MELODIE, VOTRE VISION DEVINT FLOUE. LORSQUE VOUS REPRENEZ VOS ESPRITS, VOUS LE SORT EST GRAVE DANS VOTRE MEMOIRE.]", 0, (8, 1)]
else:
return [0, "Je vois que tu connais deja le sort Givre, voila la somme equivalente. [+20 PO]", 0, (1, 20), (8, 1)]
if xp == 64:
message = input("Entrez le message en clair :\n")
if message == "prenez alfheim": return [2, "Ah ! Parfait, montre-moi ca ! [VOUS TENDEZ LE MESSAGE DECHIFFRE A FREYR.]"]
message = input("Parfait ! (ecrivez le message dechiffre) :\n")
if message.lower() == "prenez alfheim": return [2, "Ah ! Parfait, montre-moi ca ! [VOUS TENDEZ LE MESSAGE DECHIFFRE A FREYR.]"]
else: return [-2, "Ca n'a aucun sens... cherche encore."]
if xp == 66: