Ejemplo n.º 1
0
    def test_choose_fighting_tools_when_hero_has_not_got_weapon_and_enemy_is_at_same_position_return_weapon(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy()
        weapon = Weapon("shodow", 100)
        hero.equip(weapon)
        create_fight = Fight(hero, enemy, "weapon")

        result = create_fight.choose_fighting_tools(hero, True)

        self.assertEqual(result, [100, weapon])
Ejemplo n.º 2
0
    def test_choose_fighting_tools_when_hero_has_spec_ability_return_damage_from_weapon(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy()
        weapon = Weapon("shodow", 100)
        hero.equip(weapon)

        create_fight = Fight(hero, enemy)

        result = create_fight.choose_fighting_tools(hero, True)

        self.assertEqual(result, [100, weapon])
Ejemplo n.º 3
0
    def test_start_fight_when_hero_strike_from_distance_enemy_return_dead_hero(
            self):
        hero = Hero("Pesho", "Padawan", health=100)
        enemy = Enemy(health=200, damage=50)
        weapon = Weapon("shodow", 40)
        spell = Spell("Abraka", 40)
        hero.learn(spell)
        create_fight = Fight(hero, enemy)

        result = create_fight.start_fight(1)

        self.assertEqual(result, hero)
Ejemplo n.º 4
0
    def test_choose_fighting_tools_when_hero_has_spec_ability_but_enemy_is_not_in_range_return_zero(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy()
        weapon = Weapon("shodow", 100)
        hero.equip(weapon)

        create_fight = Fight(hero, enemy)

        result = create_fight.choose_fighting_tools(hero, False)

        self.assertEqual(result, [0])
Ejemplo n.º 5
0
    def test_round_fight_when_hero_hits_return_enemy_gone(self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy()
        weapon = Weapon("shodow", 100)
        hero.equip(weapon)
        create_fight = Fight(hero, enemy)

        hero_result = create_fight.choose_fighting_tools(hero, True)
        enemy_result = create_fight.choose_fighting_tools(enemy, True)

        result = create_fight.round_fight(hero_result, enemy_result)
        self.assertEqual(result, False)
Ejemplo n.º 6
0
    def test_round_fight_when_hero_hits_and_enemy_is_not_gone_return_enemy_strike_back(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy(health=200)
        weapon = Weapon("shodow", 100)
        hero.equip(weapon)
        create_fight = Fight(hero, enemy)

        hero_result = create_fight.choose_fighting_tools(hero, True)
        enemy_result = create_fight.choose_fighting_tools(enemy, True)

        result = create_fight.round_fight(hero_result, enemy_result)

        self.assertEqual(hero.get_health(), 80)
        self.assertEqual(enemy.get_health(), 100)
Ejemplo n.º 7
0
    def test_choose_fighting_tools_when_hero_does_not_have_spec_ability_return_damage_zero(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy()

        create_fight = Fight(hero, enemy)

        result = create_fight.choose_fighting_tools(hero, False)

        self.assertEqual(result, [0])
Ejemplo n.º 8
0
    def test_start_fight_when_hero_strike_after_mana_is_he_take_items_mana_return_dead_enemy(
            self):
        hero = Hero("Pesho", "Padawan", health=100)
        enemy = Enemy(health=200, damage=10)
        weapon = Weapon("shodow", 40)
        hero.equip(weapon)
        treasure = Treasure(value_type="mana", value=50)
        spell = Spell("Abraka", 40)
        hero.learn(spell)
        hero.add_item(treasure)
        create_fight = Fight(hero, enemy)

        result = create_fight.start_fight(1)

        self.assertEqual(result, enemy)
Ejemplo n.º 9
0
    def test_start_fight_when_both_are_in_same_pas_return_loser_our_hero(self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy(health=200, damage=10)
        weapon = Weapon("shodow", 10)
        hero.equip(weapon)
        spell = Spell("Abraka", 10)
        hero.learn(spell)
        create_fight = Fight(hero, enemy, "weapon")

        result = create_fight.start_fight(0)

        self.assertEqual(result, hero)
Ejemplo n.º 10
0
    def test_start_fight_when_hero_strike_after_mana_is_gone_switch_to_weapon_return_dead_enemy(
            self):
        hero = Hero("Pesho", "Padawan", health=100)
        enemy = Enemy(health=200, damage=10)
        weapon = Weapon("shodow", 40)
        hero.equip(weapon)
        spell = Spell("Abraka", 40)
        hero.learn(spell)
        create_fight = Fight(hero, enemy)

        result = create_fight.start_fight(1)

        self.assertEqual(result, enemy)
Ejemplo n.º 11
0
    def test_choose_fighting_tools_when_hero_has_spec_ability_weapon_and_spell_return_spell(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy()
        weapon = Weapon("shodow", 100)
        spell = Spell("bla", 150)
        hero.equip(weapon)
        hero.learn(spell)
        create_fight = Fight(hero, enemy)

        result = create_fight.choose_fighting_tools(hero, False)

        self.assertEqual(result, [150, spell])
Ejemplo n.º 12
0
    def test_round_fight_when_hero_hits_and_with_spell_enemy_is_not_gone_return_enemy_move_to_hero(
            self):
        hero = Hero("Pesho", "Padawan")
        enemy = Enemy(health=200)
        weapon = Weapon("shodow", 100)
        hero.equip(weapon)
        spell = Spell("Abraka", 120)
        hero.learn(spell)
        create_fight = Fight(hero, enemy)

        hero_result = create_fight.choose_fighting_tools(hero, False)
        enemy_result = create_fight.choose_fighting_tools(enemy, True)

        result = create_fight.round_fight(hero_result, enemy_result, True)

        self.assertEqual(hero.get_health(), 100)
        self.assertEqual(enemy.get_health(), 80)
Ejemplo n.º 13
0
    def test_start_fight_when_hero_strike_from_distance_enemy_get_healing_return_dead_enemy(
            self):
        hero = Hero("Pesho", "Padawan", health=100, mana=100)
        enemy = Enemy(health=200, damage=10)
        weapon = Weapon("shodow", 40)
        treasure1 = Treasure(value_type="mana", value=100)
        treasure2 = Treasure(value_type="health", value=100)
        spell = Spell("Abraka", 40)
        hero.learn(spell)
        hero.add_item(treasure1)
        hero.add_item(treasure2)
        create_fight = Fight(hero, enemy)

        result = create_fight.start_fight(1)

        self.assertEqual(result, enemy)
Ejemplo n.º 14
0
import unittest
from classes import Hero, Enemy, Weapon, Spell

pesho = Hero('Petr', 'Pedo', 100, 100, 2)
vrago = Enemy(100, 100, 20)
weapon = Weapon('Sword of Bad Manners', 20)
spell = Spell('Fireball', 60, 100, 3)


class TestHeroClass(unittest.TestCase):

    def test_hero_init(self):
        result = pesho.health
        expected = 100

        self.assertEqual(result, expected)

    def test_hero_take_damage_and_is_alive(self):
        pesho.take_damage(100)

        result = pesho.is_alive()
        expected = False

        self.assertEqual(result, expected)

    def test_hero_take_damage_and_get_health(self):
        pesho.take_damage(57)

        result = pesho.get_health()
        expected = 43
Ejemplo n.º 15
0
import datetime
from classes import Hero
from classes import Game
heroes = []
riki = Hero('rikimaro', 'male', datetime.date(2011, 11, 11), 4)
riki.show()
Ejemplo n.º 16
0
from time import sleep
from classes import Hero, Enemy
import effects
from random import randint

# criando heroi
hero_test = Hero('Tobs', 'Male', 100, 1, 'Psyco')
hero_test.battle_skills(50, 8, 6, 10)

# criando inimigo
drunk_man = Enemy('Drunk Man', 50, 7, 5, 9)


def fight(hero, enemy):
    round_counter = 0
    while hero.health > 0 and enemy.health > 0:
        round_counter += 1
        print(
            f'{effects.bold}{effects.red}{round_counter}º TURNO!{effects.normal}'
        )  # contador de turnos

        current_enemy_attack = enemy.attacks[randint(0,
                                                     len(enemy.attacks) -
                                                     1)]  # enemy attacks
        hero.health -= current_enemy_attack[0]
        print(f'{enemy.name} attacks you with a {current_enemy_attack[1]}.')

        current_hero_attack = hero.attacks[randint(0,
                                                   len(hero.attacks) -
                                                   1)]  # hero attacks
        enemy.health -= current_hero_attack[0]
Ejemplo n.º 17
0
    feat_id = 'Psicótico'
    print('-' * 30)
    print(dialog.class_choice['success_class_1'])
elif feat in '2':
    feat_id = 'Assassino'
    print('-' * 30)
    print('success_class_2')
elif feat in '3':
    feat_id = 'Neurótico'
    print('-' * 30)
    print('success_class_3')
sleep(3)

print('-' * 30)
# Criando heroi
hero = Hero(name, gender_id, age, feat, feat_id)
hero.attributes()

if feat in '1':
    hero.strength += 2
    hero.endurance += 2
    hero.intelligence -= 3
elif feat in '2':
    hero.perception += 2
    hero.dextery += 2
    hero.endurance -= 3
elif feat in '3':
    hero.intelligence += 2
    hero.luck += 2
    hero.charisma -= 3