def startGame(self): GameState.startGame(self) def timerStop(): if self.gameStartTime + self.gameTime > time.time(): #the game must have been stopped and restarted as we aren't ready to stop yet. Why were we not cancelled though? raise RuntimeError("timer seemingly triggered early") self.stopGame() self.stopGameTimer = Timer(self.gameTime, timerStop) self.stopGameTimer.start() self.listeningThread.queueMessageToAll(proto.STARTGAME.create(self.gameTime))
class TestTakingHits(unittest.TestCase): def setUp(self): self.gl = StandardGameLogic() self.gameState = GameState() self.gameState.setGameTime(120) def test_simple_hit_while_game_stopped(self): player = Player(1, 1) initialHealth = player.health sentTeam = 1 sentPlayer = 2 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth, player.health) def test_simple_hit(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 2 sentPlayer = 1 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth - damage, player.health) def test_self_hit(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 1 sentPlayer = 1 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth, player.health) def test_team_hit(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 1 sentPlayer = 2 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth - damage, player.health) def test_shot_until_dead(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 2 sentPlayer = 1 damage = ( player.health // 2 ) + 1 # this will fail if the player only starts with 2 health :-( self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth - damage, player.health) self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(0, player.health) #TODO assert death signal self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(0, player.health)
class TestTakingHits(unittest.TestCase): def setUp(self): self.gl = StandardGameLogic() self.gameState = GameState() self.gameState.setGameTime(120) def test_simple_hit_while_game_stopped(self): player = Player(1, 1) initialHealth = player.health sentTeam = 1 sentPlayer = 2 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth, player.health) def test_simple_hit(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 2 sentPlayer = 1 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth - damage, player.health) def test_self_hit(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 1 sentPlayer = 1 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth, player.health) def test_team_hit(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 1 sentPlayer = 2 damage = 2 self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth - damage, player.health) def test_shot_until_dead(self): self.gameState.startGame() player = Player(1, 1) initialHealth = player.health sentTeam = 2 sentPlayer = 1 damage = (player.health // 2) + 1 # this will fail if the player only starts with 2 health :-( self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(initialHealth - damage, player.health) self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(0, player.health) #TODO assert death signal self.gl.hit(self.gameState, player, sentTeam, sentPlayer, damage) self.assertEqual(0, player.health)