예제 #1
0
    def createEvents(self, world, inv, dayLimit, log):

        ############COMIDA################
        foodTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("comida"), world)
        foodLeyend = "Ohh... Una manzana!"
        foodOpt = ("Que hago con la manzana?", "Guardarla", "Comerla")

        def foodYes():
            log.add_event("Guarde el alimento para despues")
            c = Item.create("comida")
            inv.addItem(c)
            removeItem(world, "comida")

        def foodNo():
            log.add_event("Comi la manzana que encontre")
            c = Item.create("comida")
            inv.addItem(c)
            removeItem(world, "comida")
            Player.useItem(c, inv)

        yesFun1 = lambda: foodYes()
        noFun1 = lambda: foodNo()
        self.allEvents["comida"] = StoryState.StoryState(foodLeyend, foodTrigger, foodOpt, yesFun1, noFun1, None, None)

        ###################FUEGO
        fireTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("fuego"), world)
        fireLeyend = "Eso es... Fuego?"
        fireOpt = ("Que deberia hacer?", "Tomarlo", "Apagarlo")

        def fireYes():
            log.add_event("Esto me sera muy util")
            c = Item.create("fuego")
            inv.addItem(c)
            removeItem(world, "fuego")

        def fireNo():
            log.add_event("Esto podria generar problemas...")
            removeItem(world, "fuego")

        yesFun2 = lambda: fireYes()
        noFun2 = lambda: fireNo()
        self.allEvents["fuego"] = StoryState.StoryState(fireLeyend, fireTrigger, fireOpt, yesFun2, noFun2, None, None)

        ###################BANANA
        bananaTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("banana"), world)
        bananaLeyend = "Mira! Un ramo de bananas"
        bananaOpt = ("Que deberia hacer?", "Guardarla", "Comerla")

        def bananaYes():
            log.add_event("Guarde la banana para despues")
            c = Item.create("comida")
            inv.addItem(c)
            removeItem(world, "banana")

        def bananaNo():
            log.add_event("Comi la banana que encontre")
            c = Item.create("comida")
            inv.addItem(c)
            removeItem(world, "banana")
            Player.useItem(c, inv)

        yesFun3 = lambda: bananaYes()
        noFun3 = lambda: bananaNo()
        self.allEvents["banana"] = StoryState.StoryState(
            bananaLeyend, bananaTrigger, bananaOpt, yesFun3, noFun3, None, None
        )

        ###################boar
        boarTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("m_jabali"), world)
        boarLeyend = "Otra vez la madre!"
        boarOpt = ("Que deberia hacer?", "Atacarla", "Huir")

        def boarYes():
            if inv.getItem(Item.getItemId("cuchillo")) is None:
                # TODO Killed
                log.add_event("Esto fue demasiado para mi....", 197)
                self.info.gameOver()
            else:
                log.add_event("Por fin murio...")
                c = Item.create("comida")
                inv.addItem(c)
                inv.addItem(c)
                inv.addItem(c)
                removeItem(world, "m_jabali")

        def boarNo():
            log.add_event("Sera mejor que huya")

        yesFun4 = lambda: boarYes()
        noFun4 = lambda: boarNo()
        self.allEvents["m_jabali"] = StoryState.StoryState(
            boarLeyend, boarTrigger, boarOpt, yesFun4, noFun4, None, None
        )

        ###################deadman
        dmTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("dead_man"), world)
        dmLeyend = "Es un cadaver...?"
        dmOpt = ("Que deberia hacer?", "Acercarme", "Dejarlo en paz")

        def dmYes():
            log.add_event("Hey! Tiene un cuchillo")
            c = Item.create("cuchillo")
            inv.addItem(c)
            removeItem(world, "dead_man")

        def dmNo():
            log.add_event("Espero no terminar asi...")
            removeItem(world, "dead_man")

        yesFun5 = lambda: dmYes()
        noFun5 = lambda: dmNo()
        self.allEvents["dead_man"] = StoryState.StoryState(dmLeyend, dmTrigger, dmOpt, yesFun5, noFun5, None, None)

        ###################wood
        woodTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("madera"), world)
        woodLeyend = "Encontre madera!"
        woodOpt = ("Que deberia hacer?", "Tomarla", "Dejarla ahi")

        def woodYes():
            log.add_event("Esto me servira para muchas cosas...")
            c = Item.create("madera")
            inv.addItem(c)
            removeItem(world, "madera")
            if not (inv.getItem(Item.getItemId("cuerda")) is None):
                Story.addItem(self.world, "balsa")

        def woodNo():
            log.add_event("Solo haria bulto...")
            removeItem(world, "madera")

        yesFun6 = lambda: woodYes()
        noFun6 = lambda: woodNo()
        self.allEvents["madera"] = StoryState.StoryState(woodLeyend, woodTrigger, woodOpt, yesFun6, noFun6, None, None)

        ###################rope
        ropeTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("cuerda"), world)
        ropeLeyend = "Es una serpiente...?"
        ropeOpt = ("Que deberia hacer?", "Acercarse", "Alejarse")

        def ropeYes():
            log.add_event("Es una cuerda! Que suerte tengo")
            c = Item.create("cuerda")
            inv.addItem(c)
            removeItem(world, "cuerda")
            if not (inv.getItem(Item.getItemId("madera")) is None):
                Story.addItem(self.world, "balsa")

        def ropeNo():
            log.add_event("Asi estare mas a salvo")
            removeItem(world, "cuerda")

        yesFun7 = lambda: ropeYes()
        noFun7 = lambda: ropeNo()
        self.allEvents["cuerda"] = StoryState.StoryState(ropeLeyend, ropeTrigger, ropeOpt, yesFun7, noFun7, None, None)

        ###################cave
        caveTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("cueva"), world)
        caveLeyend = "Una cueva."
        caveOpt = ("Que deberia hacer?", "Mirare dentro", "Alejarse")

        def caveYes():
            log.add_event("No hay nada interesante aqui...")

        def caveNo():
            log.add_event("Vere si hay algo mas interesante en otro lado..")

        yesFun8 = lambda: caveYes()
        noFun8 = lambda: caveNo()
        self.allEvents["cueva"] = StoryState.StoryState(caveLeyend, caveTrigger, caveOpt, yesFun8, noFun8, None, None)

        ###################radio
        radioTrigger = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("radio"), world)
        radioLeyend = "Aquello no es la pieza que necesito?"
        radioOpt = ("Que deberia hacer?", "Entrar por ella", "Debo estar loco...")

        def radioYes():
            log.add_event("Si! Esto me sacara de aqui!")
            c = Item.create("radio")
            inv.addItem(c)
            removeItem(world, "radio")

        def radioNo():
            log.add_event("Me pregunto si habra otra forma de arreglar ese aparato...")
            removeItem(world, "radio")

        yesFun9 = lambda: radioYes()
        noFun9 = lambda: radioNo()
        self.allEvents["radio"] = StoryState.StoryState(
            radioLeyend, radioTrigger, radioOpt, yesFun9, noFun9, None, None
        )

        ##################CONSTRUIR BALSA
        balsaCT = lambda day, step, x, y: posTrigger(x, y, Item.getAscii("balsa"), world)
        balsaCL = "Aun puedo construir la balsa con lo que tengo..."
        balsaCO = ("Que deberia hacer?", "Construir", "Reservar recursos")

        def balsaCFunY():
            log.add_event("No tengo nada mejor que hacer con estos recursos, mejor los uso")
            inv.deleteItem(Item.create("madera"))
            inv.deleteItem(Item.create("cuerda"))
            inv.addItem(Item.create("balsa"))
            self.addEvent("final_balsa")

        def balsaCFunN():
            log.add_event("Puede que guardar estos recursos sea util despues...")

        balsaCY = lambda: balsaCFunY()
        balsaCN = lambda: balsaCFunN()
        self.allEvents["construir_balsa"] = StoryState.StoryState(
            balsaCL, balsaCT, balsaCO, balsaCY, balsaCN, None, None
        )

        ##################Balsa Final (acercarse a la orilla)

        balsaT = lambda day, step, x, y: posTrigger(x, y, "-", world)
        balsaL = "Podria usar la balsa para tratar de salir de aqui"
        balsaO = ("Que deberia hacer?", "Zarpar", "Quedarse")

        def balsaFunY():
            log.add_event(
                "Me ire de aqui, estoy seguro de que encontrare a alguien. Ojala alguien mas pueda leer este diario algun dia..."
            )
            self.info.gameFinal1()
            self.info.gameOver()

        def balsaFunN():
            log.add_event("Puede que sea sensato darme otra vuelta a ver si encuentro mas opciones")

        balsaY = lambda: balsaFunY()
        balsaN = lambda: balsaFunN()
        self.allEvents["final_balsa"] = StoryState.StoryState(balsaL, balsaT, balsaO, balsaY, balsaN, None, None)

        ###################fire_palm
        def fireTrigger(day, step, x, y):
            return posTrigger(x, y, Item.getAscii("palmera"), world) and (
                not inv.getItem(Item.getItemId("fuego")) is None
            )

        fire_palmTrigger = lambda day, step, x, y: fireTrigger(day, step, x, y)
        fire_palmLeyend = "Podria usar esta palmera como senyal de humo..."
        fire_palmOpt = ("Que deberia hacer?", "Prenderle fuego", "No hacerlo")

        def fire_palmYes():
            log.add_event("Con esto deberian lograr verme!!")
            self.info.gameOver()
            self.info.gameFinal2()

        def fire_palmNo():
            log.add_event("Es muy peligroso, buscare otras formas...")

        yesFun10 = lambda: fire_palmYes()
        noFun10 = lambda: fire_palmNo()
        self.allEvents["palmera"] = StoryState.StoryState(
            fire_palmLeyend, fire_palmTrigger, fire_palmOpt, yesFun10, noFun10, None, None
        )

        ######Survive
        def survive(step):
            time = 100
            global survive_time
            if survive_time is None:
                survive_time = step
                return False
            else:
                return survive_time + time == step

        surviveTrigger = lambda day, step, x, y: survive(step)
        surviveLeyend = "He sobrevivido mucho tiempo solo... creo que es momentos de tomar una decision"
        surviveOpt = ("Que deberia hacer?", "Usar lo obtenido", "Explorar")

        def surviveYes():
            log.add_event("Creo haber visto algo que puede servirme cerca de la orilla...")
            self.addEvent("palmera")
            Story.addItem(self.world, "palmera")
            # Story.addNewItem(self.world, 'comida', 70, 125)
            # Story.addNewItem(self.world, 'comida', 100, 112)

        def surviveNo():
            global survive_count
            if survive_count > 1:
                log.add_event("A pesar de todos mis esfuerzos, nunca encontre nada en esta isla que me ayudase")
                self.info.gameOver()
            else:
                survive_count += 1
                log.add_event("Seguir explorando es lo mejor, aun me queda isla por recorrer")
                global survive_time
                survive_time = None

        yesFun11 = lambda: surviveYes()
        noFun11 = lambda: surviveNo()
        self.allEvents["sobrevivir"] = StoryState.StoryState(
            surviveLeyend, surviveTrigger, surviveOpt, yesFun11, noFun11, None, None
        )

        ######Radio Survive
        def surviveR(step):
            time = 100
            global radio_time
            if radio_time is None:
                radio_time = step
                return False
            else:
                if radio_time + (time / 4) == step:
                    log.add_event("Esta radio esta sonando...")
                elif radio_time + (time / 2) == step:
                    log.add_event("No se si mi mente aguante mucho mas... esta radio...")
                elif radio_time + (time * 3 / 4) == step:
                    log.add_event("Me estoy volviendo loco!!")
                return radio_time + time == step

        surviveRTrigger = lambda day, step, x, y: surviveR(step)
        surviveRLeyend = "No aguanto mas!! debo hacer algo con esta radio!"
        surviveROpt = ("Que deberia hacer?", "Seguir", "Lanzarla")

        def surviveRYes():
            log.add_event("Debo seguir y encontrar una forma de recuperar mi sanidad, algo de calor deberia servir")
            self.addEvent("fuego")
            self.addEvent("palmera")
            removeItem(world, "radio")
            Story.addItem(self.world, "fuego")
            Story.addItem(self.world, "palmera")
            # Story.addNewItem(self.world, 'comida', 70, 125)

        def surviveRNo():
            log.add_event("A pesar de mis esfuerzos, no puedo mas...")
            self.info.gameOver()

        yesFun12 = lambda: surviveRYes()
        noFun12 = lambda: surviveRNo()
        self.allEvents["radio_survive"] = StoryState.StoryState(
            surviveRLeyend, surviveRTrigger, surviveROpt, yesFun12, noFun12, None, None
        )
