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}"
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)
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)
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!")
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!")
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!")
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)
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))
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!")
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)
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}'
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)
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)
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)
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.")
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)
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.")
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)
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}"
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)
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)
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.")
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()
def setUp(self) -> None: self.battlefield = BattleField()