def ask_player(): answer = -1 set_digit = set([str(x) for x in range(10)]) while answer not in range(0, 10000) or len(list_answer) != 4: set_answer = set('a') while not set_answer.issubset(set_digit): juego.slow_print( '¿Con qué combinación de cuatro dígitos quieres tratar?') answer = input() list_answer = [x for x in answer] set_answer = set(list_answer) answer = int(answer) return answer
def arrow_trap(player, tutorial): global switch switch = False if not tutorial: tempo = 2 else: tempo = 1 juego.scream('CUIDADO') time.sleep(2) t1 = threading.Thread(target=player_moves) t2 = threading.Thread(target=dodge_trap, args=(tempo, )) t1.start() t2.start() t2.join() print('Presiona enter para continuar') t1.join() juego.slow_print("Te pegaron {} piedras!".format(damage)) if tutorial: if damage >= 1: juego.slow_print( 'Perdiste {} de vida'.format(10 * damage - player.shield_lvl * 3)) player.receive_damage(10 * damage, player.shield_lvl * 3) else: juego.slow_print( 'Lograste salir ileso, que molestos son esos duendes.')
def player_timer(): tiempo=600 while tiempo: if stop_threads: break mins, secs = divmod(tiempo, 60) timeformat = '{:02d}:{:02d} '.format(mins, secs) if tiempo<180: timeformat=' ' bar= timeformat+'.'*(int(2.5*mins+secs/24))+" "*(25-int(2.5*mins+secs/24)) print(bar,end='\r') time.sleep(.0065) tiempo -= 1 global player_time if tiempo==0: print(' ') time.sleep(0.4) juego.scream('¡BAM!') juego.slow_print('Es un golpe crítico') player_time=0 else: print(' ') player_time=mins+secs/100
def player_guess(player, answer): choice = False if player.magic >= 50: juego.slow_print( 'Por 50 de magia puedes tratar de leer la mente de la esfinge si no sabes la respuesta.' ) while choice not in ['a', 'b']: choice = input("a)Contestar\nb)Leer mente") if choice == 'b': player.magic -= 50 awsner = random.sample(answer, len(answer)) juego.slow_print("".join(awsner)) juego.slow_print("¿Cuál es tu respuesta al acertijo?") return input()
def compare(guess, real): right_place = 0 wrong_place = 0 list_guess = [x for x in str(guess)] list_real = [x for x in str(real)] while len(list_guess) < 4: list_guess.insert(0, '0') while len(list_real) < 4: list_real.insert(0, '0') #Check for right numbers in right place for i in range(4): if list_guess[i] == list_real[i]: right_place += 1 list_guess[i] = 'z' list_real[i] = 'g' #Check for remaining right numbers for i in list_guess: if i in list_real: wrong_place += 1 list_real.remove(i) if right_place == 0: if wrong_place == 0: juego.slow_print("Todos los números son incorrectos.") else: juego.slow_print( "{} números son correctos pero están en la posición equivocada." .format(wrong_place)) else: if wrong_place == 0: juego.slow_print( "{} números son correctos y están en el lugar correcto.". format(right_place)) else: juego.slow_print( "{} números son correctos y están en el lugar correcto, {} números son correctos pero están en la posición equivocada." .format(right_place, wrong_place)) time.sleep(1)
def run_trap(player, tutorial): if not tutorial: dist = 15 else: dist = 25 global stop_threads global switch global run run = True stop_threads = False switch = False juego.scream('PELIGRO') time.sleep(1) juego.slow_print('Algo se aproxima...') time.sleep(1) juego.scream('CORRE') t1 = threading.Thread(target=count_space, args=(dist, )) t2 = threading.Thread(target=goblins) t1.start() t2.start() t2.join() t1.join() time.sleep(0.5) print('') if not tutorial: if run: juego.slow_print('Corriste lo suficientemente rápido.') else: juego.slow_print('Necesitas ser más veloz, no llegaste a tiempo.') else: if run: juego.slow_print( 'Lograste escapar de esta, que pesados son los duentes.') else: juego.slow_print( 'Los dejas atrás pero te de das cuenta del daño que te hicieron.' ) vida = player.health player.receive_damage(50, 0) juego.slow_print('Perdiste {} de vida'.format(vida - player.health))
def voice_trap(player): choice = False juego.slow_print('Vas caminando cuando escuchas una voz que te habla...') juego.slow_talk('FRENTE A TI ENCONTRARÁS UN REGALO, TÓMALO') time.sleep(2) juego.slow_print('La voz sonaba un poco sospechosa...') while choice not in ['1', '2']: choice = input('Decide:\n1)Mejor continuar tu camino\n2)Tomar regalo') if choice == '1': juego.slow_print('Continuas tu camino ignorando la voz.') else: print(".", end="\r") time.sleep(1) print("..", end="\r") time.sleep(1) print("...", end="\r") time.sleep(1) luck = random.randint(1, 5) if luck == 5: juego.slow_print( 'Encuentras una posión de vida y decides beberla.') vida = player.health player.receive_damage(0, 30) if vida < player.health: juego.slow_print( 'Has ganado {} de vida.'.format(player.health - vida)) else: juego.slow_print('Nada sucede.') else: juego.slow_print( 'Encuentras una posión de vida y decides beberla.') juego.slow_print( 'Inmediatamente te das cuenta que cometiste un error.') vida = player.health player.receive_damage(10, 0) juego.slow_print('Pierdes {} de vida'.format(vida - player.health))
def play(player,tutorial): p_time=10 c_time=10 if not tutorial: set_player_time() time.sleep(1) p_time=player_time if p_time==0: juego.slow_print('No presionaste enter a tiempo, hazlo antes para la próxima.') else: juego.slow_print('Paraste con {:.2f} segundos restantes.'.format(p_time)) else: while p_time==c_time: set_player_time() time.sleep(1) p_time=player_time c_time=cpu_time() if p_time==c_time: juego.slow_print("El jugador paró con {:.2f} segundos restantes.\nEl campeón paró con {:.2f} segundos restantes.\n Es un empate! Listos para el desempate.".format(p_time,c_time)) time.sleep(4) if p_time==0: vida = player.health player.receive_damage(15,0) juego.slow_talk("-Tal vez necesitas tus ojos más de lo que creías. Te reventaste la cabeza.\nY me quedo con tu escudo.") juego.slow_print("Pierdes {} de vida.".format(vida-player.health)) player.shield_down() return 0 elif p_time<c_time: print('') juego.slow_print("Has ganado, tus sentidos no te engañan.\nParaste con {:.2f} segundos restantes.\nAquel cobarde tenía {:.2f} segundos restantes.".format(p_time,c_time)) player.shield_up() return 1 else: juego.slow_print("Tal vez necesitas tus ojos más de lo que creías.\nTe has acobardado, aun te restaban {:.2f} segundos. Tu rival paro con tan solo {:.2f} segundos restantes.".format(p_time,c_time)) juego.slow_talk('-Gracias por tu escudo camarada') player.shield_down() return 0
def tutorial(): practicar = [ 'Esquivar', 'Escapar', 'Pelear', 'Pistolero', 'Candado', 'Acertijos', 'Valiente', 'Examen' ] while True: vuelta = 0 out = '' game = '' while out.lower() not in ['si', 'no']: juego.slow_print('¿Deseas abandonar tutorial?\nSi No') out = input() if out.lower() == 'si': break player = Warrior(1, 1, 1, 1) player.set_warrior() while game not in practicar: juego.slow_print('¿Qué quieres practicar?') for x in practicar: if practicar.index(x) % 3 != 2: print(x, end=' ' * (25 - len(x))) else: print(x) game = input().capitalize() vuelta = practicar.index(game) + 1 if vuelta == 1: juego.slow_print( 'Usa a,s,d,w para moverte cuando veas <,v,>,^ respectivamente.\n Presiona enter para comenzar.' ) input() trampas.arrow_trap(player, 0) elif vuelta == 2: juego.slow_print( 'Presiona barra espaciadora seguido de enter para correr tan rápido como puedas, trata de llegar a la meta antes de que se termine tu tiempo.\nPresiona enter para comenzar.' ) input() trampas.run_trap(player, 0) elif vuelta == 3: juego.slow_print( 'Escribe el comando que deseas usar de entre las opciones disponibles para pelear.\nPara una explicación de cada comando escribe "help", o presiona enter para comenzar.' ) ayuda = 'ayuda' while ayuda not in ['', 'help']: ayuda = input().lower() if ayuda == 'help': juego.slow_print( 'Huir: Tratas de huir de la pelea, hay una posibilidad de fallar.\nEscudo mágico: Te protege se los hechizos y te permite cargar magia si no es interrumpido con un ataque físico.\nLanzar hechizo: Vence cualquier tipo de ataque físico, consume magia.\nDisparar: Ataque a distancia, necesita tener balas cargadas.\nRecargar: Carga hasta 2 balas si no es interrumpido por el rival.\nAtacar con espada: Ataque cuerpo a cuerpo: Ataque con espada, no es tan veloz pero es confiable.\nUsar escudo: cubre de ataques físicos, mitigando daño y aturdiendo si te atacan con espada.\nPresiona enter para comenzar.' ) input() costal = '' while costal not in ['duende', 'humano']: juego.slow_print( '¿Contra qué quieres practicar esta vez?\nDuende Humano' ) costal = input().lower() if costal == 'duende': duel(player, Goblin()) else: duel(player, Warrior(1, 1, 1, 1)) elif vuelta == 4: juego.slow_print( 'Duelo de pistoleros al mejor de 3 rondas.\nCada ronda se inicia con una bala cada quien, selecciona tu moviento cada turno.\nObserva que el primer movimiento de cada ronda es importante para tu rival.\nPresiona enter para comenzar.' ) input() pistolero.play(player) elif vuelta == 5: juego.slow_print( 'Para abrir el candado trata de descifrar la clave de cuatro dígitos siguiendo las pistas después de cada intento.\nPresiona enter para comenzar.' ) input() candado.play(player, 0) elif vuelta == 6: juego.slow_print( 'Trata de resolver el acertijo escribiendo tu respuesta cuando se te indique.\nPresiona enter para comenzar.' ) input() acertijos.play(player, 0) elif vuelta == 7: juego.slow_print( 'Presiona enter antes de que la barra llegue a 0,\ntrata de esperar hasta estar lo más cerca de 0 posible.\nPresiona enter para comenzar.' ) input() valiente.play(player, 0) elif vuelta == 8: juego.slow_print( 'Cada pregunta introduce el inciso de la respuesta correcta.\nPresiona enter para comenzar.' ) input() examen.play(player, 0)
def play(player, tutorial): number = random.randint(0, 9999) num_round = 0 player_guess = -1 choice = 0 if not tutorial: while player_gess != number: player_guess = ask_player() compare(player_guess, number) juego.slow_print('¡La clave introducida es correcta!') else: while player_guess != number and num_round < 7: juego.slow_print('Intento #{}'.format(num_round + 1)) player_guess = ask_player() compare(player_guess, number) num_round += 1 if player_guess != number: juego.slow_print( 'Parece ser que el candado dejó de funcionar es imposible meter una nueva combinación.' ) if player.magic >= 25: while choice not in ['1', '2']: choice = input( '¿Deseas sacrificar magia para restaurar el candado un poco?\n1)Si\n2)No' ) choice = int(choice) if choice: player.magic -= 25 while player_guess != number and num_round < 10: juego.slow_print( 'Usas no se qué pero ahora que lo pienso eso no toca ahorita jeje' ) juego.slow_print('Intento #{}'.format(num_round + 1)) player_guess = ask_player() compare(player_guess, number) num_round += 1 else: juego.slow_print("No lograste abrir el candado.") player.receive_damage(15, 0) return 0 else: juego.slow_print("No lograste abrir el candado.") player.receive_damage(15, 0) return 0 if num_round == 10: juego.slow_print("No lograste descifrar la combinación.") player.receive_damage(15, 0) return 0 else: juego.slow_print("El candado se abre y puedes cruzar.") if num_round < 7: player.receive_damage(0, 20) return 1
def play(player, tutorial): global riddles riddles = true_riddles switch = False op = 2 bet = 0 if not tutorial: riddles = riddles[20:] ans = choose_riddle() while not switch: juego.slow_print( "¿Cuál es tu respuesta al acertijo?\nPara ver la respuesta y salir escribe 'Salir'." ) guess = input() if guess.lower() == 'salir': juego.slow_print("La respuesta era '{}'.".format( ans[0].capitalize())) return None else: for i in ans: if re.search(i, guess.lower()): switch = True if not switch: juego.slow_talk('-¡Incorrecto!') time.sleep(1.5) juego.slow_talk('-Tu respuesta es correcta.') return None else: juego.slow_print( "¿Por qué no hacemos ésto más interesante?\nSi ganas puedo mejorar tu espada, si aún no es de nivel 3.\nPero si pierdes la cambiaré por una peor, o te daré un mordisco si no tienes una." ) while bet not in ['1', '2']: bet = input("1)Aceptas la apuesta\n2)No tienes interés") ans = choose_riddle() while op > 0 and not switch: guess = player_guess(player, ans[0]) for i in ans: if re.search(i, guess.lower()): switch = True if not switch and op > 1: juego.slow_talk('-¡Incorrecto! Te queda sólo una oportunidad.') time.sleep(2) elif not switch: op -= 1 if op == 0: juego.slow_talk('-No encontraste la respuesta al acertijo.') if bet == '1': if not player.sword_lvl: vida = player.health player.receive_damage(50, 0) juego.slow_print( 'La esfinge te suelta un mordisco que te quita {} de vida.' .format(vida - player.health)) else: player.sword_down() return 0 else: juego.slow_talk('-Tu respuesta es correcta.') if bet == '1': player.sword_up() return 1
def choose_riddle(): rid = random.choice(riddles) juego.slow_print(rid[0]) return rid[1:]
def play(player1): global MAX_BULL MAX_BULL = 5 if player1.gun_lvl > 0: MAX_BULL = player1.max_bullets player = Player() cpu = Player() C_WINS = 0 P_WINS = 0 game_round = 0 while P_WINS != 2 and C_WINS != 2: cpu_moves = 0 player.bullets = 1 cpu.bullets = 1 if game_round == 0: cpu_first = cpu.cpu_choose_move() time.sleep(1) juego.slow_print("Inicia la ronda, cada quien tiene 1 bala cargada.") while True: play_move = player.player_choose_move() if cpu_moves == 0: cpu_move = cpu_first cpu_moves += 1 else: cpu_move = cpu.cpu_choose_move() if play_move == 1: if cpu_move == 1: player.recharge() cpu.recharge() juego.slow_print( "Logras cargar tu arma y notas que tu rival hizo lo mismo." ) elif cpu_move == 2: player.hp -= 1 juego.scream('¡BANG!') juego.slow_print( "Sientes un dolor y calor que se extiende en tu pierna." ) C_WINS += 1 juego.slow_talk("-¿Es todo lo que tienes?") break else: player.recharge() juego.slow_print( "En cuanto tocas tu pistola, tu rival se cubre. Tranquilamente recargas." ) elif play_move == 2: if cpu_move == 1: cpu.hp -= 1 a = [1, 2, 3] a.remove(cpu_first) cpu_first = random.choice(a) juego.scream('¡BANG!') juego.slow_print( "Agarras a tu enemigo tratando de recargar y das en el blanco." ) P_WINS += 1 juego.slow_talk("-¡¡No puedo creer que me diste!!") break elif cpu_move == 2: player.shoot() cpu.shoot() juego.scream('¡¡BANG!!') juego.slow_print( "Ambos disparan a la vez y las balas chocan entre si.") else: player.shoot() juego.scream("Bang") juego.slow_print( "Justo antes de jalar el gatillo ves como tu enemigo alcanza a cubrirse, una bala desperdiciada" ) else: if cpu_move == 1: cpu.recharge juego.slow_print( "Te apresuras a cubrirte pero tu enemigo aprovecha esta oportunidad para recargar." ) elif cpu_move == 2: cpu.shoot() juego.scream('Bang') juego.slow_print( "Excelentes reflejos! Logras evitar que esa bala diera en el blanco" ) else: juego.scream("...") juego.slow_print("Se miran fijamente ambos protegiendose") game_round += 1 if P_WINS == 2: juego.slow_print('Sales airoso de este enfrentamiento.') player1.gun_up() return 1 else: juego.slow_print('Fuiste derrotado.') player1.gun_down() return 0
def duel(player, enemy): global stop_function stop_function = False if isinstance(enemy, Warrior): enemy.set_warrior() if enemy.magic_lvl >= 2: enemy.super_power() player_health = player.health enemy_health = enemy.health while player.is_alive() and enemy.is_alive(): if stop_function: break player_choice = '' fill_options(enemy, player) enemy_choice = enemy.move(options) fill_options(player, enemy) if player.stunned: juego.slow_print('No puedes moverte este turno.') player_choice = 'Huir' time.sleep(1.5) else: while player_choice.lower() not in [x.lower() for x in options]: juego.slow_print('¿Qué decides hacer?') for x in options: if not options.index(x) % 2: print(x, end=' ' * (25 - len(x))) else: print(x) player_choice = input() action(player, full_options.index(player_choice.lower()), enemy, full_options.index(enemy_choice.lower())) time.sleep(1.5) if player_health > player.health: juego.slow_print('Perdiste {} de vida'.format(player_health - player.health)) player_health = player.health elif player_health < player.health: juego.slow_print('Ganaste {} de vida'.format(player.health - player_health)) player_health = player.health if enemy_health > enemy.health: juego.slow_print( 'El enemigo perdio {} de vida'.format(enemy_health - enemy.health)) enemy_health = enemy.health elif enemy_health < enemy.health: juego.slow_print('El enemigo gano {} de vida'.format(enemy.health - enemy_health)) enemy_health = enemy.health if player.is_alive(): juego.slow_print('Lograste salir vencedor de este enfrentamiento.') return 1 else: if enemy.is_alive(): juego.slow_print('Has sido derrotado.') return 0 else: juego.slow_print('El combate ha terminado en empate.') return 2
def action(player, move, enemy, enemy_move): global stop_function if player.stunned: if enemy.stunned: enemy.stun_change() juego.slow_print('Ambos están aturdidos.') elif enemy_move == 1: enemy.charge_shield() juego.slow_print('Tu rival aprovecha para cargar magia.') elif enemy_move == 2: player.receive_damage(enemy.spell() * 1.5, 0) juego.slow_print('No puedes evitar que te lancen un hechizo.') elif enemy_move == 3: player.receive_damage(enemy.shoot() * 1.5, 0) juego.slow_print( 'Crees escuchar un disparo y sientes un ardor en el pecho.') elif enemy_move == 4: enemy.recharge() enemy.recharge() juego.slow_print( 'Esuchas como tu rival aprovecha para cargar su arma.') elif enemy_move == 5: player.receive_damage(enemy.attack() * 1.5, 0) juego.slow_print('Sientes el corte de la espada en un costado.') elif enemy_move == 6: juego.slow_print( 'Tu rival decidió cubrirse con su escudo...\n ¿Se está burlando de ti?' ) else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') player.receive_damage(30, 0) enemy.receive_damage(15, 0) enemy.final_spell() juego.slow_print('El hechizo sale defectuozo.') player.stun_change() elif move == 0: if player.escape(): juego.slow_print('Haz logrado escapar!') stop_function = True else: juego.slow_print('Te tropiezas y quedas indefenzo.') if enemy_move == 5: player.receive_damage(3, 0) juego.slow_print('El duende aprovecha para clavarte su daga.') else: juego.slow_print( 'El duende se cubrió.\nParece que está confundido con lo que pasó.' ) elif move == 1: if enemy.stunned: player.charge_shield() juego.slow_print( 'Aprovechas que tu enemigo está aturdido para cargar tus reservas de magia.' ) enemy.stun_change() elif enemy_move == 1: player.charge_shield() enemy.charge_shield() juego.slow_print( 'Ambos usan su escudo mágico y recuperan un poco de magia.') elif enemy_move == 2: player.charge_shield() player.receive_damage(enemy.spell(), (player.magic_lvl**2) * 5) juego.slow_print( 'Reaccionas a tiempo y usas tu escudo mágico para cubrirte del hechizo que viene en tu camino.' ) elif enemy_move == 3: player.receive_damage(enemy.shoot(), 0) juego.slow_print( 'El escudo mágico no es buena protección contra la bala que acaba de golpearte.' ) elif enemy_move == 4: juego.slow_print( 'Mientras tu cargas tus niveles de magia, ves como tu rival aprovecha para cargar su arma.' ) player.charge_shield() enemy.recharge() enemy.recharge() elif enemy_move == 5: player.receive_damage(enemy.attack(), 0) juego.slow_print( 'Parece que te protegiste de la manera equivocada, el acero de la espada hace un corte limpio.' ) elif enemy_move == 6: player.charge_shield() juego.slow_print( 'Haces que tu enemigo se cubra con su escudo y mientras tu recuperas magia perdida.' ) else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') juego.slow_print( 'Reaccionas lo más rápido posible y te cubres.\n El hechizo rebota y ves cómo pega en el blanco.' ) enemy.receive_damage(enemy.health, 0) enemy.final_spell() elif move == 2: if enemy.stunned: juego.slow_print( 'Con tu rival incapaz de moverse lanzas un hechizo que pega en el blanco.' ) enemy.receive_damage(player.spell() * 1.5, 0) enemy.stun_change() elif enemy_move == 1: juego.slow_print( 'Era buena tu intención pero tu adversario alcanza a cubrirse.' ) enemy.charge_shield() enemy.receive_damage(player.spell(), (enemy.magic_lvl**2) * 5) elif enemy_move == 2: juego.slow_talk('-Mi magia es más poderoza que la tuya.') juego.slow_print('Cada hechizo golpea de lleno en el contrario.') enemy.receive_damage(player.spell(), 0) player.receive_damage(enemy.spell(), 0) elif enemy_move == 3: juego.slow_print( 'Tu hechizo te cubre del disparo rival y causa daño en tu oponente.' ) enemy.receive_damage(player.spell(), 0) player.receive_damage(enemy.shoot(), enemy.gun_dmg) elif enemy_move == 4: juego.slow_print( 'Antes de que tu rival logre cargar su arma lanzas un hechizo que da en el blanco.' ) enemy.receive_damage(player.spell(), 0) elif enemy_move == 5: juego.slow_print( 'Tu rival trata de atacarte cuerpo a cuerpo pero mantienes tu distancia y das en el blanco.' ) enemy.receive_damage(player.spell(), 0) elif enemy_move == 6: if isinstance(enemy, Goblin): enemy.receive_damage(player.spell(), 2) juego.slow_print( 'El duende trata de cubrirse tu hechizo con su escudo.') else: enemy.receive_damage(player.spell(), enemy.shield_lvl**2) juego.slow_print( 'Tu rival trata de usar su escudo para cubrir tu hechizo.') else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') player.receive_damage(30, 0) enemy.receive_damage(15, 0) enemy.final_spell() juego.slow_print('El hechizo sale defectuozo.') elif move == 3: if enemy.stunned: juego.slow_print( 'Tu oponente aturdido es un blanco facil, sin mucho problema das en el blanco.' ) enemy.receive_damage(player.shoot() * 1.5, 0) enemy.stun_change() elif enemy_move == 1: juego.slow_print( 'Ese escudo mágico no lo cubre de tu bala, que acierta sin problemas.' ) enemy.receive_damage(player.shoot(), 0) elif enemy_move == 2: juego.slow_print( 'El disparo se ve deviado por su hechizo que no logras evitar.' ) player.receive_damage(enemy.spell(), 0) enemy.receive_damage(player.shoot(), player.gun_dmg) elif enemy_move == 3: juego.slow_print('Disparan a la vez y ambos dan en el blanco.') enemy.receive_damage(player.shoot(), 0) player.receive_damage(enemy.shoot(), 0) elif enemy_move == 4: juego.slow_print( 'Notas que quiere recargar y sin darle oportunidad aprietas el gatillo.' ) enemy.receive_damage(player.shoot(), 0) elif enemy_move == 5: juego.slow_print( 'Disparas en cuanto lo ves venir, pero eso no lo frena lo suficiente y alcanza a atacar.' ) enemy.receive_damage(player.shoot(), 0) player.receive_damage(enemy.attack(), 0) elif enemy_move == 6: if isinstance(enemy, Goblin): enemy.receive_damage(player.shoot(), 2) juego.slow_print( 'De algo debe ayudar ese escudo contra tu bala.') elif player.gun_lvl > enemy.shield_lvl: juego.slow_print( 'Tu rival logra evitar algo del daño al cubrirse.') enemy.receive_damage(player.shoot(), 5 * enemy.shield_lvl) else: juego.slow_print( 'El escudo de tu oponente parece demasiado resistente, no creo que le hicieras daño.' ) enemy.receive_damage(player.shoot(), player.gun_dmg) else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') juego.slow_print( 'Tratas de disparar antes de que pueda hacer algo pero no eres tan rápido y tu bala se desvía.' ) player.receive_damage(30, 0) enemy.receive_damage(15, 0) enemy.receive_damage(player.shoot(), player.gun_dmg) enemy.final_spell() juego.slow_print('El hechizo sale defectuozo.') elif move == 4: if enemy.stunned: juego.slow_print('Aprovehcas este tiempo para recargar.') player.recharge() player.recharge() enemy.stun_change() elif enemy_move == 1: juego.slow_print( 'Mientras tu cargas tu arma tu rival decide recuperar algo de magia.' ) enemy.charge_shield() player.recharge() player.recharge() elif enemy_move == 2: juego.slow_print( 'Tratas de recargar pero apenas te mueves un poco y un hechizo te manda a volar.' ) player.receive_damage(enemy.spell(), 0) elif enemy_move == 3: juego.slow_print( 'Ni tiempo te dio de moverte cuando una bala golpeó tu hombro.' ) player.receive_damage(enemy.shoot(), 0) elif enemy_move == 4: juego.slow_print( 'Hacen un pacto de no atacar y ambos cargan sus armas.') player.recharge() player.recharge() enemy.recharge() enemy.recharge() elif enemy_move == 5: juego.slow_print( 'Apenas ibas a cargar la segunda bala cuando te alcanza tu rival y hace un corte en tu brazo.' ) player.receive_damage(enemy.attack(), 0) player.recharge() elif enemy_move == 6: juego.slow_print( 'Logras hacer que tu oponente se cubra y aprovechas para recargar.' ) player.recharge() player.recharge() else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') player.receive_damage(30, 0) enemy.receive_damage(15, 0) enemy.final_spell() juego.slow_print('El hechizo sale defectuozo.') elif move == 5: if enemy.stunned: juego.slow_print( 'Mientras tu oponente está aturdido atacas con tu espada.') enemy.receive_damage(player.attack() * 1.5, 0) enemy.stun_change() elif enemy_move == 1: juego.slow_print( 'El escudo mágico no sirve de nada contra el filo de tu espada' ) enemy.receive_damage(player.attack(), 0) elif enemy_move == 2: player.receive_damage(enemy.spell(), 0) juego.slow_print( 'Estás decidido a atacar pero en cuento te acercas el hechizo de tu rival te pega y te lanza hacia atrás.' ) elif enemy_move == 3: enemy.receive_damage(player.attack(), 0) player.receive_damage(enemy.shoot(), 0) juego.slow_print( 'Vas hacia adelante, tu oponente dispara y da en tu pierna izquierda pero logras hacer un corte en su costado.' ) elif enemy_move == 4: enemy.receive_damage(player.attack(), 0) enemy.recharge() juego.slow_print( 'Alcanzas a evitar que cargue una segunda vala haciendo un corte profundo.' ) elif enemy_move == 5: if isinstance(enemy, Goblin): enemy.receive_damage(8 * player.sword_lvl - 4, 0) juego.slow_print( 'El duende trata de atacar con su daga pero logras desarmarlo y devuelves el ataque.' ) elif player.sword_lvl < enemy.sword_lvl: player.receive_damage( 10 * (enemy.sword_lvl - player.sword_lvl), 0) juego.slow_print( 'Después de un breve compate espada contra espada, la experiencia de tu rival le permitión golpear tu pecho.' ) elif player.sword_lvl > enemy.sword_lvl: enemy.receive_damage(10 * (player.sword_lvl - enemy.sword_lvl), 0) juego.slow_print( 'Hay un duelo de espadas durante un momento pero finalmente tu ataque es el que logra conectar.' ) else: juego.slow_print( 'Ambos atacan con espadas pero después de un pequeño duelo sin resultados se retiran un poco.' ) elif enemy_move == 6: if isinstance(enemy, Goblin): enemy.receive_damage(player.attack(), 2) juego.slow_print( 'Tu espada golpea contra el escudo del duende.') elif player.attack() > enemy.shield_lvl * 5: enemy.receive_damage(player.attack(), enemy.shield_lvl * 5) juego.slow_print( 'Tu rival se cubre con su escudo pero lograste hacer daño.' ) else: juego.slow_print( 'Atacas con fuerza pero el escudo de tu oponente es increiblemente fuerte.' ) player.stun_change() juego.slow_print( 'Golpear directo contra el escudo te deja aturdido.') else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') player.receive_damage(30, 0) enemy.receive_damage(15, 0) enemy.final_spell() juego.slow_print('El hechizo sale defectuozo.') elif move == 6: if enemy.stunned: enemy.stun_change() juego.slow_print( 'Te cubres mientras tu oponente está aturdido. No sabes si se dio cuenta de que te burlas de él.' ) elif enemy_move == 1: enemy.charge_shield() juego.slow_print( 'Reaccionaste muy precipitadamente, tu rival logra recuperar un poco de magia.' ) elif enemy_move == 2: juego.slow_print( 'Tus reflejos solo te permitieron cubrirte con tu escudo normal ante el hechizo que iba en camino.' ) player.receive_damage(enemy.spell(), player.shield_lvl**2) elif enemy_move == 3: if enemy.gun_lvl > player.shield_lvl: player.receive_damage(enemy.shoot(), 5 * player.shield_lvl) juego.slow_print( 'Te cubres del disparo pero logra hacer algo de daño.') else: player.receive_damage(enemy.shoot(), enemy.gun_dmg) juego.slow_print( 'Tu escudo resiste sin problemas la bala que iba hacia ti.' ) elif enemy_move == 4: enemy.recharge() enemy.recharge() juego.slow_print( 'Trataste de predecir el movimiento de tu rival, pero eso le dio tiempo de recargar tranquilamente su arma.' ) elif enemy_move == 5: if enemy.attack() > player.shield_lvl * 5: player.receive_damage(enemy.attack(), player.shield_lvl * 5) juego.slow_print( 'Te cubres del ataque rival pero su espada hace algo de daño, logras aturdirlo.' ) else: juego.slow_print( 'Tu escudo es bastante resistente, aturdes a tu oponente y no sufres daño alguno.' ) enemy.stun_change() elif enemy_move == 6: juego.slow_print( 'Ambos levantan sus respectivos escudos, están listos para continuar con el combate.' ) else: juego.slow_talk( '-Prepárate para ver mi poder, por algo soy el elegido.') player.receive_damage(30, 0) enemy.receive_damage(15, 0) enemy.final_spell() juego.slow_print('El hechizo sale defectuozo.') else: if enemy_move == 1: juego.slow_print( 'Lanzas el hechizo prohibido que aprendiste pero tu oponente reacciona a tiempo y logra cubrirse.' ) juego.slow_print('Notas como su escudo mágico es destruido.') enemy.receive_damage(30, 0) enemy.shield_break() player.final_spell() else: enemy.receive_damage(enemy.health, 0) player.final_spell() juego.slow_print( 'Lanzas el hechizo prohibido que aprendiste y a tu rival le es imposible evitarlo.' )
def play(player, tutorial): global group, turn group = 1 turn = 5 ordered_options = [] fill_q() if not tutorial: while turn > 0: player_choice = '' ask = get_question(q1)[0] mix_choice() ordered_options = sorted( [choice[i] + ask[i + 1] for i in range(4)]) juego.slow_print('{}.-{}'.format(6 - turn, ask[0])) time.sleep(1) for x in ordered_options: print(x, end='\r') time.sleep(0.5) while player_choice not in choice: player_choice = input() + ')' if player_choice == choice[0]: juego.slow_print('Respuesta correcta.') group += 1 else: juego.scream('Incorrecto') turn -= 1 juego.slow_print('Tiviste {} respuestas correctas'.format(group - 1)) else: while turn > 0: player_choice = '' if group == 1: ask = get_question(q1)[0] if group == 2: ask = get_question(q2)[0] if group == 3: ask = get_question(q3)[0] if group == 4: ask = get_question(q4)[0] if group == 5: ask = get_question(q5)[0] mix_choice() ordered_options = sorted( [choice[i] + ask[i + 1] for i in range(4)]) juego.slow_print('{}.-{}'.format(6 - turn, ask[0])) time.sleep(1) for x in ordered_options: print(x, end='\r') time.sleep(0.5) while player_choice not in choice: player_choice = input() + ')' if player_choice == choice[0]: juego.slow_print('Respuesta correcta.') group += 1 else: juego.scream('Incorrecto') turn -= 1 juego.slow_print('Tiviste {} respuestas correctas'.format(group - 1)) if group > 4: if group > 5: juego.slow_talk( '-Me pusiste de buen humor, mejoraré todos tus objetos') player.shield_up() player.sword_up() player.gun_up() else: juego.slow_talk( 'Casi logras tener 5 respuestas correctas. ¿Qué objeto quieres que mejore para ti?' ) cosas = [] if player.sword_lvl < 3: cosas.append('Espada') if player.gun_lvl < 3: cosas.append('Revolver') if player.shield_lvl < 3: cosas.append('Escudo') if not len(cosas): cosas.append('Nada') cosa = '' while cosa not in cosas: for x in cosas: print(x, end=' ') cosa = input().capitalize() if cosa == 'Espada': player.sword_up() elif cosa == 'Revolver': player.gun_up() elif cosa == 'Escudo': player.shield_up() else: juego.slow_talk( '-Veo que ya tienes todo mejorado al máximo, tal vez para la otra.' ) return 1 else: if group > 1: vida = player.health player.receive_damage(20, 0) juego.slow_talk( '-Me haces enfurecer con tu poco conocimiento.') juego.slow_print( 'Te dispara una flecha al estomago.\nPierdes {} de vida.'. format(vida - player.health)) if player.magic >= 30: player.magic -= 30 else: player.magic = 0 else: juego.slow_talk( '-Eres tan inculto que pierdes todos tus objetos.') for _ in range(3): player.shield_down() player.sword_down() player.gun_down() return 0