private void StartFinishAnim() { Reset(); bStartedFinishAnimation = true; magicCube = GameObject.FindGameObjectWithTag("MagicCube"); MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.FINISH_CANVAS); }
private void OnMouseDrag() { if (!MainGameLogic.IsMainGame()) { return; } if (!manager.IsPerformingAction()) { if (startCubeTile == null || startFace == null) { startCubeTile = manager.QueryFirstCubeTile(); startFace = manager.QueryMagicCubeFace(); if (startCubeTile != null && startFace != null) { Vector3 temp = manager.GetWorldPos(); if (temp != Vector3.positiveInfinity) { mouseDragStartPos = temp; } } } if (startCubeTile != null && startFace != null) { Vector3 temp = manager.GetWorldPos(); if (!float.IsInfinity(temp.x)) { currentDragPos = temp; } } } }
/// <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); }
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); }
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); } }
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); }
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); } }
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); }
/// <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); }
private void OnApplicationQuit() { if (MainGameLogic.IsMainGame() || MainGameLogic.IsGameMenu()) { if (manager != null && !manager.IsPerformingAction()) { manager.Save(); } } }
/// <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); }
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); }
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); }
public void Serialize(MainGameLogic game) { try { BinaryFormatter formatter = new BinaryFormatter(); using (Stream st = File.Create(@".\Saves\SaveGame.bin")) { formatter.Serialize(st, game); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
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); }
public void Deserialize(ref MainGameLogic game) { game = new MainGameLogic(); try { BinaryFormatter formatter = new BinaryFormatter(); game = null; using (Stream st = File.OpenRead(@".\Saves\SaveGame.bin")) { game = (MainGameLogic)formatter.Deserialize(st); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
// Start is called before the first frame update void Start() { bContinueGameIsAvailable = CheckForLoadGameAvailable(); if (!bContinueGameIsAvailable) { continueText.color = notAvailableColor; } else { continueText.color = availableColor; } continueButton.interactable = bContinueGameIsAvailable; ChangeValue(cubeSizeSlider.value); MainGameLogic.StartGame(); }
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(); } }
// Update is called once per frame void Update() { if (!MainGameLogic.IsMainGame()) { return; } if (manager != null) { manager.Update(); } if (Input.GetKeyDown(KeyCode.Home)) { if (MainGameLogic.IsMainGame() || MainGameLogic.IsGameMenu()) { manager.Save(); } } }
// 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; } } }
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(); }
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(); }
// 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(); } } } }
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(); } }
/// <summary> /// Game menu functionalities /// </summary> public void CloseGameMenu() { gameMenuCanvas.SetActive(false); MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_GAME); }
public MainWindow() { InitializeComponent(); Logic = new MainGameLogic(this); MainGrid.Children.Add(new MainMenu(this)); }
// Update is called once per frame void Update() { if (!MainGameLogic.IsMainGame()) { return; } if (Input.touchCount == 2) { Touch touchZero = Input.GetTouch(0); Touch touchOne = Input.GetTouch(1); Vector2 touchZeroPrevPos = touchZero.position - touchZero.deltaPosition; Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition; float prevTouchDeltaMag = (touchZeroPrevPos - touchOnePrevPos).magnitude; float touchDeltaMag = (touchZero.position - touchOne.position).magnitude; float deltaMagnitudeDiff = prevTouchDeltaMag - touchDeltaMag; if (deltaMagnitudeDiff < 0) { ZoomIn(); } else if (deltaMagnitudeDiff > 0) { ZoomOut(); } } if (bStartedRotation) { if (Input.GetMouseButtonUp(0)) { Reset(); } } if (bStartedRotation) { if (Input.touchCount == 2) { Reset(); } Vector3 difference = startMousePos - Input.mousePosition; difference = new Vector3(-difference.y, difference.x, 0); distanceMoved += Vector3.Distance(currentMousePos, Input.mousePosition); distanceMoved = (startMousePos.x - Input.mousePosition.x) + (startMousePos.y - Input.mousePosition.y); if (distanceMoved > easeInDistance) { distanceMoved = easeInDistance; } else if (distanceMoved < -easeInDistance) { distanceMoved = -easeInDistance; } //Debug.Log(distanceMoved); currentMousePos = Input.mousePosition; float delta = 0.0f; if (Math.Abs(distanceMoved) < easeInDistance) { delta = Math.Abs(distanceMoved) / easeInDistance; delta = easeInCurve.Evaluate(delta); } else { delta = 1.0f; } float actualCameraMoveSpeed = delta * cameraSpeed; if (!bLockedAxis) { if (Math.Abs(difference.x) > easeInDistance / 4) { bRotateX = true; bLockedAxis = true; } if (Math.Abs(difference.y) > easeInDistance / 4) { bRotateY = true; bLockedAxis = true; } } if (bRotateX) { if (difference.x > 0) { transform.RotateAround(rotationTarget.transform.position, -transform.right, Time.deltaTime * actualCameraMoveSpeed); } else { transform.RotateAround(rotationTarget.transform.position, transform.right, Time.deltaTime * actualCameraMoveSpeed); } } else if (bRotateY) { if (difference.y > 0) { transform.RotateAround(rotationTarget.transform.position, -transform.up, Time.deltaTime * actualCameraMoveSpeed); } else { transform.RotateAround(rotationTarget.transform.position, transform.up, Time.deltaTime * actualCameraMoveSpeed); } } } else { float scroll = Input.GetAxis("Mouse ScrollWheel"); if (scroll > 0f) { // scroll up ZoomIn(); } else if (scroll < 0f) { // scroll down ZoomOut(); } } }
/// <summary> /// Finish Canvas functionalities /// </summary> public void CloseFinishCanvas() { finishCanvas.SetActive(false); MainGameLogic.SetCurrentActiveElement(MainGameLogic.CurrentActiveElement.MAIN_GAME); }
public void FinishDialogue() { bStartedFinishAnimation = false; GetComponent <Canvas>().enabled = true; MainGameLogic.GetMainCamera().GetComponent <UIManager>().EnableMenuButton(); }