private void UserActionControl(object sender, ExtLibControl.UserAction a) { if (a.type == "pause") { PersistentScript.ExecuteOnMainThread.Enqueue(() => PauseLevel(true)); //ExtLibControl.PServer2.SendMessage($"Pausing", ExtLibControl.PServer2.clientse); Debug.Log("<color=#006666>Pausing....</color>"); ExtLibControl.DeQueueAction(); } }
public static void PauseLevel(bool v)//TODO verificar... { ExtLibControl.ClearActionQueue(); ExtLibControl.currentUAction = null; isPlaying = !v; instance.FileMenu.parent.GetChild(1).gameObject.SetActive(v); Time.timeScale = v ? 0 : PersistentScript.instance.timescale; instance.aSource.pitch = v ? 0.5f : 1f; }
public static void ShowGOverMessage(int score) { if (score <= 0) { ShowInfoMessage("Fim de jogo, você não obteve nenhuma pontuação", true); } else { instance.GameOverBoxText.text = $"Fim de jogo!\n Sua pontuação é de {score} ponto{((score == 1) ? "" : "s")}."; PersistentScript.lastScore = score; instance.GameOverBox.gameObject.SetActive(true); PauseLevel(true); } ExtLibControl.ClearActionQueue(); }
private void Start() { //isPlaying = true; PersistentScript.canRunUserActions = true; PersistentScript.currentScore = (PersistentScript.playType == 0) ? 0 : totalItens; PersistentScript.timeT0 = (PersistentScript.playType == 0) ? PersistentScript.currentMap.maxTime + .4f : 0; var audioS = GetComponent <AudioSource>(); Instantiate(PersistentScript.currentMap.MapPrefab); PersistentScript.instance.ItemCollection = GameObject.Find("ItemCollection")?.transform; PersistentScript.instance.cameraHolder = GameObject.Find("Camera-holder").transform; if (clips.Length > 0) { audioS.clip = clips[UnityEngine.Random.Range(0, clips.Length)]; audioS.Play(); } if (ExtLibControl.currentUAction?.userAction.type == "restart") { ExtLibControl.DeQueueAction(); } else { ExtLibControl.ClearActionQueue(); } //starMessage //mudar para PersistentScript.currentMap.detailedDescription if (PersistentScript.incomingMessage == "Welcome") { ShowInfoMessage(PersistentScript.currentMap.longDescription); // ShowInfoMessage(@"Bem vindo ao primeiro mapa, aqui sua aventura começar primeiramente vá {Map01-Menu/ NovoArquivoCpp} escreva seu programa e copile. //Ele deve ser capaz de direcionar o Robo ao quadro espaço amarelo, coletar seus itens e depositar no espaço vermelho, voltando ao espaço inicial para reposição de itens, o Jogo termina com três itens; // Para pegar um item , <b>levante a gaiola</b> aproxime-se dele e <b>abaixe a gaiola</b> em cima. Já para largar-lo , basta erguer a gaiola"); } else if (PersistentScript.incomingMessage != null) { ShowInfoMessage(PersistentScript.incomingMessage); } else if (PersistentScript.incomingMessage == null) { PauseLevel(false); } ScoreTextBox.transform.parent.GetComponent <TextMeshProUGUI>().text = (PersistentScript.playType == 0) ? "Pontuação:" : "Restantes:"; }
void Update() { Time.timeScale = timescale; if (Input.GetKeyDown(KeyCode.Z)) { ExtLibControl.DeQueueAction(); //Libera a ultima ação --para casos de encurralamento } if (Input.GetKeyDown(KeyCode.X)) { ExtLibControl.ClearActionQueue(); //Limpa todas as Ações } float v = (Input.GetKeyDown(KeyCode.W) ? 1 : Input.GetKeyDown(KeyCode.S) ? -1 : 0); if (v != 0) { ExtLibControl.userActions.Enqueue(new ExtLibControl.UserAction("move", 0, .2f * v)); } v = (Input.GetKeyDown(KeyCode.D) ? 1 : Input.GetKeyDown(KeyCode.A) ? -1 : 0); if (v != 0) { ExtLibControl.userActions.Enqueue(new ExtLibControl.UserAction("rot", 0, 15f * v)); } if (Input.GetKeyDown(KeyCode.Q)) { ExtLibControl.userActions.Enqueue(new ExtLibControl.UserAction("garra", 0)); } if (Input.GetKeyDown(KeyCode.E)) { ExtLibControl.userActions.Enqueue(new ExtLibControl.UserAction("hold", -1, 3)); } if (Input.GetKeyDown(KeyCode.T)) { ExtLibControl.userActions.Enqueue(new ExtLibControl.UserAction("getTIME")); } if (Input.GetKeyDown(KeyCode.Alpha1)) { currentCamera = (currentCamera + 1) % cameraHolder.childCount; ExtLibControl.userActions.Enqueue(new ExtLibControl.UserAction("cam", -1, currentCamera)); } if (Input.GetKeyDown(KeyCode.KeypadDivide)) { DEBUGmode = !DEBUGmode; } while (ExecuteOnMainThread.Count > 0) { ExecuteOnMainThread.Dequeue().Invoke(); } if (ExtLibControl.userActions.Count > 0) { if (((ExtLibControl.currentUAction == null) ? true : ExtLibControl.currentUAction.done) && canRunUserActions && MenuManager_InGame.isPlaying) { ExtLibControl.MoveActionQueue(); } if (!(ExtLibControl.currentUAction == null) && canRunUserActions && MenuManager_InGame.isPlaying) { var u = ExtLibControl.currentUAction.userAction; switch (u.type) { case "holdReal" when u.target == -1: ExtLibControl.currentUAction.userAction.target = 1; StartCoroutine(WaitAndDo(u.value, () => ExtLibControl.DeQueueAction())); break; case "hold": if (u.target == -1) { ExtLibControl.currentUAction.userAction.target = 1; holdTime = u.value; } else if (holdTime < 1e-8) { ExtLibControl.DeQueueAction(); } else { holdTime -= Time.deltaTime; } break; case "restart" when u.target == -1: ExtLibControl.currentUAction.userAction.target = 1; MenuManager_InGame.ReloadLevel(); break; case "speed": timescale = u.value; ExtLibControl.DeQueueAction(); break; case "cam": { if (u.value < cameraHolder.childCount) { for (int i = 0; i < cameraHolder.childCount; i++) { cameraHolder.GetChild(i).gameObject.SetActive(i == u.value); } } ExtLibControl.DeQueueAction(); break; } } //feedback ActionsBehaviours switch (u.type) { case "getTIME": PipeFeedback(timeT0); break; case "getCameraCount": PipeFeedback(cameraHolder.childCount); break; case "getScore": PipeFeedback((int)currentScore); break; } } } }
void Start() { ExtLibControl.INIT(); SceneManager.activeSceneChanged += OnSceneChanged; }
private void OnApplicationQuit() { ExtLibControl.END(); }
public static void PipeFeedback(float value) { ExtLibControl.PServer2.SendMessage($"{value}", ExtLibControl.PServer2.clientse); ExtLibControl.DeQueueAction(); }