public void Handle(string JSONString)
    {
        ActionJson action = JsonUtility.FromJson <ActionJson>(JSONString);

        Debug.Log("Action recieved : " + action.Action);
        switch (action.Action)
        {
        /*case "loadLevel":
         * var loadLevelJson = JSON.Parse(JSONString);
         * JSONArray blocks = loadLevelJson["Blocks"].AsArray;
         * JSONArray objects = loadLevelJson["Objects"].AsArray;
         * JSONArray players = loadLevelJson["Players"].AsArray;
         * string levelName = loadLevelJson["Name"];
         * model.LoadLevel(blocks, players, objects, levelName);
         * break;*/
        case "returnToLobby":
            if (gameSceneManager != null)
            {
                gameSceneManager.ToLobbyScene();
            }
            break;

        case "move":
            var moveJson = JSON.Parse(JSONString);
            model.MovePlayer(moveJson["Player"], moveJson["PosX"], moveJson["PosY"], moveJson["Direction"]);
            model.UpdateObjects(moveJson["Changes"].AsArray);
            break;

        case "action":
            var       updateLevelJson = JSON.Parse(JSONString);
            JSONArray updates         = updateLevelJson["Changes"].AsArray;
            model.UpdateObjects(updates);
            model.MovePlayer(updateLevelJson["Player"], updateLevelJson["PosX"], updateLevelJson["PosY"], updateLevelJson["Direction"]);
            break;

        case "win":
            model.gameWon = true;
            break;

        case "sendPing":
            var pingJson = JSON.Parse(JSONString);
            model.CreatePing(pingJson["PosX"], pingJson["PosY"]);
            break;

        case "gameReady":
            model.CanUnlockScene = true;
            break;

        default:
            Debug.LogError("Can't handle this action : " + action.Action);
            break;
        }
    }
示例#2
0
        public async Task CreateExperimentAction (ActionJson jsonObject)
        {
            var url = new Uri (v9Url, "obm/actions");
            var json = JsonConvert.SerializeObject (jsonObject);

            var httpReq = SetupRequest (new HttpRequestMessage () {
                Method = HttpMethod.Post,
                RequestUri = url,
                Content = new StringContent (json, Encoding.UTF8, "application/json")
            });
            var response = await SendAsync (httpReq).ConfigureAwait (false);
        }
示例#3
0
            public static MapJson FromMap(InputActionMap map)
            {
                ActionJson[]  jsonActions  = null;
                BindingJson[] jsonBindings = null;

                var actions = map.m_Actions;

                if (actions != null)
                {
                    var actionCount = actions.Length;
                    jsonActions = new ActionJson[actionCount];

                    for (var i = 0; i < actionCount; ++i)
                    {
                        jsonActions[i] = ActionJson.FromAction(actions[i]);
                    }
                }

                var bindings = map.m_Bindings;

                if (bindings != null)
                {
                    var bindingCount = bindings.Length;
                    jsonBindings = new BindingJson[bindingCount];

                    for (var i = 0; i < bindingCount; ++i)
                    {
                        jsonBindings[i] = BindingJson.FromBinding(bindings[i]);
                    }
                }

                return(new MapJson
                {
                    name = map.name,
                    id = map.id.ToString(),
                    actions = jsonActions,
                    bindings = jsonBindings,
                });
            }
示例#4
0
            public static ActionFileJson FromSet(InputActionSet set)
            {
                var actions     = set.actions;
                var actionCount = actions.Count;
                var actionsJson = new ActionJson[actionCount];
                var haveSetName = !string.IsNullOrEmpty(set.name);

                for (var i = 0; i < actionCount; ++i)
                {
                    actionsJson[i] = ActionJson.FromAction(actions[i]);

                    if (haveSetName)
                    {
                        actionsJson[i].name = string.Format("{0}/{1}", set.name, actions[i].name);
                    }
                }

                return(new ActionFileJson
                {
                    actions = actionsJson
                });
            }
示例#5
0
            public static ActionFileJson FromSets(IEnumerable <InputActionSet> sets)
            {
                // Count total number of actions.
                var actionCount = 0;

                foreach (var set in sets)
                {
                    actionCount += set.actions.Count;
                }

                // Collect actions from all sets.
                var actionsJson = new ActionJson[actionCount];
                var actionIndex = 0;

                foreach (var set in sets)
                {
                    var haveSetName = !string.IsNullOrEmpty(set.name);
                    var actions     = set.actions;

                    for (var i = 0; i < actions.Count; ++i)
                    {
                        actionsJson[actionIndex] = ActionJson.FromAction(actions[i]);

                        if (haveSetName)
                        {
                            actionsJson[actionIndex].name = string.Format("{0}/{1}", set.name, actions[i].name);
                        }

                        ++actionIndex;
                    }
                }

                return(new ActionFileJson
                {
                    actions = actionsJson
                });
            }
