Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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.')
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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))
Ejemplo n.º 7
0
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))
Ejemplo n.º 8
0
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
Ejemplo n.º 9
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)
Ejemplo n.º 10
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
def choose_riddle():
    rid = random.choice(riddles)
    juego.slow_print(rid[0])
    return rid[1:]
Ejemplo n.º 13
0
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
Ejemplo n.º 14
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
Ejemplo n.º 15
0
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.'
            )
Ejemplo n.º 16
0
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