Beispiel #1
0
 /// <summary>
 /// Game menu RESTART functionalities
 /// </summary>
 /// YES BUTTON
 public void RestartYes()
 {
     MainGameLogic.GetMainCamera().GetComponent <MainMenuHandler>().StartGame();
     gameMenuCanvas.SetActive(false);
     confirmationCanvas.SetActive(false);
     MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_GAME);
 }
Beispiel #2
0
 internal static void StartGame()
 {
     MainGameLogic.GetMainCamera().GetComponent <UIManager>().confirmationCanvas.SetActive(false);
     MainGameLogic.GetMainCamera().GetComponent <UIManager>().finishCanvas.SetActive(false);
     MainGameLogic.GetMainCamera().GetComponent <UIManager>().mainMenuCanvas.SetActive(true);
     MainGameLogic.GetMainCamera().GetComponent <UIManager>().gameMenuCanvas.SetActive(false);
     MainGameLogic.GetMainCamera().GetComponent <UIManager>().mainGameUI.SetActive(false);
 }
Beispiel #3
0
 internal void OpenFinishCanvas()
 {
     if (MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager().IsCurrentActionDone())
     {
         finishCanvas.GetComponent <FinishCanvasHandler>().Init(CloseFinishCanvas, FinishRestart, FinishMainMenu);
         finishCanvas.SetActive(true);
         MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.FINISH_CANVAS);
     }
 }
Beispiel #4
0
 internal void OpenGameMenu()
 {
     if (MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager().IsCurrentActionDone())
     {
         gameMenuCanvas.GetComponent <GameMenuBehaviour>().Init(CloseGameMenu, ShowHideGameTimer, RestartGame, MainMenuGame);
         gameMenuCanvas.SetActive(true);
         MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.GAME_MENU);
     }
 }
Beispiel #5
0
 public void ChangeValue(float value)
 {
     sliderText.text = Mathf.RoundToInt(value).ToString();
     if (cubeSize != Mathf.RoundToInt(value))
     {
         MainGameLogic.GetMainCamera().GetComponent <CubeControl>().CreateMagicCube(Mathf.RoundToInt(cubeSizeSlider.value));
     }
     cubeSize = Mathf.RoundToInt(value);
 }
Beispiel #6
0
    public void StartGame()
    {
        MainGameLogic.GetMainCamera().GetComponent <CubeControl>().CreateMagicCube(Mathf.RoundToInt(cubeSizeSlider.value));
        MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_GAME);
        MainGameLogic.LinkMagicCubeManagerAndUI(MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager(), MainGameLogic.GetMainCamera().GetComponent <UIManager>().GetMainGameUI());
        MainGameLogic.LinkMagicCubeManagerAndFinish(MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager(), MainGameLogic.GetMainCamera().GetComponent <UIManager>().GetFinishCanvas());

        MainGameLogic.GetMainCamera().GetComponent <UIManager>().MainMenuToGame();
        MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager().InitRandomMoves(2.7f);
    }
Beispiel #7
0
 /// <summary>
 /// Finish MAIN MENU functionalities
 /// </summary>
 /// YES BUTTON
 public void FinishMainMenuYes()
 {
     finishCanvas.SetActive(false);
     confirmationCanvas.SetActive(false);
     gameMenuCanvas.SetActive(false);
     MainGameLogic.GetMainCamera().GetComponent <MainMenuHandler>().Reset();
     mainMenuCanvas.SetActive(true);
     mainGameUI.SetActive(false);
     MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_MENU);
 }
Beispiel #8
0
 /// <summary>
 /// Game menu MAIN MENU functionalities
 /// </summary>
 /// YES BUTTON
 public void MainMenuYes()
 {
     confirmationCanvas.SetActive(false);
     gameMenuCanvas.SetActive(false);
     MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager().Save();
     MainGameLogic.GetMainCamera().GetComponent <MainMenuHandler>().Reset();
     mainMenuCanvas.SetActive(true);
     mainGameUI.SetActive(false);
     MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_MENU);
 }
