Exemplo n.º 1
0
 def test_shoot_friend(self):
     player1, _, _, pw_map = create_player(Team.BLUE, self.hcriat)
     player2, _, _, pw_map = create_player(Team.BLUE, self.hcriat)
     pw_map.move_player(player2, player1.x+2, player1.y)
     _, shoot_handler = shoot_action(player1.get_uid(), 'e', self.hcriat, None, None)
     for _ in range(3):
         self.assertTrue(shoot_handler.update())
Exemplo n.º 2
0
    def test_restart_round(self):
        # wrong player trying to restart
        self.assertIsNone(restart_round(153, self.hcriat))

        # real case
        player1, _, _, pw_map = create_player(Team.BLUE, self.hcriat)
        player2, _, _, pw_map = create_player(Team.RED, self.hcriat)
        # move both once place
        teleport_player(player1.uid, player1.x+1, player1.y+1, self.hcriat)
        teleport_player(player2.uid, player2.x+1, player2.y+1, self.hcriat)
        # change life
        player1.vida = 1
        player2.vida = 1
        # change score
        self.score.murio_azul()
        self.score.murio_rojo()
        # restart
        players, new_score = restart_round(player1.uid, self.hcriat)
        # base positions
        new_blue = players.pop(0) if players[0].team == Team.BLUE else players.pop()
        new_red = players.pop()
        # blue
        self.assertEqual(new_blue.x, pw_map.x_azul)
        self.assertEqual(new_blue.y, pw_map.y_azul)
        self.assertEqual(new_blue.vida, self.hcriat.VIDA_MAX)
        # red
        self.assertEqual(new_red.x, pw_map.x_rojo)
        self.assertEqual(new_red.y, pw_map.y_rojo)
        self.assertEqual(new_red.vida, self.hcriat.VIDA_MAX)
        # score
        self.assertEqual(new_score[0], 0)
        self.assertEqual(new_score[1], 0)
Exemplo n.º 3
0
 def test_shoot_enemy(self):
     player1, _, _, pw_map = create_player(Team.BLUE, self.hcriat)
     player2, _, _, pw_map = create_player(Team.RED, self.hcriat)
     pw_map.move_player(player2, player1.x+2, player1.y)
     _, shoot_handler = shoot_action(player1.get_uid(), 'e', self.hcriat, callback, None)
     health_before = player2.vida
     self.assertTrue(shoot_handler.update())  # move 1 sqm
     self.assertFalse(shoot_handler.update())  # hit the enemy
     self.assertLess(player2.vida, health_before)
Exemplo n.º 4
0
 def test_kill_and_revive_enemy(self):
     player1, _, _, pw_map = create_player(Team.BLUE, self.hcriat)
     player2, _, _, pw_map = create_player(Team.RED, self.hcriat)
     pw_map.move_player(player2, player1.x+1, player1.y)
     _, shoot_handler = shoot_action(
         player1.get_uid(), 'e', self.hcriat, callback, callback)
     player2.vida = 1
     shoot_handler.loop()
     self.assertFalse(player2.vivo)
     revive_player(player2.uid, self.hcriat)
     self.assertTrue(player2.vivo)
     self.assertEqual(player2.vida, CreaturesHandler.VIDA_MAX)
Exemplo n.º 5
0
    def test_score_from_red(self):
        player1, _, _, pw_map = create_player(Team.RED, self.hcriat)
        player2, _, _, pw_map = create_player(Team.BLUE, self.hcriat)

        def die_callback(uid):
            return increase_score(uid, self.hcriat)

        pw_map.move_player(player2, player1.x+1, player1.y)
        _, shoot_handler = shoot_action(
            player1.get_uid(), 'e', self.hcriat, callback, die_callback)
        player2.vida = 1
        self.assertEqual(self.score.red_score, 0)
        shoot_handler.loop()
        self.assertEqual(self.score.red_score, 1)
