def test_when_hero_attacks_and_enemy_has_no_armor(self): dungeon = Dungeon('level1.txt') hero = Hero(name="Bron", title="Dragonslayer", health=100, mana=100, mana_regeneration_rate=2) hero.equip(Weapon('Axe', 20)) enemy = Enemy(50, 50, 20) expected_damage_taken = 20 result_damage_taken = dungeon.attack(hero, enemy)[0] self.assertEqual(result_damage_taken, expected_damage_taken)
def test_when_hero_has_same_attack_points_as_enemy_armor_points(self): dungeon = Dungeon('level1.txt') hero = Hero(name="Bron", title="Dragonslayer", health=100, mana=100, mana_regeneration_rate=2) dungeon.spawn(hero) hero.equip(Weapon('Axe', 20)) hero.equip(Armor('Shield', 20)) enemy = Enemy(50, 50, 20) enemy.equip(Armor('Vest', 20)) result = dungeon._fight(enemy) self.assertTrue('Hero got tired and let his guard down.' in result)
def start_game(): result = False print(fg.orange, fg.bold, "\n Welcome to Dungeons and Pythons ", '\033[0m') print(fg.orange, " If you want to play, create your hero now: \n", fg.end_color) n = input("Give him/her a name:") t = input("And a title:") hero = Hero(str(n), str(t), 100, 100, 2) print(f"\n ~~~~~~~~~~Your hero is known as {fg.lightred} {fg.bold} {str(hero.known_as())} {fg.end_color} ~~~~~~~~~~~~~~~") print(f" ~~~~~~~~~~You have: {fg.blue} {fg.bold} health - {hero.get_health()}, mana - {hero.get_mana()} {fg.end_color} ~~~~~~~~~~~~~~~\n") s = spell_four hero.learn(s) w = weapon_three hero.equip(w) map = Dungeon("level1.txt") map.spawn(hero) print(f"{fg.yellow}{fg.bold}This is your map for the game:\n {fg.end_color}") map.print_map() print(f"\n'H' - your hero") print(f"'E' - enemy") print(f"'.' - you can move there") print(f"'#' - you can't go there \n\n ") while result is not True: print(fg.bold, fg.yellow, "Current map: ", fg.end_color) map.print_map() print(f"{fg.yellow}Choose one of the following: {fg.end_color}") print(f"{fg.yellow}Move your hero: 'm'\n {fg.end_color}") print(f"{fg.yellow}Stats of your hero: 's'\n {fg.end_color}") print(f"{fg.yellow}Attack with your hero: 'a'\n {fg.end_color}") choice = input() if choice == 'm': t = direction_checker() result = map.move_hero(str(t)) elif choice == 's' or choice == 'a': result = choice_checker(map, choice) else: print('Invalid choice!')
def demo(): h = Hero(name="Bron", title="Dragonslayer", health=100, mana=100, mana_regeneration_rate=2) w = Weapon(name="The Axe of Destiny", damage=20) h.equip(w) s = Spell(name="Fireball", damage=30, mana_cost=50, cast_range=2) h.equip(s) map = Dungeon("level1.txt") map.spawn(h) map.move_hero("right") map.move_hero("down") map.hero_attack(by="magic") map.move_hero("down") map.move_hero("down") map.move_hero("right") map.move_hero("right") map.move_hero("right") map.move_hero("right") map.move_hero("up") map.move_hero("up") map.move_hero("up") map.move_hero("right") map.move_hero("right") map.move_hero("right") map.move_hero("right") map.move_hero("down") map.move_hero("down") map.move_hero("down") map.move_hero("down")