Beispiel #9
0
    internal Collider QueryMagicCubeFace()
    {
        RaycastHit hit;
        Ray        ray       = MainGameLogic.GetMainCamera().ScreenPointToRay(Input.mousePosition);
        int        layerMask = LayerMask.GetMask("MainGameLayer");

        if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
        {
            return(hit.collider);
        }
        return(null);
    }
Beispiel #10
0
    public GameObject QueryFirstCubeTile()
    {
        RaycastHit hit;
        Ray        ray       = MainGameLogic.GetMainCamera().ScreenPointToRay(Input.mousePosition);
        int        layerMask = LayerMask.GetMask("CubeTileLayer");

        if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
        {
            return(hit.transform.gameObject);
        }
        return(null);
    }
Beispiel #11
0
    internal Vector3 GetWorldPos()
    {
        RaycastHit hit;
        Ray        ray       = MainGameLogic.GetMainCamera().ScreenPointToRay(Input.mousePosition);
        int        layerMask = LayerMask.GetMask("CubeTileLayer");

        if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
        {
            return(hit.point);
        }

        return(Vector3.positiveInfinity);
    }
Beispiel #12
0
    public void LoadGame()
    {
        try
        {
            MagicCubeSaveData savedata = MainGameLogic.LoadGameSave();

            MainGameLogic.GetMainCamera().GetComponent <CubeControl>().CreateMagicCube(savedata.magicCubeSize);
            MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_GAME);
            MainGameLogic.LinkMagicCubeManagerAndUI(MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager(), MainGameLogic.GetMainCamera().GetComponent <UIManager>().GetMainGameUI());
            MainGameLogic.LinkMagicCubeManagerAndFinish(MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager(), MainGameLogic.GetMainCamera().GetComponent <UIManager>().GetFinishCanvas());
            MainGameLogic.GetMainCamera().GetComponent <CubeControl>().GetMagicCubeManager().LoadGame(savedata);

            MainGameLogic.GetMainCamera().GetComponent <UIManager>().MainMenuToGame();
        }
        catch (Exception e)
        {
            StartGame();
        }
    }
Beispiel #13
0
    // Update is called once per frame
    void Update()
    {
        if (!MainGameLogic.IsMainMenu())
        {
            return;
        }

        if (magicCube == null && GameObject.FindGameObjectWithTag("MagicCube") != null)
        {
            magicCube = GameObject.FindGameObjectWithTag("MagicCube");
        }

        if (magicCube != null)
        {
            if (magicCube.GetComponent <MagicCubeBehaviour>().getMagicCubeManager() != null)
            {
                MainGameLogic.GetMainCamera().transform.RotateAround(magicCube.GetComponent <MagicCubeBehaviour>().getMagicCubeManager().GetPivot(), new Vector3(0, 1, 1), Time.deltaTime * 30.0f);
            }
        }
    }
 // Update is called once per frame
 void Update()
 {
     if (!MainGameLogic.IsMainGame())
     {
         return;
     }
     if (Input.GetMouseButtonDown(0))
     {
         if (startCubeTile == null)
         {
             startCubeTile = manager.QueryFirstCubeTile();
             if (startCubeTile == null)
             {
                 if (MainGameLogic.GetMainCamera().GetComponent <CameraControl>() != null)
                 {
                     MainGameLogic.GetMainCamera().GetComponent <CameraControl>().InitRotation(transform.gameObject);
                 }
             }
             startCubeTile = null;
         }
     }
 }
Beispiel #15
0
    public MagicCubeManager(GameObject cubeTileRef, int n, Vector3 pivot)
    {
        ownHolder = new GameObject("Magic Cube");
        ownHolder.transform.position = Vector3.zero;
        ownHolder.layer = 10;
        MagicCubeBehaviour behaviour = ownHolder.AddComponent <MagicCubeBehaviour>();

        behaviour.Init(this);
        ownHolder.tag = "MagicCube";

        actionList = new List <CubeAction>();

        this.cubeTileRef = cubeTileRef;
        magicCubeSize    = n;
        cubeTiles        = new List <GameObject>();
        mainPivot        = pivot;

        collectionHelper = new CubeCollectionHelper(0);
        GenerateCubeTiles();

        MainGameLogic.GetMainCamera().transform.position = new Vector3(mainPivot.x, mainPivot.y, MainGameLogic.GetMainCamera().GetComponent <CameraControl>().GetCurrentZoom());
        MainGameLogic.GetMainCamera().transform.rotation = new Quaternion();
    }
