"""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