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); }); }
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); } } }
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(); } }