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 )
def fireTrigger(day, step, x, y): return posTrigger(x, y, Item.getAscii("palmera"), world) and ( not inv.getItem(Item.getItemId("fuego")) is None )
def addNewItem(world, itemName, x, y): replacement = Item.getAscii(itemName) Item.addItem(itemName, x, y, world.grid[x][y]) world.grid[x][y] = replacement
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
def addItem(world, itemName): pos = Item.getItemPos(itemName) replacement = Item.getAscii(itemName) world.grid[pos[0]][pos[1]] = replacement