예제 #1
0
 public CreateRoomResponse CreateGameRoom(string roomName)
 {
     return(client.CreateNewRoom(new CreateRoomRequest()
     {
         GameSettings = new GameSettings()
         {
             Anonymous = false,
             Goal = Goal.Domination,
             IsRanked = false,
             MaxPlayers = 5,
             MinutesPerTick = (1.0 / 60.0), // One second per tick
         },
         RoomName = roomName,
         MapConfiguration = new MapConfiguration()
         {
             Seed = 123123,
             OutpostsPerPlayer = 3,
             MinimumOutpostDistance = 100,
             MaximumOutpostDistance = 1200,
             DormantsPerPlayer = 3,
             OutpostDistribution = new OutpostWeighting()
             {
                 FactoryWeight = 0.33f,
                 GeneratorWeight = 0.33f,
                 WatchtowerWeight = 0.33f,
             }
         }
     }));
 }
        public void Setup()
        {
            client = ClientHelper.GetClient();

            // Clear the database every test.
            RedisConnector.Server.FlushDatabase();

            // Create two new user accounts.
            authHelper = new AuthTestHelper(client);
            authHelper.createAccount(playerOneInGame);
            authHelper.createAccount(playerTwoInGame);
            authHelper.createAccount(playerThreeInGame);
            authHelper.createAccount(playerOutOfGame);
            authHelper.loginToAccount(playerOneInGame);
            gameId = client.CreateNewRoom(new CreateRoomRequest()
            {
                MaxPlayers     = 3,
                RoomName       = "TestRoom",
                MinutesPerTick = (1.0 / 60.0), // One second per tick
            }).CreatedRoom.RoomId;
            authHelper.loginToAccount(playerTwoInGame);
            client.JoinRoom(new JoinRoomRequest()
            {
                RoomId = gameId
            });
            authHelper.loginToAccount(playerThreeInGame);
            client.JoinRoom(new JoinRoomRequest()
            {
                RoomId = gameId
            });

            // Game has begun.
            authHelper.loginToAccount(playerOneInGame);
        }
예제 #3
0
        public void Setup()
        {
            client = ClientHelper.GetClient();

            // Clear the database every test.
            MongoConnector.FlushCollections();

            // Create two new user accounts.
            authHelper = new AuthTestHelper(client);
            authHelper.createAccount(playerOneInGame);
            authHelper.createAccount(playerTwoInGame);
            authHelper.createAccount(playerThreeInGame);
            authHelper.createAccount(playerOutOfGame);
            authHelper.loginToAccount(playerOneInGame);
            gameId = client.CreateNewRoom(new CreateRoomRequest()
            {
                GameSettings = new GameSettings()
                {
                    Anonymous      = false,
                    Goal           = Goal.Domination,
                    IsRanked       = false,
                    MaxPlayers     = 3,
                    MinutesPerTick = (1.0 / 60.0), // One second per tick
                },
                RoomName         = "TestRoom",
                MapConfiguration = new MapConfiguration()
                {
                    Seed = 123123,
                    OutpostsPerPlayer      = 3,
                    MinimumOutpostDistance = 100,
                    MaximumOutpostDistance = 1200,
                    DormantsPerPlayer      = 3,
                    OutpostDistribution    = new OutpostWeighting()
                    {
                        FactoryWeight    = 0.33f,
                        GeneratorWeight  = 0.33f,
                        WatchtowerWeight = 0.33f,
                    }
                },
            }).CreatedRoom.Id;
            authHelper.loginToAccount(playerTwoInGame);
            client.JoinRoom(new JoinRoomRequest()
            {
                RoomId = gameId
            });
            authHelper.loginToAccount(playerThreeInGame);
            client.JoinRoom(new JoinRoomRequest()
            {
                RoomId = gameId
            });

            // Game has begun.
            authHelper.loginToAccount(playerOneInGame);
        }
        public CreateRoomResponse CreateGameRoom(string roomName)
        {
            CreateRoomRequest createRequest = new CreateRoomRequest()
            {
                Anonymous          = false,
                Goal               = Goal.Domination,
                MaxPlayers         = 5,
                IsRanked           = false,
                RoomName           = roomName,
                AllowedSpecialists = { "a", "b", "c" },
            };

            return(client.CreateNewRoom(createRequest));
        }
예제 #5
0
        public void PlayerCannotJoinTheSameGameTwice()
        {
            CreateRoomResponse roomResponse = client.CreateNewRoom(createRoomRequest("My room!"));

            Assert.AreEqual(roomResponse.Status.IsSuccess, true);
            Assert.IsTrue(roomResponse.CreatedRoom.Id != null);
            var roomId = roomResponse.CreatedRoom.Id;

            authHelper.loginToAccount("userTwo");

            JoinRoomRequest joinRequest = new JoinRoomRequest()
            {
                RoomId = roomId,
            };

            JoinRoomResponse joinResponse = client.JoinRoom(joinRequest);

            Assert.AreEqual(joinResponse.Status.IsSuccess, true);

            var exception = client.JoinRoom(joinRequest);

            Assert.AreEqual(exception.Status.IsSuccess, false);
            Assert.AreEqual(exception.Status.Detail, ResponseType.DUPLICATE.ToString());
        }
예제 #6
0
        public void PlayerCanCreateAGameRoom()
        {
            var roomName = "My Room!";
            var anon     = false;
            var isRanked = false;
            var goal     = Goal.Domination;
            CreateRoomRequest createRequest = new CreateRoomRequest()
            {
                Anonymous          = anon,
                Goal               = goal,
                MaxPlayers         = 5,
                IsRanked           = isRanked,
                RoomName           = roomName,
                AllowedSpecialists = { "a", "b", "c" },
            };

            CreateRoomResponse roomResponse = client.CreateNewRoom(createRequest);

            Assert.AreEqual(roomResponse.Status.IsSuccess, true);
            Assert.IsTrue(roomResponse.CreatedRoom.RoomId != null);
            var roomId = roomResponse.CreatedRoom.RoomId;

            // View open rooms.
            OpenLobbiesResponse openLobbiesResponse = client.GetOpenLobbies(new OpenLobbiesRequest());

            Assert.AreEqual(openLobbiesResponse.Status.IsSuccess, true);
            Assert.AreEqual(1, openLobbiesResponse.Rooms.Count);
            Assert.AreEqual(roomId, openLobbiesResponse.Rooms[0].RoomId);
            Assert.AreEqual(authHelper.getAccountId("userOne"), openLobbiesResponse.Rooms[0].Creator.Id);
            Assert.AreEqual("userOne", openLobbiesResponse.Rooms[0].Creator.Username);
            Assert.AreEqual(roomName, openLobbiesResponse.Rooms[0].RoomName);
            Assert.AreEqual(RoomStatus.Open, openLobbiesResponse.Rooms[0].RoomStatus);
            // Assert.AreEqual(isRanked,roomDataResponse.Rooms[0].RankedInformation.IsRanked);
            Assert.AreEqual(anon, openLobbiesResponse.Rooms[0].Anonymous);
            Assert.AreEqual(goal, openLobbiesResponse.Rooms[0].Goal);
            Assert.AreEqual(1, openLobbiesResponse.Rooms[0].Players.Count);
            Assert.AreEqual("userOne", openLobbiesResponse.Rooms[0].Players[0].Username);
        }