예제 #2
0
 def fireTrigger(day, step, x, y):
     return posTrigger(x, y, Item.getAscii("palmera"), world) and (
         not inv.getItem(Item.getItemId("fuego")) is None
     )
예제 #3
0
def addNewItem(world, itemName, x, y):
	replacement = Item.getAscii(itemName)
	Item.addItem(itemName, x, y, world.grid[x][y])
	world.grid[x][y] = replacement
예제 #4
0
	def createStory(self, world, inv, dayLimit, log, events, info):

		#######JABALI##############
		jabaliT = lambda day, step, x, y: posTrigger(x,y, Item.getAscii('b_jabali'), world)
		jabaliL = "Una cria de Jabali, si la mato ahora tengo alimento facil, pero es tan solo un pequena criatura... como podria yo...?"
		jabaliO = ("Que hacer?","Matarla","Dejarla Huir")

		def jabaliFunY():
			log.add_event("Su alimento me ayudara a sobrevivir")
			c = Item.create('comida')
			inv.addItem(c)
			inv.addItem(c)
			inv.clean()

			removeItem(world, 'b_jabali')
			Item.removeItem('b_jabali')
			Item.addItem('b_jabali', 78, 154, '/')
			addItem(world, 'b_jabali')

		def jabaliFunN():
			log.add_event("Esta criatura no me ha hecho nada, nada le hare yo")		
			events.addEvent('fuego')
			addItem(world, 'fuego')
			addItem(world, 'banana')
			events.addEvent('banana')
			removeItem(world, 'b_jabali')

		jabaliY = lambda: jabaliFunY()
		jabaliN = lambda: jabaliFunN()
		jabaliS = StoryState.StoryState(jabaliL, jabaliT, jabaliO, jabaliY, jabaliN, None, None)

		##########SEGUNDA CRIA JABALI############

		jabali2T = lambda day, step, x, y: posTrigger(x,y, Item.getAscii('b_jabali'), world)
		jabali2L = "Otra cria de Jabali, seguire con mi decision anterior?"
		jabali2O = ("Que hacer?","Matarla","Dejarla Huir")

		def jabali2FunY():
			log.add_event("Mas alimento me ayudara a sobrevivir")
			c = Item.create('comida')
			inv.addItem(c)
			inv.addItem(c)
			inv.clean()
			events.addEvent('dead_man')
			addItem(world, 'dead_man')
			addItem(world, 'm_jabali')
			removeItem(world, 'b_jabali')
			Item.removeItem('b_jabali')

		def jabali2FunN():
			log.add_event("No soy capaz, no puedo hacerlo de nuevo")		
			events.addEvent('fuego')
			addItem(world, 'fuego')
			removeItem(world, 'b_jabali')
			Item.removeItem('b_jabali')
			Item.addNextFood(world)
			Item.addNextFood(world)

		jabali2Y = lambda: jabali2FunY()
		jabali2N = lambda: jabali2FunN()
		jabali2S = StoryState.StoryState(jabali2L, jabali2T, jabali2O, jabali2Y, jabali2N, None, None)

		########MAMA JABALI############

		jabaliMT = lambda day, step, x, y: posTrigger(x,y, Item.getAscii('m_jabali'), world)
		jabaliML = "La madre de las crias! sabe lo que hice... mis manos llenas de sangre me delatan!"
		jabaliMO = ("Que hacer?","Atacarla","Huir")

		def jabaliMFunY():
			if(inv.getItem(Item.getItemId('cuchillo')) is None):
				log.add_event("Esto fue demasiado para mi....", 197)
				info.gameOver()

			else:
				log.add_event("Eso fue facil... creo")
				c = Item.create('comida')
				inv.addItem(c)
				inv.addItem(c)
				inv.clean()

			removeItem(world, 'm_jabali')
			Item.removeItem('m_jabali')

		def jabaliMFunN():
			log.add_event("No quiero enfrentarme contra ella ahora, pero si necesito alimento se donde encontrarlo")		
			events.addEvent('m_jabali')
			Item.addNextFood(world)

		jabaliMY = lambda: jabaliMFunY()
		jabaliMN = lambda: jabaliMFunN()
		jabaliMS = StoryState.StoryState(jabaliML, jabaliMT, jabaliMO, jabaliMY, jabaliMN, None, None)


		##########CUEVA ENTRADA##########
		cuevaT = lambda day, step, x, y: posTrigger(x,y, "o", world)
		cuevaL = "Oh, una cueva!! Se escuchan ruidos desde adentro...sera algun animal??"
		cuevaO = ("Que deberia hacer?","Entrar","Huir")

		def cuevaFunY():
			log.add_event('Es mejor entrar, puede ser una buena oportunidad')
			events.removeEvent('cueva')

		def huirCueva():
			events.addEvent('cuerda')
			addItem(world, 'cuerda')
			events.addEvent('madera')
			addItem(world, 'madera')
			Item.addNextFood(world)
			Item.addNextFood(world)
			

		def cuevaFunN():
			log.add_event("No puedo arriesgarme... Es mejor que no siga")
			huirCueva()

		cuevaY = lambda: cuevaFunY()
		cuevaN = lambda: cuevaFunN()
		cuevaS = StoryState.StoryState(cuevaL, cuevaT, cuevaO, cuevaY, cuevaN, None, None)

		#############CUEVA INTERIOR#############

		cuevaIT = lambda day, step, x, y: posTrigger(x,y, "O", world)
		cuevaIL = "Entre a la cueva... Aparece un oso salvaje!"
		cuevaIO = ("Que deberia hacer?","Atacarlo","Huir")

		def cuevaIFunY():
			if(not inv.getItem(Item.getItemId('cuchillo')) is None):
				log.add_event("Logre matar a la bestia... al menos tendre comida")
				log.add_event("Ademas encontre una radio!.. pero esta rota, igual la guardare")
				c = Item.create('comida')
				inv.addItem(c)

				r = Item.create('radio')
				inv.addItem(r)
				#inv.clean()
				addItem(world, 'radio')
				events.addEvent('radio_survive')
				Item.addNextFood(world)
				Item.addNextFood(world)
			elif(not inv.getItem(Item.getItemId('fuego')) is None):
				log.add_event("Logre ahuyentar al oso con el fuego")
				log.add_event("Y encontre comida para mi!")
				c = Item.create('comida')
				Item.addNextFood(world)
				Item.addNextFood(world)
				inv.addItem(c)
				inv.addItem(c)
				#inv.clean()
				events.addEvent('sobrevivir')
			else:
				log.add_event("Esto fue demasiado para mi....", 197)
				info.gameOver()
			

		def cuevaIFunN():
			log.add_event("No me siento capaz de pelear contra una bestia como esa")
			huirCueva()

		cuevaIY = lambda: cuevaIFunY()
		cuevaIN = lambda: cuevaIFunN()
		cuevaIS = StoryState.StoryState(cuevaIL, cuevaIT, cuevaIO, cuevaIY, cuevaIN, None, None)

		###########CONSTRUIR BALSA

		balsaT = lambda day, step, x, y: posTrigger(x,y, Item.getAscii('balsa'), world)
		balsaL = "Ohh, con estos materiales mas la cuerda y madera que llevo podria construir una balsa"
		balsaO = ("Que deberia hacer?","Construir","Reservar")

		def balsaFunY():
			log.add_event("No tengo nada mejor que hacer con estos recursos, mejor los uso")
			events.addEvent('final_balsa')
			c = Item.create('balsa')
			inv.addItem(c)
			inv.deleteItem(Item.create('madera'))
			inv.deleteItem(Item.create('cuerda'))
			inv.clean()
			removeItem(world, 'balsa')


		def balsaFunN():
			log.add_event("Puede que guardar estos recursos sea util despues")
			events.addEvent('construir_balsa')

		balsaY = lambda: balsaFunY()
		balsaN = lambda: balsaFunN()
		balsaS = StoryState.StoryState(balsaL, balsaT, balsaO, balsaY, balsaN, None, None)

		###############RADIO

		radioT = lambda day, step, x, y: posTrigger(x,y, Item.getAscii('radio'), world)
		radioL = "Otra cueva, puede que no tenga tanta suerte como antes..."
		radioO = ("Que deberia hacer?","Entrar","Huir")

		def radioFunY():
			log.add_event("Increible, quien diria que encontraria respuestos para la radio")
			log.add_event("... ... .. Alo? ... ...")
			log.refresh()
			#time.sleep(1)
			log.add_event("... ...")
			log.refresh()
			#time.sleep(1)
			log.add_event("Si! Alo!? Vengan a recatarme!")
			info.gameOver()
			info.gameFinal3()


		def radioFunN():
			log.add_event("No creo correr tanta suerte dos veces")
			#log.add_event("Lo siento... No logre encontrar una salida...")
			#self.info.gameOver()
			#Because, because yes

		radioY = lambda: radioFunY()
		radioN = lambda: radioFunN()
		radioS = StoryState.StoryState(radioL, radioT, radioO, radioY, radioN, None, None)







		jabaliS.next_no_state=cuevaS
		jabaliS.next_yes_state=jabali2S

		jabali2S.next_no_state=cuevaS
		jabali2S.next_yes_state=jabaliMS

		jabaliMS.next_yes_state=cuevaS
		jabaliMS.next_no_state=cuevaS

		cuevaS.next_yes_state=cuevaIS
		cuevaS.next_no_state=balsaS

		cuevaIS.next_no_state=balsaS
		cuevaIS.next_yes_state=radioS

		return jabaliS
예제 #5
0
def addItem(world, itemName):
	pos = Item.getItemPos(itemName)
	replacement = Item.getAscii(itemName)
	world.grid[pos[0]][pos[1]] = replacement