Exemplo n.º 6
0
 def test_move_valid(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     for d in ('n', 's', 'o', 'e'):
         before_x, before_y = player.get_coor()
         moved_player = move_player(player.get_uid(), d, self.hcriat)
         self.assertTrue(before_x != moved_player.x or before_y != moved_player.y)
         player.bloqM.unblock()
Exemplo n.º 7
0
 def test_move_invalid(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     self.assertRaises(
         InvalidMovementDirection, move_player, player.get_uid(), 'bad_direction', self.hcriat)
Exemplo n.º 8
0
 def test_teleport_player(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     teleport_player(player.uid, 1, 1, self.hcriat)
     self.assertEqual((player.x, player.y), (1, 1))
Exemplo n.º 9
0
 def test_player_get_data(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     self.assertEqual(player.get_data(), [2, 1, 34, 2, 100, 100])
Exemplo n.º 10
0
 def test_lost_connection_handler(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     uid = player.uid
     self.hcriat.del_creature_by_uid(uid)
     self.assertRaises(PlayerDoesNotExist, self.hcriat.get_creature_by_uid, uid)
Exemplo n.º 11
0
 def test_login_blue(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     self.assertEqual(player.get_team(), 1)
Exemplo n.º 12
0
 def test_login_red(self):
     player, _, _, _ = create_player(Team.RED, self.hcriat)
     self.assertEqual(player.get_team(), 2)
Exemplo n.º 13
0
 def test_full_team_base(self):
     for _ in range(9):
         create_player(Team.RED, self.hcriat)
     self.assertRaises(TeamBasePositionNotFound, create_player, Team.RED, self.hcriat)
Exemplo n.º 14
0
 def test_shoot_directions(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     for d in ('n', 's', 'o', 'e', 'no', 'ne', 'so', 'se'):
         player, shoot_handler = shoot_action(player.get_uid(), d, self.hcriat, None, None)
         self.assertIsNot(shoot_handler, None)
         player.bloqD.unblock()
Exemplo n.º 15
0
 def test_cant_move_exception(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     player.vivo = False
     self.assertRaises(
         CantMove, move_player, player.get_uid(), 'n', self.hcriat)
Exemplo n.º 16
0
 def test_cant_shoot_exception(self):
     player1, _, _, _ = create_player(Team.BLUE, self.hcriat)
     player1.vivo = False
     self.assertRaises(
         CantShoot, shoot_action, player1.get_uid(), 'e', self.hcriat, callback, None)
Exemplo n.º 17
0
 def test_shoot_bad_direction(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     self.assertRaises(
         InvalidShootDirection, shoot_action, player.get_uid(), 'bad_dir', self.hcriat, None,
         None)
Exemplo n.º 18
0
 def test_shoot_update(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     _, shoot_handler = shoot_action(player.get_uid(), 'n', self.hcriat, None, None)
     before_y = shoot_handler.bala.y
     shoot_handler.loop()
     self.assertEqual(before_y - 1, shoot_handler.bala.y)
Exemplo n.º 19
0
 def test_shoot_hit_wall(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     _, shoot_handler = shoot_action(player.get_uid(), 'o', self.hcriat, None, None)
     for _ in range(3):
         self.assertTrue(shoot_handler.update())
     self.assertFalse(shoot_handler.update())
Exemplo n.º 20
0
 def test_blocking_position(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     for d in ('o', 'o', 'o'):
         move_player(player.get_uid(), d, self.hcriat)
         player.bloqM.unblock()
     self.assertRaises(BlockedPosition, move_player, player.get_uid(), 'o', self.hcriat)
Exemplo n.º 21
0
 def test_multiple_players_red(self):
     _, others, _, _ = create_player(Team.RED, self.hcriat)
     self.assertEqual(others, [])
     _, others, _, _ = create_player(Team.RED, self.hcriat)
     self.assertEqual(len(others), 1)