def test_makeMoveShouldPrioritiseDamagingTheHighestHealthPlayerIfItCantKillAPlayer( self): MaxHPWarlock = Warlock() MaxHPWarlock.health = 130 MinHPWarlock = Warlock() MinHPWarlock.health = 70 Warlock1 = Warlock() Warlock1.health = 80 Warlock2 = Warlock() Warlock2.health = 80 myEnemy = Rat() playerList = [Warlock1, MaxHPWarlock, MinHPWarlock, Warlock2] damage, PlayerToHit = makeMove(myEnemy, playerList) self.assertEqual(PlayerToHit, MaxHPWarlock)
def test_getPlayersToAttackShouldReturnThePlayersWithTheLowestAndHighestHealth( self): MaxHPWarlock = Warlock() MaxHPWarlock.health = 130 MinHPWarlock = Warlock() MinHPWarlock.health = 1 Warlock1 = Warlock() Warlock1.health = 10 Warlock2 = Warlock() Warlock2.health = 10 playerList = [Warlock1, MaxHPWarlock, MinHPWarlock, Warlock2] playerWithLeastHealth, playerWithMaxHealth, = getPlayersToAttack( playerList) self.assertEqual(MinHPWarlock, playerWithLeastHealth) self.assertEqual(MaxHPWarlock, playerWithMaxHealth)
def test_getPlayersToAttackShouldReturnTheFirstPlayerInListIfAllHealthsAreTheSame( self): firstWarlock = Warlock() secondWarlock = Warlock() thirdWarlock = Warlock() fourthWarlock = Warlock() firstWarlock.health = 10 secondWarlock.health = 10 thirdWarlock.health = 10 fourthWarlock.health = 10 playerList = [firstWarlock, secondWarlock, thirdWarlock, fourthWarlock] playerWithLeastHealth, playerWithMaxHealth = getPlayersToAttack( playerList) self.assertEqual(firstWarlock, playerWithLeastHealth) self.assertEqual(firstWarlock, playerWithMaxHealth)
def test_makeMoveShouldPrioritiseKillingAPlayerOverDamagingOtherPlayers( self): MaxHPWarlock = Warlock() MaxHPWarlock.health = 130 MinHPWarlock = Warlock() MinHPWarlock.health = 1 Warlock1 = Warlock() Warlock1.health = 10 Warlock2 = Warlock() Warlock2.health = 10 myEnemy = Rat() playerList = [Warlock1, MaxHPWarlock, MinHPWarlock, Warlock2] damage, PlayerToHit = makeMove(myEnemy, playerList) self.assertEqual(PlayerToHit, MinHPWarlock) self.assertTrue(damage.calcDamage() >= 1)