예제 #1
0
    def fight(self, attack_name, enemy_name):
        attacker = self.player_repository.find(attack_name)
        enemy = self.player_repository.find(enemy_name)

        battle_field = BattleField()
        battle_field.fight(attacker, enemy)
        return f"Attack user health {attacker.health} - Enemy user health {enemy.health}"
예제 #2
0
 def test_dmg_and_hp_without_cards(self):
     advanced = Advanced('test')
     beginner = Beginner('test2')
     battlefield = BattleField()
     battlefield.fight(advanced, beginner)
     self.assertEqual(advanced.health, 250)
     self.assertEqual(beginner.health, 90)
예제 #3
0
 def test_beginner_health_increase(self):
     a = Advanced('attacker')
     e = Beginner('enemy')
     self.assertEqual(50, e.health)
     bf = BattleField()
     bf.fight(a, e)
     self.assertEqual(90, e.health)
 def test_damage_points_and_health_increased_without_cards(self):
     advanced = Advanced("test")
     beginner = Beginner("test2")
     bf = BattleField()
     bf.fight(advanced, beginner)
     self.assertEqual(advanced.health, 250)
     self.assertEqual(beginner.health, 90)
예제 #5
0
 def test_attacker_is_dead(self):
     p1 = Advanced("test")
     p1.health = 0
     p2 = Advanced("test2")
     bf = BattleField()
     with self.assertRaises(ValueError) as ex:
         bf.fight(p1, p2)
     self.assertEqual(str(ex.exception), "Player is dead!")
예제 #6
0
 def setUp(self):
     self.attacker = Advanced('I am attacker')
     mc = MagicCard('carte non-magique')
     self.attacker.card_repository.add(mc)
     self.enemy = Beginner('I am enemy')
     mc1 = MagicCard('catre magique')
     self.enemy.card_repository.add(mc1)
     self.battlefield = BattleField()
 def test_enemy_is_dead(self):
     advanced = Advanced("test")
     advanced_2 = Advanced("test2")
     advanced_2.health = 0
     bf = BattleField()
     with self.assertRaises(ValueError) as ex:
         bf.fight(advanced, advanced_2)
     self.assertEqual(str(ex.exception), "Player is dead!")
예제 #8
0
 def test_player_is_dead(self):
     a = Advanced('attacker')
     e = Beginner('enemy')
     a.health = 0
     bf = BattleField()
     with self.assertRaises(ValueError) as ex:
         bf.fight(a, e)
     self.assertEqual(str(ex.exception), "Player is dead!")
예제 #9
0
 def setUp(self):
     self.battle_field = BattleField()
     self.beginner_player = Beginner("KOZA_BEGINNER")
     self.advanced_player = Advanced("KOZA_ADVANCED")
     self.new_trap_card = TrapCard("KOZA_TRAP")
     self.new_magic_card = MagicCard("KOZA_MAGIC")
     self.beginner_player.card_repository.add(self.new_trap_card)
     self.advanced_player.card_repository.add(self.new_magic_card)
예제 #10
0
 def test_att_is_dead(self):
     advanced = Advanced('test')
     advanced.health = 0
     advanced2 = Advanced('test2')
     battlefield = BattleField()
     with self.assertRaises(ValueError) as cm:
         battlefield.fight(advanced, advanced2)
     self.assertEqual('Player is dead!', str(cm.exception))
예제 #11
0
 def test_fight_with_dead_player_should_raise_error(self):
     bf = BattleField()
     p1 = Beginner("Peter")
     p2 = Beginner("George")
     p1.health = 0
     with self.assertRaises(ValueError) as cm:
         bf.fight(p1, p2)
     self.assertEqual(str(cm.exception), "Player is dead!")
