Exemplo n.º 1
0
 public void TestScene()
 {
     gameState = CustomEnums.GameState.InSession;
     currentSession.Initialize();
     currentSession.StartSession();
 }
Exemplo n.º 2
0
    public void StartGame()
    {
        Cursor.visible = false;
        /////Set up menu
        this.gameState = CustomEnums.GameState.Menu;
        colorSwapZone[] csz = FindObjectsOfType <colorSwapZone>();
        for (int i = 0; i < csz.Length; i++)
        {
            matsAvailable.Add(csz[i]);
        }

        //used to initialize the buttons in menu
        Furniture[]       furs = FindObjectsOfType <Furniture>();
        List <GameObject> go   = new List <GameObject>();

        for (int i = 0; i < furs.Length; i++)
        {
            if (furs[i].GetComponent <StartButton>() != null || furs[i].GetComponent <CreditsButton>() != null || furs[i].GetComponent <QuitButton>() != null || furs[i].GetComponent <Boss>() != null)
            {
                furs[i].Initialize();
            }
            else
            {
                go.Add(furs[i].gameObject);
            }
        }

        if (!GameParams.Main.TESTSCENE)
        {
            for (int i = 0; i < go.Count; i++)
            {
                Furniture f  = go[i].GetComponent <Furniture>();
                var       mf = go[i].gameObject.AddComponent <MenuFurniture>();
                mf.data = f.data;
                if (!f.specialEffects.IsNullOrEmpty())
                {
                    mf.specialEffects = (GameObject[])f.specialEffects.Clone();
                }

                if (f != null)
                {
                    Destroy(f);
                }

                mf.Initialize();
            }

            GameManager.Main.numberOfRoundsPlayed = 0;
            GameParams.Main.MainMusic.clip        = GameParams.Main.MenuMusic;
            GameParams.Main.MainMusic.Play();
            GameParams.Main.UIMenu.SetActive(true);
            GameParams.Main.UIInSession.SetActive(false);
            GameParams.Main.UIInstructions.SetActive(false);
            GameParams.Main.menuCam.gameObject.SetActive(true);
            GameParams.Main.sessionCam.gameObject.SetActive(false);
            GameParams.Main.medalsDisplayer.SetActive(false);
            GameParams.Main.medalsDisplayer.SetActive(false);
        }
        else
        {
            GameManager.Main.TestScene();
        }
    }
Exemplo n.º 3
0
    public async void BeginSession()
    {
        for (int i = 0; i < playersInGame.Count; i++)
        {
            playersInGame[i].Drop();
            playersInGame[i].Score = 0;
            playersInGame[i].scoreTracker.Clear();
            if (this.gameState != CustomEnums.GameState.Menu)
            {
                playersInGame[i].gameObject.SetActive(false);
            }
            else
            {
                playersInGame[i].buttonA.SetActive(false);
            }
        }

        GameParams.Main.MainMusic.Stop();
        gameState = CustomEnums.GameState.Loading;

        //Fade in
        await Task.Delay(TimeSpan.FromSeconds(1));

        GameParams.Main.SwitchScreen.Show();
        await Task.Delay(TimeSpan.FromSeconds(1));

        //Setup
        GameParams.Main.UIInstructions.SetActive(true);
        GameParams.Main.menuCam.gameObject.SetActive(false);
        GameParams.Main.loadingScene.SetActive(true);
        GameParams.Main.medalsDisplayer.SetActive(false);
        GameParams.Main.UIMenu.SetActive(false);
        if (GameParams.Main.Menu != null)
        {
            GameParams.Main.Menu.SetActive(false);
        }

        //Fade out
        GameParams.Main.SwitchScreen.Hide();
        await Task.Delay(TimeSpan.FromSeconds(1));

        GameParams.Main.PlayersReminder.Show();


        //Setup the new session
        GameManager.Main.currentSession = Instantiate(DetermineLevelToLaunch(), Vector3.zero, Quaternion.identity).GetComponent <SessionManager>();
        GameManager.Main.currentSession.Initialize();

        for (int i = 0; i < playersInGame.Count; i++)
        {
            GameManager.Main.playersInGame[i].cam = GameParams.Main.sessionCam.cam;
            GameManager.Main.playersInGame[i].transform.position = StaticUtils.RandomCircle(currentSession.SpawnPoint, 2);
            GameManager.Main.playersInGame[i].playerNumberText.gameObject.SetActive(false);
            GameManager.Main.playersInGame[i].gameObject.SetActive(true);
        }

        //Make sure the loading lasts at least 5s
        float loadTime = 0;

        while (currentSession.init == true)
        {
            loadTime += Time.deltaTime;
            await Task.Delay(10);
        }
        if (loadTime < 5)
        {
            await Task.Delay(TimeSpan.FromSeconds(5 - loadTime));
        }

        //Fade in
        await Task.Delay(TimeSpan.FromSeconds(1));

        GameParams.Main.SwitchScreen.Show();
        await Task.Delay(TimeSpan.FromSeconds(1));

        GameParams.Main.UIInstructions.SetActive(false);
        GameParams.Main.loadingScene.SetActive(false);
        GameParams.Main.sessionCam.gameObject.SetActive(true);
        GameParams.Main.UIInSession.SetActive(true);

        //Fade out
        await Task.Delay(TimeSpan.FromSeconds(1));

        GameParams.Main.SwitchScreen.Hide();
        await Task.Delay(TimeSpan.FromSeconds(1));

        GameParams.Main.MainMusic.clip = currentSession.levelMusic;
        GameParams.Main.MainMusic.Play();

        GameManager.Main.currentSession.StartSession();
        GameParams.Main.eventReminder.Show();

        if (GameManager.Main.numberOfRoundsPlayed == 1 && GameParams.Main.Menu != null)
        {
            Destroy(GameParams.Main.Menu);
        }
    }