示例#6
0
    public void Handle(string JSONString)
    {
        ActionJson action = JsonUtility.FromJson <ActionJson>(JSONString);

        Debug.Log("Action recieved : " + action.Action);
        switch (action.Action)
        {
        case "gameList":
            JSONNode  gameListJson = JSON.Parse(JSONString);
            JSONArray games        = gameListJson["Games"].AsArray;
            List <GameListElementModel> gameList = new List <GameListElementModel>();
            for (int i = 0; i < games.Count; ++i)
            {
                gameList.Add(new GameListElementModel(games[i]["id"], games[i]["nbPlayers"]));
            }
            gameListCreator.SetGameListAndUpdate(gameList);
            break;

        case "joinedGame":
            JSONNode  joinedGame       = JSON.Parse(JSONString);
            int       gameId           = joinedGame["GameId"];
            int       playerId         = joinedGame["PlayerId"];
            string    map              = joinedGame["Map"];
            JSONArray playersRolesJson = joinedGame["PlayersRoles"].AsArray;
            int[]     playersRoles     = new int[playersRolesJson.Count];
            for (int i = 0; i < playersRolesJson.Count; ++i)
            {
                playersRoles[i] = playersRolesJson[i];
            }
            sceneManager.ToLobbyScene(gameId, playerId, playersRoles, map);
            break;

        case "cantJoinGame":
            JSONNode cantJoin = JSON.Parse(JSONString);
            gameId           = cantJoin["GameId"];
            errorMessage     = "Couldn't join the game " + gameId + ":\n" + cantJoin["MoreInfo"];
            showErrorMessage = true;
            break;

        case "createdGame":
            JSONNode createdGame = JSON.Parse(JSONString);
            gameId = createdGame["GameId"];
            JSONArray mapsJson = createdGame["MapList"].AsArray;
            string[]  mapList  = new string[mapsJson.Count];
            playersRoles    = new int[1];
            playersRoles[0] = 0;
            for (int i = 0; i < mapsJson.Count; ++i)
            {
                mapList[i] = mapsJson[i];
            }
            sceneManager.ToLobbyScene(gameId, playersRoles, mapList);
            break;

        case "loadLevel":
            JSONNode  loadLevelJson = JSON.Parse(JSONString);
            JSONArray blocks        = loadLevelJson["Blocks"].AsArray;
            JSONArray objects       = loadLevelJson["Objects"].AsArray;
            JSONArray players       = loadLevelJson["Players"].AsArray;
            string    levelName     = loadLevelJson["Name"];

            sceneManager.ToGameboardScene(blocks, objects, players, levelName);
            //model.LoadLevel(blocks, players, objects);
            break;

        default:
            Debug.LogError("Can't handle this action : " + action.Action);
            break;
        }
    }
    public void Handle(string JSONString)
    {
        ActionJson action = JsonUtility.FromJson <ActionJson>(JSONString);

        Debug.Log("Action recieved : " + action.Action);
        switch (action.Action)
        {
        case "joinedGame":
            JSONNode  joinedGame       = JSON.Parse(JSONString);
            int       gameId           = joinedGame["GameId"];
            int       playerId         = joinedGame["PlayerId"];
            JSONArray playersRolesJson = joinedGame["PlayersRoles"].AsArray;
            int[]     roles            = new int[playersRolesJson.Count];
            for (int i = 0; i < playersRolesJson.Count; ++i)
            {
                roles[i] = playersRolesJson[i];
            }
            GameLobbyData.PlayersRoles = roles;
            lobbyManager.JoinedGame(playerId, roles);
            break;

        case "changedMap":
            JSONNode changedMapJson = JSON.Parse(JSONString);
            string   newMap         = changedMapJson["Map"];
            lobbyManager.ChangeMap(newMap);
            break;

        case "roleChange":
            JSONNode roleChange = JSON.Parse(JSONString);
            playerId = roleChange["PlayerId"];
            int roleId = roleChange["RoleId"];
            lobbyManager.ChangeRole(playerId, roleId);
            break;

        case "loadLevel":
            JSONNode  loadLevelJson = JSON.Parse(JSONString);
            JSONArray blocks        = loadLevelJson["Blocks"].AsArray;
            JSONArray objects       = loadLevelJson["Objects"].AsArray;
            JSONArray players       = loadLevelJson["Players"].AsArray;
            string    levelName     = loadLevelJson["Name"];

            sceneManager.SetLoadingBoxActive(true);
            sceneManager.ToGameboardScene(blocks, objects, players, levelName);
            break;

        case "cantStartGame":
            JSONNode cantStart    = JSON.Parse(JSONString);
            string   errorMessage = "Couldn't start the game:\n" + cantStart["MoreInfo"];
            lobbyManager.ShowErrorMessage(errorMessage);
            break;

        case "leaveGame":
            JSONNode leaveGame = JSON.Parse(JSONString);
            int      id        = leaveGame["Player"];
            if (id == GameLobbyData.PlayerId)
            {
                sceneManager.ToGameListScene();
            }
            else
            {
                lobbyManager.PlayerLeftGame(id);
            }
            break;

        default:
            Debug.LogError("Can't handle this action : " + action.Action);
            break;
        }
    }