Review spell casting and improve random dialogues

This commit is contained in:
Shadow15510 2022-04-15 15:59:29 +02:00
commit 36e49db03e
2 changed files with 30 additions and 15 deletions

View File

@ -83,7 +83,7 @@ def idk(save_code=None):
name = stat[5]
data = [{"main": 0}, 3, 44, 66]
print_text("Au alentour du Ve siecle, quelque part en Scandinavie. La bataille prenait place dans un champ saccage, et la nuit etait tombee depuis quelques heures lorsque l'assaut debuta. Hache levee, a la seule lueur de la pleine lune, {0} et sa division se jeterent sur le camp adverse, mais, pris a revers, le combat tourna vite a la defaveur des assaillants qui furent reduit sans autres difficultes.\nBlesse a plusieurs endroit, {0} se trainait sur le sol, tentant de se refugier dans la nuit lorsqu'une forme humaine portant un espadon dans le dos et une lourde armure d'argent s'arreta silencieusement devant lui. La Valkyrie degaina son espadon et acheva {0} avant de l'emporter dans ses bras.\nMais Odin, septique des exploits au combat de {0}, lui refusa une retraite parmi les meilleurs guerriers, et il le renvoya dans le vaste monde avec cet ultimatum : s'il trouve la voie jusqu'a Asgard et le Valaskjalf, Odin conscent a revoir son jugement, sinon il sera condamne a errer dans le monde sans jamais trouver le repos.".format(name))
print_text("Au alentour du Ve siecle, quelque part en Scandinavie. La bataille prenait place dans un champ saccage, et la nuit etait tombee depuis quelques heures lorsque l'assaut debuta. Hache levee, a la seule lueur de la pleine lune, {0} et sa division se jeterent sur le camp adverse, mais, pris a revers, le combat tourna vite a la defaveur des assaillants qui furent reduit sans autres difficultes.\nBlesse a plusieurs endroits, {0} se trainait sur le sol, tentant de se refugier dans la nuit lorsqu'une forme humaine portant un espadon dans le dos et une lourde armure d'argent s'arreta silencieusement devant lui. La Valkyrie degaina son espadon et acheva {0} avant de l'emporter dans ses bras.\nMais Odin, septique des exploits au combat de {0}, lui refusa une retraite parmi les meilleurs guerriers, et le renvoya dans le vaste monde avec cet ultimatum : si {0} trouve la voie jusqu'a Asgard et le Valaskjalf, Odin conscent a revoir son jugement, sinon il sera condamne a errer dans le monde sans jamais trouver le repos.".format(name))
else:
stat, data = decode_save(save_code)

View File

@ -35,7 +35,7 @@ maps = (
spells = ("Soin", "Flammes", "Givre", "Etincelles", "Fatigue")
spells_level = ("I", "II", "III", "IV", "V")
spells_effect = ((0, 1, True), (4, -1, False), (4, -1, False), (4, -1, False), (0, -1, False)) # (capacity, factor, True on player; False on opponent)
spells_effect = ((4, 1, True), (4, -1, False), (4, -1, False), (4, -1, False), (0, -1, False)) # (capacity, factor, True on player; False on opponent)
weapons = ("<aucune>", "Dague", "Marteau", "Masse", "Fleau", "Hache", "Epee", "Espadon", "Hache double")
armors = ("<aucune>", "Rondache", "Pavois", "Cote de maille", "Broigne", "Harnois")
@ -43,8 +43,9 @@ armors = ("<aucune>", "Rondache", "Pavois", "Cote de maille", "Broigne", "Harnoi
def npc_core(event_fn, data, stat, entities, identifiant):
event = event_fn(data, stat, entities, identifiant)
if not event:
sel_choice = print_text("\nChoissez une action :\n1. Attaquer\n2. Voler\n3. Parler\n4. Ne rien faire", 1, 4, 3)
if not event:
msg = ("Hmm ?", "Besoin de quelque chose ?", "Vous cherchez quelqu'un ?", "Vous etes... ?", "Oui ?", "He ! Regarde ou tu vas.")
sel_choice = print_text("{0}\n1. Attaquer\n2. Voler\n3. Ne rien faire".format(choice(msg)), 1, 3, 3)
if sel_choice == 1:
opponent_stat = [randint(5, stat[2][i] + 5) for i in range(4)]
@ -59,10 +60,6 @@ def npc_core(event_fn, data, stat, entities, identifiant):
return [0, "Votre victime vous a vu et vous a mis une raclee.", 0, (0, -10)]
elif sel_choice == 3:
msg = ("Hmm ?", "Besoin de quelque chose ?", "Vous cherchez quelqu'un ?", "Vous etes... ?", "Oui ?", "He ! Regarde ou tu vas.")
return [0, choice(msg)]
elif sel_choice == 4:
return None
elif type(event) == tuple and len(event) > 2:
@ -340,22 +337,40 @@ def sleep(data, stat):
def spell(data, stat):
to_disp = "Magie : {} PM".format(stat[2][4])
print("<o> Sorts <o>")
print(" |" + to_disp + " " * (16 - len(to_disp)) + "|")
for i in range(3):
if i < len(stat[7]):
spell_id, level = stat[7][i]
if spell_id >= 0:
to_disp = "{0} {1}".format(spells[spell_id], spells_level[level - 1])
print(" |" + to_disp + " " * (16 - len(to_disp)) + "|")
print(" |{}.".format(i + 1) + to_disp + " " * (14 - len(to_disp)) + "|")
else:
print(" |<aucun> |")
print("<o> ============ <o>")
input()
spell_choice = get_input()
if not (1 <= spell_choice <= 3): spell_choice = 0
if spell_choice:
spell_choice -= 1
spell_id, level = stat[7][spell_choice][0], stat[7][spell_choice][1]
capacity, factor, apply_on_player = spells_effect[spell_id]
if not apply_on_player:
print_text("Vous ne pouvez pas lancer ce sort.")
elif stat[2][4] >= level * 10:
msg = "".format()
stat[2][4] -= level * 10
pts = 12 * level + randint(-5, 5)
if capacity == 4:
stat[0] += factor * pts
else:
stat[2][capacity] += factor * pts
print_text("Vous lancez {0} de niveau {1} [-{2} PM] et {3} {4} points de {5}".format(spells[spell_id], spells_level[level - 1], level * 10, ("perdez", "gagnez")[factor > 0], pts, ("vitesse", "agilité", "attaque", "défense", "vie")[capacity]))
else:
print_text("Vous n'avez plus assez de points de Magie.")
def quick_save(data, stat):
data_copy = data[:]
@ -364,8 +379,8 @@ def quick_save(data, stat):
# Misc functions
def get_input():
string = input(">")
def get_input(string=">"):
string = input(string)
try:
return int(string)
except: