public void GoToMenu() { try { fileManager.EndLog(); } catch { Debug.Log("Tried to close a non-existant filestream"); } titleManager.enabled = true; boardBehaviour.winner = 0; endGameInfoController.enabled = false; inMenu = true; menuState = MenuState.main; menuOptions1 = MenuOptions1.start; menuOptions2 = MenuOptions2.pvp; camera.transform.position = new Vector3(50F, 50F, 20); camera.transform.rotation = Quaternion.Euler(0, 0, 0); cameraController.rotationMultiplier = 0; gameManager.EndGame(); boardBehaviour.ResetBoard(); updateNeeded = true; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; }
// Use this for initialization void Start() { titleManager = title.GetComponent <TitleManager> (); gameManager = gameController.GetComponent <GameManager> (); fileManager = GameLogger.GetComponent <FileManager> (); boardBehaviour = boardManager.GetComponent <BoardBehaviour> (); endGameInfoController = endgameInfo.GetComponent <EndgameInfoController> (); cameraController = camera.GetComponent <MoveCamera> (); menuState = MenuState.main; menuOptions1 = MenuOptions1.start; menuOptions2 = MenuOptions2.pvp; menuOptions3 = MenuOptions3.load1; aiChoice1 = AiChoiceOptions.GreedyAI; aiChoice2 = AiChoiceOptions.GreedyAI; updateNeeded = true; button1 = button1Object.GetComponent <ButtonController> (); button2 = button2Object.GetComponent <ButtonController> (); button3 = button3Object.GetComponent <ButtonController> (); button4 = button4Object.GetComponent <ButtonController> (); button5 = button5Object.GetComponent <ButtonController> (); pageViewer = pageIndicator.GetComponent <ButtonController> (); version = versionInfo.GetComponent <ButtonController> (); currentLoadPage = 0; button1.selected = true; titleManager.enabled = true; inMenu = true; camera.transform.position = new Vector3(50F, 504F, 20); camera.transform.rotation = Quaternion.Euler(0, 0, 0); cameraController.rotationMultiplier = 0; }
// Update is called once per frame void Update() { if (inMenu && Input.GetKeyDown(KeyCode.Escape) && (menuState == MenuState.selectGameType || menuState == MenuState.loadGame)) { menuState = MenuState.main; updateNeeded = true; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; } else if (inMenu && Input.GetKeyDown(KeyCode.Escape) && (menuState == MenuState.selectPVA || menuState == MenuState.selectAVA1)) { menuState = MenuState.selectGameType; updateNeeded = true; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; } else if (inMenu && Input.GetKeyDown(KeyCode.Escape) && (menuState == MenuState.selectAVA2)) { menuState = MenuState.selectAVA1; updateNeeded = true; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; } else if (inMenu && Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } if (inMenu) { switch (menuState) { case MenuState.main: if (updateNeeded) { titleManager.enabled = true; version.CreateButton(0.5F, 0.1F, "Reversi V0.1a, ©1988 Samuel Kinnett Software"); button1.CreateButton(0.5F, 0.5F, "Start Game"); button2.CreateButton(0.5F, 0.4F, "Load Game"); button3.CreateButton(0.5F, 0.3F, "Exit Game"); button4.enabled = false; button5.enabled = false; menuOptions1 = MenuOptions1.start; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; pageViewer.enabled = false; updateNeeded = false; } break; case MenuState.selectGameType: if (updateNeeded) { titleManager.enabled = false; version.enabled = false; button1.CreateButton(0.5F, 0.6F, "Player v Player"); button2.CreateButton(0.5F, 0.5F, "Player v AI"); button3.CreateButton(0.5F, 0.4F, "AI v AI"); button4.enabled = false; button5.enabled = false; menuOptions2 = MenuOptions2.pvp; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; updateNeeded = false; } break; case MenuState.loadGame: if (updateNeeded) { titleManager.enabled = false; version.enabled = false; string output; GameInfo[] names = fileManager.GetLogNames(currentLoadPage); button1.enabled = false; button2.enabled = false; button3.enabled = false; button4.enabled = false; button5.enabled = false; if (names [0].gameType > -1) { output = ReturnGameInfo(names [0]); button1.CreateButton(0.5F, 0.65F, output); button1.SetScale(0.25F); } if (names [1].gameType > -1) { output = ReturnGameInfo(names [1]); button2.CreateButton(0.5F, 0.55F, output); button2.SetScale(0.25F); } if (names [2].gameType > -1) { output = ReturnGameInfo(names [2]); button3.CreateButton(0.5F, 0.45F, output); button3.SetScale(0.25F); } if (names [3].gameType > -1) { output = ReturnGameInfo(names [3]); button4.CreateButton(0.5F, 0.35F, output); button4.SetScale(0.25F); } if (names [4].gameType > -1) { output = ReturnGameInfo(names [4]); button5.CreateButton(0.5F, 0.25F, output); button5.SetScale(0.25F); } menuOptions3 = MenuOptions3.load1; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; highestLoadPage = fileManager.GetNumberOfPages(); pageViewer.CreateButton(0.5F, 0.1F, "Page " + (currentLoadPage + 1) + " / " + (highestLoadPage + 1)); updateNeeded = false; } break; case MenuState.selectPVA: if (updateNeeded) { titleManager.enabled = false; version.enabled = false; button1.CreateButton(0.5F, 0.8F, "Select Opponent"); button2.CreateButton(0.5F, 0.6F, "Greedy AI"); button3.CreateButton(0.5F, 0.5F, "Monte-Carlo AI"); button4.enabled = false; button5.enabled = false; aiChoice1 = AiChoiceOptions.GreedyAI; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; updateNeeded = false; } break; case MenuState.selectAVA1: if (updateNeeded) { titleManager.enabled = false; version.enabled = false; button1.CreateButton(0.5F, 0.8F, "Select First AI"); button2.CreateButton(0.5F, 0.6F, "Greedy AI"); button3.CreateButton(0.5F, 0.5F, "Monte-Carlo AI"); button4.enabled = false; button5.enabled = false; aiChoice1 = AiChoiceOptions.GreedyAI; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; updateNeeded = false; } break; case MenuState.selectAVA2: if (updateNeeded) { titleManager.enabled = false; version.enabled = false; button1.CreateButton(0.5F, 0.8F, "Select Second AI"); button2.CreateButton(0.5F, 0.6F, "Greedy AI"); button3.CreateButton(0.5F, 0.5F, "Monte-Carlo AI"); button4.enabled = false; button5.enabled = false; aiChoice2 = AiChoiceOptions.GreedyAI; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; updateNeeded = false; } break; } } else { if (Input.GetKeyDown(KeyCode.Escape) && boardBehaviour.winner != 0) { inMenu = true; endGameInfoController.enabled = false; GoToMenu(); } else { //TODO: Add code for a pause menu } } /* * if (start.clicked) { * start.clickHandled = true; * menuState = MenuState.selectGameType; * updateNeeded = true; * } * if (exit.clicked) { * exit.clickHandled = true; * Application.Quit (); * } */ if (inMenu && (Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.S))) { switch (menuState) { case MenuState.main: switch (menuOptions1) { case MenuOptions1.start: menuOptions1 = MenuOptions1.load; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; case MenuOptions1.load: menuOptions1 = MenuOptions1.exit; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; break; } break; case MenuState.selectGameType: switch (menuOptions2) { case MenuOptions2.pvp: menuOptions2 = MenuOptions2.pva; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; case MenuOptions2.pva: menuOptions2 = MenuOptions2.ava; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; break; } break; case MenuState.loadGame: switch (menuOptions3) { case MenuOptions3.load1: if (button2.enabled) { menuOptions3 = MenuOptions3.load2; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; } break; case MenuOptions3.load2: if (button3.enabled) { menuOptions3 = MenuOptions3.load3; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; } break; case MenuOptions3.load3: if (button4.enabled) { menuOptions3 = MenuOptions3.load4; button1.selected = false; button2.selected = false; button3.selected = false; button4.selected = true; button5.selected = false; } break; case MenuOptions3.load4: if (button5.enabled) { menuOptions3 = MenuOptions3.load5; button1.selected = false; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = true; } break; } break; case MenuState.selectPVA: switch (aiChoice1) { case AiChoiceOptions.GreedyAI: aiChoice1 = AiChoiceOptions.MonteCarloAI; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; break; } break; case MenuState.selectAVA1: switch (aiChoice1) { case AiChoiceOptions.GreedyAI: aiChoice1 = AiChoiceOptions.MonteCarloAI; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; break; } break; case MenuState.selectAVA2: switch (aiChoice2) { case AiChoiceOptions.GreedyAI: aiChoice2 = AiChoiceOptions.MonteCarloAI; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; break; } break; } } if (inMenu && (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.W))) { switch (menuState) { case MenuState.main: switch (menuOptions1) { case MenuOptions1.load: menuOptions1 = MenuOptions1.start; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; break; case MenuOptions1.exit: menuOptions1 = MenuOptions1.load; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; } break; case MenuState.selectGameType: switch (menuOptions2) { case MenuOptions2.pva: menuOptions2 = MenuOptions2.pvp; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; break; case MenuOptions2.ava: menuOptions2 = MenuOptions2.pva; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; } break; case MenuState.loadGame: switch (menuOptions3) { case MenuOptions3.load2: if (button1.enabled) { menuOptions3 = MenuOptions3.load1; button1.selected = true; button2.selected = false; button3.selected = false; button4.selected = false; button5.selected = false; } break; case MenuOptions3.load3: if (button2.enabled) { menuOptions3 = MenuOptions3.load2; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; } break; case MenuOptions3.load4: if (button3.enabled) { menuOptions3 = MenuOptions3.load3; button1.selected = false; button2.selected = false; button3.selected = true; button4.selected = false; button5.selected = false; } break; case MenuOptions3.load5: if (button4.enabled) { menuOptions3 = MenuOptions3.load4; button1.selected = false; button2.selected = false; button3.selected = false; button4.selected = true; button5.selected = false; } break; } break; case MenuState.selectPVA: switch (aiChoice1) { case AiChoiceOptions.MonteCarloAI: aiChoice1 = AiChoiceOptions.GreedyAI; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; } break; case MenuState.selectAVA1: switch (aiChoice1) { case AiChoiceOptions.MonteCarloAI: aiChoice1 = AiChoiceOptions.GreedyAI; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; } break; case MenuState.selectAVA2: switch (aiChoice2) { case AiChoiceOptions.MonteCarloAI: aiChoice2 = AiChoiceOptions.GreedyAI; button1.selected = false; button2.selected = true; button3.selected = false; button4.selected = false; button5.selected = false; break; } break; } } if (inMenu && (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Space))) { switch (menuState) { case MenuState.main: switch (menuOptions1) { case MenuOptions1.start: button1.selected = false; menuState = MenuState.selectGameType; updateNeeded = true; break; case MenuOptions1.load: button2.selected = false; menuState = MenuState.loadGame; updateNeeded = true; break; case MenuOptions1.exit: Application.Quit(); break; } break; case MenuState.selectGameType: switch (menuOptions2) { case MenuOptions2.pvp: StartGame(0); break; case MenuOptions2.pva: menuState = MenuState.selectPVA; updateNeeded = true; //StartGame (1); break; case MenuOptions2.ava: menuState = MenuState.selectAVA1; updateNeeded = true; //StartGame (2); break; } break; case MenuState.loadGame: switch (menuOptions3) { case MenuOptions3.load1: fileManager.OpenLog(currentLoadPage * 5); StartGame(3); break; case MenuOptions3.load2: fileManager.OpenLog((currentLoadPage * 5) + 1); StartGame(3); break; case MenuOptions3.load3: fileManager.OpenLog((currentLoadPage * 5) + 2); StartGame(3); break; case MenuOptions3.load4: fileManager.OpenLog((currentLoadPage * 5) + 3); StartGame(3); break; case MenuOptions3.load5: fileManager.OpenLog((currentLoadPage * 5) + 4); StartGame(3); break; } break; case MenuState.selectPVA: StartGame(1, (int)aiChoice1 + 1); break; case MenuState.selectAVA1: menuState = MenuState.selectAVA2; updateNeeded = true; break; case MenuState.selectAVA2: StartGame(2, (int)aiChoice1 + 1, (int)aiChoice2 + 1); break; } } if (inMenu && (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.A)) && menuState == MenuState.loadGame) { if (currentLoadPage > 0) { currentLoadPage--; updateNeeded = true; } } if (inMenu && (Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKeyDown(KeyCode.D)) && menuState == MenuState.loadGame) { if (currentLoadPage < highestLoadPage) { currentLoadPage++; updateNeeded = true; } } }