using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class jatekmanager : MonoBehaviour { public static jatekmanager Instance; //game objectek implementálása public GameObject energiafejlesztés; public GameObject akciofejlesztés; public GameObject harcfejlesztés; public GameObject ujradobasfejlesztés; public GameObject hackfejlesztés; public GameObject kovetkezokor; public GameObject betarazas; public GameObject nyomozas; public GameObject hackeles; public GameObject rolldice; public GameObject test; //script-ek implementalasa private Elet elet; private Akciok akciok; private Targyak targyak; private Dice dice; private Upgrade upgrade; private Akciopont akciopont; private movement movement; private TurnManager turnManager; private Source source; private vegpontozas vegpontozas; private AudioManager audioManager; //ügynökcsapatok implementálása public TMP_Text[] oneone; public TMP_Text[] twoone; public TMP_Text[] threeone; public TMP_Text[] onetwo; public TMP_Text[] twotwo; public TMP_Text[] threetwo; public TMP_Text[] onethree; public TMP_Text[] twothree; public TMP_Text[] threethree; public TMP_Text[] onefour; public TMP_Text[] twofour; public TMP_Text[] threefour; //nyert es vesztett bool lethrehozas public bool jatekosnyert = false; public bool jatekosvesztett = false; public bool vanertelme = true; public GameState State; public static event Action OnGameStateChanged; public Button helyszinaktivalasBtn; public GameObject pauseMenuUI; public static bool GameIsPlaying = true; private GameState previousGameState; public TMP_Text nev; private void Awake() { Instance = this; } private void Start() { elet = FindObjectOfType(); akciok = FindObjectOfType(); targyak = FindObjectOfType(); dice = FindObjectOfType(); upgrade = FindObjectOfType(); akciopont = FindObjectOfType(); movement = FindObjectOfType(); turnManager = FindObjectOfType(); source = FindObjectOfType(); vegpontozas = FindObjectOfType(); //hatterzene lejatszas audioManager = FindObjectOfType(); audioManager.Play("BackgroundMusic"); UpdateGameState(GameState.Nev); #if !UNITY_EDITOR test.SetActive(false); #endif } public void UpdateGameState(GameState newState) { State = newState; switch (newState) { case GameState.KorKezdet: HandleKorkezdet(); break; case GameState.Akcio: HandleAkcio(); break; case GameState.Fejlesztes: HandleFejlesztes(); break; case GameState.Ugynok: ugynokDeaktivalas(false); break; case GameState.Vesztette: HandleVesztette(); break; case GameState.UgynokValasztas: HandleUgynokValasztas(); break; case GameState.Nev: HandleUgynokNev(); break; case GameState.Pause: HandlePause(); break; default: throw new ArgumentOutOfRangeException(nameof(newState), newState, null); } OnGameStateChanged?.Invoke(newState); } public enum GameState { KorKezdet, Akcio, Fejlesztes, Ugynok, Vesztette, UgynokValasztas, Nev, Pause } private async void HandlePause(){ //kikapcsolni minden gombot es collidert } public void Resume(){ pauseMenuUI.SetActive(false); Time.timeScale = 1f; //normal ido visszainditasa GameIsPlaying = true; audioManager.SetMainVolume(0f); Instance.UpdateGameState(previousGameState); //elozo statere menjen vissza } public void Pause(){ pauseMenuUI.SetActive(true); //ido megallitasa hogy megalljon a jatek Time.timeScale = 0f; GameIsPlaying = false; audioManager.SetMainVolume(-80f); //hangerot teljesen levenni a masteren previousGameState = State; Instance.UpdateGameState(jatekmanager.GameState.Pause); } public void Quit(){ SceneManager.LoadScene("MainMenu"); } private async void HandleKorkezdet() { rolldice.SetActive(true); energiafejlesztés.SetActive(false); akciofejlesztés.SetActive(false); harcfejlesztés.SetActive(false); ujradobasfejlesztés.SetActive(false); hackfejlesztés.SetActive(false); kovetkezokor.SetActive(false); betarazas.SetActive(false); nyomozas.SetActive(false); hackeles.SetActive(false); helyszinaktivalasBtn.gameObject.SetActive(false); //test.SetActive(false); //ha ugynok state-el vegezne kapcsoljon vissza mindent movement.oneone_Collider.gameObject.SetActive(true); movement.onetwo_Collider.gameObject.SetActive(true); movement.onethree_Collider.gameObject.SetActive(true); movement.onefour_Collider.gameObject.SetActive(true); movement.twoone_Collider.gameObject.SetActive(true); movement.twotwo_Collider.gameObject.SetActive(true); movement.twothree_Collider.gameObject.SetActive(true); movement.twofour_Collider.gameObject.SetActive(true); movement.threeone_Collider.gameObject.SetActive(true); movement.threetwo_Collider.gameObject.SetActive(true); movement.threethree_Collider.gameObject.SetActive(true); movement.threefour_Collider.gameObject.SetActive(true); targyak.hackerFelhasznalva.GetComponent