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])
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])
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)
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])
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)
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)
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])
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)
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)
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)
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])
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)
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)
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
import datetime from classes import Hero from classes import Game heroes = [] riki = Hero('rikimaro', 'male', datetime.date(2011, 11, 11), 4) riki.show()
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]
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