Пример #1
0
 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))
Пример #2
0
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)
Пример #3
0
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)