Beispiel #1
0
    public void FetchNextTurn(Action <TaskRecommendation> callback)
    {
        moduleConnection.FetchNextTask((TaskRecommendation taskRecommendation) =>
        {
            Debug.Log("Task Recommendation: " + JsonUtility.ToJson(taskRecommendation));
            taskRecommendation.TaskName = this.PlayerType == 0 ? taskRecommendation.TaskName : string.Compare(taskRecommendation.TaskName, "TARGET") == 0 || this.Turns > 25  ? "TARGET" : (this.Turns < 10) ? "ANGLE" : "STRENGTH";
            currentTaskRecommendation   = taskRecommendation;

            callback(taskRecommendation);
        });
    }
Beispiel #2
0
    private IEnumerator fetchingNextTask(Action <TaskRecommendation> callback)
    {
        string query = "query fetchNextTaskType {fetchNextTask(userId:\"" + this.userId + "\" ){taskName,difficulty}}";

        string variable = "{}";

        using (UnityWebRequest www = client.Query(query, variable, "fetchNextTaskType"))
        {
            yield return(www.SendWebRequest());

            if (www.isNetworkError)
            {
                Debug.Log(www.error);

                callback?.Invoke(null);
            }
            else
            {
                string responseString = www.downloadHandler.text;

                bool isError = IsResponseError(responseString);

                TaskRecommendation nextTask = null;
                if (!isError)
                {
                    nextTask = new TaskRecommendation();
                    JSONObject response = new JSONObject(responseString);
                    nextTask.TaskName   = response.GetField("data").GetField("fetchNextTask").GetField("taskName").str;
                    nextTask.Difficulty = response.GetField("data").GetField("fetchNextTask").GetField("difficulty").n;
                }
                else
                {
                    Debug.Log("error:" + responseString);
                }

                callback?.Invoke(nextTask);
            }
        }
    }
Beispiel #3
0
    private void OnReceiveTaskRecommendation(TaskRecommendation taskRecommendation)
    {
        bool isfreezeStrength = string.Compare(taskRecommendation.TaskName, "STRENGTH") == 0;
        bool isfreezeAngle    = string.Compare(taskRecommendation.TaskName, "ANGLE") == 0;

        if (playerStates.PlayerType == 0)
        {
            slingshot.difficultyLevel = string.Compare(taskRecommendation.TaskName, "TARGET") != 0 ? Mathf.RoundToInt((1 - taskRecommendation.Difficulty) * 20) : 0;
        }
        else
        {
            playerStates.Difficulty = ((float)((float)playerStates.Turns / (float)39));

            slingshot.difficultyLevel = ((playerStates.Turns >= 10 && playerStates.Turns <= 12) || (playerStates.Turns >= 23 && playerStates.Turns <= 25) || (playerStates.Turns >= 36 && playerStates.Turns <= 38))  ? 0 :  Mathf.RoundToInt(20 - (playerStates.Difficulty * 20));
        }

        slingshot.freezeStrength(isfreezeStrength, Pig.transform.position);
        slingshot.freezeAngle(isfreezeAngle, Pig.transform.position);

        GameObject.FindGameObjectWithTag("IndicatorAngle").SetActive(isfreezeAngle);
        GameObject.FindGameObjectWithTag("IndicatorStrength").SetActive(isfreezeStrength);



        slingshot.enabled = false;
        if (this.playerStates.Turns < 39)
        {
            menu.OpenGameStart();
        }
        else
        {
            CurrentGameState = GameState.GameFinished;

            SceneManager.UnloadSceneAsync(2);
            SceneManager.UnloadSceneAsync(1);
            menu.OpenGameFinished();
        }
    }