|
"""Includes two example worlds to experiment with different scenarios.""" |
|
|
|
import random |
|
from world import Character, Item, Location, Puzzle, World |
|
|
|
|
|
def get_world(arg: str, language: str ='en') -> World: |
|
if arg=='1': |
|
if language == 'es': |
|
return get_world_1_spanish() |
|
else: |
|
return get_world_1_english() |
|
elif arg=='2': |
|
if language == 'es': |
|
return get_world_2_spanish() |
|
else: |
|
return get_world_2_english() |
|
else: |
|
if language == 'es': |
|
return get_world_0_spanish() |
|
else: |
|
return get_world_0_english() |
|
|
|
def get_world_0_english() -> World: |
|
item_1 = Item("Apple", |
|
["A fruit that can be eaten", "It is round-shaped and green"]) |
|
item_2 = Item("Toy car", |
|
["A tiny toy purple car", "It looks brand new"]) |
|
item_3 = Item("Mate", |
|
["A classical mate, ready to drink!", "It contains some yerba", "You can drink this to boost your energy!"]) |
|
|
|
place_1 = Location("Garden", |
|
["A beautiful garden", "There is a statue in the center"], |
|
items = [item_2]) |
|
place_2 = Location("Cabin", |
|
["A small cabin", "It looks like no one has lived here for a while"]) |
|
place_3 = Location("Mansion hall", |
|
["A big hall", "There is a big staircase"]) |
|
|
|
two_random_numbers = [random.randrange(0, 10) for i in range(2)] |
|
puzzle1 = Puzzle("puzzle",["There's a symbol of a microphone and below a letter that says how to open the door"], |
|
f"To unlock this door, you have to say out loud the sum of {str(two_random_numbers[0])} and {str(two_random_numbers[1])}.", |
|
f"The answer is {str(two_random_numbers[0] + two_random_numbers[1])} ") |
|
|
|
place_1.connecting_locations+=[place_2,place_3] |
|
place_2.connecting_locations+=[place_1] |
|
place_3.connecting_locations+=[place_1] |
|
place_1.block_passage(place_3,puzzle1) |
|
|
|
player = Character("Alicia", |
|
["She is wearing a long skirt","She likes to sing"], |
|
inventory=[item_1], |
|
location=place_1) |
|
npc = Character("Javier", |
|
["He has a long beard", "He loves to restore furtniture"], |
|
inventory=[item_3], |
|
location=place_3) |
|
|
|
the_world = World(player) |
|
the_world.add_locations([place_1, place_2, place_3]) |
|
the_world.add_items([item_1, item_2, item_3]) |
|
the_world.add_character(npc) |
|
the_world.set_objective(item_2,place_3) |
|
|
|
return the_world |
|
|
|
def get_world_0_spanish() -> World: |
|
item_1 = Item("Manzana", |
|
["Una fruta que puede ser comida", "Es redonda y verde"]) |
|
item_2 = Item("Auto de juguete", |
|
["Un pequeño auto de juguete de color púrpura", "Luce como recién comprado"]) |
|
item_3 = Item("Mate", |
|
["Un mate clásico ¡listo para tomar!", "Contiene algo de yerba", "¡Puedes tomar esto para mejorar tu energía!"]) |
|
|
|
place_1 = Location("Jardín", |
|
["Un jardín hermoso", "Hay una estatua en el centro"], |
|
items = [item_2]) |
|
place_2 = Location("Cabaña", |
|
["Una pequeña cabaña", "Parece que nadie ha vivido acá por un tiempo"]) |
|
place_3 = Location("Hall de la Mansión", |
|
["Un hall grande", "Hay una enorme escalera principal"]) |
|
|
|
two_random_numbers = [random.randrange(0, 10) for i in range(2)] |
|
puzzle1 = Puzzle("puzzle",["Hay un dibujo de un micrófono y debajo un letrero, con la premisa para abrir la puerta"], |
|
f"Para desbloquear esta puerta, hay que decir en voz alta la suma de {str(two_random_numbers[0])} y {str(two_random_numbers[1])}.", |
|
f"La respuesta es {str(two_random_numbers[0] + two_random_numbers[1])} ") |
|
|
|
place_1.connecting_locations+=[place_2,place_3] |
|
place_2.connecting_locations+=[place_1] |
|
place_3.connecting_locations+=[place_1] |
|
place_1.block_passage(place_3,puzzle1) |
|
|
|
|
|
player = Character("Alicia", |
|
["Está usando una falda larga","Le gusta cantar"], |
|
inventory=[item_1], |
|
location=place_1) |
|
npc = Character("Javier", |
|
["Tiene una barba larga", "Le encanta restaurar muebles"], |
|
inventory=[item_3], |
|
location=place_3) |
|
|
|
|
|
|
|
the_world = World(player) |
|
the_world.add_locations([place_1, place_2, place_3]) |
|
the_world.add_items([item_1, item_2, item_3]) |
|
the_world.add_character(npc) |
|
the_world.set_objective(item_2,place_3) |
|
|
|
return the_world |
|
|
|
def get_world_1_english() -> World: |
|
|
|
item_1 = Item("Turtle",["A small turtle", "Emma's pet", "Emma calls it 'Hojita'"]) |
|
item_2 = Item("Key", |
|
["A key to open a lock", "It is golden", "There is a strange coat of arms engraved on it"]) |
|
item_3 = Item("A grey hammer", |
|
["A big grey hammer that can be used to break things", "It is so heavy..."]) |
|
item_4 = Item("Lock", |
|
["A strong lock with a coat of arms engraved on it", "It seems that it cannot be opened with your bare hands"]) |
|
item_5 = Item("A green hammer", |
|
["A small green hammer", "It is just a toy and you cannot break anything with it"]) |
|
|
|
place_3 = Location ("Garden", |
|
["The garden of the house", "It is relatively small, about 5 square meters."], |
|
items = [item_1]) |
|
place_2 = Location("Kitchen", |
|
["The kitchen of the house", "It's not huge, but it's not the smallest kitchen in the world either.", "A lot of light comes in through the windows"]) |
|
place_2.connecting_locations = [place_3] |
|
place_2.block_passage(place_3, item_4) |
|
place_3.connecting_locations = [place_2] |
|
|
|
place_1 = Location("Art studio", |
|
["This is the art studio that Emma's mom has in the house"], |
|
items = [item_3, item_5]) |
|
place_1.connecting_locations = [place_2] |
|
place_2.connecting_locations = [place_1] |
|
|
|
player = Character("Emma", |
|
["A teenager of average height", "She is looking for her pet 'Hojita'"], |
|
inventory = [], |
|
location = place_1) |
|
npc = Character("Laura", |
|
["A woman in her 40s", "She is Emma's mom", "She is an artist, and loves oil painting"], |
|
inventory = [item_2], |
|
location= place_1) |
|
|
|
the_world = World(player) |
|
the_world.add_locations([place_1,place_2,place_3]) |
|
the_world.add_items([item_1,item_2,item_3,item_4,item_5]) |
|
the_world.add_character(npc) |
|
the_world.set_objective(item_1,place_2) |
|
|
|
return the_world |
|
|
|
def get_world_1_spanish() -> World: |
|
|
|
item_1 = Item("Tortuga",["Una tortuga pequeña", "La mascota de Emma", "Emma la llama 'Hojita'"]) |
|
item_2 = Item("Llave", |
|
["Una llave para abrir un candado", "Es dorada", "Tiene grabada la imagen de un extraño escudo de armas"]) |
|
item_3 = Item("Un martillo gris", |
|
["Un martillo gris grande que puede ser usado para romper cosas", "Es muy pesado"]) |
|
item_4 = Item("Candado", |
|
["Un candado fuerte que tiene grabado un escudo de armas", "Parece que no puede ser abierto con las manos"]) |
|
item_5 = Item("Un martillo verde", |
|
["Un pequeño martillo verde", "Es solamente un juguete y no se puede romper nada con él"]) |
|
|
|
place_3 = Location ("Jardín", |
|
["El jardín de la casa", "Es relativamente chico, de unos 5 metros cuadrados"], |
|
items = [item_1]) |
|
place_2 = Location("Cocina", |
|
["Es la cocina de la casa", "No es enorme, pero tampoco es la cocina más chiquita del mundo", "Por las ventanas entra mucha luz"]) |
|
place_2.connecting_locations = [place_3] |
|
place_2.block_passage(place_3, item_4) |
|
place_3.connecting_locations = [place_2] |
|
|
|
place_1 = Location("Taller de pintura", |
|
["Es el taller de pintura que la madre de Emma tiene en su casa"], |
|
items = [item_3, item_5]) |
|
place_1.connecting_locations = [place_2] |
|
place_2.connecting_locations = [place_1] |
|
|
|
player = Character("Emma", |
|
["Una adolescente de estatura promedio", "Está buscando a su mascota 'Hojita'"], |
|
inventory = [], |
|
location = place_1) |
|
npc = Character("Laura", |
|
["Una mujer de unos 45 años de edad", "Es la madre de Emma", "Es una artista que pinta al óleo"], |
|
inventory = [item_2], |
|
location= place_1) |
|
|
|
the_world = World(player) |
|
the_world.add_locations([place_1,place_2,place_3]) |
|
the_world.add_items([item_1,item_2,item_3,item_4,item_5]) |
|
the_world.add_character(npc) |
|
the_world.set_objective(item_1,place_2) |
|
|
|
return the_world |
|
|
|
def get_world_2_spanish() -> World: |
|
|
|
item_1 = Item("Pinturas", |
|
["Hay algo escrito con una pintura hecha con barro", "Dice 'Hay que confiar en los poderes que se nos han otorgado"], |
|
gettable=False) |
|
item_2 = Item("Estanque", |
|
["Un estanque de agua cristalina", "El agua es tan clara que funciona como un espejo"], |
|
gettable=False) |
|
item_3 = Item("Un muro de llamas", |
|
["Las llamas son fuertes y dan mucho calor", "Tiene una altura de 3 metros", "Es imposible cruzarlas, ni caminando, ni corriendo, ni saltando."], |
|
gettable=False) |
|
item_4 = Item("Guitarra", |
|
["Una guitarra clásica con 6 cuerdas", "Suena muy bien"]) |
|
|
|
puzzle_1 = Puzzle("Puzzle", |
|
["Un encanto mágico que genera un muro intraspasable", "Mágicamente, al acercarse aparecen unas letras azules que explican cuál es el acertijo a resolver"], |
|
"Hay que susurrar el nombre del río que baña la costa sur de la Banda Oriental", "Rio de la Plata") |
|
|
|
place_1 = Location ("Claro en el monte", |
|
["Un claro en un monte de eucaliptus cerca del Río Uruguay", "Se puede escuchar el sonido de los animales que viven en los árboles de este monte"], |
|
items = [item_1, item_2]) |
|
place_2 = Location("Zona silenciosa", |
|
["El monte continúa en esta parte", "A diferencia de la parte anterior, esta zona está insonorizada y no se escucha ni siquiera un mínimo sonido"]) |
|
place_2.connecting_locations = [place_1] |
|
place_1.connecting_locations = [place_2] |
|
place_1.block_passage(place_2, item_3) |
|
|
|
place_3 = Location("Celda", |
|
["Una celda cuadrada de dos metros cuadrados", "La vegetación del monte ya ha ingresado al interior"]) |
|
place_3.connecting_locations = [place_2] |
|
place_2.connecting_locations = [place_3] |
|
place_2.block_passage(place_3,puzzle_1) |
|
|
|
npc = Character("José Artigas", |
|
["El héroe nacional de Uruguay", "Está muy debilitado al estar tanto tiempo encerrado"], |
|
inventory = [], |
|
location = place_3) |
|
|
|
player = Character("Venancio", |
|
["Un gaucho uruguayo de 40 años de edad", "Pertenece a los soldados de Artigas", "Tiene el poder mágico de invocar una ola gigante de agua con la que puede apagar fuegos o humedecer la tierra"], |
|
inventory = [item_4], |
|
location= place_1) |
|
|
|
the_world = World(player) |
|
the_world.add_locations([place_1,place_2,place_3]) |
|
the_world.add_items([item_1,item_2,item_3]) |
|
the_world.add_character(npc) |
|
the_world.set_objective(player,npc) |
|
|
|
return the_world |
|
|
|
def get_world_2_english() -> World: |
|
|
|
item_1 = Item("Writings", |
|
["There is something written on the wall.", "It says 'You have to trust in the powers that have been given to you.'"], |
|
gettable=False) |
|
item_2 = Item("Pond", |
|
["A pond full of crystal clear water", "The water is so clear that it works like a mirror"], |
|
gettable=False) |
|
item_3 = Item("Firewall", |
|
["The flames are very hot", "It's 3 metres high", "It is impossible to cross them, neither walking, nor running, nor jumping."], |
|
gettable=False) |
|
item_4 = Item("Guitar", |
|
["A classic guitar with 6 strings", "It sounds great"]) |
|
|
|
puzzle_1 = Puzzle("Puzzle", |
|
["A strong magic is generating an impassable wall", "Magically, as you get closer, some blue letters appear explaining what the riddle to solve is."], |
|
"You have to whisper the name of the river located on the southern coast of the Banda Oriental", "Rio de la Plata") |
|
|
|
place_1 = Location ("Clearing in the woods", |
|
["A clearing in a eucalyptus forest near the Uruguay River", "You can hear the sound of the animals that live in the trees of this forest."], |
|
items = [item_1, item_2]) |
|
place_2 = Location("Silent zone", |
|
["The forest continues in this part", "Unlike the previous area, this area is very silent and not even the slightest sound can be heard."]) |
|
place_2.connecting_locations = [place_1] |
|
place_1.connecting_locations = [place_2] |
|
place_1.block_passage(place_2, item_3) |
|
|
|
place_3 = Location("Cell", |
|
["A square cell of two square meters", "The interior is full of plants that grew outside"]) |
|
place_3.connecting_locations = [place_2] |
|
place_2.connecting_locations = [place_3] |
|
place_2.block_passage(place_3,puzzle_1) |
|
|
|
npc = Character("José Artigas", |
|
["Uruguay's national hero", "He is very weak after being locked up for so long."], |
|
inventory = [], |
|
location = place_3) |
|
|
|
player = Character("Venancio", |
|
["A Uruguayan gaucho in his 40s", "He belongs to the Artigas army", "He has the magical power to summon a giant wave of water with which he can put out fires or moisten the ground."], |
|
inventory = [item_4], |
|
location= place_1) |
|
|
|
the_world = World(player) |
|
the_world.add_locations([place_1,place_2,place_3]) |
|
the_world.add_items([item_1,item_2,item_3]) |
|
the_world.add_character(npc) |
|
the_world.set_objective(player,npc) |
|
|
|
return the_world |