Update repo

dev
Shadow15510 3 months ago
parent 20dd7fc659
commit e7ade8cbba
  1. 1
      idk/alfheim.py
  2. 40
      idk/asci.py
  3. 48
      idk/asgard.py
  4. 355
      idk/hy_po.py
  5. 440
      idk/hypo.py
  6. 22
      idk/idk.py
  7. 23
      idk/idk_lib.py
  8. 3
      idk/jotunheim.py
  9. 4
      idk/midgard.py
  10. 2
      idk/muspellheim.py
  11. 2
      idk/nidavellir.py
  12. 1
      idk/niflheim.py
  13. 1
      idk/svartalfheim.py
  14. 136
      idk/vanaheim.py
  15. 48
      tiled_map/asgard.tmx
  16. 12
      tiled_map/vanaheim.tmx

@ -131,7 +131,6 @@ h_24 = (r"""
(20, 19, 2, 52, 31))
alfheim_entities = (
[0, '?', 2, 34, 20, 'stand by'],
[0, '*', 2, 23, 17, 'stand by'],
[0, '*', 2, 11, 4, 'stand by'],
[0, '*', 2, 46, 6, 'stand by'],

@ -6,7 +6,7 @@ class Asci:
def __init__(self, maps, entities, events_mapping, keys_mapping, behaviors=None, screen_width=21, screen_height=7):
# Load maps and entities
self.maps = [Map(*i) for i in maps]
self.entities = {}
self.entities = dict()
entity_id = 0
for i in entities:
if not i[0]:
@ -309,11 +309,13 @@ class Entity:
self.behavior = behavior
self.args = list(args)
def change_behavior(self, new_behavior):
if self.behavior != "permanent": self.behavior = new_behavior
def change_behavior(self, new_behavior, *args):
if self.behavior != "permanent":
self.behavior = new_behavior
self.args = list(args)
def teleport(self, map_id, x, y):
if self.behavio != "permanent": self.map_id, self.pos_x, self.pos_y = map_id, x, y
if self.behavior != "permanent": self.map_id, self.pos_x, self.pos_y = map_id, x, y
# Functions used by Asci
@ -402,11 +404,26 @@ def follow(entity, data, stat, screen, walkable):
entity.pos_x, entity.pos_y = data[2], data[3]
elif data[4] in (1, 2, 3, 5):
direction = (data[4] - 1) if data[4] != 5 else 3
if entity.args: walkable += entity.args[0]
cases = ((data[2] + 1, data[3]), (data[2], data[3] - 1), (data[2] - 1, data[3]), 0, (data[2], data[3] + 1))[data[4] - 1]
if not (0 <= cases[0] < screen.map_width and 0 <= cases[1] < screen.map_height): entity.pos_x, entity.pos_y = data[2], data[3]
elif not screen.get_cell(cases[0], cases[1]) in walkable: (entity.pos_x, entity.pos_y), (data[2], data[3]) = (data[2], data[3]), (entity.pos_x, entity.pos_y)
else: entity.pos_x, entity.pos_y = cases
cases = [(data[2] + 1, data[3]), (data[2], data[3] - 1), (data[2] - 1, data[3]), (data[2], data[3] + 1)]
pos = cases[direction]
if not (0 <= pos[0] < screen.map_width and 0 <= pos[1] < screen.map_height) or (not screen.get_cell(pos[0], pos[1]) in walkable):
find = False
cases.remove(cases[(direction + 2) % 4])
for pos in cases:
if (0 <= pos[0] < screen.map_width and 0 <= pos[1] < screen.map_height) and (screen.get_cell(pos[0], pos[1]) in walkable):
find = True
entity.pos_x, entity.pos_y = pos
break
if not find:
entity.pos_x, entity.pos_y = data[2], data[3]
else:
entity.pos_x, entity.pos_y = pos
def walk_between(entity, data, stat, screen, walkable):
@ -414,11 +431,12 @@ def walk_between(entity, data, stat, screen, walkable):
new_x, new_y = _walk_engine(entity, frame)
if screen.get_cell(new_x, new_y) in walkable:
entity.pos_x, entity.pos_y = new_x, new_y
entity.args[0] = frame
if (entity.pos_x, entity.pos_y) == entity.args[1][frame]: entity.args[0] = frame
def walk_to(entity, data, stat, screen, walkable):
frame = entity.args[0]
print(frame, len(entity.args[1]), entity.args)
if len(entity.args[1]) == frame:
entity.behavior = "stand by"
entity.args = []
@ -428,7 +446,7 @@ def walk_to(entity, data, stat, screen, walkable):
if screen.get_cell(new_x, new_y) in walkable:
entity.pos_x, entity.pos_y = new_x, new_y
entity.args[0] += 1
if (entity.pos_x, entity.pos_y) == entity.args[1][frame]: entity.args[0] += 1
def follow_by_player(entity, data, stat, screen, walkable):
@ -446,7 +464,7 @@ def follow_by_player(entity, data, stat, screen, walkable):
def _walk_engine(entity, frame):
delta_x, delta_y = list(map(lambda x,y: y - x, (entity.pos_x, entity.pos_y), entity.args[1][frame]))
delta_x, delta_y = list(map(lambda x, y: y - x, (entity.pos_x, entity.pos_y), entity.args[1][frame]))
new_x = entity.pos_x
new_y = entity.pos_y
if delta_x: new_x += abs(delta_x) // delta_x

@ -50,29 +50,29 @@ asgard = (r"""
#### _ ### /-\ ### ### ### ~(~)~ ### /_____________\ _ ~~~~~~~~~~~~~~ ### / \ \
|| /o\ ##### /-\ /-\ /-\ /~(___)~\ /-\ |_/ \_/ \_| ### ### /o\ ~~~~~~~~~~~ ##### / \ /\
## |_| ### \~~~~~~~/ |_| |^| |_| ##### ##### |_| ~~~~~~~~~~ ### / \ / \
~ #### /-\ ### ### ### ~~~~~~~~~~ /|\ ### / \
~###### ____________ #### #### ### /-\ /|\ ### ##### ~~~~~~~~~~ ### ##### /\ \
~###### / Himinbjorg \ #### #### ##### ### ### ##### ### ~~~~~~~~ ##### ### / \
~ #### /______________\ ### ### ### ##### ##### ### ### /|\ ~~~~~~~~~ _ ### /|\ / \ /
~ || ### | ]O[ __ ]O[ | /-\ ### ### _ ##### _ /|\ ~~~~~~~~~ /o\ /|\ / \ /
~ _ ##### |_____|^^|_____| ### ### ### /-\ /-\ ### /o\ ### /o\ ------------- |_| ### /
~ /o\ ### ##### #### #### ##### |_| /|\ |_| ### ##### ###/
~ |_| /-\ ### #### #### ### ### ##### ### #####
~ /-\ ##### ### /-\ ### ### ------------- /|\ ###
~~ ### ### _ ### ### ##### ##### /|\ ~~~~~~~ ### /|\ ###
~~ ##### ##### ### ### ### /o\ /-\ ##### ### ### ### ~~~~~~~ ### ##### ####
~~ ### ### ##### ##### ##### |_| ### ### /-\ ##### ### /|\ ### ~~~~~~ ### ##### ### ###
~~ /-\ /-\ ### ### ### ___________ /-\ ##### ### ##### ##### ~~~~~ ##### ### /|\ /|\
~~ |_| |_| |_| /Sokkvabekkr\ ### /|\ ### ### ~~~~~~ ### /|\ ###
~~ /_____________\ /-\ ### /|\ /|\ ~~~~~~~ /|\ ### #####
~~ ________ ### ### ### _ /_|_/__\_/__\_|_\ ##### ### ### ~~~~~~~~ ##### ###
~~ /Alfheimr\ ##### ##### ##### /o\ |_| |^| |_| _ ### ##### ### ##### ~~~~~~~~ ### /|\
~~~ |]O[__]O[| ### ### ### |_| /o\ /-\ ### ##### ### ~~~~~~~~~ _ /|\ ###
~~~ |__|^^|__| |_| |_| |_| ##### ##### |_| /-\ ### /|\ ~~~~~~~~~~ _ /o\ #####
~~~ ##### ##### /|\ ~~~~~~~~~~ /-\ |_| ### ~
~~~ ~~~~~~~~~~~~ |_| /|\ ~~
~~~~~ ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
~~~~~~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
#### /-\ ### ### ### ~~~~~~~~~~ /|\ ### / \
###### ____________ #### #### ### /-\ /|\ ### ##### ~~~~~~~~~~ ### ##### /\ \
###### / Himinbjorg \ #### #### ##### ### ### ##### ### ~~~~~~~~ ##### ### / \
#### /______________\ ### ### ### ##### ##### ### ### /|\ ~~~~~~~~~ _ ### /|\ / \ /
|| ### | ]O[ __ ]O[ | /-\ ### ### _ ##### _ /|\ ~~~~~~~~~ /o\ /|\ / \ /
# _ ##### |_____|^^|_____| ### ### ### /-\ /-\ ### /o\ ### /o\ ------------- |_| ### /
### /o\ ### ##### #### #### ##### |_| /|\ |_| ### ##### ###/
##### |_| /-\ ### #### #### ### ### ##### ### #####
### /-\ ##### ### /-\ ### ### ------------- /|\ ###
/-\ ### ### _ ### ### ##### ##### /|\ ~~~~~~~ ### /|\ ###
##### ##### ### ### ### /o\ /-\ ##### ### ### ### ~~~~~~~ ### ##### ####
### ### ##### ##### ##### |_| ### ### /-\ ##### ### /|\ ### ~~~~~~ ### ##### ### ###
###/-\ /-\ ### ### ### ___________ /-\ ##### ### ##### ##### ~~~~~ ##### ### /|\ /|\
##### |_| |_| |_| /Sokkvabekkr\ ### /|\ ### ### ~~~~~~ ### /|\ ###
### /_____________\ /-\ ### /|\ /|\ ~~~~~~~ /|\ ### #####
/-\ ________ ### ### ### _ /_|_/__\_/__\_|_\ ##### ### ### ~~~~~~~~ ##### ### ~
/Alfheimr\ ##### ##### ##### /o\ |_| |^| |_| _ ### ##### ### ##### ~~~~~~~~ ### /|\ ~
### |]O[__]O[| ### ### ### |_| /o\ /-\ ### ##### ### ~~~~~~~~~ _ /|\ ### ~
#####|__|^^|__| |_| |_| |_| ##### ##### |_| /-\ ### /|\ ~~~~~~~~~~ _ /o\ ##### ~
### ##### ##### ~~~~~~~~~ /|\ ~~~~~~~~~~ /-\ |_| ### ~~
/-\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ |_| /|\ ~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""",
# Autres mondes (Asgard = 0)
(126, 71, 3, 72, 6), # Midgard
@ -393,8 +393,6 @@ h_20 = (r"""
(35, 24, 0, 11, 69))
asgard_entities = (
[0, '?', 0, 120, 26, 'stand by'],
[0, '?', 0, 51, 55, 'stand by'],
[0, '*', 0, 34, 7, 'stand by'],
[0, '*', 0, 121, 21, 'stand by'],
[0, '*', 0, 117, 32, 'stand by'],

@ -1,355 +0,0 @@
from idk_lib import *
try:
import dlc_hy_po as dlc
spells = dlc.dlc_spells
spells_level = dlc.dlc_spells_level
spells_effect = dlc.dlc_spells_effect
weapons = dlc.dlc_weapons
armors = dlc.dlc_armors
dlc_entities = dlc.dlc_entities
except:
dlc = None
dlc_entities = ()
# Game
def npc(data, stat, entities, identifiant):
npc_data = (
asgard_npc,
vanaheim_npc,
alfheim_npc,
midgard_npc,
niflheim_npc,
jotunheim_npc,
nidavellir_npc,
muspellheim_npc,
svartalfheim_npc,
h_9_npc, h_10_npc, h_11_npc, h_12_npc, h_13_npc, h_14_npc, h_15_npc, h_16_npc, h_17_npc, h_18_npc, h_19_npc, h_20_npc,
h_21_npc, h_22_npc,
h_23_npc, h_24_npc,
h_25_npc, h_26_npc, h_27_npc, h_28_npc,
h_29_npc, h_30_npc,
h_31_npc, h_32_npc, h_33_npc, h_34_npc, h_35_npc, h_36_npc,
h_37_npc, h_38_npc, h_39_npc, h_40_npc, h_41_npc,
h_42_npc, h_43_npc, h_44_npc,
h_45_npc, h_46_npc, h_47_npc, h_48_npc)
if dlc:
event = dlc.dlc_npc(data, stat, entities, identifiant)
if event: return "dlc", event
elif identifiant == "Kvasir": return kvasir(data, stat, entites)
return npc_core(npc_data[data[1]], data, stat, entities, identifiant)
def point_of_interest(data, stat, entities, identifiant):
po_data = (
asgard_po,
vanaheim_po,
alfheim_po,
midgard_po,
niflheim_po,
jotunheim_po,
nidavellir_po,
muspellheim_po,
svartalfheim_po
)
coords = data[2], data[3]
event = po_data[data[1]](coords, identifiant)
if not event: return [0, "Il n'y a rien à voir ici."]
else: return event
entities = asgard_entities + vanaheim_entities + alfheim_entities + midgard_entities + niflheim_entities + jotunheim_entities + nidavellir_entities + muspellheim_entities + svartalfheim_entities + dlc_entities + (["Kvasir", "*", 3, 46, 66, "follow"], )
print(center("L'Hydromel poetique", 21, " "))
print()
print("Entrez 'hy_po()' pour\nune nouvelle partie.")
events = {"*": npc, "?": point_of_interest}
keys = {4: display_stat, 7: spell, 8: misc_stat, 6: inventory, 9: sleep, "s": quick_save}
def hy_po(save_code=None):
# stat = [0 - PV, 1 - pièces d'or, 2 - [vitesse, agilité, attaque, defense, magie], 3 - [arme, armure], 4 - ticks, 5 - nom, 6 - classe, 7 - sorts connus : (id, level), 8 - sous-quêtes terminées]
if not save_code:
stat = init_stat()
name = stat[5]
data = [{"main": 0}, 3, 44, 66]
print_text("A l'issue de la guerre qui opposa Ases et Vanes, Odin et Freyja conclurent un accord de paix durant lequel ils cracherent dans une meme cuve. De cette cuve naquit Kvasir, l'etre le plus sage qui soit. Venere par tous, Kvasir est tres souvent appelle au chevet des Dieux pour prodiguer ses precieux conseils. Odin et Freyja vous ont missionne pour escorter et assister Kvasir dans ses deplacements.")
else:
stat, data = decode_save(save_code)
idk_game = Asci(maps, entities, events, keys)
stat, data = idk_game.mainloop(100, stat, data, routine=routine, low_bar=low_bar, door="^_", walkable=".,`' ", exit_key="q")
if stat[9] != -1: data[0]["main"] -= stat[9]
if data[0]["main"] == 1:
print_text("conclusion")
else:
print("hy_po(\"{}\")".format(encode_save(data, stat[:-1])))
def kvasir(data, stat, entites):
return {
"base": [0, "Je suis Kvasir."],
0: [1, "Baldr m'a confie etre preoccupe par de recents reves premonitoires. Nous devrions aller le voir."],
1: [0, "Nous devrions aller voir Baldr. Il habite dans le Breidablik, a Asgard."],
2: [0, "Je vais rester ici pour veiller sur Baldr, va chercher Freyja et reviens vite !"]
}
# - - - Asgard - - - #
def asgard_po(coords, identifiant):
pass
def asgard_npc(data, stat, entites, identifiant):
pass
def h_9_npc(data, stat, entites, identifiant):
pass
def h_10_npc(data, stat, entites, identifiant):
pass
def h_11_npc(data, stat, entites, identifiant):
pass
def h_12_npc(data, stat, entites, identifiant):
pass
def h_13_npc(data, stat, entites, identifiant):
pass
def h_14_npc(data, stat, entites, identifiant):
pass
def h_15_npc(data, stat, entites, identifiant):
pass
def h_16_npc(data, stat, entites, identifiant):
if identifiant == "Baldr":
if data[0] == 2: entites["Kvasir"].change_behavior("stand by")
return {
"base": [0, "Baldr, fils d'Odin et de Frigg. Dieu de la lumiere, de la jeunesse, de l'amour et de la beaute."],
1: [0, "Ah ! Vous voila enfin ! Depuis quelques temps, je fais des reves etranges dans lesquels je me vois mourir. Maintenant, j'ai meme peur de sortir du Breidablik !\n1. Nous pouvons vous aider ?", 1],
2: [0, "Si vous pouviez demander de l'aide à Freyja, je vous en serais reconnaissant.\n1. En quoi Freyja peut vous aider ?\n2. Ou pouvons-nous la trouver ?", 2],
3: [-1, "Freyja pratique le Seidr, et, avec Odin, elle est la meilleure seidr de tout l'Yggdrasil. Avant que tu ne me demandes, le Seidr est une forme de magie divinatoire. Nous autres, Dieux, la pratiquons et pour certains avec beaucoup de puissance. Mais les humains peuvent aussi en faire."],
4: [-2, "Habituellement, elle reside dans son palais a Vanaheim, mais depuis la treve et en signe de paix, tu la trouvera peut-etre au Folkvangr."]
}
def h_17_npc(data, stat, entites, identifiant):
pass
def h_18_npc(data, stat, entites, identifiant):
pass
def h_19_npc(data, stat, entites, identifiant):
pass
def h_20_npc(data, stat, entites, identifiant):
pass
# - - - Vanaheim - - - #
def vanaheim_po(coords, identifiant):
pass
def vanaheim_npc(data, stat, entites, identifiant):
pass
def h_21_npc(data, stat, entites, identifiant):
pass
def h_22_npc(data, stat, entites, identifiant):
pass
# - - - Alfheim - - - #
def alfheim_po(coords, identifiant):
pass
def alfheim_npc(data, stat, entites, identifiant):
pass
def h_23_npc(data, stat, entites, identifiant):
pass
def h_24_npc(data, stat, entites, identifiant):
pass
# - - - Midgard - - - #
def midgard_po(coords, identifiant):
pass
def midgard_npc(data, stat, entites, identifiant):
pass
def h_25_npc(data, stat, entites, identifiant):
pass
def h_26_npc(data, stat, entites, identifiant):
pass
def h_27_npc(data, stat, entites, identifiant):
pass
def h_28_npc(data, stat, entites, identifiant):
pass
# - - - Niflheim - - - #
def niflheim_po(coords, identifiant):
pass
def niflheim_npc(data, stat, entites, identifiant):
pass
def h_29_npc(data, stat, entites, identifiant):
pass
def h_30_npc(data, stat, entites, identifiant):
pass
# - - - Jotunheim - - - #
def jotunheim_po(coords, identifiant):
pass
def jotunheim_npc(data, stat, entites, identifiant):
pass
def h_31_npc(data, stat, entites, identifiant):
pass
def h_32_npc(data, stat, entites, identifiant):
pass
def h_33_npc(data, stat, entites, identifiant):
pass
def h_34_npc(data, stat, entites, identifiant):
pass
def h_35_npc(data, stat, entites, identifiant):
pass
def h_36_npc(data, stat, entites, identifiant):
pass
# - - - Nidavellir - - - #
def nidavellir_po(coords, identifiant):
pass
def nidavellir_npc(data, stat, entites, identifiant):
pass
def h_37_npc(data, stat, entites, identifiant):
pass
def h_38_npc(data, stat, entites, identifiant):
pass
def h_39_npc(data, stat, entites, identifiant):
pass
def h_40_npc(data, stat, entites, identifiant):
pass
def h_41_npc(data, stat, entites, identifiant):
pass
# - - - Muspellheim - - - #
def muspellheim_po(coords, identifiant):
pass
def muspellheim_npc(data, stat, entites, identifiant):
pass
def h_42_npc(data, stat, entites, identifiant):
pass
def h_43_npc(data, stat, entites, identifiant):
pass
def h_44_npc(data, stat, entites, identifiant):
pass
# - - - Svartalfheim - - - #
def svartalfheim_po(coords, identifiant):
pass
def svartalfheim_npc(data, stat, entites, identifiant):
pass
def h_45_npc(data, stat, entites, identifiant):
pass
def h_46_npc(data, stat, entites, identifiant):
pass
def h_47_npc(data, stat, entites, identifiant):
pass
def h_48_npc(data, stat, entites, identifiant):
pass

@ -0,0 +1,440 @@
from idk_lib import *
# Game
def npc(data, stat, entities, identifiant):
npc_data = (
asgard_npc,
vanaheim_npc,
alfheim_npc,
midgard_npc,
niflheim_npc,
jotunheim_npc,
nidavellir_npc,
muspellheim_npc,
svartalfheim_npc,
h_9_npc, h_10_npc, h_11_npc, h_12_npc, h_13_npc, h_14_npc, h_15_npc, h_16_npc, h_17_npc, h_18_npc, h_19_npc, h_20_npc,
h_21_npc, h_22_npc,
h_23_npc, h_24_npc,
h_25_npc, h_26_npc, h_27_npc, h_28_npc,
h_29_npc, h_30_npc,
h_31_npc, h_32_npc, h_33_npc, h_34_npc, h_35_npc, h_36_npc,
h_37_npc, h_38_npc, h_39_npc, h_40_npc, h_41_npc,
h_42_npc, h_43_npc, h_44_npc,
h_45_npc, h_46_npc, h_47_npc, h_48_npc,
)
if identifiant == "Kvasir": return kvasir(data, stat, entities)
elif identifiant == 12: return frigg(data, stat, entities)
elif identifiant == "Freyja": return freyja(data, stat, entities)
else: return npc_core(npc_data[data[1]], data, stat, entities, identifiant)
def point_of_interest(data, stat, entities, identifiant):
po_data = (
asgard_po,
vanaheim_po,
alfheim_po,
midgard_po,
niflheim_po,
jotunheim_po,
nidavellir_po,
muspellheim_po,
svartalfheim_po,
)
coords = data[2], data[3]
event = po_data[data[1]](coords, identifiant)
if not event: return [0, "Il n'y a rien à voir ici."]
else: return event
entities = asgard_entities + vanaheim_entities + alfheim_entities + midgard_entities + niflheim_entities + jotunheim_entities + nidavellir_entities + muspellheim_entities + svartalfheim_entities + dlc_entities + (["Kvasir", "*", 3, 46, 66, "stand by"], )
print(center("L'Hydromel poetique", 21, " "))
print("---------------------")
print()
print("Entrez 'hypo()' pour\nune nouvelle partie.")
events = {"*": npc, "?": point_of_interest}
keys = {4: display_stat, 7: spell, 8: misc_stat, 6: inventory, 9: sleep, "s": quick_save}
def hypo(save_code=None):
# stat = [0 - PV, 1 - pièces d'or, 2 - [vitesse, agilité, attaque, defense, magie], 3 - [arme, armure], 4 - ticks, 5 - nom, 6 - classe, 7 - sorts connus : (id, level), 8 - sous-quêtes terminées, 9 - misc]
if not save_code:
stat = init_stat()
name = stat[5]
data = [{"main": 0}, 3, 44, 66]
print_text("A l'issue de la guerre qui opposa Ases et Vanes, Odin et Freyja conclurent un accord de paix durant lequel ils cracherent dans une meme cuve. De cette cuve naquit Kvasir, l'etre le plus sage qui soit. Venere par tous, Kvasir est tres souvent appelle au chevet des Dieux pour prodiguer ses precieux conseils. Odin et Freyja vous ont missionne pour escorter et assister Kvasir dans ses deplacements.")
else:
stat, data = decode_save(save_code)
idk_game = Asci(maps, entities, events, keys)
npc_init_position(idk_game.entities, data[0]["main"])
stat, data = idk_game.mainloop(100, stat, data, routine=routine, low_bar=low_bar, door="^_", walkable=".,`' ", exit_key="q")
if data[0]["main"] == 100:
print_text("conclusion")
else:
print("hypo(\"{}\")".format(encode_save(data, stat)))
def npc_init_position(entites, xp):
if xp < 2: entites["Kvasir"].change_behavior("follow")
elif xp < 11: entites["Kvasir"].teleport(16, 50, 16)
elif xp < 13: entites["Kvasir"].teleport(16, 29, 28)
elif xp < 24: entites["Kvasir"].teleport(16, 30, 28)
else:
entites["Kvasir"].teleport(16, 50, 16)
entites["Freyja"].teleport(16, 48, 14)
if 16 < xp < 17: entites[12].teleport(4, 79, 20)
elif 17 <= xp < 21: entites[12].teleport(4, 71, 32)
def kvasir(data, stat, entites):
if data[0]["main"] == 13: entites["Kvasir"].teleport(16, 30, 28)
return {
"base": [0, "Je suis Kvasir."],
0: [1, "Baldr m'a confie etre preoccupe par de recents reves premonitoires. Nous devrions aller le voir."],
1: [0, "Nous devrions aller voir Baldr. Il habite dans le Breidablik, a Asgard."],
2: [0, "Je vais rester ici pour veiller sur Baldr, va chercher Freyja et reviens vite !"],
13: [1, "En partant, pense a prevenir la mere de Baldr. [KVASIR SE DECALA POUR VOUS CEDER LE PASSAGE.]"],
25: [0, "Grace a toi et a Hel, Baldr est maintenant invincible ! [POUR APPUYER SES PROPOS, KVASIR DEGAINA UNE PETITE DAGUE QU'IL PORTAIT A LA TAILLE ET L'ENFONCA DANS LE VENTRE DE BALDR. LA BLESSURE NE SEMBLAIT PAS LE FAIRE SOUFFRIR LE MOINDRE DU MONDE ET CICATRISA AU FUR ET A MESURE QUE KVASIR RECUPERAIT SON ARME.]"],
28: [0, "Il me semble que Baldr a une petite commission a te demander."]
}
def frigg(data, stat, entites):
if data[0]["main"] == 16: entites[12].teleport(4, 79, 20)
elif data[0]["main"] == 17: entites[12].change_behavior("follow by player", 0, ((82, 20), (82, 32), (71, 32)))
elif data[0]["main"] == 18:
if stat[9] == -1: return [0, "[FRIGG SE TOURNA, VERS VOUS, UNE POINTE D'EMOTION DANS LA VOIX.] Nous voila devant le palais de Hel.\n1. Mais pourquoi sommes nous ici ?\n2. Que faisons-nous maintenant ?", 2]
else: return [0, "[FRIGG SE TOURNA, VERS VOUS, UNE POINTE D'EMOTION DANS LA VOIX.] Nous voila devant le palais de Hel.\n1. Mais pourquoi sommes nous ici ?\n2. Que faisons-nous maintenant ?\n3. Souhaitez-moi bonne chance !", 3]
elif data[0]["main"] == 21:
stat[9] = -1
entites[12].teleport(0, 8, 44)
return {
"base": [0, "Je suis Frigg, deesse du mariage et de la maternite."],
14: [0, "Frigg, deesse du mariage et de la maternite, que puis-je pour toi ?\n1. Pour moi rien, c'est votre fils, Baldr.", 1],
15: [0, "Que lui arrive-t-il ?\n1. Il reve de sa mort. Freyja va tenter de voir son avenir grace au Seidr.", 1],
16: [1, "Le Seidr ne fait pas tout, c'est Hel qu'il faut aller voir. On se retrouve a Helheim."],
17: [1, "Je savais que tu viendrais, suis-moi."],
19: [-1, "Les reves premonitoires ne sont jamais bon signe. Si Baldr reve de sa mort, le meilleur moyen de l'empecher de passer de l'autre cote est encore de convaincre Hel de le rendre immortel."],
20: [-2, "Il va te falloir convaincre Hel pour qu'elle rende Baldr immortel. Aucun Dieu, aucun humain, aucun animal, aucune plante ni aucune chose ne doit pouvoir le blesser ni le tuer.", 0, (9, 1)],
21: [1, "Bon courage {}. Et merci ! Pour ma part je vais retourner au chevet de mon fils.".format(stat[5])],
}
def freyja(data, stat, entites):
if data[0]["main"] == 10: data[1], data[2], data[3] = 16, 29, 28
return {
"base": [0, "Je suis Freyja, la reine des Vanes."],
7: [0, "Tu n'as pas l'air tres frais {}...\n1. Desole, je viens d'Asgard, le voyage a ete... brutal.\n2. Baldr m'envoie requerir votre aide.".format(stat[5]), 2],
8: [-1, "C'est Freyr qui t'as teleporte ? Pourtant je lui ai fait repeter le sort des dizaines de fois..."],
9: [0, "Baldr ?! Que lui arrive-t-il ?\n1. Il reve de sa propre mort, et voudrais que le Seidr eclaire son avenir.", 1],
10: [1, "Hmm... Je vais voir ce que je peux faire. As-tu prevenu Frigg, sa mere ? Tu la trouveras non loin du Breidablik. [UNE DOUCE CHALEUR VOUS ENVELOPPA, VOUS FERMEZ LES YEUX ET TOMBEZ DANS UN SOMMEIL PROFOND.]"],
25: [0, "Baldr savoure sa jeune immortalite, et ignore les avertissements du Seidr.\n1. Comment cela ?\n2. Cela n'a guere d'importance : il est immortel.", 2],
26: [2, "Il m'accuse de jouer les rabas-joie, mais je sais ce que j'ai vu, et Baldr est aussi immortel et toi et moi... enfin... surtout toi."],
27: [1, "Tu seras moins sur de toi quand il mourra."],
28: [0, "Baldr mourra. Et plus tot qu'on ne le pense."],
}
# - - - Asgard - - - #
def asgard_po(coords, identifiant):
pass
def asgard_npc(data, stat, entites, identifiant):
pass
def h_9_npc(data, stat, entites, identifiant):
pass
def h_10_npc(data, stat, entites, identifiant):
if identifiant == "Odin":
return {
"base": [0, "Je suis Odin, le plus puissant des Ases."],
29: [],
}
def h_11_npc(data, stat, entites, identifiant):
pass
def h_12_npc(data, stat, entites, identifiant):
pass
def h_13_npc(data, stat, entites, identifiant):
coords = data[2], data[3]
if coords == (21, 8):
if data[0]["main"] == 6: data[1], data[2], data[3] = 1, 54, 29
return {
"base": [0, "Freyr, pour te servir."],
2: [0, "[FREYR SE RETOURNE VERS VOUS.] Oh, bonjour {}. Que puis-je faire pour toi ?\n1. Baldr reve de sa mort et aimerait en savoir plus sur son destin.\n2. Je cherche Freyja.\n3. Que faites-vous ici ?\n4. Pouvez-vous m'envoyer a Vanaheim s'il vous plait ?".format(stat[5]), 4],
3: [-1, "Hum, je comprends... Pour ce genre de question, Freyja est plus douee que moi."],
4: [-2, "La derniere fois que je l'ai vue elle etait a Vanaheim."],
5: [-3, "Depuis la fin de la Premiere Guerre, Ases et Vanes ont echanges des Dieux en signe d'appaisement. Je suis ainsi arrive chez les Ases. Freyja vient de temps en temps me rendre visite."],
6: [1, "Mais bien sur {} ! [L'HABITUELLE TORPEUR VOUS PRIT, VOTRE VISION D'ESTOMPA DANS UNE SENSATION NAUSEEUSE DE FLOTTEMENT. LE CHOC BRUTAL CONTRE LA TERRE VOUS REVEILLA COMME D'UN MAUVAIS REVE.]".format(stat[5])],
}
def h_14_npc(data, stat, entites, identifiant):
pass
def h_15_npc(data, stat, entites, identifiant):
pass
def h_16_npc(data, stat, entites, identifiant):
if identifiant == "Baldr":
if data[0]["main"] == 1:
entites["Kvasir"].change_behavior("stand by")
entites["Kvasir"].teleport(16, 50, 16)
elif data[0]["main"] == 11:
entites["Kvasir"].change_behavior("walk to", 0, ((50, 25), (29, 25), (29, 28)))
return {
"base": [0, "Baldr, fils d'Odin et de Frigg. Dieu de la lumiere, de la jeunesse, de l'amour et de la beaute."],
1: [0, "Ah ! Vous voila enfin ! Depuis quelques temps, je fais des reves etranges dans lesquels je me vois mourir. Maintenant, j'ai meme peur de sortir du Breidablik !\n1. Nous pouvons vous aider ?", 1],
2: [0, "Si vous pouviez demander de l'aide à Freyja, je vous en serais reconnaissant.\n1. En quoi Freyja peut vous aider ?\n2. Ou pouvons-nous la trouver ?", 2],
3: [-1, "Freyja pratique le Seidr, et, avec Odin, elle est la meilleure seidr de tout l'Yggdrasil. Avant que tu ne me demandes, le Seidr est une forme de magie divinatoire. Nous autres, Dieux, la pratiquons et pour certains avec beaucoup de puissance. Mais les humains peuvent aussi en faire."],
4: [-2, "Habituellement, elle reside dans son palais a Vanaheim, mais depuis la treve et en signe de paix, elle se rend regulierement au Folkvangr."],
11: [0, "Ah {} deja de retour !\n1. Freyja m'a dit qu'elle allait faire son possible.".format(stat[5]), 1],
12: [1, "Très bien ! Merci beaucoup de ton aide ! Voici quelques pieces. [+15 PO]", 0, (1, 15)],
25: [0, "Ah merci {} ! Grace a toi je ne crains plus la mort ! Odin, mon pere, n'a plus besoin de s'inquieter de rien !".format(stat[5])],
28: [1, "{}, mon ami ! Va porter ce plis a mon pere, Odin.".format(stat[5])],
}
def h_17_npc(data, stat, entites, identifiant):
pass
def h_18_npc(data, stat, entites, identifiant):
pass
def h_19_npc(data, stat, entites, identifiant):
pass
def h_20_npc(data, stat, entites, identifiant):
pass
# - - - Vanaheim - - - #
def vanaheim_po(coords, identifiant):
pass
def vanaheim_npc(data, stat, entites, identifiant):
pass
def h_21_npc(data, stat, entites, identifiant):
pass
def h_22_npc(data, stat, entites, identifiant):
pass
# - - - Alfheim - - - #
def alfheim_po(coords, identifiant):
pass
def alfheim_npc(data, stat, entites, identifiant):
pass
def h_23_npc(data, stat, entites, identifiant):
pass
def h_24_npc(data, stat, entites, identifiant):
pass
# - - - Midgard - - - #
def midgard_po(coords, identifiant):
pass
def midgard_npc(data, stat, entites, identifiant):
pass
def h_25_npc(data, stat, entites, identifiant):
pass
def h_26_npc(data, stat, entites, identifiant):
pass
def h_27_npc(data, stat, entites, identifiant):
pass
def h_28_npc(data, stat, entites, identifiant):
pass
# - - - Niflheim - - - #
def niflheim_po(coords, identifiant):
pass
def niflheim_npc(data, stat, entites, identifiant):
pass
def h_29_npc(data, stat, entites, identifiant):
pass
def h_30_npc(data, stat, entites, identifiant):
if identifiant == "Hel":
if data[0]["main"] == 24:
entites["Kvasir"].teleport(16, 50, 16)
entites["Freyja"].teleport(16, 48, 14)
return {
"base": [0, "Je suis Hel, deesse de la mort et reine de Niflheim"],
22: [0, "Un humain !? C'est chose rare ici... surtout vivant.\n1. Je viens de la part de Frigg", 1],
23: [0, "[HEL LEVA LES YEUX D'UN AIR EXASPÉRÉ.] Que veux-t-elle ?\n1. Baldr reve de sa mort et Frigg aimerait lui garantir la vie eternelle.", 1],
24: [1, "Encore !? Bon d'accord, cette fois-ci je le ferai."],
25: [0, "Oui, oui c'est bon je m'en occupe !"],
}
# - - - Jotunheim - - - #
def jotunheim_po(coords, identifiant):
pass
def jotunheim_npc(data, stat, entites, identifiant):
pass
def h_31_npc(data, stat, entites, identifiant):
pass
def h_32_npc(data, stat, entites, identifiant):
pass
def h_33_npc(data, stat, entites, identifiant):
pass
def h_34_npc(data, stat, entites, identifiant):
pass
def h_35_npc(data, stat, entites, identifiant):
pass
def h_36_npc(data, stat, entites, identifiant):
pass
# - - - Nidavellir - - - #
def nidavellir_po(coords, identifiant):
pass
def nidavellir_npc(data, stat, entites, identifiant):
pass
def h_37_npc(data, stat, entites, identifiant):
pass
def h_38_npc(data, stat, entites, identifiant):
pass
def h_39_npc(data, stat, entites, identifiant):
pass
def h_40_npc(data, stat, entites, identifiant):
pass
def h_41_npc(data, stat, entites, identifiant):
pass
# - - - Muspellheim - - - #
def muspellheim_po(coords, identifiant):
pass
def muspellheim_npc(data, stat, entites, identifiant):
pass
def h_42_npc(data, stat, entites, identifiant):
pass
def h_43_npc(data, stat, entites, identifiant):
pass
def h_44_npc(data, stat, entites, identifiant):
pass
# - - - Svartalfheim - - - #
def svartalfheim_po(coords, identifiant):
pass
def svartalfheim_npc(data, stat, entites, identifiant):
pass
def h_45_npc(data, stat, entites, identifiant):
pass
def h_46_npc(data, stat, entites, identifiant):
pass
def h_47_npc(data, stat, entites, identifiant):
pass
def h_48_npc(data, stat, entites, identifiant):
pass

@ -64,7 +64,27 @@ def point_of_interest(data, stat, entities, identifiant):
else: return event
entities = asgard_entities + vanaheim_entities + alfheim_entities + midgard_entities + niflheim_entities + jotunheim_entities + nidavellir_entities + muspellheim_entities + svartalfheim_entities + dlc_entities
poi = (
[0, '?', 0, 120, 26, 'stand by'],
[0, '?', 0, 51, 55, 'stand by'],
[0, '?', 1, 42, 20, 'stand by'],
[0, '?', 2, 34, 20, 'stand by'],
[0, '?', 3, 29, 9, 'stand by'],
[0, '?', 3, 53, 24, 'stand by'],
[0, '?', 3, 66, 45, 'stand by'],
[0, '?', 3, 52, 79, 'stand by'],
[0, '?', 4, 88, 32, 'stand by'],
[0, '?', 5, 60, 57, 'stand by'],
[0, '?', 5, 23, 70, 'stand by'],
[0, '?', 5, 60, 86, 'stand by'],
[0, '?', 6, 65, 7, 'stand by'],
[0, '?', 6, 66, 58, 'stand by'],
[0, '?', 7, 66, 8, 'stand by'],
[0, '?', 7, 65, 97, 'stand by'],
[0, '?', 8, 113, 37, 'stand by']
)
entities = asgard_entities + vanaheim_entities + alfheim_entities + midgard_entities + niflheim_entities + jotunheim_entities + nidavellir_entities + muspellheim_entities + svartalfheim_entities + poi + dlc_entities
print(center("Island of the Dead", 21, " "))
print(center("* Kings *", 21, " "))

@ -21,6 +21,7 @@ maps = (
nidavellir,
muspellheim,
svartalfheim,
h_9, h_10, h_11, h_12, h_13, h_14, h_15, h_16, h_17, h_18, h_19, h_20,
h_21, h_22,
h_23, h_24,
@ -29,8 +30,11 @@ maps = (
h_31, h_32, h_33, h_34, h_35, h_36,
h_37, h_38, h_39, h_40, h_41,
h_42, h_43, h_44,
h_45, h_46, h_47, h_48
)
h_45, h_46, h_47, h_48,
h_49, h_50, h_51, h_52, h_53, h_54,
)
spells = ("Soin", "Flammes", "Givre", "Etincelles", "Fatigue")
spells_level = ("I", "II", "III", "IV", "V")
@ -166,8 +170,8 @@ def npc_core(event_fn, data, stat, entities, identifiant):
event = event_fn(data, stat, entities, identifiant)
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)
msg = ("Hmm ?", "Besoin de quelque chose ?", "Vous cherchez quelqu'un ?", "Vous etes... ?", "Oui ?", "He ! Regarde ou tu vas.", "Un probleme ?")
sel_choice = print_text("{0}\n1. Attaquer\n2. Voler".format(choice(msg)), 1, 2, 0)
if sel_choice == 1:
opponent_stat = [randint(5, stat[2][i] + 5) for i in range(4)]
@ -181,7 +185,7 @@ def npc_core(event_fn, data, stat, entities, identifiant):
else:
return [0, "Votre victime vous a vu et vous a mis une raclee.", 0, (0, -10)]
elif sel_choice == 3:
else:
return None
elif type(event) == tuple and len(event) > 2:
@ -237,8 +241,6 @@ def routine(data, stat):
if stat[2][4] > 99: stat[2][4] = 99
def low_bar(data, stat):
h = stat[4] // 60
m = stat[4] % 60
@ -323,8 +325,7 @@ def fight(stat, opponent_stat, opponent_name):
print_text(msg)
# opponent_stat = [vitesse, agilité, attaque, défense, vie]
# player_stat = [vitesse, agilité, attaque, défense, vie]
# *_stat = [vitesse, agilité, attaque, défense, vie]
player_stat = [stat[2][0], stat[2][1], stat[2][2] + stat[3][0] * 5, stat[2][3] + stat[3][1] * 5, stat[0]]
end = False
@ -513,7 +514,7 @@ def spell(data, stat):
def quick_save(data, stat):
data_copy = data[:]
stat_copy = stat[:-1]
stat_copy = stat[:]
print_text("\"{}\"".format(encode_save(data_copy, stat_copy)))
@ -583,7 +584,7 @@ def decode_save(save_code):
encoded_stat = stat.split(",")
encoded_data = data.split(",")
encoded_stat = [encoded_stat[0], encoded_stat[1], encoded_stat[2: 7], encoded_stat[7: 9], encoded_stat[9], 0, encoded_stat[11], encoded_stat[12: -1], encoded_stat[-1], -1]
encoded_stat = [encoded_stat[0], encoded_stat[1], encoded_stat[2: 7], encoded_stat[7: 9], encoded_stat[9], 0, encoded_stat[11], encoded_stat[12: -2], encoded_stat[-2], encoded_stat[-1]]
if encoded_stat[7] == ["0"]:
encoded_stat[7] = []

