diff --git a/hydromel_poetique/alfheim.py b/hydromel_poetique/alfheim.py new file mode 100644 index 0000000..27687d5 --- /dev/null +++ b/hydromel_poetique/alfheim.py @@ -0,0 +1,142 @@ +alfheim = (r""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~ ~~~~~~ ## ~~~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~ +~~~~~ ~~~~~~~ #### ~~~~~~~ ## ~~~~~~~~ +~~~ ~~~~~ || ~~~~~~~ #### __ ## ~~~~~~~ +~~~ ~~~~~~~~ ## ~~~~~ ## || /[]\ #### ~~~~~ +~~~ ~~~~~~~~~~~~ #### ## ## #### ` ' |__| || __ ~~~ +~~~ ~~~~~~~~~~~~ ## || #### #### || ,' '.' / \ ~~~ +~~~ ~~~~~ ~~~~ #### || || ` ' __ '`' . ` |__| ~~ +~~~ ## ~~~ || '' /[]\ ' . ## ~~ +~~ #### ## _ _________________ |__| ## `.` #### ~~ +~~ || #### / \ / |]O[| |]O[| \ #### __ || ~~ +~~~~ || |_| /___________________\ ## ## || /[]\ ~~ +~~~~ ## _ |_/ \_/ _ \_/ \_| ## ## |__| ## ~~~~ +~~~~ #### / \ |_| |_|/^\|_| |_| __ #### ~~~~ +~~~~ || _ |_| ## ## / \ `' || ~~~~ +~~~~ / \ ### ### ## ## |__| . , ~~~~ +~~~~~~~~~ |_| _ ##### ##### `' `_ ,, , ~~~ +~~~~~~~~~ /o\ ### ### ' _ ``' / \ ~~~ +~~~~~~~~~~~ |_| /-\ /-\ , / \ |_| ~~~~ ~~~ +~~~~~~~~~~~~ ### ### ' ,|_| .' _ ~~~~~ ~~~ +~~~~~~ ~~~~~~~ ### ##### ` ##### . ` .,. / \ ~~~~~ ~~~ +~~~~~ ~~~~~~~ ##### ### ' ### _ ` , _ |_| _ ~~~~~~ ~~~ +~~~~~ __ ~~ ### /-\ /-\ ` / \ , /o\ / \ ~~~~~~~~~~ +~~~~~~ / \ /-\ ' . '``,'' |_|` |_| |_| ~~~~~~~~~~ +~~~~~~ |__| ,. ' .` ', ~~~~~~~~~~ +~~~~~~ __ ### ., _ . , _ ,. ~~~~~~~~~~ +~~~~~~~~ / \ ##### ### / \ ` ' /o\__ `. ~~~~~~~~~ +~~~~~~~~~ |__| ### ##### ### |_| . |_ o \==| .'`. ~~~~~~~ +~~~~~~~~~~~~ ### /-\ ### ##### ,.` ||^|__| | . . ~~~~~~~ +~~~~~~~~~~~~ ##### /-\ ### | .' ~~~~~~ +~~~~~~~~~~~~~ ##### ### /-\ ### ### | ,`','` '',, ~~~~~~ +~~~~~~~~~~~ ### ##### ### ##### ##### |==|==|==| ~~~~~ +~~~~~~~~~~ ### |_| ##### ##### ### ### _ ~~~~~ +~~~~~~~~~ ##### ### ##### /-\ /-\ ### _ / \ _ ~~~~ +~~~~~~~~~ ##### |_| ### ### ##### / \ |_| / \ ~~~~ +~~~~~~~~~ ### |_| ##### ### ### |_| |_| ~~~~ +~~~~~~~ |_| ~~~~~~~ ##### ##### /-\ _ ~~~~ +~~~~~~~ ~~~~~~~~~~~~~~~~~~ ### ##### / \ _ ~~~~ +~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ |_| ### |_| / \ _ ~~~~ +~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ |_| |_| / \ ~~~~ +~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ |_| ~~~~ +~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ ~~~ +~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ ~~~~~~ +~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ +~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ #### #### ~~~~~~~~~~~~ +~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ### ### ~~~~~~~~~~~~ +~~~~~~~~~~ __ ~~~~~~~~~~~~~~~~~~~~ __ ### ## ## ~~~~~~~~~~~~ +~~~~~~~~~~ / \ ~~~~~~~~~~~~~~~~~~~~ / \ ##### ~~~~~~ ~~~~ +~~~~~~~~~~ |__| ~~~~~~~~~~~~~ |__| ##### ## ## ~~~~~ ~~~~ +~~~~~~~~~~ ### ~~~~~~~~ ### ### ### ~~ ~~~~ +~~~~~~~~~ ##### ,'' |_| #### #### ~~~ +~~~~~~~~ ##### ' ### ,,,. ### ~~~ +~~~~~~~~ ### ### ##### `,, ##### ~~~ +~~~~~~~ |_| . ##### ##### ',, __ ### ##### ~~~ +~~~~~~ ### ,##### ### ` / \ ### ##### ### ~~~ +~~~~~~ ##### ### , ### |_|`' ### |__| ##### ##### |_| ~~~ +~~~~~~ ##### #####``|_| ### ` ##### ##### ### ~~~ +~~~~~~ ### ##### ' ##### ##### ### |_| ### ~~~ +~~~~~~ |_| ### ,' ##### ### |_| ##### ~~~ +~~~~~~ ## |_| ` ### |_| ~~ ##### ~~~ +~~~~~ ## #### ` |_| ~~~~ ~~~~ ### ~~~ +~~~~ #### || . ~~~~~~~ ~~~~~~ ~~~~~~~~ |_| ~~~ +~~~~~ ## || ,` ' ~~~~~~~~~~~~~~~ ~~~~~~ ~~~~~~~~ ~~~ +~~~~ #### _ ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ ~~~~~~~~~~~ ~~~ +~~~~~ || /-\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ ~~~~ +~~~~~~ ~ |_| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ ~~~~~ +~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""", +# Autres mondes (Alfheim = 2) + (14, 68, 1, 28, 13), # Vanaheim + +# Maisons + (34, 16, 23, 25, 19), + (52, 31, 24, 20, 19), # Librairie +) + + +h_23 = (r""" + |==================| + | | + | _ _ | + | / \ / \ | + | \_/ \_/ | + | |_| |_| | + | | + | _ _ | + | / \ / \ | + | \_/ \_/ | + |===========| |_| |_| |===========| + | | + | | + | _ _ | + |__ __ / \ / \ __ __| + / \ / \ \_/ \_/ / \ / \ + \__/ \__/ |_| |_| \__/ \__/ + | | | | | | | | + | | | | | | | | + / \______/ \_______|^|______/ \______/ \ """, + (25, 19, 2, 34, 16)) + + +h_24 = (r""" +|====|_|======| |=====|_|====| +| /___\ | | /___\ | +| |===| |===========| |===| | +| | | | +| +---+ | _ _ | +---+ | +| | | | (~) (~) | | | | +| | | | |_| |_| | | | | +| | | | | | +| +---+ +---+ | +| | _ _ | | +|=============| (~) (~) |============| +| | |_| |_| | | +| | +| | +| | _ _ | | +|=============| (~) (~) |============| +|=============| |_| |_| |============| + | | + |====| |====| + |====|^|====| """, + (20, 19, 2, 52, 31)) + +alfheim_entities = ( + [0, '?', 2, 34, 20, 'stand by'], + ["alfeim_charretier", '*', 2, 23, 17, 'stand by'], + [0, '*', 2, 11, 4, 'stand by'], + [0, '*', 2, 46, 6, 'stand by'], + [0, '*', 2, 27, 54, 'stand by'], + ["Sagriel", '*', 23, 23, 5, 'stand by'], + ["Diomwar", '*', 24, 36, 12, 'stand by'], + [0, '*', 24, 12, 3, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/asci.py b/hydromel_poetique/asci.py new file mode 100644 index 0000000..a90d213 --- /dev/null +++ b/hydromel_poetique/asci.py @@ -0,0 +1,467 @@ +# Asci (1.8.2) + +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 = {} + entity_id = 0 + for i in entities: + if not i[0]: + i[0] = entity_id + entity_id += 1 + + if i[0] in self.entities: raise KeyError("'{}' is already a registered entities".format(i[0])) + else: self.entities[i[0]] = Entity(*i) + + # Custom functions + self._legend = list(events_mapping.keys()) + self._game_events_mapping = [events_mapping[i] for i in self._legend] + self._game_keys_mapping = {key: keys_mapping[key] for key in keys_mapping if not key in (1, 2, 3, 5)} + + # Custom entities behavior + self._behaviors = {"permanent": permanent, "stand by": stand_by, "follow": follow, "walk between": walk_between, "walk to": walk_to, "follow by player": follow_by_player} + if behaviors: + for i in behaviors: self._behaviors[i] = behaviors[i] + + # Screen initialisation + self.screen = Screen(screen_width, screen_height) + self.current_map = None + + def _looked_case(self, direction): + if direction == 1: # Left + return self.data[2] - 1, self.data[3] + + elif direction == 3: # Right + return self.data[2] + 1, self.data[3] + + elif direction == 5: # Up + return self.data[2], self.data[3] - 1 + + elif direction == 2: # Down + return self.data[2], self.data[3] + 1 + + return self.data[2], self.data[3] + + def _cell_test(self, direction): + if direction == 1: + if self.data[2] - 1 < 0: return -1 + else: cell = self.screen.get_cell(self.data[2] - 1, self.data[3]) + if direction == 3: + if self.data[2] + 1 >= self.map_width: return -1 + else: cell = self.screen.get_cell(self.data[2] + 1, self.data[3]) + if direction == 5: + if self.data[3] - 1 < 0: return -1 + else: cell = self.screen.get_cell(self.data[2], self.data[3] - 1) + if direction == 2: + if self.data[3] + 1 >= self.map_height: return -1 + else: cell = self.screen.get_cell(self.data[2], self.data[3] + 1) + + cell_patterns = self._legend + for pattern_index in range(len(cell_patterns)): + if cell in cell_patterns[pattern_index]: return pattern_index + + return -1 + + def _keyboard(self, key, interaction=True): + # Interaction while moving + if key in (1, 3, 5, 2): + cell_test = self._cell_test(key) + + # Move + if cell_test == len(self._legend) - 1: + if key == 1: self.data[2] -= 1 + if key == 3: self.data[2] += 1 + if key == 5: self.data[3] -= 1 + if key == 2: self.data[3] += 1 + + # Change map + elif interaction and cell_test == len(self._legend) - 2: + new_map, self.data[2], self.data[3] = self._get_map(key) + if self.data[1] != new_map: self._change_map(new_map) + + # Interaction + elif interaction and cell_test >= 0: self._interaction(key, cell_test) + + # Custom functions + elif key in self._game_keys_mapping: + self.screen.clear() + self._game_keys_mapping[key](self.data, self.stat) + + def _get_map(self, direction): + current_coords = self._looked_case(direction) + + for coords in self.current_map.coords: + if coords[:2] == current_coords: + return coords[2], coords[3], coords[4] + + return self.data[1], self.data[2], self.data[3] + + def _change_map(self, new_map): + # Update map id and data + old_map, self.data[1] = self.data[1], new_map + self.current_map = self.maps[self.data[1]] + self.current_map.entities = {} + + # Update entities + for i in self.entities: + entity = self.entities[i] + if entity.map_id == old_map and entity.behavior == "follow": + entity.pos_x = entity.pos_y = -1 + entity.map_id = new_map + if entity.map_id == new_map: self.current_map.entities[i] = entity + + # Update screen configuration + self.screen.set_world(self.current_map.map_data) + self.map_width, self.map_height = self.screen.get_map_size() + + def _interaction(self, direction, cell_content): + x, y = self._looked_case(direction) + data_copy = [self.data[0], self.data[1], x, y, self.data[4]] + + # Get the event + event = self._game_events_mapping[cell_content](data_copy, self.stat, self.current_map.entities, self._get_entity_id(x, y)) + if type(event) == tuple: + quest, event = event + else: + quest = "main" + + # data modification + self.data[0] = data_copy[0] + if self.data[1] != data_copy[1]: + self._change_map(data_copy[1]) + + if data_copy[2] != x: self.data[2] = data_copy[2] + if data_copy[3] != y: self.data[3] = data_copy[3] + + if not event: return + event = read_event(self.data, event, quest) + + # XP and stat modification + self.data[0][quest] += event.xp + for index, value in event.stat: + self.stat[index] += value + + # Display and get answer + if event.text: + answer_selected = convert(self.screen.display_text(event.text), True) + if event.answer and (0 < answer_selected <= event.answer): + self.data[0][quest] += answer_selected + self._interaction(direction, cell_content) + + def _get_entity_id(self, x, y): + for entity in self.current_map.entities.values(): + if entity.pos_x == x and entity.pos_y == y: + return entity.entity_id + + # Mainloop + def mainloop(self, end_game, stat=None, data=None, routine=None, low_bar=None, player="@", door="^", walkable=" ", exit_key=9, multi_move="."): + if exit_key in self._game_keys_mapping: + raise ValueError("'{}' is already assigned to a function.".format(exit_key)) + + # Load save ; data = [XP, map_id, x, y] + if not stat or type(stat) != list: self.stat = [100] + else: self.stat = stat + + if not data: self.data = [{"main": 0}, 0, 0, 0, 0] + else: self.data = [data[0], data[1], data[2], data[3], 0] + + # Configuration + self._legend.append(door) + self._legend.append(walkable) + self._change_map(self.data[1]) + self.screen.load_data(self.data) + + key = 0 + + while key != exit_key and self.stat[0] > 0 and self.data[0]["main"] < end_game: + # Update the map + self.screen.set_screen() + + # Compute the player's and entities' positions + data_copy = self.data[:] + for entity in self.current_map.entities.values(): + self._behaviors[entity.behavior](entity, data_copy, self.stat, self.screen, walkable) + if entity.map_id == self.data[1] and (0 <= entity.pos_x - self.data[2] + 10 < self.screen.screen_width) and (0 <= entity.pos_y - self.data[3] + 3 < self.screen.screen_height): + self.screen.set_cell(entity.pos_x, entity.pos_y, entity.symbol) + + self.screen.set_cell(self.data[2], self.data[3], player) + + # Display map, low bar, get the key and update key buffer + if low_bar: bar = low_bar(self.data[:], self.stat[:]) + else: bar = None + key = convert(self.screen.display(low_bar=bar)) + if not key: key = self.data[4] + else: self.data[4] = key + + # Multi-move and key gestion + if type(key) == str and key[0] == multi_move: + key = key[1:] + for k, r in get_multi_move(key): + for _ in range(r): + self._keyboard(k, False) + self.screen.set_screen() + + self.data[4] = k + else: + self._keyboard(key) + + # Launching the game routine + if routine: + data_copy = self.data[:] + routine(data_copy, self.stat) + + if self.stat[0] <= 0: self.stat[0] = 100 + return self.stat, self.data[:-1] + + +# Classes used by Asci +class Screen: + def __init__(self, screen_width=21, screen_height=7): + # Screen configuration + self.screen_width = screen_width + self.screen_height = screen_height + self._on_screen = [[" " for _ in range(screen_width)] for _ in range(screen_height)] + self._asci_data = [] + + def load_data(self, data): + self._asci_data = data + + def get_map_size(self): + return self.map_width, self.map_height + + def set_world(self, world): + self._world = [[char for char in line] for line in world.split("\n")[1:]] + self.map_width = max([len(line) for line in self._world]) + self.map_height = len(self._world) + + def set_screen(self): + x = self._asci_data[2] - 10 ; y = self._asci_data[3] - 3 + for x_map in range(x, x + self.screen_width): + for y_map in range(y, y + self.screen_height): + self._on_screen[y_map - y][x_map - x] = " " + if 0 <= x_map < self.map_width and 0 <= y_map < self.map_height: + try: self._on_screen[y_map - y][x_map - x] = self._world[y_map][x_map] + except: pass + + def display(self, return_input=True, low_bar=None): + for line_no in range(len(self._on_screen)): + line = "".join(self._on_screen[line_no]) + if line_no + 1 == self.screen_height and return_input: + if not low_bar: line = line[:-6] + ">" + else: line = low_bar + ">" + print(line, end="") + return input() + else: + print(line) + + def clear(self): + print("\n" * self.screen_height) + + def display_text(self, string): + paragraphs = [i for i in text_formater(string) if i] + nb_par = len(paragraphs) + for index in range(nb_par): + self.clear() + print(paragraphs[index]) + if index + 1 == nb_par: return input(">") + else: input() + + def set_cell(self, x, y, value): + x = x - (self._asci_data[2] - 10) + y = y - (self._asci_data[3] - 3) + if 0 <= x < self.screen_width and 0 <= y < self.screen_height: + self._on_screen[y][x] = value + + def get_cell(self, x, y): + x = x - (self._asci_data[2] - 10) + y = y - (self._asci_data[3] - 3) + if 0 <= x < self.screen_width and 0 <= y < self.screen_height: + return self._on_screen[y][x] + else: return " " + +class Event: + def __init__(self, xp, text, answer=0, *stat): + self.xp = xp + self.text = text + self.answer = answer + self.stat = stat + + +class Map: + def __init__(self, map_data, *coords): + self.map_data = map_data + self.coords = coords + self.entities = {} + + +class Entity: + def __init__(self, entity_id, symbol, map_id, x, y, behavior, *args): + self.entity_id = entity_id + self.symbol = symbol + self.map_id = map_id + self.pos_x = x + self.pos_y = y + self.behavior = behavior + self.args = list(args) + + def change_behavior(self, new_behavior): + if self.behavior != "permanent": self.behavior = new_behavior + + def teleport(self, map_id, x, y): + if self.behavio != "permanent": self.map_id, self.pos_x, self.pos_y = map_id, x, y + + +# Functions used by Asci +def convert(string, force_int=False): + try: return int(string) + except: + if force_int: return 0 + else: return string + + +def text_formater(string, screen_width=21, screen_height=6): + + def line_formater(string, screen_width): + string_result = "" + while len(string) > screen_width: + stop_index = screen_width + while stop_index > 0 and not string[stop_index].isspace(): stop_index -= 1 + if not stop_index: stop_index = screen_width + + string_result += string[:stop_index].strip() + "\n" + string = string[stop_index:].strip() + + return string_result + string + + def paragraph_formater(lines, screen_height): + paragraphs = "" + while len(lines) >= screen_height: + paragraphs += "\n".join(lines[:screen_height]) + "\n\n" + lines = lines[screen_height:] + + return paragraphs + "\n".join(lines) + + lines = [] + for line in string.split("\n"): + for formated_line in line_formater(line, screen_width).split("\n"): + lines.append(formated_line) + + return paragraph_formater(lines, screen_height).split("\n\n") + + +def read_event(data, event, quest): + if not quest in data[0]: + data[0][quest] = 0 + + if type(event) == dict: + if data[0][quest] in event: event = event[data[0][quest]] + else: event = event["base"] + + if type(event) != list: + raise TypeError("event is of type {} instead of list".format(type(event))) + + return Event(*event) + + +def get_multi_move(key): + if "," in key: + result = [] + for k in key.split(","): + if "*" in k: + k = k.split("*") + result.append((convert(k[0]), convert(k[1]))) + else: + result.append((convert(k), 1)) + + return result + + elif "*" in key: + key = key.split("*") + return [(convert(key[0]), convert(key[1]))] + + else: + return [(convert(k), 1) for k in key] + + + +# Extra functions +def print_text(text, min_value=0, max_value=0, default_value=0): + paragraphs = [i for i in text_formater(text) if i] + nb = len(paragraphs) + for index in range(nb): + print("\n" * 7) + print(paragraphs[index]) + + if index + 1 == nb and (min_value or max_value or default_value) and min_value <= max_value: + result = input(">") + try: result = int(result) + except: result = default_value + if not (min_value <= result <= max_value): result = default_value + + return result + + else: input() + + +def stand_by(entity, data, stat, screen, walkable): + pass + +def permanent(entity, data, stat, screen, walkable): + pass + + +def follow(entity, data, stat, screen, walkable): + if entity.pos_x == entity.pos_y == -1: + entity.pos_x, entity.pos_y = data[2], data[3] + + elif data[4] in (1, 2, 3, 5): + 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 screen.get_cell(cases[0], cases[1]) in walkable: entity.pos_x, entity.pos_y = cases + + +def walk_between(entity, data, stat, screen, walkable): + frame = (entity.args[0] + 1) % len(entity.args[1]) + 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 + + +def walk_to(entity, data, stat, screen, walkable): + frame = entity.args[0] + if len(entity.args[1]) == frame: + entity.behavior = "stand by" + entity.args = [] + return + + 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] += 1 + + +def follow_by_player(entity, data, stat, screen, walkable): + frame = entity.args[0] + if len(entity.args[1]) == frame: + entity.behavior = "stand by" + entity.args = [] + return + + new_x, new_y = _walk_engine(entity, frame) + + if abs(data[2] - new_x) < 5 and abs(data[3] - new_y) < 3 and screen.get_cell(new_x, new_y) in walkable: + entity.pos_x, entity.pos_y = new_x, new_y + if (new_x, new_y) == entity.args[1][frame]: entity.args[0] += 1 + + +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])) + new_x = entity.pos_x + new_y = entity.pos_y + if delta_x: new_x += abs(delta_x) // delta_x + if delta_y: new_y += abs(delta_y) // delta_y + return new_x, new_y \ No newline at end of file diff --git a/hydromel_poetique/asgard.py b/hydromel_poetique/asgard.py new file mode 100644 index 0000000..43ee60b --- /dev/null +++ b/hydromel_poetique/asgard.py @@ -0,0 +1,428 @@ +asgard = (r""" + /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ + / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ +/\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ /\ / \ + \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / + \ /\ / \ /\ / \ /\ / \ / \ / \ / \ /\ / \ /\ / \ /\ / \ /\ / \ / \ / \ / \ / \ /\ / + / \ / \ / \ / \ / \ / \ / \ \ / \ / \ / \ / / \ +/\ / \ /\ / \ /\ / \ /\ /\ / \ /\ / \ /\ / \ /\ / \ / \/ \/ \/ \/ /\ / \ + \ / \ / \ / / \ / \ _ / \ / \ / \ / / \ / + \ / \ / \ / / \ /\ / \ /\ /o\ / \ / \ / \ / / \ /\ / + \ / /\ \ / \ _______ / ~\ / \ |_| \ / \ / \ / ___________________________ / / \ + / \ /\ /Glitnir\ /\ / ~~\ /\ / \ /\ /\ \/ \/ /___________________________\ \ + / \ / \ |__|^|__| / \ ~~ / \ / \ / \ /\ /\ | Valaskjalf | /\ \ + /\ / \ /\ /\ / \ /\~/ \ /\ / \ /\ / \ / \ / \ /_______________________________\ / \ + / \ / \ / \ / \~ \ \ \ \ \ / \ /\ / \ |_/ \_/ \_/ _ \_/ \_/ \_| /\ / \ /\ + /\ /\ / \ /\ / \ / \ / \~ / \ / \ \ / / \ /\ \ |_| |_| |_|/^\|_| |_| |_| / \ / + / \ / \ / \ / ~ \ / \ / \ / \ | | / \ /\ / +/ \/ \ /\ / \ ### _ ~ _________ / /\ / \ /\ -|--|--|--|-/ | /\ / / \ + / \ ##### ## /o\ ~ /Gladsheim\ / \ / \ / / / \ / \ + /\ / \ ### #### |_| ~~ ## | _ | ## / \ /\ / \ | |--|--|--|--|- /\ / \ /\ / /\\ + / \~ /-\ ## ###### ------- #### |___|^|___| #### / / \ \ \ / \ / \ / \ + /\ / \~ #### ###### ###### ###### / \ /\ -|--|--|--|--| | / \ /\ / \ / \ + / \ ~~ ###### #### ###### ###### / /\ / \ / / / \ \/ \ + / \ /\ ~~ ### ###### || -------- #### #### /\ / \ \ | |--|--|--|--|- /\ / \ /\ +\ / \ ~~ ##### #### ## ~~~ || __ || / \ \ \ \ /\ / \ /\ \/ \ + \ /\ / \ ~~ ### || #### ~~~~ / \ ## / \ /\ -|--|--|--|--| | / \ /\ / \ \ /\ + / \ ~~ /-\ ###### ~~~ |__| _ #### /\ / \ / / \ \ \ / \ + / \ ~~ ### ###### ~~~~ / \ ###### /\ / \ \ /\ /\ / \ /\ / \ +## ## ~~ ##### #### ### ~~~~~~ |_| ###### _ / \ \ /\ / \ / \ /\ /\ / \ / \ +### #### ~~ ________ ### || ##### ~~~~~~ #### /o\ / \ / \ / / \ / \ /\ / \ /\ / +#### ###### ~~ / Ydalir \ /-\ ### ~~~~~ || |_| / \ / \ / / \ /\/ \/ \ / +#### ###### ~~~ /__________\ ### /-\ ~~~~~ / / \ / \ / +### #### ~~ |_//^^\\_| ##### ~~~ ### _________ / \ /\ / \/ +|| ## || ~~ |_| |_| _ ### ### ~~~~~ | | ##### /Folkvangr\ / \ ~/\ + #### ~~~ |_| |_| /o\ /-\ ##### ~~~~~| | ### | _ | _ / \ ~~/ \ + ###### _ ~~~ |_| ### ______ ~~| | /-\ |___|^|___| /o\ ~~~~~/ + ###### /o\ ~~~ /-\ /Noatun\ | |~~ ### |_| _ ~~/\ / + #### |_| ~~~~~~~~~~~~~~~~~ |_/^^\_| ### | |~~~~~~ ##### ##### /o\ ~~/ \ + || ~~~~~~~~~~~~~~~~~~~~~~ | | ##### | ~~~~~ ### ### ######### |_| ~~/ \ /\ + ## ___________ ~~~~~~~~| | ### ~~~~~ /-\ ##### _ #Landivi# ~/ \ / +#### /Breidablik \ ~| |~~~~ /-\ ~~~~~~ ### /o\ ######### ~~~ / +##### |o|o|o|o|o|o| ### | | ~~~~~~~~~~~~~ ~~~~~~ /-\ |_| ##### ~~~~ /\ / +##### /_____________\ ##### ### ### ~~~~~~~~~~~~ ~~~~~~~~ |^| _ ~~~~~ / \ /\ +#### |_/ \_/ \_| ### ##### ##### ### ~~~~~~~~~~~~~~~~ ~~~~~~~~~ /o\ ~~~~ / \ / \ + || |_| |^| |_| /-\ ### ### ### ##### ~~~~~~~~~~~~~~| |~~~~~~~~~~~~~~~ |_| ~~~~ / \ / \ + ## /-\ /-\ ##### ### ~~~~~~~| |~~~~~~~~~~~~~~~~~~ ~~~~ / / + #### ### ### /-\ ~~~~~~~~~~~~~ ~~~~~ /\ / + ###### ##### ### ### ### /-\ ### ___________ ~~~~~~~~~~ ~~~~~~ / \ / + ###### ### ##### ##### ##### ~~~ ##### /Thrymrheimr\ ~~~~~~~~~~~~~~~~~~ /\ / \ / + #### _ ### /-\ ### ### ### ~(~)~ ### /_____________\ _ ~~~~~~~~~~~~~~ ### / \ \ + || /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 + +# Maisons + ( 30, 11, 9, 15, 13), # Glitnir + (116, 14, 10, 29, 23), # Valaskjalf + ( 70, 19, 11, 24, 19), # Gladsheim + ( 25, 31, 12, 24, 19), # Ydalir (1/2) + ( 26, 31, 12, 25, 19), # Ydalir (2/2) + (110, 34, 13, 20, 14), # Folkvangr + ( 63, 36, 14, 14, 14), # Noatun (1/2) + ( 64, 36, 14, 15, 14), # Noatun (2/2) + (120, 41, 15, 14, 14), # Landivi + ( 13, 43, 16, 29, 29), # Breidablik + ( 75, 50, 17, 24, 24), # Thrymrheimr + ( 27, 56, 18, 24, 24), # Himinbjorg (1/2) + ( 28, 56, 18, 25, 24), # Himinbjorg (2/2) + ( 57, 67, 19, 25, 14), # Sokkvabekkr + ( 10, 69, 20, 34, 24), # Alfheimr (1/2) + ( 11, 69, 20, 35, 24), # Alfheimr (2/2) +) + + +h_9 = (r""" + |==========| + |[===][===]| + | | + | | +|=========| |=========| +| | +| _ _ _ _ | +| |_| |_| |_| |_| | +| |_| |_| |_| |_| | +| |_| |_| |_| |_| | +| | +|============| |=============| + | | + ||^|| """, + (15, 13, 0, 30, 11)) + + +h_10 = (r""" + |====================================================| + | | + | | + | | + | |================\ /=================| | + | | | | + | | | | + | \ __ / | + | |<>| | + | |__| | + | /____\ \ | + | / | | + | | | | + | | | | + | |================/ \=================| | + | | + | | + | | + |_______________________ _______________________| + |__/ \__/ \__/ \__/ \__/ \__| + |__| |__| |__| |__| |__| |__| + |__| |__| |__| |__| |__| |__| + |__| |__| |__| |__| |__| |__| + /__\ /__\ /__\__^^__/__\ /__\ /__\ """, + (29, 23, 0, 116, 14), + (30, 23, 0, 116, 14)) + + +h_11 = (r""" + |============================| + | _ | + | |o| | + | /___\ | + | (___ ___) | + | (____ ____) | +|=========| (_____ _____) |========| +| | +| | +| __ ### __ | +| |__| +-#####-+ |__| | +| |__| | ### | |__| | +| |__| | /|\ | |__| | +| |__| +-------+ |__| | +| |__| |__| | +| | +| | +|======================| |======================| +|=+<>+=+<>+=+<>+=+<>+==| |==+<>+=+<>+=+<>+=+<>+=| + |^| """, + (24, 19, 0, 70, 19)) + + +h_12 = (r""" + |=-=-=-=-=-=-=-=-=-=-=-=-=-=-| + | __ | + | |()| | + | |__| | + | |====| | + | | + | ~~~~ | +|=-=-=-=-=| ~~\/~~ |=-=-=-=-=| +| [=====] /~~~||~~~\ [=====] | +| [=====] [==========] [=====] | +| _ _ | +| (_) (_) | +| _ /_\ /_\ _ | +| (_) (_) | +| /_\ ______ ______ /_\ | +| \- - / \ - -/ | +|-=-=-=-=-=-| - -| |- - |-=-=-=-=-=-| +|=-=-=-=-=-=|- - | | - -|=-=-=-=-=-=| + | - -| |- - | + /- - \_____|^^|_____/ - -\ """, + (24, 19, 0, 25, 31), + (25, 19, 0, 26, 31)) + + +h_13 = (r""" + || +|===================================||==| +|================|===o===o===o=====/ \=| +|[==-==/ \==-==]| |__| | +|[-===/ \==--]| _ | +|[=-=/ \-==]| |o| __ | +|[==/ \==]| (___) | | | +| | |__| | +|======/ \======| | | | +| |__| | +| | | | +| |__| | +| | +|==================| |==================| + |^| """, + (20, 14, 0, 110, 34)) + + +h_14 = (r""" +|=|\/|==|\/|=|\/|=|\/|==|\/|=| +| | +| | +| | +| |================| | +| | __ __ | | +| | | | | | | | +| | |__| |__| | | +| | | | +| |======\ /======| | +|### ###| +|### ###| +||_| |_|| +|=|\/|==|\/|=| |=|\/|==|\/|=| + |^^| """, + (14, 14, 0, 63, 36), + (15, 14, 0, 64, 36)) + + +h_15 = (r""" + ######### + ## [=====] ## + # [=====] # + # # + #_ _# + #(_) [] (_)# + #|~| |__| |~|# + # # + # _ _ # + # (_) (_) # + #|~| |~|# + ## ## + #### #### + | | + |^| """, + (14, 14, 0, 120, 41)) + + +h_16 = (r""" + |======================================| + | | + | | + | ### ~~~~ ### | + | ##### ~(~~)~ ##### | + | ##### /~~~(____)~~~\ ##### | + | ### \~~~~~~~~~~~~/ ### | + | |=| |============| |=| | + | | + |========\ /========| +|==================| |==================| +| [=====][=====] | | [=====][=====] | +| [=====][=====] _ _ [=====][=====] | +| (_) (_) | +| |=| |=| | +| ___ ___ ___ ___ | +| | | | | | | | | | +| |___| |___| _ _ |___| |___| | +| | | | | (_) (_) | | | | | +| |___| |___| |=| |=| |___| |___| | +| | | | | | | | | | +| |___| |___| |___| |___| | +| | | | | _ _ | | | | | +| |___| |___| (_) (_) |___| |___| | +| |=| |=| | +| | +| |======| |=======| | +|===================| _ | | _ |===================| + (_) | | (_) + |=| |/^\| |=| """, + (29, 29, 0, 13, 43)) + + +h_17 = (r""" + ### |============================| ### + ##### | | ##### + ### | | ### + |_| | ~~~~~~~~~~~~~~~~~~ | |_| + | ~~~~~~~~~~~~~~~~~~~~ | + ### | ~~~~~~~~~~~~~~~~~~~~ | ### + ##### | ~~~~~~~~~~~~~~~~~~~~ | ##### + ### | ~~~~~~~~~~~~~~~~~~ | ### + |_| | | |_| + | | +|===================/ \===================| +| | +| _ _ _ _ | +| (-) (-) (-) (-) | +| |_| |_| |_| |_| | +| | +| | +| | +| | +| _ _ _ _ | +| (-) (-) (-) (-) | +| |_| |_| |_| |_| | +| | +|======================| |=======================| + |^| """, + (24, 24, 0, 75, 50)) + + +h_18 = (r""" +|================================================| +|================================================| +| | +| | +| __ __ | +| (~~) (~~) | +| |--| __ |--| | +| | | |<>| | | | +| | | |--| | | | +| |__| |____| |__| | +| | +| | +| __ __ | +| (~~) ## (~~) | +| |--| #### |--| | +| | | #### | | | +| | | ## | | | +| |__| || |__| | +| | +| | +| | +|=====================\| |/=====================| +|=====================/| |\=====================| + \| |/ + /|^^|\ """, + (24, 24, 0, 27, 56), + (25, 24, 0, 28, 56)) + + +h_19 = (r""" +|================================================| +| | +| ########## | +| ########## | +| ###### ###### | +| ###### __ |===[]===| __ ###### | +| (__) | |__| | (__) | +| |--| | | |--| | +| |__| | | |__| | +| ###### |==/ \==| ###### | +| ###### ###### | +| | +| | +| | +|=======================|^|======================|""", + (25, 14, 0, 57, 67)) + + +h_20 = (r""" + |============================| + | | + | _ _ | +|===================| (-) (-) | +| | |_| __ |_| | +| | |[]| | +| ~~~ | | | | +| ~~~(~)~~~ | _ |____| _ | +| /~~(_____)~~\ | (-) (-) | +| \___________/ | |_| |_| | +| | +| | +| | +| | +| | +| ~~~ | _ _ | +| ~~~(~)~~~ | (-) (-) | +| /~~(_____)~~\ | |_| |_| | +| \___________/ | | +| | | +| | _ _ | +|===================| (-) (-) | + | |_| |_| | + | | + |============|^^|============|""", + (34, 24, 0, 10, 69), + (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'], + [0, '*', 0, 29, 13, 'stand by'], + [0, '*', 0, 19, 20, 'stand by'], + [0, '*', 0, 28, 26, 'stand by'], + [0, '*', 0, 46, 35, 'stand by'], + [0, '*', 0, 57, 38, 'stand by'], + [0, '*', 0, 82, 38, 'stand by'], + [0, '*', 0, 22, 39, 'stand by'], + [0, '*', 0, 8, 44, 'stand by'], + [0, '*', 0, 58, 50, 'stand by'], + [0, '*', 0, 83, 51, 'stand by'], + [0, '*', 0, 32, 59, 'stand by'], + [0, '*', 0, 104, 63, 'stand by'], + [0, '*', 0, 46, 65, 'stand by'], + [0, '*', 0, 16, 71, 'stand by'], + [0, '*', 0, 138, 71, 'stand by'], + ["Forseti", '*', 9, 19, 4, 'stand by'], + ["Odin", '*', 10, 25, 11, 'stand by'], + [0, '*', 11, 34, 7, 'stand by'], + [0, '*', 12, 19, 4, 'stand by'], + [0, '*', 13, 21, 8, 'stand by'], + [0, '*', 14, 26, 2, 'stand by'], + ["Vidar", '*', 15, 10, 6, 'stand by'], + [0, '*', 16, 50, 14, 'stand by'], + [0, '*', 17, 36, 14, 'stand by'], + [0, '*', 18, 30, 9, 'stand by'], + [0, '*', 19, 28, 7, 'stand by'], + [0, '*', 20, 39, 9, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/hy_po.py b/hydromel_poetique/hy_po.py new file mode 100644 index 0000000..bf1fff4 --- /dev/null +++ b/hydromel_poetique/hy_po.py @@ -0,0 +1,340 @@ +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 + + 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 + +print(center("L'Hydromel Poétique", 21, " ")) +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("introduction") + else: + stat, data = decode_save(save_code) + + idk_game = Asci(maps, entities, events, keys) + stat, data = idk_game.mainloop(1, 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]))) + + +# Scenario +def shop_interaction(data, stat, nb_choice, *events): + for choice in range(nb_choice): + if data[0]["main"] == stat[9] + choice + 1: + stat[9] = -1 + if stat[1] < events[choice][0]: return events[choice][2], choice + 1 + else: return events[choice][1], choice + 1 + + + +# - - - 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): + pass + + +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_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 \ No newline at end of file diff --git a/hydromel_poetique/idk_lib.py b/hydromel_poetique/idk_lib.py new file mode 100644 index 0000000..eba2150 --- /dev/null +++ b/hydromel_poetique/idk_lib.py @@ -0,0 +1,523 @@ +from asci import Asci, print_text +from random import randint, choice +from math import floor, ceil + +from asgard import * +from vanaheim import * +from alfheim import * +from midgard import * +from niflheim import * +from jotunheim import * +from nidavellir import * +from muspellheim import * +from svartalfheim import * + +maps = ( + asgard, + vanaheim, + alfheim, + midgard, + niflheim, + jotunheim, + 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, + h_25, h_26, h_27, h_28, + h_29, h_30, + 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 + ) + +spells = ("Soin", "Flammes", "Givre", "Etincelles", "Fatigue") +spells_level = ("I", "II", "III", "IV", "V") +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 = ("", "Dague", "Marteau", "Masse", "Fleau", "Hache", "Epee", "Espadon", "Hache double") +armors = ("", "Rondache", "Pavois", "Cote de maille", "Broigne", "Harnois") + +# Asci functions +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) + + if sel_choice == 1: + opponent_stat = [randint(5, stat[2][i] + 5) for i in range(4)] + opponent_stat.append(randint(50, 150)) + return launch_fight(data, stat, (opponent_stat, "Ennemi", randint(10, 30), 0)) + + elif sel_choice == 2: + if stat_test(stat[2], 1)[0]: + amount = randint(5, 25) + return [0, "Vous avez reussi a voler {} PO.".format(amount), 0, (1, amount)] + else: + return [0, "Votre victime vous a vu et vous a mis une raclee.", 0, (0, -10)] + + elif sel_choice == 3: + return None + + elif type(event) == tuple and len(event) > 2: + if len(event) == 4: quest = "main" + else: event, quest = event[:-1], event[-1] + return launch_fight(data, stat, event, quest) + + else: + return event + + +def launch_fight(data, stat, event, quest="main"): + issue, stat[0] = fight(stat, event[0], event[1]) + + if issue == 0: + stat[1] += event[2] + if sum(stat[2][:-1]) >= 200: return [event[3], "Vous avez gagne le combat. [+{}PO]".format(event[2])] + + print_text("Vous avez gagne le combat. [+{}PO]".format(event[2])) + data[0][quest] += event[3] + sel_choice = 0 + while not sel_choice: + print(" Amelioration ") + print(" |1. Vitesse |") + print(" |2. Agilite |") + print(" |3. Attaque |") + print(" |4. Defense |") + print(" ============= ") + sel_choice = get_input() + if (sel_choice < 0 or sel_choice > 4) and stat[2][sel_choice - 1] >= 50: sel_choice = 0 + + print_text("Vous gagnez 2 points {}".format(("de vitesse", "d'agilite", "d'attaque", "de defense")[sel_choice - 1])) + stat[2][sel_choice - 1] += 2 + if stat[2][sel_choice -1] > 50: stat[2][sel_choice - 1] = 50 + + return None + + elif issue == 1: return [0, "Vous etes mort."] + elif issue == 2: return [0, "Vous avez fuit."] + + +def routine(data, stat): + stat[4] = (stat[4] + 1) % 1440 + + # Health regeneration + if stat[0] < 100 and not (stat[4] % 60): + stat[0] += 1 + if stat[0] > 999: stat[0] = 999 + + # Mana regeneration + if stat[2][4] < stat[0] // 2 and not (stat[4] % 30): + stat[2][4] += 1 + if stat[2][4] > 99: stat[2][4] = 99 + + + + +def low_bar(data, stat): + h = stat[4] // 60 + m = stat[4] % 60 + if m < 10: m = "0" + str(m) + return "{0}h|{2}PV|{3}PM ".format(h, m, stat[0], stat[2][4]) + + +# Game mecanics +def fight(stat, opponent_stat, opponent_name): + + def player_turn(): + end = False + msg = "Tour de {}".format(stat[5]) + + if sel_choice == 1: + damage = stat_test(player_stat, 2)[1] - opponent_stat[3] + if damage < 0: damage = 0 + + if damage == 0: + msg += "\n{} bloque l'attaque.".format(opponent_name) + elif stat_test(opponent_stat[:-1], 1)[0]: + msg += "\n{} esquive le coup.".format(opponent_name) + else: + opponent_stat[4] -= damage + msg += "\n{0} perd {1} PV.".format(opponent_name, damage) + + elif sel_choice == 2: + if len(stat[7]) == 0: + msg += "\nVous ne connaissez pas de sort." + else: + spell_choice = 0 + while not spell_choice: + print("\n" * 6 + "Sort(s) connu(s) :") + count = 0 + for spell_id, level in stat[7]: + print("{0}. {1} {2}".format(count + 1, spells[spell_id], spells_level[level - 1])) + count += 1 + spell_choice = get_input() + if spell_choice < 0 or spell_choice > len(stat[7]): spell_choice = 0 + + spell_choice -= 1 + spell_id, level = stat[7][spell_choice][0], stat[7][spell_choice][1] + + if stat[2][4] >= level * 10: + msg += "\nVous lancez {0} de niveau {1} [-{2} PM].".format(spells[spell_id], spells_level[level - 1], level * 10) + stat[2][4] -= level * 10 + pts = 12 * level + randint(-5, 5) + + capacity, factor, apply_on_player = spells_effect[spell_id] + + if apply_on_player: + player_stat[capacity] += factor * pts + msg += "\nVous {0} {1} points de {2}".format(("perdez", "gagnez")[factor > 0], pts, ("vitesse", "agilité", "attaque", "défense", "vie")[capacity]) + else: + opponent_stat[capacity] += factor * pts + msg += "\n{0} {1} {2} points de {3}".format(opponent_name, ("perd", "gagne")[factor > 0], pts, ("vitesse", "agilité", "attaque", "défense", "vie")[capacity]) + + else: + msg += "\nVous ne parvenez pas a lancer le sort." + + elif sel_choice == 3: + if stat_test(player_stat, 1)[0] or not stat_test(opponent_stat, 1)[1]: + end = True + else: + msg += "\nVotre tentative de fuite echoue." + + print_text(msg) + return end + + def opponent_turn(): + msg = "Tour de {}".format(opponent_name) + damage = stat_test(opponent_stat, 2)[1] - player_stat[3] + if damage < 0: damage = 0 + + if damage == 0: + msg += "\n{} bloque l'attaque.".format(stat[5]) + elif stat_test(player_stat, 1)[0]: + msg += "\n{} esquive le coup.".format(stat[5]) + else: + player_stat[4] -= damage + msg += "\n{0} perd {1} PV.".format(stat[5], damage) + + print_text(msg) + + # opponent_stat = [vitesse, agilité, attaque, défense, vie] + # player_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 + while not end: + sel_choice = 0 + while not sel_choice: + print(" Combat ") + print(" | 1. Attaquer |") + print(" | 2. Ensorceler |") + print(" | 3. Fuir |") + print(" | 4. Statistiques |") + print(" ============= ") + sel_choice = get_input() + if sel_choice < 0 or sel_choice > 4: sel_choice = 0 + + if sel_choice == 4: + p_capacities = ["{} ".format(i) if i < 10 else str(i) for i in player_stat] + o_capacities = ["{} ".format(i) if i < 10 else str(i) for i in opponent_stat[:-1]] + + p_health = str(player_stat[4]) + " " * (3 - len(str(player_stat[4]))) + o_health = str(opponent_stat[4]) + " " * (3 - len(str(opponent_stat[4]))) + + print(" Joueur | Ennemi") + print("Vit: {0} | {1}".format(p_capacities[0], o_capacities[0])) + print("Agi: {0} | {1}".format(p_capacities[1], o_capacities[1])) + print("Att: {0} | {1}".format(p_capacities[2], o_capacities[2])) + print("Def: {0} | {1}".format(p_capacities[3], o_capacities[3])) + print("Vie: {0} | {1}".format(p_health, o_health)) + input() + sel_choice = 0 + + # Who start + 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: + end = player_turn() + if end: return 2 + if opponent_stat[4] <= 0: return 0, player_stat[4] + opponent_turn() + + else: + opponent_turn() + if player_stat[4] <= 0: return 1, player_stat[4] + end = player_turn() + + if opponent_stat[4] <= 0: return 0, player_stat[4] + if player_stat[4] <= 0: return 1, player_stat[4] + + return 2, player_stat[4] + + +def misc_stat(data, stat): + if data[1] < 9: place = ("Asgard", "Vanaheim", "Alfheim", "Midgard", "Niflheim", "Jotunheim", "Nidavellir", "Muspellheim", "Svartalfheim")[data[1]] + elif data[1] == 27: place = "chez vous" + else: place = "interieur" + money, ticks, player_class = stat[1], stat[4], stat[6] + + hours = ticks // 60 + if 4 <= hours <= 5: + hours = " |aube - {}h".format(hours) + elif 6 <= hours <= 12: + hours = " |matin - {}h".format(hours) + elif 13 <= hours <= 18: + hours = " |apres-midi - {}h".format(hours) + elif 19 <= hours <= 20: + hours = " |crepuscule - {}h".format(hours) + else: + hours = " |nuit - {}h".format(hours) + + player_class = (" |Guerrier", " |Voleur", " |Moine", " |Mage", " |Assassin")[player_class] + + money = " |Argent: {} PO".format(money) + + print(" Informations ") + print(" |" + center(place, 17, " ") + "|") + print(player_class + " " * (19 - len(player_class)) + "|") + print(hours + " " * (19 - len(hours)) + "|") + print(money + " " * (19 - len(money)) + "|") + print(" ============= ") + input() + + +def display_stat(data, stat): + capacities = ["{} ".format(i) if i < 10 else str(i) for i in stat[2]] + + first_line = " |Vit : {0} Agi : {1}|".format(capacities[0], capacities[1]) + second_line = " |Att : {0} Def : {1}|".format(capacities[2], capacities[3]) + health = " |Vie : {} PV".format(stat[0]) + mana = " |Magie : {} PM".format(stat[2][4]) + + print(" {} ".format(center(stat[5], 13, " "))) + print(first_line) + print(second_line) + print(mana + " " * (19 - len(mana)) + "|") + print(health + " " * (19 - len(health)) + "|") + print(" ============= ") + input() + + +def inventory(data, stat): + weapon = weapons[stat[3][0]] + shield = armors[stat[3][1]] + + weapon = " |" + weapon + " " * (17 - len(weapon)) + "|" + shield = " |" + shield + " " * (17 - len(shield)) + "|" + + print(" Inventaire ") + print(" |- Arme : |\n{}".format(weapon)) + print(" |- Armure : |\n{}".format(shield)) + print(" ============= ") + input() + + +def sleep(data, stat): + sleep_hours = 0 + hours = "= {0} h ".format(stat[4] // 60) + if stat[4] % 60 < 10: hours += "0{1} =" + else: hours += "{1} =" + + hours = center(hours.format(stat[4] // 60, stat[4] % 60), 21, " ") + + while not sleep_hours: + print(hours) + print("Combien d'heures\nvoulez-vous dormir ?") + sleep_hours = get_input() % 25 + if not sleep_hours or sleep_hours < 0: return + + stat[4] += sleep_hours * 60 + if stat[0] < 100: stat[0] += sleep_hours // 2 + if stat[2][4] < 50: stat[2][4] += sleep_hours + + + # If the player is at home + if data[1] == 27: + if stat[0] < 100: stat[0] += sleep_hours + if stat[2][4] < 50: stat[2][4] += sleep_hours * 2 + + print_text("Vous vous reposez {0} heure{1}.".format(sleep_hours, ("", "s")[sleep_hours > 1])) + + +def spell(data, stat): + to_disp = "Magie : {} PM".format(stat[2][4]) + print(" Sorts ") + 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(" |{}.".format(i + 1) + to_disp + " " * (14 - len(to_disp)) + "|") + else: + print(" | |") + + print(" ============ ") + spell_choice = get_input() + if not (1 <= spell_choice <= len(stat[7])): 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[:] + stat_copy = stat[:-1] + print_text("\"{}\"".format(encode_save(data_copy, stat_copy))) + + +# Misc functions +def get_input(string=">"): + string = input(string) + try: + return int(string) + except: + return 0 + + +def center(string, total_length, symbol): + left = floor((total_length - len(string)) / 2) + right = ceil((total_length - len(string)) / 2) + + return left * symbol + string + right * symbol + + +def stat_test(stat, test_id): + score = (80 + randint(-20, 20)) * stat[test_id] / 50 + return randint(1, 100) <= score, floor(score) + + +def init_stat(): + name = input("Entrez votre nom :\n>") + while len(name) == 0 or len(name) > 13: + print("Erreur : nom invalide.") + name = input("Entrez votre nom :\n>") + + player_class = 0 + while(not player_class): + print("Choisissez une classe\n1. Guerrier\n2. Voleur\n3. Moine\n4. Mage\n5. Assassin") + player_class = get_input() + if player_class < 0 or player_class > 5: player_class = 0 + + if player_class == 1: + stat = [6, 6, 10, 6, 6] + elif player_class == 2: + stat = [6, 10, 6, 6, 6] + elif player_class == 3: + stat = [6, 6, 6, 10, 6] + elif player_class == 4: + stat = [6, 6, 6, 6, 20] + elif player_class == 5: + stat = [10, 6, 6, 6, 6] + + stat = [100, 10, stat, [0, 0], 360, name, player_class - 1, [], 1, -1] + if player_class == 4: + stat[7].append((1, 1)) + + return stat + + +def encode_save(data, stat): + xp = ["{0}-{1}".format(key, data[0][key]) for key in data[0] if key == "main" or data[0][key]] + data = "{0},{1},{2},{3}".format(data[1], data[2], data[3], ",".join(xp)) + + stat[5] = 0 + if not stat[7]: stat[7] = 0 + else: stat[7] = ",".join(["{0}-{1}".format(i[0], i[1]) for i in stat[7]]) + + save_code = [] + for i in stat: + if type(i) == list: + for j in i: save_code.append(str(j)) + else: save_code.append(str(i)) + + return ",".join(save_code) + ".{}".format(data) + + +def decode_save(save_code): + stat, data = save_code.split(".") + 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] + + if encoded_stat[7] == ["0"]: + encoded_stat[7] = [] + else: + spells = [] + for spell in encoded_stat[7]: + s_id, s_lv = spell.split("-") + spells.append((s_id, s_lv)) + encoded_stat[7] = spells + + stat = str_to_int(encoded_stat) + + for i in range(len(stat[7])): + stat[7][i] = tuple(stat[7][i]) + + # Money check + if stat[1] < 0: stat[1] = 0 + if stat[1] > 100000: stat[1] = 100000 + + # Stat check + for i in range(len(stat[2])): + if stat[2][i] > 50: stat[2][i] = 50 + if stat[2][i] < 0: stat[2][i] = 0 + + # Player's class check + if not (0 <= stat[6] <= 5): + raise ValueError("classe du joueur inconnue") + + # PLayer's name check + name = input("Entrez votre nom :\n>") + while len(name) == 0 or len(name) > 13: + print("Erreur : Nom invalide") + name = input("Entrez votre nom :\n>") + stat[5] = name + + xp = {} + for quest in encoded_data[3:]: + q_id, q_xp = quest.split("-") + xp[q_id] = int(q_xp) + data = [xp, int(encoded_data[0]), int(encoded_data[1]), int(encoded_data[2])] + + return stat, data + + +def str_to_int(data): + result = [] + for i in data: + if isinstance(i, (list, tuple)): + result.append(str_to_int(i)) + else: + result.append(int(i)) + return result diff --git a/hydromel_poetique/jotunheim.py b/hydromel_poetique/jotunheim.py new file mode 100644 index 0000000..8e58a08 --- /dev/null +++ b/hydromel_poetique/jotunheim.py @@ -0,0 +1,322 @@ +jotunheim = (r""" + /\ /\ / / \ / \ /\ / \ ~~~~~~~~~~~~~~~~~~~~~~~ + / \ / \ / / \ /\ / \ / \ /\ / \ /\ ~~~~~~~~~~~~~~~~~~ + / \ /\ / \ /\ / / \ / \ / / / \ / \ / \ /\ ~~~~~~~~~~~~~~~~ + / \ / \ /\ / \ / \ /\ / \ / \ /\ / / \ / /\ / / \ ~~~~~~~~~~~~~~ + / /\ / / \ / / / \ / \ / \ /\ / / \ / \ / \ ~~~~~~~~~~~~ + / \ / / \ / / \ /\ / / / \ / \ / \ /\ \ ~~~~~~~~~~ + / \ / /\ / \ / / \ / \ / / \ /\ / \ / \ /\ \ ~~~~~~~~ + / \ / \ /\ \ / \ / \ /\ / / \ / \ / / / \ ~~~~~ + / / / \ ___ ### / \ / \ /\ / \ / \ /\ / / \ ~~~ + /\ / / \ /O O\ ##### / ### / / \ \ / \ / \ /\ / / \ /\ ~~ +/ \ /\ / / \ |_ | |=| ##### / / \ / ~/ / \ / \ / \ ~ + / \ / ### \ |^|_| |=| / / \ ### ### ~/ / \ /\ / \ /\ + / \ ##### ### / ### \ ##### ##### ~/ / \ / \ / \ / \ +\ / \ |=| ### ##### _______ ##### |=| |=| ~ / _ \ / \ /\ / / + \ \ ##### |=| /[] []\ |=| ### ~~~~ __/o\ / ## \ / \ /\ / / + \ /\ /\ |=| / \ ______ ##### ~~~~~ / | / #### / / \ / / +~ \ / \ /\ / \ ### /___________\ ### / \ |=| ### ~~~~~ |____| ## / / \ / +~~ / / \ / \ /\ ##### | | ##### /________\ ##### ~~~~~~ || / / \ /\ +~~ / / \ / \ / \ /\ |=| |[] |]O[| []| |=| | | ### |=| ~~~~~ / / \__ +~ / / \/ / / \ |___________| | __ | ##### ~~ _____ /\ / \ +~ / / / \ ### |__|__|__| |=| _ / \___ / \_ / \ +~~~ /\ / / \ /\ ### ##### __/o\ / \ / \ / \ +~~ / \__ / / \__ ##### |=| ### ### / o | /____________\ / \ ~ +~~~ / \ /\ / \ |=| ##### ### ##### |____| | O O O | _ /\ ~~~ +~~ / \ /\ / \__ / \ /\ ### |=| ##### |=| ## | _ | __/ \ / \_ ~~~ +~ / \/ \__ / \ \ / \ ##### |=| ## #### ## |__|^|_______| / | / \ ~~ +~ /\ / \ / \ /\ / \ |=| ## #### ## ## #### |____| / \ /\ ~~ + / \__ / \ \ / \ / \ _ #### ## #### || ## ## ## / \_ ~ +/ \ / \ /\ /\ / \ __/ \ ## || ## || #### ## #### /\ / \ ~ +~~ \ / \ / \ \ /\ / | || || ## ## #### ## / \_ / \~ +~~ \ /\ / \ / \ / \ |____| ## ## #### ## || ## || / \ ~~ +~ /\ \/ \ /\ / \ \ /\ / \ #### #### ## #### || / \ /\ ~~~ +~ / \ / \ / \ /\ / \/ \ ## ## ## || ## ______ / \_ ~~ + / \ / \ / \ / \ /\ / \ ## #### || || _ || / \ _ / \ ~~ +/ \ /\ /\ \ / \ / \ / _ \ #### ## / \ /________\ / \ /\ / \ ~~~~ + /\ / \ / \ / \ / \ / \ ## || ___ |_| | | |_| / \_ ~~~~ + / \ / \ / \ / \ |_| || /[O]\ ___ | __ | /\ / \ /\ ~~ +/\ / \ / \ /\ | | /\ |__|__|__| / \_ / \ / \_ ~~~ + \ \ /\ / \ ___ |___| | | / \ / \ ~~~ + \ /\ /\ / \ / \ / \ |___| / \ /\ \ ~~ + \ / \ / \ / \ / \ ______ |___| ______ _ /\ / \_ ~~ + /\ / \ \ /\ / \ / \ ______ / \ / \ / \_ / \ /\ ~ + / \ \ \/ \ /________\ / \ /________\ |_| / \ / \ / \_ ~ + / \ _ / \ | | _______________ /________\ | | / \ / \ + / /\ \ / \ / \ | o o o o| / \ | [] [] | | _ | /\ /\ / /\ \ + / \ |_| |________| / () () () () \ | | |__|^|___| / \_ / \_ / \_ + / \ /\ /___________________\ |________| / _ \ / \ / \ + / \/ \ ______ |_/ \_/ \_/ \_| / / \ \/ /\ \/ \ + / \ _ / \ ### |I| |I| _ |I| |I| ______ |_| _/ \ + / \ / \ /________\ ##### |I| |I|/_\|I| |I| / \ / \ /\ + /\ |_| ___ | | ### |I| |I|[^]|I| |I| ### /________\ _ \ _/ \ + / \ /\ /\ | | /-\ ##### ||]O[| | / \ /\ / \ + / \ \ | | |________| ### ### ### | | |_| _/ \ / \ + / \ \ /\ |___| ### ##### ##### /-\ |________| /\ / \ /\ + \/ \ ##### |=| |=| _/ \ / _/ \ + /\ / \ ~~~~~~~ ### ### / \ / \ + / \ /\ / ~~~~~~~~~~|---- ### /-\ ### ### ### ##### / \ /\ / \ /\ +/ \ / \ ~~~~~~~~~~~~~~| ##### ##### ##### ##### ### _/ \ _/ \ + \/ \ ~~~~~~~~~~~~~~~| ### |=| |=| ### /-\ / \ /\ / \ +~~~ / \~~~~~~~~~~~~~~~|---- /-\ ### ~~~ /-\ / _/ \ / \ +~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ### ##### _~/~\~_ ### ___ / \ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##### ### ### /~~|~|~~\ ##### /\ /\ \ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ### ##### /-\ \_______/ ### | | /\ _/ \ /\ /\ +~~~~~~~~~~~~~~~~~~~~~~~~~~ /-\ ### ### |=======| /-\ |___| _/ \ / \ _/ \ _/ \ +~~~~~~~~~~~~~~~~~~~~~~~ /-\ ##### ### /~ \/ / \ / \ +~~~~~~~~~~~~~~~~~~~~ ### ### ### ##### /~ / \/ ## \ +~~~~~~~~~~~~~~~~ ##### ##### ### /-\ ___ ### ### ~~ ## #### +~~~~~~~~~~~~ __ ### ### ##### /[O]\ ##### /-\ ~~ #### ## ###### +~~~~~~~~~~~ /()\ /-\ /-\ ### ___ | | ___ ___ ### ~~~ ###### #### ######## +~~~~~~~~~~ | =| /-\ /O O\ |___| /\ /() \ /-\ ~~~ ######## ###### ## ###### +~~~~~~~~~ |= | ### | | | | | | ~~~~ ###### ######## #### #### +~~~~~~~~ | =| ### ##### |___| |___| |___| ~~~~~~~ #### ###### ###### |--| +~~~~~~ |= | ##### ### ___ ~~~~~~~~~~ ## |--| #### ########|--| +~~~~~ /____\ ### /-\ /\ ~~~~~~~~~~~~~~~~ #### |--| |--| ###### +~~~~~ ~~~~~~~~ /-\ | | ~~~~~~~~~~~~~~~~~ | ## ## ### |--| ## #### ## +~~~~ ~~~~~~~~~~~~~~~~~ |___| ~~~~~~~~~~~~~~~~ | #### || ##### ## #### |--| #### +~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ## ## | ## ##### #### ###### |--| ###### +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ## #### #### | || ### ###### ######## ######## +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | #### ## /\ /\ | ### |_| ######## ###### ###### +~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~ | /\ #### | ## ##### ###### #### #### +~~~~~~~~~~~~~~ ### # |==| () /\ () | #### ##### #### |--| ## |--| +~~~~~~~~~ ##### ### | /__\ __ /__\ | ## ### |--| |--| #### |--| +~~~~~~ # ### # ##### | | |___/()\___| | | || |_| |--| ###### +~~~~~ ### __ |-| ### ### | ## |[]| [] [] |[]| | ### ### ######## ## +~~~~ # ##### /()\ ##### |-| |#### | | __ | | | ##### ##### ## ###### #### +~~~~ ### ### | \____ ### # | /\ |__|___|^^|___|__| ## | ##### ##### #### #### ###### +~~~~ ##### |-| | |]O[|\ |-| ### | #### | ### ### ###### ## |--| ######## +~~~~ ### | _ | ##### | /\ | |_| |_| ######## #### |--| ###### +~~~~~ |-| |____|^|_| # ### # | # # | ### ###### ###### #### +~~~~~~ ### |-| ### |==|==|==|===| |=|==|==|==|==| ##### ## #### ######## |--| +~~~~~~~~~ # ##### ##### ### ##### #### |--| ###### |--| +~~~~~~~~~~~~ ### # ### ### # # ### ##### ### ###### |--| #### ## +~~~~~~~~~~~~~ ##### ### |-| # |-| ### ### ##### ##### |_| ######## |--| #### +~~~~~~~~~~~~~~ ### # ##### ### ##### ##### ##### ### ### ### ###### |--| ###### +~~~~~~~~~~~~~~~ |-| ### ### ##### ### ### ### ##### |_| ### ##### #### ## ## ######## +~~~~~~~~~~~~~~ ##### |-| ### |-| |-| |_| ##### ##### ##### |--| #### #### ###### +~~~~~~~~~~~~~ ### |-| ### ##### ### |--| ###### ###### #### +~~~~~ ~~~~ |-| ~~~~~ # ### |_| ### ### |_| ######## ########|--| +~~~~ ~~ ~~~~~~~ ~~~~~~~~~~ ### ##### ##### |_| ### ###### ###### |--| +~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ # ##### ##### ##### ### ##### #### ## #### +~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ### ### ### ### ### ##### ##### |--| #### |--| +~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##### |-| |_| ##### |_| ##### ### |--| ######|--| +~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~ ### ##### ### |_| ######## ## +~~~~ ~~~~~~~~~~~~ ~~~~~~~~ # |-| ### ### ### ### |_| ## ###### #### +~~~~~ # ~~~~~ # ~~~~~~ ### ##### |_| ##### ##### #### #### ###### +~~~~~ ### # ~~ ### ~~~~~ ##### ##### ##### ##### ### ###### |--| ######## +~~~~ ##### ### ##### ### ### ### ### ##### ######## |--| ###### +~~~ ### ##### ### ### |-| ### |_| |_| |_| ##### ###### #### ## +~~ |-| ### |-| ##### ##### ### ### ### #### ## |--| #### +~~ |-| _ ##### ##### ##### |_| ##### |--| #### |--| ###### +~~ ## ## __/o\ ### ### ### ##### ### ##### |--| ###### ######## +~~~ #### #### / o | |_| |_| ### ##### ### ##### ### ######## ###### +~~~~~ ## ## |____| ### ########## ### |_| ##### |_| ###### ## #### ~ +~~~~~~~ || ___ || ## ##### ##### ### ##### ### ### ### #### #### |--| ~ +~~~~~~~~ /o o\ #### ##### ### |_| ##### |_|##### ##### |--| ###### |--| ~ +~~~~~~~~ |___| ~~~ ## ### ### ### |_| ### ##### ### ##### ## |--| ######## ~ +~~~~~ ~(~)~ || ## |_| ##### ##### ### |_| ### ### ##### ### #### ###### ~~ +~~~ (_____) #### ##### ##### ##### ##### |_| ##### |_| ###### ## #### ~~ +~~ _ |-----| ## ### ### ### ##### ### ##### ### ### ######## #### |--| ~~ +~~~ /-\ _ || ##### |_| |_| ### ### ##### ### ##### |_| ###### ###### |--| ~~ +~~~~ |^| __/o\ ~~~~ ##### ### ##### |_| ##### |_| ### ##### ### #### ######## ~~~~~~ +~~~~~~ / o | ~~~~~~~~~ ### ##### ##### ### ##### ### ##### |--| ###### ~~~~~~ +~~~~~~~~ |____| ~~~~~~~~~~~~~~ |_| ##### ### |_| ##### |_| ##### |--| #### ~~~~~~~~~~ +~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ ### |_| ### ~~~~ ### |--| ~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|_| ~~~~~~~~~~~~~~~~|_| ~~~~~~~~~|_|~~~~~~~~~~~~|--|~~~~~~~~~~~~~~""", +# Autres mondes (Jotunheim = 5) + (11, 120, 1, 56, 42), # Vanaheim + +# Maisons + (29, 11, 31, 19, 14), + (88, 25, 32, 14, 24), + (89, 45, 33, 30, 24), + (60, 50, 34, 34, 29), # Utgard + (64, 85, 35, 24, 19), # Manoir du sud (1/2) + (65, 85, 35, 25, 19), # Manoir du sud (2/2) + (23, 88, 36, 19, 14), # Auberge +) + + +h_31 = (r""" +|=====||=====|===========|======||=====| +| /__\ | | /__\ | +| |==| | _ | |==| | +| (_) | | +| |_| | __ | +| ____ | | | | +| |____| | |__| | +| | _ | | | | +|============| (_) | |__| | +| | |_| | | +| |=============| +| | | +| | | +| | | | +|============|====|^|====|=============|""", + (19, 14, 5, 29, 11)) + + +h_32 = (r""" +|=============================| +|=============================| +| | +| | +| |============================| +| ____ ____ |=====____==========____=====| +| \__/ \__/ \__/ \__/ | +| | | | | | | | | | +| | | | | | | | | | +| |__| |__| |__| |__| | +| | +| | +| | +| | +| | +| ____ ____ ____ ____ | +| \__/ \__/ \__/ \__/ | +| | | | | | | | | | +| | | | | | | | | | +| |__| |__| |__| |__| | +| |============================| +| |============================| +| | +|============| |==============| +|============|^|==============| """, + (14, 24, 5, 88, 25)) + + +h_33 = (r""" +|=======|---|=======| |=======|---|=======| +|=======|---|=======| |=======|---|=======| +| /_____\ | | /_____\ | +| |=====| |===|]O[|==|]O[|===| |=====| | +| |==================| | +| _ _ | +| (~) (~) | +| __ __ |_| |_| __ __ | +| | | | | | | | | | +| |__| |__| |__| |__| | +| | | | | | | | | | +| |__| |__| _ _ |__| |__| | +| | | | | (~) (~) | | | | | +| |__| |__| |_| |_| |__| |__| | +| | +| | +| | +| _ _ _ _ | +| (~) (~) (~) (~) | +| |_| |_| |_| |_| | +| | +| | +| | +|============================| |===========================| +|=[]=[]=[]=[]=[]=[]=[]=[]=[]=|^|=[]=[]=[]=[]=[]=[]=[]=[]=[]|""", + (30, 24, 5, 89, 45)) + + +h_34 = (r""" + |======================| |======================| + |======================| |======================| + | | | | + | | | | + | |============| | + | |============| | + | ####### ####### | + | ######### ######### | + | ######### ######### | + | ######### ######### | + | ####### __ __ ####### | + | (==) (==) | + | |TT| |TT| | + | |__| |__| | + | ~~~ ~~~ | + | ~~(~)~~ ~~(~)~~ | + | /~~~T~~~\ /~~~T~~~\ | + | \=======/ __ __ \=======/ | + | (==) (==) | + | |TT| |TT| | + | |__| |__| | + | ####### ####### | + | ######### ######### | + | ######### ######### | + | ____######## ____ ____ ########____ | + | |II|####### |II| |II| #######|II| | + |==|II|================|II| |II|================|II|==| + |==|II|================|II| |II|================|II|==| + |II| |II| |II| |II| + |II| |II|/|^=|\|II| |II| """, + (34, 29, 5, 60, 50)) + + +h_35 = (r""" +|================================================| +|==|/\|=|/\|=|/\|=|/\|=|/\|=|/\|=|/\|=|/\|=|/\|==| +| | +| _ _ | +| ### (~) (~) ### | +| ##### |=| |=| ##### | +| ### ### | +| |=| |=| | +| ### _ _ ### | +| ##### (~) (~) ##### | +| ### |=| |=| ### | +| |=| |=| | +| ### ### | +| ##### _ _ ##### | +| ### (~) (~) ### | +| |=| |=| |=| |=| | +| | +| | +|======================\ /======================| +|==|/\|=|/\|=|/\|=|/\|=/^^\=|/\|=|/\|=|/\|=|/\|==|""", + (24, 19, 5, 64, 85), + (25, 19, 5, 65, 85)) + + +h_36 = (r""" +|======================================| +| | +| _ _ _ _ | +| (_) (_) (_) (_) | +| |_| |_| |_| |_| | +| | +| | +|=================| |====== =======| +| | | [I] [I] | +| +---+ +---+ | | /|\ /|\ | +| | | | | | | +| | | | | | | +| +---+ +---+ | | [====] [====] | +| | | [====] [====] | +|=================|^^|=================|""", + (19, 14, 5, 23, 88), + (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'], + [0, '*', 5, 3, 28, 'stand by'], + [0, '*', 5, 34, 45, 'stand by'], + [0, '*', 5, 53, 49, 'stand by'], + [0, '*', 5, 19, 51, 'stand by'], + [0, '*', 5, 64, 64, 'stand by'], + [0, '*', 5, 54, 70, 'stand by'], + [0, '*', 5, 8, 72, 'stand by'], + [0, '*', 5, 40, 75, 'stand by'], + [0, '*', 5, 72, 87, 'stand by'], + [0, '*', 5, 6, 98, 'stand by'], + [0, '*', 31, 28, 4, 'stand by'], + [0, '*', 32, 28, 6, 'stand by'], + [0, '*', 33, 14, 7, 'stand by'], + [0, '*', 33, 48, 5, 'stand by'], + ["Thrym", '*', 34, 26, 6, 'stand by'], + ["Gullveig", '*', 35, 17, 5, 'stand by'], + ["jotunheim_aubergiste", '*', 36, 27, 10, 'stand by'], + [0, '*', 36, 0, 0, 'stand by'], + [0, '*', 36, 0, 0, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/midgard.py b/hydromel_poetique/midgard.py new file mode 100644 index 0000000..4522ff0 --- /dev/null +++ b/hydromel_poetique/midgard.py @@ -0,0 +1,213 @@ +midgard = (r""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ ~~ ~~~~~~ ~~~ _ ~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~~~ ~~~ ~~~ /-\ ~~~~~~~ ~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ ~~~~~ ~~~ ~~~~ ~~~ |_| ~~~~~~~ ~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~~~~~~ ~~ ~~~~ ~~ ~~ ~~~~~ ~ ~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ ~~~ ~ ~~~~~ ~~ ~~~ ~~~ ~~~~ ~~~~~ ~ ~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ ~ ~~ ~~~~~ ~~~ ~~ ~~~~ ~~~ ~ ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ ~ ~~~~~ ~~~~ ~~~ ~~~ ~~ ~ ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ ~ ~ ~~~~~ ~~~~ ~~~~ ~~~ ~~~~ ~~ ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ ~ ~~~~~~ ~~~ ~~~~ ~~~ ~~~ ~ ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~ ~~ ~~ ~~~ ~~~ ~~~ ~~~~ ~ ~ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ ~ ~~ ~~ ~~~ ~~~ ~~~~ ~~ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ ~ ## ~~~~ ~~~~ ~~~~~ ~ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /\ ~~ #### ~~~~~ ~~~ ~ ~~~ ~~ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~ ~~ ~~~ / \ ## #### ~~ ~~ ~ ~~ ~ ~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ ~ / \ ## #### ## ## ~ ~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~ /\ #### #### ##|| #### ## ## ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ ~~~~ / \ ## #### ## #### ## #### #### #### ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ \ #### ## || ######## ## ## #### ## #### ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ /\ #### ##|| ## #### ##|| #### ## #### ## ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ / \ ## #### || ## #### #### ##|| #### ##|| ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ / \ || #### || #### ## #### ## #### ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## ## || #### || #### ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ /\ || || ## ## ## ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ _/ \ /\ ## ||#### || ## ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ / \ / \ #### ## #### #### ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ / /\ / \ ' . #### ## #### ## ## #### ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ ~~~ / \ ## #### #### ##|| #### ## ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ /\ /\ / \ . || #### ## #### #### ##|| ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~ / \ / \ /\ ## || #### ## #### ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~ / \ \ / \ . ' || ## || #### ~~~~~~~~~ +~~~~~~~~~~~~~~~~ ~~~~~~~~ / \ . || ## ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~ ~ /\ ., ~~~ || ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~ ~~ / \ . , ~(~)~ ### ~~~~~~~~~ +~~~~~~~~~~~ ~ ~~ ### / \ . /~(___)~\ ##### ~~~~~~~~~~ +~~~~~~~~~~~~~~~ ##### , . ### \~~~~~~~/ ### ~~~~~~~~~~ +~~~~~~~~~~~~~~~~~ ### ##### /-\ ### ~~~~~~~~~~ +~~~~~~~~~~~~~~~~ ~~ /-\ ### . ### ##### ~~~~~~~~~~ +~~~~~~~~~~~~~~~ ~~ ~~ ##### , /-\ _____________ ### ~~~~~~~~~ +~~~~~~~~~~~~~ ~~ ~~~ ~~~ ### , ' / Midgard \ /-\ ~~~~~~~~~ +~~~~~~~~~~~~~ ~~~~~~~~~~~~ ~~~~~ /-\ . ' ' / \ ### ~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ , , . ' /_ __ _ ___ _ __ _\ ##### ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ |_/ \_/ \_/ \_| ### ~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __ ### |_| |_| |_| |_| /-\ ~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~ ### /[]\____ ##### ### ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##### |_ o o \ ### _ ##### ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ ~~~~ ### |^|_____| /-\ _ /o\___ ### ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ /-\ /o\ |_ ]O[\ /-\ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~ |_| |^|___| ~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~ ### ' __ , ### _ ~~~~~~~ +~~~~~~~~~~~~~~~~~~~ ##### / \ ##### / \ ~~~~~~~ +~~~~~~~~~~~~~~~~~ ### ### ' |__| , ### |_| _ ~~~~~~ +~~~~~~~~ ##### /-\ ### /-\ /o\ ~~~~~~ +~~~~~~~~ _ ### ##### . , , |_| ~~~~~~ +~~~~~ /-\ ### /-\ ### . , . __ _ ~~~~~~ +~~~~~~~ |_| ##### /-\ ,. ' /[]\ / \ ~~~~~~~ +~~~~~~ ### ' . |__| |_| ~~~~~~~~~~ +~~~~~~~~~~~~~~ /-\ . ' . __ _ ~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ /<>\ _ /-\ ~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ __ ' ' . |__| /o\ |_| ~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~ /<>\ ' ___ |_| _ ~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~ |__| / _\ .. /o\ ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~ ' . |_|^| . _ _ |_| ~~~~~~~ +~~~~~~~~~~~~~~~~~~~ ' /o\____/o\ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~ ' ' __ |==|==| o o |==|==| __ ~~~~~ +~~~~~~~~~~~~~~~~~~~~ ' /[]\ | | __ | | /<>\ ~~~~~ +~~~~~~~~~~~~~~~ ' |__| | |__|^^|__| | |__| ~~~~ +~~~~~~~~~~~~~~~~~ ___ | | ~~~~~ +~~~~~~~~~~~~~~~~~~~ . /]O[\ | #### #### | ~~~~~~~ +~~~~~~~~~~~~~~~~~~~ . |___| | #### #### | ~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~ ' , __ | #### #### | ~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~ / \ | | ~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~ . |__| | #### #### | ~~~~~~~~~~~~~~~ +~~~~~~~~~~ | #### #### | ~~~~~~~~~~~~~~ +~~~~~~~~~~~ | #### #### | ~~~~~~~~~~~~ +~~~~~~~ ### ### | | ~~~~~~~~~~~ +~~~~~~~~~ ### ##### ##### ### | + + | ~~~~~~~~~~~ +~~~~~~~~~ ##### ### ##### ##### |==|==|==| |==|==|==| ~~~~~~~~~~~ +~~~~~~~~~ ##### /|\ ### ### ### ~~~~~~~~~~ +~~~~~~~~~ ### ### /|\ ##### /|\ ~~~~~~~~~~ +~~~~~~~~ /|\ ##### ### ### ### ### ~~~~~~~~~ +~~~~~~~~ ##### ### /|\ ##### ##### ##### ### |--|--|--|~~~~ +~~~~~~~~~ ### ### ##### ##### ### ### ##### |~~~~ +~~~~~~~~~~ ##### /|\ ##### ### ### /|\ /|\ ### |~~~~ +~~~~~~~~~~~ ##### ### ##### /|\ /|\ |--|--|--|~~~~ +~~~~~~~~~~~~~ ### _ /|\ ##### ### ### ~~~~~~~~~~~ +~~~~~~~~~~~~~~~ /|\ /-\ ### ### ##### ##### ~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ |_| _ /|\ ##### ##### ##### ### ~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~ / \ _ ##### ### ### ### ##### ~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~ |_| / \ ### /|\ ##### /|\ ### ~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~ |_| /|\ ### /|\ ~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /|\ ~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""", +# Autres mondes (Migard = 3) + (72, 6, 0, 126, 71), # Asgard + (77, 62, 6, 93, 8), # Nidavellir + (24, 90, 4, 78, 19), # Niflheim + (10, 58, 1, 54, 29), # Vanaheim + +# Maisons + (42, 49, 25, 4, 16), # Ferme + (76, 51, 26, 5, 11), # Auberge + (44, 65, 27, 9, 16), # Maison du joueur + (60, 69, 28, 24, 14), # Mesnie fortifiée (1/2) + (61, 69, 28, 25, 14), # Mesnie fortifiée (2/2) +) + + +h_25 = (r""" +|==|-|=======================|=========| +|==|-|=======================|=========| +| /-\ | | | +| |___| | ______ | | +| | |______| | | +| | | | +| | | | +| |--| |--------| |--| |------| +| | +| |--| |--------| |--| |------| +| | | | +| | | | +| | | | +| | | | +| |==============================| +| |=|\/|=|\/|=|\/|=|\/|=|\/|=|\/|| +|\/|^|\/| """, + (4, 16, 3, 42, 49)) + + +h_26 = (r""" + +|---------|------------------| +| | | +| |==============[]==| +| | | +| | _ _ _ | +| | |_| |_| |_| | +| |_| |_| |_| | +| |_| |_| |_| | +| | | +| |------------------| +| | +|---|^|---| """, + (5, 12, 3, 76, 51)) + + +h_27 = (r""" +|-----------------| +|[====] | [====]| +|[====] /_\ [====]| +| | +| + + | +| | |=======| +| | | | +| | | | +| | + | +|=======| | +| | + | +| |- | | _ | +| |_| + | |_| | +| | |_| | +| + | |_| | +| | | |_| | +|=======|^|=======| """, + (9, 16, 3, 44, 65)) + + +h_28 = (r""" + |__| + |__| +|------------| |--|__|--| |------------| +| [===][===] | | /" "\ | | [===][===] | +| [===][===] | | |____| | | [===][===] | +| |------| |------| | +| | +| | +| ______ ______ | +| |\/||\/| |\/||\/| | +| | | | | | +|____________| | | |____________| +|\/|=|\/|=|\/| | | |\/|=|\/|=|\/| + |__+ +__| + |\/|^^|\/| """, + (24, 14, 3, 60, 69), + (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'], + ["midgard_charretier", '*', 3, 39, 49, 'stand by'], + [0, '*', 3, 8, 59, 'stand by'], + [0, '*', 3, 66, 56, "stand by"], + [0, '*', 3, 67, 46, 'stand by'], + [0, '*', 3, 66, 56, 'stand by'], + [0, '*', 3, 68, 71, 'stand by'], + [0, '*', 3, 94, 85, 'stand by'], + ["Rosahil Green", '*', 26, 27, 6, 'stand by'], + [0, '*', 26, 17, 7, 'stand by'], + [0, '*', 26, 22, 7, 'stand by'], + [0, '*', 26, 17, 8, 'stand by'], + [0, '*', 26, 27, 8, 'stand by'], + [0, '*', 28, 27, 6, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/muspellheim.py b/hydromel_poetique/muspellheim.py new file mode 100644 index 0000000..de11b90 --- /dev/null +++ b/hydromel_poetique/muspellheim.py @@ -0,0 +1,219 @@ +muspellheim = (r""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ +~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _ ~~~~~~ +~~~~~~~~ _ ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~ /o\ ~~~~~ +~~~~~~~ /o\ ##### ~~~~~~~~~~~~~~~~~~~~~ ### /_|_\ ~~~~ +~~~~~~~ /_|_\ ### ~~~~~~~~~~~~~ ##### ~~~~~ +~~~~~~~~ /_\ ### ### ### _ _ _ ~~~~~ +~~~~~~~~~ ##### /_\ ##### / \__ /o\ /-\ ~~~~ +~~~~~~~~~ _ ### _ ### | <>\ /_|_\ |^| ~~~~ +~~~~~~~~ _ /o\ /_\ / \__ ### ### /_\ |____| ~~~~~ +~~~~ /o\ /_|_\ | <>\ ##### ##### _ ~~~~~~ +~~~ /_|_\ ### |____| ### ### ### /o\__ ~~~~~~ +~~~ ### ##### ##### /_\ /_\ ` |_ \ ~~~~~~ +~~~##### ### ##### ### `,.` , |^|__| ~~~~~~ +~~~############ ### ### ` /_\ ',` `, ~~~~~~ +~~~ ### ##### |=|### ##### , ' ` ' . ' ,, ` ```,'' . ~~~~~~ +~~~ |=| ### ##### ### ##### `' ., ` ' ','., ,`.. ,,`,,` ,`'. ` `` ~~~~~~~ +~~~ |=|### ########### ### , . ` ,.. ' ` ~~~~~~~~ + ### ##### ### ##### |=|. ` ### `,. ### ~~~~~~~~~ +##### ### ##### |=| ### ### ##### ` ### ### ##### ~~~~~~~~~ +##### ##### ### |=| ` ' ##### ### ##### ### ##### ##### ### ##### ~~~~~~~~~ + ### ##### |=| ### ,` ` ##### ##### ### ##### ### ##### ##### ##### ### ~~~~~~~~~ + |=| ### ### ##### , , ' ### ##### |=| ##### ##### ### ### ##### |=| ~~~~~~~~ + |=|##### ### ###### ' `. ` |=| ### ### ##### |=| |=| ### ### ~~~~~ + ########### ### ,,,,. `.,''. |=| |=| ### ', |=| ##### ### + ### ##### |=| ' `' ### `, |=| .''` ### . ##### ##### + |=| ### ### ##### . ### ### ` ##### `'`. ### ##### + |=| ##### ### ##### ### ##### ##### ### ,##### ' . |=| ### + ### `,., ##### ##### ### ` ##### ### ##### ##### ##### ### ' |=| + ### #####` ` ,,. ### ##### |=| ##### ##### ### ### ##### ,|=| ` ,. . `` , +###### ### ######. '.` |=| ### .,` ### ##### |=| |=| ### ` . .,, ' ### + ########### ### .. |=| ' ### |=| ' ### |=| '. ', ### ##### + ### ##### |=| '` ### ### ` ##### |=| ### ` ` ##### ### ##### + |=| ### ### `. ##### ##### ### ##### ### ##### '' ##### ##### ### + |=|##### ### ,##### ##### ##### ### ' , ##### ### ##### `' `` ### ##### |=| + ##### ##### '### ### ##### |=| ,', ##### ##### ### ,`` ``,.' |=| ### ~~ + ### ##### '|=| |=| ### `.`' ### ##### |=| , ' |=| ~~~~ + |=| ### |=| ### . ' . |=| ### .,` ### ~~~~~~ + ### |=| , ### ##### `` ' |=| ,''. ### ##### ~~~~~~ + ##### , ##### ### ##### ,,' `.,'. ##### ### ##### ~~~~~~~ +# ########## .,` ##### ##### ### `. , ` .,'. ##### ##### ### ~~~~~~~~~ +####### ### ` ` . ` ### ##### |=| ` , , ,` , ` ### ##### |=| ~~~~~~~~~ + ##### |=| ... . ' ' |=| ### . ' ' `' `' |=| ### ~~~~~~~~~ + ### ., |=| , . .' '' ., |=| ### ~~~~~~~~~ + |=| .` . `' ,'``,, ,,. , ,` ### ##### ~~~~~~~~~ + ,, '' ',,, '` `,.` , ' '` ` ..` ##### ### ~~~~~~~~~ + ### .'. .'` `'. ,' ' ,`,, ' , `'.. ### ### /_\ ~~~~~~~~~ + ##### ### ` .'' ... `' . '` ### `,, /_\ ##### ~~~~~~~~ + /\ ### ##### ### .` ` ##### ',' . ### ~~~~~~~~ + / \_ /_\ ### ##### .' ' ### ### ` `, ### /_\ ~~~~~~~~~ + / \ /_\ ### ### `.` ,, __ #####/_\ .`,, `, ##### ~~~~~~~~~~ +/ \ /\ ##### /_ ` ### /o_\ ### ,.`,' ### ### ~~~~~~~~~~~~ + / \_ ### .,. ##### |_^| /_\ ### .``,.` /_\ ##### ~~~~~~~~~~~~~ +\ / \ /_\ '' ### ### ##### .`` ### ~~~~~~~~~~~~~ + \ /\ / \ /\ '` /_\ ### ##### ### . ### /_\ ~~~~~~~~~~~~ + / \_ / \_ ,,' ##### ### /_\ ,'' ##### ### ~~~~~~~~~ + / \ / \ ` ### /_\ ### `.''. ### ##### ### ~~~~~~~~ +/ \ /\ / \ /\ '. /_\ ##### .'.', /_\ ### ##### ~~~~~~~ + / \_ / \_ `' ### ### ,.. '` /_\ ### ~~~~~~~ + / \ / \ `.'. ### ##### /_\ .` ',, ', /_\ ### ~~~~~ + /\ / \ /\ / \ ' . ##### ### `. ' ,` ### ##### ~~~ + / \_ / \_ , '' , ., ### /_\ ### ' . ,` ##### ### ~~~ + / \ / \ ,, '...`, , /_\ ##### . . ### ### /_\ ~~ +/ \ /\ / \ /\ . ,.`` ### ### ,. ` /_\ ##### ### ~~ + / \_ / \_ .., ' ### ### /_\ ##### `` `' ### ##### ~~~~ +\ / \ / \ .,,##### ##### ### .`.``''` ### /_\ ### ~~~~~ + \ /\ / \ /\ / \ /\ . ,### ### /_\ '',. ##### ### /_\~~~~~~ + / \_ / \_ / \_ ' /_\ /_\ ### , '` ### ##### ~~~~~~~ + / \ / \ / \ '.. ### ##### ### ' ` /_\ ### ~~~~~~~ +/ \ /\ / \ /\ / ',' \ ,`''##### ### ##### '.,,` ,' /_\ ~~ ~~~~ + / \_ / \_ ` .,'`'.,' `### /_\ ### , ',,,. ### ~~ ~~~~ +\ / \ / \ ',`. , `,,/_\ ### /_\ ',,`. ##### ~~ ~~~~ + \ /\ / \ /\ / \ /\ ' `. ` ', ##### '' ### ### ~~~~~ ~~~~ + / \_ / \_ / \_ ` `., ### , ##### /_\ ~~~~~~ ~~~~ + / \ / \ / \ .' /_\ ### ,` ### ~~~~ ~~~~ +/ \ /\ / \ /\ / \ /\ .. ##### ### `,' ### /_\ ### ~~~~~ ~~~~ + / \_ / \_ / \_ ### ##### ` ##### #####~~~~~ ~~~~ +\ / \ / \ / \ ,. /_\ ### , ### ### ~~~ ~~~~ + \ /\ / \ /\ / \ /\ / \ . /_\ /_\ /_\ ~~~ ~~~~ + / \_ / \_ / \_ .. ` .' ,' ~~~ ~~~~ + / \ / \ / \ . .'''. ''`. ` `````..', ' ,..,, , . ~~~~ ~~~~ +/ \ /\ / \ /\ / \ /\ .,. . _ ,' ..,` ,', _ ` ~~~~ ~~~~ + / \_ / \_ / \_ . (_) (_) ., ~~~~~ ~~~ +\ / \ / \ / \ |=|==|==|==|==||==|==|==|==|=| , ~~~~ ~~~ + \ /\ / \ /\ / \ /\ / \ /\ | () () | ~~~~~~ ~~~ + / \_ / \_ / \_ / \_ | /__\ __ /__\ | . ~~~~~~ ~~~ + / \ / \ / \ / \ | |o |__/()\__| o| | ~~~~~ ~~~~ +/ \ /\ / \ /\ / \ /\ / \ | | o|[] __ []|o | | `. ~~~~ ~~~~ +~~ / \_ / \_ / \_ | |__|__|^^|__|__| | , ~~~~~~~ +~~~~ / \ / \ / \ __ | | ~~~~~~~ +~~~~~ / \ / \ / \ /o \ | #### #### | .`' ~~~~~ +~~~~~~~ __ |__| | #### #### | `. ~~~~ +~~~~~~~ __ / \ __ | #### #### | , '` ~~~ +~~~~~~~ /()\|__| /<>\ | | ,,', ~~~ +~~~~~~~~ ~~~ |__| |__| |_ _ _ _| ` .'` ~~~ +~~~~~~~~~ ~~~~~~~~~~~ ~~~ (_) oo (_) (_) oo (_) . , ~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ',.. |=|==||==|=| '` |=|==||==|=| ', ~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ` ..` . . ` .'' ~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ` '` '' . . ` ``.` ~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ ', ''', ',. , , , ` ,.' ` ~~ +~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ ~~~ ` . ' , ', ~~ +~~~~~~~~~~~~~~~~~ ~~~~~ __ ' ' , ~~ +~~~~~~~~~~~~~~~~~~~~ ~~~~~~ / o\ ### , ~~~~ +~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ |__| ` ##### ~~~~ ,, ~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ `' ### ~~~~~~~~~ .` ~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ |_| ~~~~~~~~~~~ . . ' ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ ~~~~~~~~~~ ,, ,` ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ' , ' ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . . ` ` ~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ' . ` ~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ ~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ ~~~~~~~~~ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""", +# Autres mondes (Muspellheim = 7) + (92, 9, 6, 9, 57), # Nidavellir + +# Maisons + (87, 14, 42, 16, 14), # Auberge + (47, 53, 43, 32, 14), # Armurerie + (67, 89, 44, 24, 24), + (68, 89, 44, 25, 24), +) + + +h_42 = (r""" +|===================| +| | +|--[]---------------| +| | +| | +| |=============| +| | +| | +| +------+ +------+ +------+ | +| | | | | | | | +| | | | | | | | +| +------+ +------+ +------+ | +| | +| | +|==============|^|================|""", + (16, 14, 7, 87, 14)) + + +h_43 = (r""" +|====|--|============|--|=========| +|====|--|============|--|=========| +| /____\ /____\ | +| |====| |====| | +| | +| | +| +----+ +----+ +----+ | +| | | | | | | | +| +----+ +----+ +----+ | +| | +|=============================| | +|=============================| | + | | + | | + |[^]|""", + (32, 14, 7, 47, 53)) + + +h_44 = (r""" + |==|==|==|==|==|==|==|==|==|==|==| + | | + | ### ### | + | ##### ##### | + | ### ### | + | ### |_| |_| ### | + | ##### ##### | + | ### ### | + | |_| |_| | + | | +|=|/\|==|/\|=|/\|=| |=|/\|=|/\|==|/\|=| +|=|\/|==|\/|=|\/|=| |=|\/|=|\/|==|\/|=| +| | +| ___ ___ ___ ___ | +| | | | | | | | | | +| |___| |___| |___| |___| | +| | | | | | | | | | +| |___| |___| |___| |___| | +| | +| [I] [I] | +| /|\ /|\ | +| [========] [========] | +| [========] [========] | +|=|/\|==|/\|=|/\|=|/\|=| |=|/\|=|/\|=|/\|==|/\|=| +|=|\/|==|\/|=|\/|=|\/|=|^^|=|\/|=|\/|=|\/|==|\/|=|""", + (24, 24, 7, 67, 89), + (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'], + [0, '*', 7, 59, 91, 'stand by'], + [0, '*', 7, 39, 94, 'stand by'], + [0, '*', 7, 29, 113, 'stand by'], + ["muspellheim_aubergiste", '*', 42, 6, 7, 'stand by'], + [0, '*', 42, 14, 1, 'stand by'], + [0, '*', 42, 11, 5, 'stand by'], + [0, '*', 42, 2, 11, 'stand by'], + [0, '*', 42, 31, 9, 'stand by'], + ["Berfrid", '*', 43, 24, 4, 'stand by'], + [0, '*', 43, 13, 9, 'stand by'], + [0, '*', 43, 6, 5, 'stand by'], + [0, '*', 44, 13, 20, 'stand by'], + [0, '*', 44, 13, 2, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/nidavellir.py b/hydromel_poetique/nidavellir.py new file mode 100644 index 0000000..e2e44eb --- /dev/null +++ b/hydromel_poetique/nidavellir.py @@ -0,0 +1,221 @@ +nidavellir = (r""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ +~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ _ ~~ + ~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ /-\ ~ + ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ |^| ~ +/\ ~~~~~~~ /\ ~~~~~~~~~~~~~~~ `. + \ /\ ~~~~~~ / \ /\ ~~~~~~~~ /\ ,. . ,, /\ /\ + \ / \ ~~~~~ / \ / \ /\ / \ /\ '` ,` / \ / \ + / \ ~~~~ / / \ / \ / \ / \ /\ `, , / \ / + / ~~~~~ / / / \ /\ / / \ / \ / \ / + / ~~~~~ /\ / / \ / \ /\ / / / \ /\ / \ /\ / + ~~~~ / \ /\ / \ / \ / \ /\ / / \ / \ / \ + /\ ~~~~ / \ / \ / / \ / \ / \ / \ / \ +/ \ /\ ~~~~ / / /^\\ /_ / / \ / \ / \ + \ / \ ~~~ / / \ /-\ / / \ / \ / \ + / ~~~~~ / \ |^| / \ /\ /\ + / ~~~~~~ /\ / \ /\ / \ /\ + / ~~~~~~ / \ /\ / \ / \ /\ / \ / \ /\ + /\ ~~~ / \ / \ /\ /\ / / \ / \ / / \ / \ +/ \ /\ ~~~ / / \ / \ / \ /\ / / / \/ / / \ + \ / \ /\ ~~~~ / / \ //^\ \ / \ /\ / /\ / \ / / \ + / \ / \ ~~~~~ / / \ / / \ / \ / \ /\ \ / \ + / / \ ~~~~~~ / / / / \ / /^\\ / \ /\ + / / \ ~~~~~~~~~~ ## / / \ / / \ / \ + /\ / ## \ ~~~~~~~~~ #### / \ / / / \ /\ +/ \ /\ #### ## ~~~~~~~ ## / ## / \ \ /\ + \ / \ ## #### ~~~~~~~ || /\ #### / ## \ \ / \ /\ + //^\ \ || ## ~~~~~~~ / \ /\ ## #### / \ / \ + / \ || ~~~~~~ /^\ \ / \ /\ || ## / / + / \ /\ ~~~~ / / \ / \ || / / +\ /\ / \ /\ ~~~~~~ / / / \ ## /\ / + \ / \ /\ //^\ \ / \ /\ ~~~~ / / \ #### / \ /\ + / \ / \ / / \ / \ ~~~~ / \ ## / \ / \ /\ + / / \ / / / \ ------ || / / \ / \ +/ / \ / / /^\ \ /\ ## / / / + / \ / \ -------- / \ /\ #### / / +\ /\ /\ ~~~~ / \ / \ /\ ## /\ / + \ / \ /\ / \ /\ ~~~ / / \ / \ || / \ /\ + / \ / \ / /^\\ / \ /\ ~~~ / / / /^\ / \ / \ /\ + / / \ / / \ / \ ~~~~~ / / \ / / \ / \ +/ / \ / / / \ ~~~~~~ /\ / \ / / / + / \ / / \ ~~~~~ / \ /\ ## / / +\ /\ / \ ~~~~ / \ / \ /\ #### /\ / + \ / \ /\ ~~~ / / \ / \ ## ## / \ /\ + / \ / \ /\ ~~~ / / / \ #### || / \ / \ /\ + / /^\ \ //^\ /\ ~~~~ / / \ ## . / / \ / \ +/ / \ / \ / \ /\ ~~~~~~~~~~ / \ || .'' / / / + / ~~/ /^\ \ / \ ~~~~~~~~~~~~ , / / +\ /\ ~~ / / \ /\ ~~~~~~~~~~~~ . /\ / + \ / \ /\ ~~~~~ / / \ / \ /\ ~~~~~~~~~~~~~~~~ .'` / \ /\ + / \ / \ ~~~~) / \/ \ / \ /\ ~~~~~~~~~~~~~~ `.` / \ / \ + / /_ \ (~~~~~ / / \ / \ ~~~~~~ ` / / \ / +/ //-\ \ ~~~/ / / \ /\ ~~~~ . / / / + / |^| \ ~~~~~~~/ / \ / \ /\ ~~~~ ' / / +\ /\ /\ ~~~~ / / \ / \ /\ ~~~~ , / + \ / \ /\ / \ /\ ~~~~~~~ / / \ / \ ~~~~~ . /\ + / \ / \ / \ / \ /\ ~~~~~~ / / \ ~~~~ / \ + / / \ / / \ / \ , ~~~~ / / ~~ \ ~~~~ .' / \ / +/ / \ / / / /^\\ ` ~~~~~~ / ~~ \ ~~~~ / / + / \ / / \ .,` (~~~~~~~~~~~~~~~~ ~~~~ ~~~~ .`, / / +\ /\ / \ . ~~~~~~~~~~~~~~~ . / + \ / \ /\ /\ ~~)/\ , ' ,, (~~~~~ ` /\ + / \ / \ / \ /\ ~~ / \ /\ ,, / \ + / / \ / \ / \ /\ ~~~ / \ / \ /\ /\ ~~) '., / \ / +/ / \ / / \ / \~ / / \ / \ / \~~ /\ ` / / + /\ / \/ / / \ / / / \ / \ / \ /\ /\ / / + / \ /\ / / \ / / \ / / \ / \ / \ /\ / +/ \ / \ /\ /\ / \ / \/ / / \ / \ / \ /\ + / \ / \ / \ /\ /\ / / \ / / \ / \ + / / \ / \ / \ /\ / \ /\ / \/ / / + / / \ / / \ / \/ \ / \ /\ / / """, +# Autres mondes (Nidavellir = 6) + (93, 8, 3, 77, 62), # Midgard + (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), # Forge + (22, 42, 40, 12, 14), + (23, 51, 41, 10, 19), + + +# Mines + (27, 17, 6, 45, 24), + (45, 24, 6, 27, 17), + (23, 35, 6, 36, 62), + (36, 62, 6, 23, 35), + (51, 32, 6, 19, 49), + (19, 49, 6, 51, 32), + (72, 42, 6, 9, 49), + (9, 49, 6, 72, 42), +) + + +h_37 = (r""" +|============|===|===========| +| | | | +| +---+ | +| | | | +| | | | | | +| +---+ | |===========| +| | | | +|============| | +---+ | +| | | | | | +| __ | | | | | +| | | +---+ | +| | | | +| |__| | | | +| | | | +|=============|^|============|""", + (15, 14, 6, 69, 26)) + + +h_38 = (r""" + |=========| + | [=====] | + | | + | +---+ | + | | | | +|=========| +---+ |========| +| [====] [====] | +| _ | +| (_) | +| |_| | +|=========| |========| + | | + | | + | | + |===|^|===| """, + (15, 14, 6, 7, 31)) + + +h_39 = (r""" +|===================|---|====| +| /_____\ | +| +---+ |=====| | +| | | | +| | | | +| +---+ +------+ | +| | | | +| +------+ | +| | +| | +| _ _ | +| (O) (O) | +| |_| |_| | +| | +|=|/\|=|/\|==|^|===|/\|=|/\|=|""", + (14, 14, 6, 35, 38)) + + +h_40 = (r""" +|=======|-|==================| +|=======|-|==================| +| /___\ | +| |===| +------+ | +| | | | +| | | | +| | | | +| +------+ | +| | +| | +| | +| | +| | +|=========| |==============| +|==========|^|===============|""", + (12, 14, 6, 22, 22)) + + +h_41 = (r""" +|==|==|==||==|==|==| +| | +| ### ### | +| ##### #####| +| ### ### | +| /|\ /|\ | +|==| |============| +| _ [I] [I] | +| (_) / \ /|\ | +| |_| | +| __ | +| _ | | | +| (_) |__| | +| |_| | | | +| |__| | +| _ | +| (_) [I] | +| |_| /|\ | +| | +|========|^|=======|""", + (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'], + [0, '*', 6, 16, 55, 'stand by'], + [0, '*', 6, 77, 61, 'stand by'], + ["Muin", '*', 37, 2, 1, 'stand by'], + [0, '*', 37, 26, 1, 'stand by'], + [0, '*', 37, 10, 5, 'stand by'], + [0, '*', 37, 4, 10, 'stand by'], + [0, '*', 37, 27, 8, 'stand by'], + [0, '*', 38, 12, 3, 'stand by'], + [0, '*', 38, 19, 7, 'stand by'], + [0, '*', 39, 9, 2, 'stand by'], + [0, '*', 39, 9, 4, "stand by"], + [0, '*', 40, 14, 5, 'stand by'], + [0, '*', 41, 10, 8, 'stand by'], + [0, '*', 41, 12, 2, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/niflheim.py b/hydromel_poetique/niflheim.py new file mode 100644 index 0000000..4982939 --- /dev/null +++ b/hydromel_poetique/niflheim.py @@ -0,0 +1,139 @@ +niflheim = (r""" +## ##### ##### ##### ##### ### ### ##### ##### ##### ### ### ### ### ##### +### ### ##### ### ##### /_\ ##### ##### ### ##### ##### ##### ##### ##### ##### +### /_\ ### /_\ ### ### ##### ### /_\ ### ### ### ##### ### ##### ##### ##### ### +## /_\ ###/_\ ##### ### /_\ #####/_\##### ### ##### ### ### ### ### ### ### /_\ +_\ ### ##### ### ##### /_\ ### ##### ##### /_\ ##### /_\ /_\#####/_\##### ##### ### + ### ##### ########## ### ### ##### ### ### ### ### ### ### ##### ##### ##### ##### + ##### ##### ### ##### /_\ ########## /_\ ### /_\##### ### /_\##### ##### ### ### ### ### ### ##### + ##### ### /_\ ### ##### ### ### ##### ########## ##### ### ##### /_\#####/_\#####/_\ ### + ### ### /_\ ### /_\ ### /_\##### ##### ### ##### ### ##### ### ##### ##### /_\ + /_\##### ##### _ /_\ ##### ### /_\ ### /_\ ##### /_\ ### ### ### +### ##### ### ##### _ |+| ### ### ### /_\ /_\ ### /_\ _ /_\ ##### ### +#### ### ##### ### |+| |_| ##### /_\##### /_\ |+| ######### +#### /_\ ##### /_\ |_| ##### ##### _ |_| ### #### +### ### ### ### |+| ___ ### /_\ ### +/_\ /_\ _ /_\ /_\ |_| / \ ##### /_\ + ### ### |+| |___| ##### ### + ##### ##### ' ' |_| ___ _ ### ##### + ##### ##### __ / \ ` ' _ |+| /_\ ##### + ### ### _ .' ,` /()\ |___| /-\ |_| ### ### + /_\ /_\ |+| .` | |____ |^| _ ##### /_\ +### ### |_| '' |_ () \ _ `' ` |+| ##### +#### ##### ,, |^|_____| |+| ___ , |_| ### +#### ##### , `` |_| / \ , ,., /_\ ### +### ### ,` ` |___| ,, ##### +/_\ /_\ _ ' .` _ , _ ##### + ### |+| _ , |+| .., |+| ### + ##### |_| _ |+| , |_| __ __ . |_| /_\ + ##### |+| |_| . `, /<>\ ____ /<>\ ` ### + ### |_| , , ' | |____/O O\____| | ' _ ##### ### + /_\ '' ' |[]| [] | | [] |[]| , |+| ##### #### + ### ___ `` '' | | | __ | | | ,'. |_| ### ### #### + ##### ### / \ ` . |__|____|/^^\|____|__| ,`` #####/_\ ### +# ########## _ |___| ' ',, ` , ##### /_\ +## ### ##### |+| '` ` `' , ### +## /_\ ### |_| `` _ ` _ .. _ ` /_\ ### +# /_\ |+| . (o) ',',, (o) ``` _ ### ##### +\ ### '` . |_| ` /-\ ., /-\ , |+| ##### ##### + ### ##### _ ,,, ` ` , , . |_| ##### ### +##### ##### |+| ` ,` , '' . ` ` ` . ### /_\ +##### ### |_| _ _ ' .' _ ,'., ,, /_\ # + ### /_\ . |+| ___ (o) . (o) .`. ___ ### ## + /_\ ### ` |_| / \ /-\ '', /-\ ', , / \ ##### ## + ##### ### , |___| , |___| ##### # + ##### ##### , ___ _ . _ `,.,`. ### / + ### #### ##### .`.` , , / \ (o) ' (o) ' . /_\ ### +##### /_\ ### ', , |___| /-\ ,.` /-\ .. ___ _ ##### +##### /_\ _ `, ','. , `. / \ ` |+| ##### + ### ### |+| '' _ ___ . . ` |___| ` |_| ### + /_\ ##### |_| ' |+| / \ , , ___ ... ### /_\ + ### ##### _ ', |_| |___| ', / \ ', ,''`' ##### + ##### ### ___ |+| , |___| ` ##### + ##### /_\ ___ / \ |_| '.` '` _ , ### + ### / \ |___| ,. ` ' ``', , |+| , ### /_\### +## /_\ ### |___| _ . _ ` _ |_| . ##### ##### +### ##### , ___ |+| _ |+| . |+| ##### ##### +### ##### ., / \ |_| ' |+| |_| . |_| , ### ### +## ### ., |___| _ ' |_| .`,` . /_\ /_\ +_\ /_\ ### ', |+| ___ ' '. ``,..' '.`.``` ,`..`'' ,, ### + ### ##### , |_| / \ `.`` ' ,..' ``'` .' ` , . ##### ### + ##### ##### . , |___| ' _ _ ########## + ##### ### '`` ,` |+| |+| ### ### ##### + ### ### /_\ , ,' `` _ |_| |_| ### ##### /_\ ### + /_\##### '. '``, ,.. ``, |+| ##### ##### ### /_\ + ##### ### ### |_| ### ##### ### ##### ### + ### ##### ##### ##### ### /_\ ##### ##### + /_\ ##### ### ##### ### ### ##### /_\ ### ##### + ### ### ##### ### ### ### ### ##### ##### ### ### /_\ ### ### + ##### /_\ ##### /_\ ##### ##### ##### ##### ##### ##### /_\ ### ### #####/_\ + ##### ### ### ### ##### ##### ##### ### ### ### ##### ##### ##### ##### + ### ##### /_\ ##### ### ### ### ### /_\ ### /_\ ##### ### ### ##### ### ##### ### ### + /_\ ##### ### ##### /_\ ### /_\ ### /_\##### ##### ### ##### ### /_\ ##### ### ##### ### #####/_\ + ### ### ##### ### ##### ##### ##### ##### ##### ### ##### ### ##### /_\ ##### /_\ ##### + ### /_\ ##### ##### /_\ ##### ##### ### ### ### ##### /_\ ##### ##### ### ### ### + ##### ##### ### ### ### /_\ /_\##### ### ### ##### /_\ /_\ /_\ + ##### ### /_\ /_\ /_\ ##### /_\ /_\ ### """, +# Autres monde (Niflheim = 4) + (78, 19, 3, 24, 90), # Midgard + +# Maisons + (38, 21, 29, 15, 14), # Librairie + (70, 31, 30, 24, 19), + (71, 31, 30, 25, 19), +) + + +h_29 = (r""" +|============================| +| [===][=--==/ \==-=-][===] | +| [=-=][===-/ \==--][--=] | +| [==-][=-=/ \-==][==-] | +| | +| | +| [I] [I] [I] [I] | +| /|\ /|\ /|\ /|\ | +| | +| | +| [=--] [==-] [-=] [==-] | +| [-==] [--=] [==] [--=] | +| [===] [=-=] [==] [-==] | +| | +|=============|^|============|""", + (15, 14, 4, 38, 21)) + + +h_30 = (r""" +|======|----|=======| |=======|----|======| +| /______\ | | /______\ | +| | | |========| | | | +| |======| |======| | +| _ _ | +| (_) (_) | +| __ __ |_| |_| __ __ | +| | | | | | | | | | +| |__| |__| |__| |__| | +| | | | | _ _ | | | | | +| |__| |__| (_) (_) |__| |__| | +| |_| |_| | +| | +| __ __ | +| | | _ _ | | | +| |__| (_) (_) |__| | +| | | |_| |_| | | | +| |__| |__| | +| |========| |========| | +|=============| |^^| |=============|""", + (24, 19, 4, 70, 31), + (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'], + [0, '*', 4, 108, 67, 'stand by'], + ["Merath", '*', 29, 5, 5, 'stand by'], + ["Hel", '*', 30, 37, 4, 'stand by'], + [0, '*', 30, 17, 6, 'stand by'], +) \ No newline at end of file diff --git a/hydromel_poetique/svartalfheim.py b/hydromel_poetique/svartalfheim.py new file mode 100644 index 0000000..6e8618e --- /dev/null +++ b/hydromel_poetique/svartalfheim.py @@ -0,0 +1,178 @@ +svartalfheim = (r""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ __ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~ /<>\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __ ~~~~~~~~~~~~~~ +~~~~~~~~~~~~~ ## |__| ## ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /<>\ ~~~~~~~~~~~~~ +~~~~~~~~~~~~ #### ## |__| #### ## #### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |__| ~~~~~~~~~~~ +~~~~~~~~~~~ #### #### |__| #### #### #### ~~~~~~~~~~~~~~~~~~~~~~~~~ ## |__| ~~~~~~~~~~ +~~~~~~~~~ ## #### ## #### ## /\ __ ## #### |__| ~~~~~~~~ +~~~~~~~~ || ## ## || ## || / \ /\ /<>\ #### #### ## ## ~~~~~~~ +~~~~~~~ ## || #### || /\ / \ /\ / \ |__| #### ## #### #### ~~~~~~ +~~~~~~ #### ## #### ## ## / \ / \ \ /\ |__| ## || #### #### ## ~~~~~~ +~~~~~ #### #### ## ## #### #### / \ /\ / /\ / \ |__| __ || __ ## ## #### ~~~~~ +~~~~ ## ## #### #### || #### #### / \ / \ / \ ## /<>\ /<>\ || ## || #### ~~~~ +~~~ #### || ## ## #### ## ## / \ /\ \ /\ #### |__|_____|__| #### ## ~~~ +~~~ #### #### || ## ## || || /\_ / \ / \ #### |__|O _ O|__| ## #### ## || ~~~ +~~~ ## #### || #### /\_ / \ / \ /\ \ ## ## |__|_|^|_|__| #### ## #### ~~~ +~~~ || ## #### / \ / \ / \ || #### #### || #### ## ~~~ +~~ ## || ## ## / \ /\ / \ /\ #### ~~~~~~ ## ## #### ~~~ +~~ #### #### || /\ / \ ~~~~~ / \ ## ~~~~~~ || || #### ~~~~ +~~ #### #### ## ## / \ \ /\ ~~~ / \ ## || ## ~~~~ ## ~~~ ## ~~~~~ +~~ __ ## ## ## #### #### / \ /\ / \ ~~ #### #### #### ##~~~~ __ || ~~~~~~ +~~ /<>\ || #### || #### #### /\_ /\ / \ /\ ~~~ #### #### ## ######## ~~~ /<>\ ~~~~~~~~~ +~~ |__| #### ## ## / \ / \ \ / \ ~~~~ ## ## #### ## ## #### ~~~ |__| ~~~~~~~~~~~ +~~~ |__| ## || ## || / \ /\/ \ /\ / \ /\ ~~~~~ || || #### #### || ## ~~ |__| ~~~~~~~~~~~ +~~~~ |^_| || ## #### / \ / \ / \ ~~~~~~~ ## #### || ~~~ |__| ~~~~~~~~~~~~ +~~~~~ #### #### /\ / \ /\/ \ / \ ~~~~~~~ || ## ~~~~~~ ~~~~~~~~~~~~~ +~~~~~~~ ### #### ## / \ / \ ~ ~~~~~~ || ~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ +~~~~~~~~ ##### ## || / \ /\ / \ /\ ~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~ ### || ### / \ / \ ~~~~ ~~~~~~~~ ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ /-\ ##### /\_ / \ /\ / \ /\ ~~~~~ __ |==|~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ ### / \ / \ / \ ### ### /<>\___ | |~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ ### /-\ / \ / \ /\ / \ /\_ ##### ##### | \ | | ~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ ##### ### /\ / \ / \ ### ### |_ | ~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~ ### ##### ### / \ / \ /\ / \ ### /|\ /|\ |^|____| ~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~ /-\ ### ##### / \ /\ / \ ##### ### ~~~~~ ~~~~~~~~~ +~~~~~~~~~~~~ ### /-\ ### / \ ~ / \ /\_ ### ### ##### ~~ ~~~~~~~~ +~~~~~~~~~~~~ ### ##### /-\ /\_ / \ ~~~ / \ /|\ ##### ### ~~~~~~~ +~~~~~~~~~~~~ ##### ### ### / \ ~~~ / \ ### /|\ ### ~~~~~~ +~~~~~~~~~~~ ### /-\ ##### / \ /\_ ~~~ ### /|\ ##### ### __ ~~~~~ +~~~~~~~~~~ /-\ ### / \ ~~~ ##### ### ##### /<>\ ~~~~~ +~~~~~~~~~ ### /-\ /\_ / \ ~~ ### /|\ ### |__| ~~~~~~ +~~~~ __ ##### / \ /\ ~~~~~~ /|\ ~~~~~~~~~ /|\ |__| ~~~~~~~ +~~~ /<>\ ### ### /\ / \ /\_ / \ ~~~~~~~~~~~~~ ~~~~~~~~ |__| ~~~~~~~~~ +~~~ |__| ### /-\ #####/ \ / \ /\ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~ +~~~ |__| ##### ### /\ / \ / \ ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~ |__| ### /-\ /\ / \ /\ /\ ##### ### ~~~~~~~~~~~~~~~~~~~~~ +~~~~~~ /-\ _ __ / \ / \ /\ / \ ####### ##### ~~~~~~~~~~~~~ +~~~~~~~~~ / \ / \ /\ /\ / \ #|-|# ### ### ### __ ~~~~~~~~~~~~ +~~~~~~~~~ ## |_| |__| / \ /\ / \ ### ### |_| ##### /-\ ### ##### /<>\ ~~~~|==|~~~ +~~~~~~~~~~ #### ## / \ ## ##### ##### ####### ### ##### ### |__| ~~~~| |~~~ +~~~~~~~~~~~ _ #### #### ####### ####### #|-|# ##### ### ### /-\ |__| ~~~~ | |~~~ +~~~~~~~~~~~ ## __ / \ _ __ ## #|-|# #|-|# |_| ### ##### /-\ |__| ~~~~~~ ~~~ +~~~~~~~~~~ #### / \ |_| / \ / \ #### |_| |_| ### /-\ ### ~~~~~~~ ~~~ +~~~~~~~ ## |__| ## |_| |__| ##### /-\ ### ~~~~~~~~~~~ ~~~ +~~~~~~ #### #### ####### ##### ~~~~~~~~~~~~ ~~~ +~~~~ _ __ ## ___________________ #|-|# ### ~~~~~~~~~~~~ ~~~ +~~~ ## __ / \ / \ #### /_|]O[|_|]O[|_|]O[|_\ |_| ### ### /-\ ~~~~~~~~~~ ### ~~~ +~~~ __ #### / \ |_| |__| /_____________________\ ##### ##### __ ~~~~~~~~~ ##### ~~~~ +~~ /<>\ |__| __ |_/___\_/___\_/___\_| ####### ### /<>\ ~~~~~~~~~~ ### ~~~~~ +~~~ |__| / \ |_| |_|/^\|_| |_| #|-|# /-\ |__| ~~~~~~~~~~ /-\ ~~~~~ +~~~ |__| __ |__| |_| ### |__| ~~~~~~~ ### ~~~~~ +~~~~~ |__| ## ## / \ _ ##### ### |__| ~~~~~~ ##### ~~~~~ +~~~~~~~ #### #### |__| ## ### / \ ### ### ##### ~~~~~~~ ### ### ~~~~~ +~~~~~~~~~~~~~ #### ##### |_| ##### /-\ ### ~~~~~~~~~~ /-\ ##### ~~~~ +~~~~~~~~~~~~~~~ ## ####### ####### /-\ ~~~~~~~~~~ _ ### ~~~ +~~~~~~~~~~~~~~~~~ #### __ #|-|# ### __ #|-|# ### ~~~~~~~~~~ /-\ /-\ ~~ +~~~~~~~~~~~~~~~~~ /<>\ |_| ##### /<>\ |_| ##### ~~~~~~~~~~~ |^| ~~ +~~~~~~~~~~~~~~~~~~ |__| ####### ### |__| ####### ~~~~~~~~~~~~ ### ~~ +~~~~~~~~~~~~~~~~~~~~~~ |__| ~~~~ #|-|# ##### |__| #|-|# ~~~~~~~~~~~~ ##### ~~ +~~~~~~~~~~~~~~~~~~~~~~~~ |__| ~~~~~~ |_| ####### |__| ~~~ |_| ~~~~~~~~~~~ ### ### ~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ #|-|# ~~~~~~~~~ ~~~~~~~~~~~~~ ##### /-\ ~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ |_| ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ ### ~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ /-\ ~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~""", +# Autres mondes (Svartalfheim = 8) + (109, 66, 6, 39, 19), # Nidavellir + +# Maisons + (90, 15, 45, 24, 19), # Manoir au Nord + ( 6, 24, 46, 9, 9), # Tour de guet + (91, 33, 47, 1, 14), # Mesnie à côté du quai + (57, 59, 48, 19, 14), # Palais des Elfes noirs +) + + +h_45 = (r""" + +|=================| |==================| +| | | | +| |===========| | +| __ __ | +| | | | | | +| |__| [O] [O] |__| | +| | | |_| |_| | | | +| |__| |__| | +| | +| [O] [O] | +| __ |_| |_| __ | +| | | | | | +| |__| |__| | +| | | [O] [O] | | | +| |__| |_| |_| |__| | +| | +| |====| |====| | +|=================| | | |==================| + |^| """, + (24, 19, 8, 90, 15)) + + +h_46 = (r""" +|===||=============| +| /__\ | +| |==| +--+ | +| | | | +| | | | +| | | | +| +--+ | +| | +| | +|=======|^|========|""", + (9, 9, 8, 6, 24)) + + +h_47 = (r""" +|=========| +| [-=-==] | +| [===--] | +| | +| |==================| +| | +| __ __ | +| | | | | | +| |__| |__| | +| | | | | | +| |__| |__| | +| | | | | | +| |__| |__| | +| | +|^|==========================|""", + (1, 14, 8, 91, 33)) + + +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'], + [0, '*', 8, 15, 54, 'stand by'], + [0, '*', 8, 25, 61, 'stand by'], + [0, '*', 8, 121, 68, 'stand by'], + [0, '*', 45, 15, 4, 'stand by'], + [0, '*', 46, 13, 2, 'stand by'], + [0, '*', 46, 13, 4, 'stand by'], + [0, '*', 47, 3, 4, 'stand by'], + [0, '*', 47, 15, 8, 'stand by'], + [0, '*', 48, 34, 5, 'stand by'], + [0, '*', 48, 29, 8, 'stand by'], +) diff --git a/hydromel_poetique/vanaheim.py b/hydromel_poetique/vanaheim.py new file mode 100644 index 0000000..1be8bd0 --- /dev/null +++ b/hydromel_poetique/vanaheim.py @@ -0,0 +1,113 @@ +vanaheim = (r""" + / \ / \ /\ / \ / \ /\ / + /\ / \ / \ / \ /\ / \ / \ / \ / + / \ / \ /\ / \ / \ / \ / /\ / \ + / \ /\ / \ / /\ / \ / \ / \ + /\ / \ / \ / \ / \ / /\ \ /\/ \ + / \ / \ / \ /\ / \ / \ / \ /\ / + / \ / \ / \ / / \ / / \ /\ /\ / + / \ /\ /\ / \ / \ / \/ \ / \ / + / \ / \ / \ _ / / \ \ /\ / + /\ / \ / \ / \_ / / \ + / \ / \ /\ / \ __ |_ o\ /\ / \ + / \ / \ _ /<>\ |^|_| / \ +/ \ /\ / \ /o\ |__| / \ /\ + / \ / \ |_| _ / \ / \ +/\ / \ /\ ### . ###### ###### /o\ /\ / + \ / / \ ##### ### ###### ###### |_| / \ / + \ /\ / \ ### '. ##### ##### ##### / \ /\ + \ / \ / \ /|\ ` ### #### #### ### / \ / \ + / \ __ /|\ ##### /\ / \ + /\ / \ /\ / \ .`' #### #### ### / \ / +/ \ / \ |__| ##### ##### /|\ / \ + \ / \ ,' . `` ###### ###### / \ /\ + \ /\ / \ /\ '`'., ###### ###### ### / \ + / \ / \ ### ``' ##### / \ / +/\ / \ / \ ##### _ __ ### /\ / \ / + \ / \ /\ / ### / \ ' /<>\ ` /|\ / \ / + \ / \ /|\ |_| . |__| .' / \ /\ / + \ /\ / \ ` ``' ### , _ / \ / \ + / \ / \ /\ _ ##### ', /-\ / \ + / \ / \ . / \ ### , |_| /\ \ / + / \ /\ / \ |_| /|\ , ` / \ / + / \ / \ ,. _ ',` '' / \ /\ + / \ ### _/ \ ### _____ ' / \ / \ + / \ /\ ##### /o | ##### /_____\ `' /\ / \ + /\ / \ ### `'.|___| ### |<>_<>| / \ / + / \ / \ /|\ '',., /|\ |_|^|_| , / \ + / \ /\ / \ __ `,'.``` .', .``' ` / \ /\ + / \ / \ /<>\ ### ,,.' / \ + / \ |__| ##### ### / \ + /\ / \ /\ ' ### ##### /\ \ + / \ / \ ` /|\ _ ### _ / \ + / \ / \ /\ .. /o\ ./|\ /o\ / \ /\ + / \ /\ / \ / \ .'' |_| ,'`' ',` |_| /\ / \ / + / \ / \ ,., .,`, /\ ', ,` / \ / + /\ / \ /\ / \ /\ / \ / \ /\ / + / \ / \ / \ / \ /\ / \ /\ / \ / \ + / \ / \ / \ / \ /\ / / \ /\ / \ + / \ / \ /\ / / \ / \ / \ / \ / \ + / \ / / \ / / \ + / \ / \ / \ """, +# Autres mondes (Vanaheim = 1) + (28, 13, 2, 14, 68), # Alfheim + (54, 29, 3, 10, 58), # Midgard + (56, 42, 5, 11, 120), # Jotunheim + +# Maisons + (44, 11, 21, 5, 9), # Auberge + (52, 35, 22, 20, 19), +) + + + +h_21 = (r""" +|=======================| +| | | +| |-------------| +| | +| +--+ +--+ +--+ | +| | | | | | | | +| +--+ +--+ +--+ | +| | +| | +|===|^|=================|""", + (5, 9, 1, 44, 11)) + + +h_22 = (r""" +|=======================|==============| +|=======================|==============| +| | | +| _ _ | __ | +| (_) (_) | |__| | +| |=| |=| | |__| | +| |_| |_| | |__| | +| | | +| | | +| |=] [|] [==========| +| _ _ | | +| (_) (_) | | +| |=| |=| | |=======[]=======| +| |_| |_| | | | +| | | | +| | | | +| | | | +| | | | +|/\=/\=/\=/\=/\=/\=| |=/\=/\=/\=/\=/\==| +|\/=\/=\/=\/=\/=\/=]^[=\/=\/=\/=\/=\/==|""", + (20, 19, 1, 52, 35)) + +vanaheim_entities = ( + [0, '?', 1, 42, 20, 'stand by'], + [0, '?', 1, 26, 29, 'stand by'], + ["vanaheim_charretier", '*', 1, 45, 39, 'stand by'], + [0, '*', 1, 31, 12, 'stand by'], + [0, '*', 1, 41, 45, 'stand by'], + [0, '*', 1, 52, 22, 'stand by'], + [0, '*', 1, 52, 30, 'stand by'], + ["vanaheim_aubergiste", '*', 21, 8, 1, 'stand by'], + [0, '*', 21, 21, 6, 'stand by'], + ["Freyja", '*', 22, 2, 8, 'stand by'], + ["Freyr", '*', 22, 36, 3, 'stand by'], +) \ No newline at end of file