예제 #12
0
 def setUp(self) -> None:
     self.battle_field = BattleField()
     self.player1 = Advanced('John')
     self.player2 = Beginner('Mike')
     self.player1.card_repository.add(MagicCard('MagicCard1'))
     self.player1.card_repository.add(TrapCard('TrapCard1'))
     self.player2.card_repository.add(MagicCard('MagicCard2'))
     self.player2.card_repository.add(TrapCard('TrapCard2'))
 def test_fight(self):
     pl1 = Beginner('beg1')
     pl2 = Beginner('beg2')
     self.ctrl.player_repository.add(pl1)
     self.ctrl.player_repository.add(pl2)
     battlefield = BattleField()
     battlefield.fight(pl1, pl2)
     res = self.ctrl.fight('beg1', 'beg2')
     self.assertEqual('Attack user health 130 - Enemy user health 130', res)
예제 #14
0
    def fight(self, attack_name: str, enemy_name: str):
        # The attacker and the enemy start a fight in a battlefield. The method should return the following message:
        # "Attack user health {attacker_health_left} - Enemy user health {enemy_health_left}"
        attacker = self.player_repository.find(attack_name)
        enemy = self.player_repository.find(enemy_name)

        battle_field = BattleField()
        battle_field.fight(attacker, enemy)
        return f'Attack user health {attacker.health} - Enemy user health {enemy.health}'
예제 #15
0
 def test_bonus(self):
     a = Advanced('attacker')
     e = Beginner('enemy')
     c = MagicCard('magic')
     a.card_repository.add(c)
     self.assertEqual(a.health, 250)
     bf = BattleField()
     bf.fight(a, e)
     self.assertEqual(a.health, 330)
예제 #16
0
 def test_enemy_beginner_should_increase_attributes(self):
     bf = BattleField()
     p1 = Beginner("Peter")
     p2 = Beginner("George")
     mg1 = MagicCard("Magic One")
     mg2 = MagicCard("Magic Two")
     p2.card_repository.add(mg1)
     p2.card_repository.add(mg2)
     bf.fight(p2, p1)
     self.assertEqual(p2.health, 250)
예제 #17
0
 def test_fight_logic_is_dead(self):
     a = Advanced('attacker')
     e = Beginner('enemy')
     c = TrapCard('trap')
     a.card_repository.add(c)
     bf = BattleField()
     with self.assertRaises(ValueError) as ex:
         bf.fight(a, e)
     self.assertEqual(str(ex.exception),
                      'Player\'s health bonus cannot be less than zero.')
 def test_health_increased_from_cards(self):
     advanced = Advanced("test")
     beginner = Beginner("test2")
     bf = BattleField()
     mc = MagicCard("testmagic")
     advanced.card_repository.add(mc)
     tc = TrapCard("testtrap")
     beginner.card_repository.add(tc)
     bf.fight(advanced, beginner)
     self.assertEqual(advanced.health, 180)
     self.assertEqual(beginner.health, 90)
예제 #19
0
 def test_player_dies_in_fight(self):
     bf = BattleField()
     mg1 = MagicCard("Magic One")
     mg2 = MagicCard("Magic Two")
     p1 = Beginner("Peter")
     p2 = Beginner("George")
     p1.card_repository.add(mg1)
     p1.card_repository.add(mg2)
     bf.fight(p1, p2)
     with self.assertRaises(ValueError) as cm:
         bf.fight(p1, p2)
     self.assertEqual(str(cm.exception),
                      "Player's health bonus cannot be less than zero.")
예제 #20
0
    def test_dmg_and_hp_with_cards(self):
        advanced = Advanced('test')
        beginner = Beginner('test2')
        battlefield = BattleField()
        magic_card = MagicCard('Light')
        trap_card = TrapCard('TRAP')

        advanced.card_repository.add(magic_card)
        beginner.card_repository.add(trap_card)

        battlefield.fight(advanced, beginner)
        self.assertEqual(advanced.health, 180)
        self.assertEqual(beginner.health, 90)
예제 #21
0
 def test_dead_player_while_fighing(self):
     advanced = Advanced("test")
     beginner = Beginner("test2")
     mc = MagicCard('testmagic')
     tc = TrapCard("testtrap")
     tc2 = TrapCard("testtrap1")
     advanced.card_repository.add(tc)
     advanced.card_repository.add(tc2)
     bf = BattleField()
     beginner.card_repository.add(mc)
     with self.assertRaises(ValueError) as ex:
         bf.fight(advanced, beginner)
     self.assertEqual(str(ex.exception),
                      "Player's health bonus cannot be less than zero.")