@ -294,9 +294,6 @@ h_36 = (r"""
(20, 14, 5, 23, 88))
jotunheim_entities = (
[0, '?', 5, 60, 57, 'stand by'],
[0, '?', 5, 23, 70, 'stand by'],
[0, '?', 5, 60, 86, 'stand by'],
["Utarg", '*', 5, 34, 56, 'stand by'],
[0, '*', 5, 25, 10, 'stand by'],
[0, '*', 5, 39, 20, 'stand by'],

@ -193,10 +193,6 @@ h_28 = (r"""
(25, 14, 3, 61, 69))
midgard_entities = (
[0, '?', 3, 29, 9, 'stand by'],
[0, '?', 3, 53, 24, 'stand by'],
[0, '?', 3, 66, 45, 'stand by'],
[0, '?', 3, 52, 79, 'stand by'],
[0, '*', 3, 39, 49, 'stand by'],
[0, '*', 3, 8, 59, 'stand by'],
[0, '*', 3, 66, 56, "stand by"],

@ -198,8 +198,6 @@ h_44 = (r"""
(25, 24, 7, 68, 89))
muspellheim_entities = (
[0, '?', 7, 66, 8, 'stand by'],
[0, '?', 7, 65, 97, 'stand by'],
[0, '*', 7, 20, 12, 'stand by'],
[0, '*', 7, 78, 14, 'stand by'],
[0, '*', 7, 54, 80, 'stand by'],

@ -199,8 +199,6 @@ h_41 = (r"""
(10, 19, 6, 23, 51))
nidavellir_entities = (
[0, '?', 6, 65, 7, 'stand by'],
[0, '?', 6, 66, 58, 'stand by'],
[0, '*', 6, 49, 21, 'stand by'],
[0, '*', 6, 25, 31, 'stand by'],
[0, '*', 6, 74, 46, 'stand by'],

@ -128,7 +128,6 @@ h_30 = (r"""
(25, 19, 4, 71, 31))
niflheim_entities = (
[0, '?', 4, 88, 32, 'stand by'],
[0, '*', 4, 95, 30, 'stand by'],
[0, '*', 4, 57, 31, 'stand by'],
[0, '*', 4, 39, 60, 'stand by'],

@ -161,7 +161,6 @@ h_48 = (r"""
(19, 14, 8, 57, 59))
svartalfheim_entities = (
[0, '?', 8, 113, 37, 'stand by'],
[0, '*', 8, 104, 30, 'stand by'], [0, '*', 8, 120, 49, 'stand by'],
[0, '*', 8, 105, 46, 'stand by'],
[0, '*', 8, 22, 50, 'stand by'],

@ -11,10 +11,10 @@ vanaheim = (r"""
/\ / \ / \ / \_ / / \
/ \ / \ /\ / \ __ |_ o\ /\ / \
/ \ / \ _ /<>\ |^|_| / \
/ \ /\ / \ /o\ |__| / \ /\
/ \ /\ / \ /o\ |_^| / \ /\
/ \ / \ |_| _ / \ / \
/\ / \ /\ ### . ###### ###### /o\ /\ /
\ / / \ ##### ### ###### ###### |_| / \ /
\ / / \ ##### ### ###### ###### |^| / \ /
\ /\ / \ ### '. ##### ##### ##### / \ /\
\ / \ / \ /|\ ` ### #### #### ### / \ / \
/ \ __ /|\ ##### /\ / \
@ -25,11 +25,11 @@ vanaheim = (r"""
/ \ / \ ### ``' ##### / \ /
/\ / \ / \ ##### _ __ ### /\ / \ /
\ / \ /\ / ### / \ ' /<>\ ` /|\ / \ /
\ / \ /|\ |_| . |__| .' / \ /\ /
\ / \ /|\ |^| . |^_| .' / \ /\ /
\ /\ / \ ` ``' ### , _ / \ / \
/ \ / \ /\ _ ##### ', /-\ / \
/ \ / \ . / \ ### , |_| /\ \ /
/ \ /\ / \ |_| /|\ , ` / \ /
/ \ /\ / \ |^| /|\ , ` / \ /
/ \ / \ ,. _ ',` '' / \ /\
/ \ ### _/ \ ### _____ ' / \ / \
/ \ /\ ##### /o | ##### /_____\ `' /\ / \
@ -41,7 +41,7 @@ vanaheim = (r"""
/\ / \ /\ ' ### ##### /\ \
/ \ / \ ` /|\ _ ### _ / \
/ \ / \ /\ .. /o\ ./|\ /o\ / \ /\
/ \ /\ / \ / \ .'' |_| ,'`' ',` |_| /\ / \ /
/ \ /\ / \ / \ .'' |^| ,'`' ',` |_| /\ / \ /
/ \ / \ ,., .,`, /\ ', ,` / \ /
/\ / \ /\ / \ /\ / \ / \ /\ /
/ \ / \ / \ / \ /\ / \ /\ / \ / \
@ -56,7 +56,13 @@ vanaheim = (r"""
# Maisons
(44, 11, 21, 5, 9), # Auberge
(52, 35, 22, 20, 19),
(52, 35, 22, 20, 19), # Palais de Hel
(58, 15, 49, 7, 14),
(36, 12, 50, 15, 14),
(33, 26, 51, 5, 9),
(42, 26, 52, 4, 14),
(34, 30, 53, 5, 9),
(41, 42, 54, 10, 9),
)
@ -98,9 +104,112 @@ h_22 = (r"""
|\/=\/=\/=\/=\/=\/=]^[=\/=\/=\/=\/=\/==|""",
(20, 19, 1, 52, 35))
h_49 = (r"""
|--|--|--|--|
| |
| ### |
| #####|
| [O] |
| |
/==] [=======\
| |
| +-+ |
| | | |
| +-+ |
| |
| |
\=====|^|=====/""",
(7, 14, 1, 58, 15),
)
h_50 = (r"""
/-------------||---\
| /__\ |
| |==| |
| |
| +---+ |
| | | |
| | | |
| +---+ |
| |
| |
| |
|=/ \========/ \=|
| |
| |
\-------------|^|--/""",
(15, 14, 1, 36, 12),
)
h_51 = (r"""
|--------|
|[==][==]|
| |