Beispiel #16
0
    public void StartFinish(int time)
    {
        int minutes = time / 60;
        int seconds = time - minutes * 60;

        string minutesText = "";
        string secondsText = "";

        if (minutes < 10)
        {
            minutesText = "0" + minutes;
        }
        else
        {
            minutesText = minutes.ToString();
        }
        if (seconds < 10)
        {
            secondsText = "0" + seconds;
        }
        else
        {
            secondsText = seconds.ToString();
        }

        timeText.text = minutesText + ":" + secondsText;

        StartFinishAnim();
        MainGameLogic.GetMainCamera().GetComponent <UIManager>().OpenFinishCanvas();
        GetComponent <Canvas>().enabled = false;
        MainGameLogic.GetMainCamera().GetComponent <UIManager>().DisableMenuButton();

        //After finishing a game we delete the save file, no need for it anymore.
        //If we want to keep save games after finishing a game, I need to modify the save file
        //slightly to store whether the game has finished or not, to ensure equal states.
        MainGameLogic.DeleteSaveGame();
    }
Beispiel #17
0
    // Update is called once per frame
    void Update()
    {
        if (MainGameLogic.IsFinish())
        {
            if (bStartedFinishAnimation)
            {
                float degrees = Time.deltaTime * 40.0f;
                MainGameLogic.GetMainCamera().transform.RotateAround(magicCube.GetComponent <MagicCubeBehaviour>().getMagicCubeManager().GetPivot(), MainGameLogic.GetMainCamera().transform.up, degrees);
                degreesTurned += degrees;

                cameraZoomTimePassed += Time.deltaTime;
                if (cameraZoomTimePassed > cameraZoomTimer)
                {
                    cameraZoomTimePassed = 0.0f;
                    MainGameLogic.GetMainCamera().GetComponent <CameraControl>().ZoomOut(Time.deltaTime * 2);
                }

                if (degreesTurned >= 360)
                {
                    FinishDialogue();
                }
            }
        }
    }
Beispiel #18
0
 public void FinishDialogue()
 {
     bStartedFinishAnimation         = false;
     GetComponent <Canvas>().enabled = true;
     MainGameLogic.GetMainCamera().GetComponent <UIManager>().EnableMenuButton();
 }
Beispiel #19
0
 public void LinkProcessOpenMenu(MainGameUI mainGameUI)
 {
     mainGameUI.SetMenuAction(MainGameLogic.GetMainCamera().GetComponent <UIManager>().OpenGameMenu);
 }
Beispiel #20
0
    public void Update()
    {
        if (bProcessingRandomActions)
        {
            randomActionsTimePassed += Time.deltaTime;
            if (randomActionsTimePassed > randomActionTimer)
            {
                bProcessingRandomActions = false;
                return;
            }
            if (currentAction != null)
            {
                if (!currentAction.IsActionDone())
                {
                    currentAction.Update();
                }
                else
                {
                    currentAction = null;
                }
            }

            if (currentAction == null)
            {
                currentAction = generateRandomAction();
            }
            return;
        }

        if (currentAction != null)
        {
            if (!currentAction.IsActionDone())
            {
                currentAction.Update();
            }
            else
            {
                currentAction = null;

                //After a move is fully completed check whether the game is finished or not
                if (CheckIfGameIsFinished())
                {
                    FinishGame();
                }
            }
        }

        if (!bGameIsFinished)
        {
            timePassed += Time.deltaTime;
            if ((int)timePassed > seconds)
            {
                seconds = (int)timePassed;
                updateTime(seconds);
            }
        }
        bool bIsPinching = Input.touchCount >= 2;

        if (Input.GetMouseButtonDown(1) && !bIsPinching)
        {
            MainGameLogic.GetMainCamera().GetComponent <UIManager>().OpenGameMenu();
        }
    }