예제 #22
0
    def test_fight_one_player_dies_valid_data_should_work_correctly(self):
        battlefield = BattleField()

        attacker = Advanced("Dave")
        enemy = Beginner("John")

        common_card = MagicCard("Magic")

        attacker.card_repository.cards.append(common_card)
        enemy.card_repository.cards.append(common_card)
        enemy.take_damage(50)

        with self.assertRaises(ValueError):
            battlefield.fight(attacker, enemy)
예제 #23
0
 def fight(self, attack_name: str, enemy_name: str):
     attacker = [
         attack for attack in self.player_repository.players
         if attack.username == attack_name
     ]
     enemy = [
         enemy for enemy in self.player_repository.players
         if enemy.username == enemy_name
     ]
     if attacker and enemy:
         attacker = attacker[0]
         enemy = enemy[0]
         battlefield = BattleField(
         )  # TODO  check if Battlefield should be instantiated  !!!
         battlefield.fight(attacker, enemy)
         return f"Attack user health {attacker.health} - Enemy user health {enemy.health}"
예제 #24
0
    def test_fight_valid_data_should_work_correctly(self):
        battlefield = BattleField()

        attacker = Advanced("Dave")
        enemy = Advanced("John")

        first_card = MagicCard("Magic")
        second_card = MagicCard("Magic")

        attacker.card_repository.cards.append(first_card)
        enemy.card_repository.cards.append(second_card)

        battlefield.fight(attacker, enemy)

        self.assertEqual(attacker.health, 325)
        self.assertEqual(enemy.health, 325)
예제 #25
0
    def test_fight_invalid_data_should_raise_error(self):
        battlefield = BattleField()

        attacker = Advanced("Dave")
        enemy = Advanced("John")

        first_card = MagicCard("Magic")
        second_card = MagicCard("Magic")

        attacker.card_repository.cards.append(first_card)
        enemy.card_repository.cards.append(second_card)

        attacker.take_damage(250)

        with self.assertRaises(ValueError):
            battlefield.fight(attacker, enemy)
예제 #26
0
    def test_health_increased_from_cards(self):
        p1 = Advanced("test")
        beginner = Beginner("test2")
        bf = BattleField()

        magic = TrapCard("magiccard")
        p1.card_repository.add(magic)
        magic = TrapCard("magiccard2")
        p1.card_repository.add(magic)
        magic = TrapCard("magiccard3")
        p1.card_repository.add(magic)
        trap = MagicCard("trapcard")
        beginner.card_repository.add(trap)

        with self.assertRaises(ValueError) as ex:
            bf.fight(p1, beginner)
        self.assertEqual(str(ex.exception),
                         "Player's health bonus cannot be less than zero.")
예제 #27
0
    def test_fight_cards_data_should_work_correctly(self):
        battlefield = BattleField()

        attacker = Beginner("Dave")
        enemy = Advanced("John")

        first_card = MagicCard("Magic")
        second_card = MagicCard("Magic")

        attacker.card_repository.add(first_card)
        enemy.card_repository.add(second_card)

        battlefield.fight(attacker, enemy)

        attacker_card_dmg = attacker.card_repository.cards[0].damage_points
        enemy_card_dmg = enemy.card_repository.cards[0].damage_points

        self.assertEqual(attacker_card_dmg, 35)
        self.assertEqual(enemy_card_dmg, 5)
 def setUp(self) -> None:
     self.bf = BattleField()
     self.attacker = Advanced('att')
     self.enemy = Beginner('en')
 def setUp(self) -> None:
     attacker = Advanced('name')
     enemy = Advanced('enemy')
     self.test_battlefield = BattleField()
예제 #30
0
 def setUp(self) -> None:
     self.battlefield = BattleField()