Пример #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())
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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()
Пример #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)
Пример #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))
Пример #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])
Пример #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)
Пример #11
0
 def test_login_blue(self):
     player, _, _, _ = create_player(Team.BLUE, self.hcriat)
     self.assertEqual(player.get_team(), 1)
Пример #12
0
 def test_login_red(self):
     player, _, _, _ = create_player(Team.RED, self.hcriat)
     self.assertEqual(player.get_team(), 2)
Пример #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)
Пример #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()
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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())
Пример #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)
Пример #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)