Esempio n. 1
0
 def test_fight_simulation(self):
     hero = Hero("Natsu", 10000, "DragonSlayer")
     orc = Orc("BadOrc", 100, 2)
     fight = Fight(hero, orc)
     dragonpower = Weapon("Dragonpower", 200, 0.8)
     axe = Weapon("Axe", 120, 0.4)
     fight.hero.weapon = dragonpower
     fight.orc.weapon = axe
     fight.simulate_fight()
     self.assertEqual(fight.orc.battlehp, 0)
     self.assertTrue(fight.hero.battlehp > 0)
Esempio n. 2
0
 def test_fight_simulation(self):
     hero = Hero("Natsu", 10000, "DragonSlayer")
     orc = Orc("BadOrc", 100, 2)
     fight = Fight(hero, orc)
     dragonpower = Weapon("Dragonpower", 200, 0.8)
     axe = Weapon("Axe", 120, 0.4)
     fight.hero.weapon = dragonpower
     fight.orc.weapon = axe
     fight.simulate_fight()
     self.assertEqual(fight.orc.battlehp, 0)
     self.assertTrue(fight.hero.battlehp > 0)
class TestFightClass(unittest.TestCase):
    def setUp(self):
        self.hero = Hero('Arthas', 3500, 'Lich King')
        self.orc = Orc('Garrosh', 3500, 1.2)
        self.frostmourne = Weapon('Sword', 250, 0.8)
        self.gorehowl = Weapon('Axe', 350, 0.2)
        self.hero.equip_weapon(self.frostmourne)
        self.orc.equip_weapon(self.gorehowl)

        self.fight = Fight(self.hero, self.orc)

    def test_initialing(self):
        self.assertIsInstance(self.fight.hero, Hero)
        self.assertIsInstance(self.fight.orc, Orc)

    def test_who_is_first(self):
        first = []
        for i in range(10):
            self.fight = Fight(self.hero, self.orc)
            first.append(self.fight.first)

        flag = [False, False]
        for i in first:
            if isinstance(i, Hero):
                flag[0] = True
            elif isinstance(i, Orc):
                flag[1] = True

        self.assertEqual(flag, [True, True])

    def test_simulate_fight_Hero_Wins(self):
        self.orc = Orc('Gul Dan', 500, 1)
        self.fight = Fight(self.hero, self.orc)
        self.assertEqual(self.fight.simulate_fight(), 'hero wins')

    def test_simulate_fight_Orc_Wins(self):
        self.hero = Hero('Tirion', 500, 'The AshBringer')
        self.fight = Fight(self.hero, self.orc)
        self.assertEqual(self.fight.simulate_fight(), 'orc wins')

    def test_simulate_first_wins(self):
        self.hero = Hero('Tirion', 1000, 'The AshBringer')
        self.orc = Orc('Gul Dan', 1000, 1)
        weapon = Weapon('Sword', 200, 0)
        self.hero.equip_weapon(weapon)
        self.orc.equip_weapon(weapon)
        self.fight = Fight(self.hero, self.orc)
        if isinstance(self.fight.first, Hero):
            winer = 'hero wins'
        else:
            winer = 'orc wins'
        self.assertEqual(self.fight.simulate_fight(), winer)
Esempio n. 4
0
class Test_Fight(unittest.TestCase):
    def setUp(self):
        self.testOrc = Orc("TestOrc", 100, 1.4)
        self.testHero = Hero("TestHero", 100, "Tester")
        self.testOrc.weapon = Weapon("TestBrick", 30, 0.3)
        self.testHero.weapon = Weapon("TestOrcSlapper", 50, 0.6)
        self.testFight = Fight(self.testOrc, self.testHero)

    def test_simulate_fight(self):
        result = self.testFight.simulate_fight()
        self.assertIn(result, [self.testOrc, self.testHero])

    def test_simulate_fight_with_no_weapons_equipped(self):
        self.testOrc.weapon = None
        self.testHero.weapon = None
        result = self.testFight.simulate_fight()
        self.assertEqual(result, "No winner")
Esempio n. 5
0
class TestFight(unittest.TestCase):

    def setUp(self):
        self.hero = Hero("Gosho", 30, "Goshko")
        self.orc = Orc("Pesho", 100, 1.3)
        self.fight = Fight(self.hero, self.orc)
        self.weapon = Weapon("qax", 40, 0.3)
        self.hero.weapon = self.weapon
        self.orc.weapon = self.weapon

    def test_simulate_fight(self):
        self.fight.simulate_fight()
        self.assertFalse(self.orc.is_alive() and self.hero.is_alive())

    def test_simulate_fight_orc_no_weapon(self):
        self.fight.simulate_fight()
        self.orc.weapon = None
        self.assertFalse(self.orc.is_alive() and self.hero.is_alive())
Esempio n. 6
0
    def fight(self, output, player1, player2, p1name, p2name, pos1, pos2, ind1, path):
        fight = Fight(player1, player2)
        winner = fight.simulate_fight()
        if winner == player1:
            output[pos1] = "."
            output[pos2] = ind1
            del self.spawnlist[p2name]
            self.spawnedplayers.remove(p2name)
        elif winner == player2:
            output[pos1] = "."
            del self.spawnlist[p1name]
            self.spawnedplayers.remove(p1name)

        self.reinitialize_file(path, output)
    def main(self):
        frostmourne = Weapon('Sword', 400, 0.8)
        gorehowl = Weapon('Axe', 400, 0.3)
        hero = Hero('Arthas', 10000, 'Lich King')
        orc = Orc('Hellscream', 12000, 1.5)
        hero.equip_weapon(frostmourne)
        orc.equip_weapon(gorehowl)
        self.set_player('player_1', hero)
        self.set_player('player_2', orc)
        self.set_player_position(self.player_1, [50, 50])
        self.set_player_position(self.player_2, [350, 350])
        winner = 'no one'
        myfont = pygame.font.SysFont("monospace", 20)
        clock = pygame.time.Clock()
        while True:
            self.screen.fill((100, 0, 0))
            self.draw_players()
            pygame.display.update()
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()
                    sys.exit()
                if event.type == KEYDOWN:
                    self.move_players(event.key)
            if colide(self.player_1.position, self.player_2.position):
                fight = Fight(self.player_1.entity, self.player_2.entity)
                winner = fight.simulate_fight()
                break

            self.draw_players()
            pygame.display.update()
            clock.tick(30)

        while True:
            self.screen.fill((100, 0, 0))
            pygame.display.update()
            print_text = myfont.render(winner, 1, (0, 100, 0))
            self.screen.blit(print_text, (50, 50))
            pygame.display.update()
            clock.tick(30)