From 029e852721dd119c43376495b551351fd04867fc Mon Sep 17 00:00:00 2001 From: Alex Huddleston Date: Thu, 24 May 2018 18:35:05 -0500 Subject: [PATCH] Refactored some Manager scripts into a namespace. Added ending condition, replay. --- .../Assets/Scenes/BoardScene.unity | Bin 0 -> 51640 bytes .../Assets/Scenes/BoardScene.unity.meta | 8 + Angels and Demons/Assets/Scenes/Main.unity | Bin 37544 -> 31384 bytes .../Assets/Scenes/Main.unity.meta | 5 +- .../Assets/Scripts/AngelsDemons.cs | 576 ++++++++++++++++++ ...meManager.cs.meta => AngelsDemons.cs.meta} | 2 +- .../Assets/Scripts/BoardManager.cs | 268 ++------ .../Assets/Scripts/GameManager.cs | 245 -------- .../Assets/Scripts/PlayerManager.cs | 43 -- .../Assets/Scripts/SceneLoader.cs | 23 + ...yerManager.cs.meta => SceneLoader.cs.meta} | 2 +- .../ProjectSettings/GraphicsSettings.asset | Bin 4442 -> 4430 bytes 12 files changed, 670 insertions(+), 502 deletions(-) create mode 100644 Angels and Demons/Assets/Scenes/BoardScene.unity create mode 100644 Angels and Demons/Assets/Scenes/BoardScene.unity.meta create mode 100644 Angels and Demons/Assets/Scripts/AngelsDemons.cs rename Angels and Demons/Assets/Scripts/{GameManager.cs.meta => AngelsDemons.cs.meta} (83%) delete mode 100644 Angels and Demons/Assets/Scripts/GameManager.cs delete mode 100644 Angels and Demons/Assets/Scripts/PlayerManager.cs create mode 100644 Angels and Demons/Assets/Scripts/SceneLoader.cs rename Angels and Demons/Assets/Scripts/{PlayerManager.cs.meta => SceneLoader.cs.meta} (83%) diff --git a/Angels and Demons/Assets/Scenes/BoardScene.unity b/Angels and Demons/Assets/Scenes/BoardScene.unity new file mode 100644 index 0000000000000000000000000000000000000000..11e88f8f00259acf9edc7c7c2caef4a20b485e74 GIT binary patch literal 51640 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 literal 0 HcmV?d00001 diff --git a/Angels and Demons/Assets/Scenes/BoardScene.unity.meta b/Angels and Demons/Assets/Scenes/BoardScene.unity.meta new file mode 100644 index 0000000..addfccc --- /dev/null +++ b/Angels and Demons/Assets/Scenes/BoardScene.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23203d52fcae84949a0ef84a04c62222 +timeCreated: 1460724850 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Scenes/Main.unity b/Angels and Demons/Assets/Scenes/Main.unity index 6d4a3e23df11431ac2a22c9c22dd99add733640f..13f06a072ee38e71b2b75d429e8cfff312d4db9e 100644 GIT binary patch delta 5234 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 delta 9298 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 0 && bc.x < (numberofspaces - 1)) + { + if(bc.y > 0) + { + /* + Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y - 1) + ); */ + tempbc = bc; + tempbc.y -= 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(3, wsi); + } + if(bc.y < (numberofspaces - 1)) + { + /* + Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y + 1) + ); */ + tempbc = bc; + tempbc.y += 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(1, wsi); + } + /* + Debug.Log( + "changing spaces:" + + (bc.x - 1) + " " + (bc.y) + "\t" + + (bc.x + 1) + " " + (bc.y) + ); */ + tempbc = bc; + + tempbc.x -= 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(0, wsi); + + tempbc.x += 2; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(2, wsi); + } + else if(bc.y > 0 && bc.y < (numberofspaces - 1)) + { + if(bc.x == 0) + { + /* Debug.Log( + "changing space:" + + (bc.x + 1) + " " + (bc.y) + ); */ + tempbc = bc; + tempbc.x += 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(2, wsi); + } + if(bc.x == (numberofspaces - 1)) + { + /* Debug.Log( + "changing space:" + + (bc.x - 1) + " " + (bc.y) + ); */ + tempbc = bc; + tempbc.x -= 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(0, wsi); + } + /* Debug.Log( + "changing spaces:" + + (bc.x) + " " + (bc.y - 1) + "\t" + + (bc.x) + " " + (bc.y + 1) + ); */ + tempbc = bc; + + tempbc.y -= 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(3, wsi); + + tempbc.y += 2; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(1, wsi); + } + else + { + if(bc.x == 0) + { + /* Debug.Log( + "changing space:" + + (bc.x + 1) + " " + (bc.y) + ); */ + tempbc = bc; + tempbc.x += 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(2, wsi); + } + if(bc.x == (numberofspaces - 1)) + { + /* Debug.Log( + "changing space:" + + (bc.x - 1) + " " + (bc.y) + ); */ + tempbc = bc; + tempbc.x -= 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(0, wsi); + } + if(bc.y > 0) + { + /* Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y - 1) + ); */ + tempbc = bc; + tempbc.y -= 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(3, wsi); + } + if(bc.y < (numberofspaces - 1)) + { + /* Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y + 1) + ); */ + tempbc = bc; + tempbc.y += 1; + wsi = Board.ConvertImageIndex(tempbc); + Board.SetSpaces(1, wsi); + } + } + } + + /* After determining which spaces are legal to change based on the board's limitations, + * this function is called to determine what sprites those spaces will change to, given + * current state of the game and the game's rule set. + */ + private static void DetermineSpritesChanged(WhiteSpace[] whitespaces) + { + int currentplayerturn = (turn -1) % 2; + + for(int i = 0; i < Board.GetSpacesLength(); ++i) + { + // If this is a legal move. No need for an else statement, since if it's not, + // it will already be ignored by the BoardManager. + if(Board.GetSpaces(i) >= 0 && Board.GetSpaces(i) < whitespaces.Length) + { + // Check what space's sprite is currently set to, then set sprites[i] + // to the sprite to be changed to, according to the game's rules. + switch(whitespaces[Board.GetSpaces(i)].spriteindex) + { + case 0: + if(currentplayerturn != 0) + { + Board.SetSprites(i, 2); + } + break; + case 1: + if(currentplayerturn != 1) + { + Board.SetSprites(i, 2); + } + break; + case 2: + Board.SetSprites(i, currentplayerturn); + break; + default: + Debug.Log("Illegal sprite index!"); + return; + } + } + } + } + + /* This should be called to increment the turn counter at the end of every turn. + * This is at the end because if an illegal move is made or some other rule is + * broken, it will keep the turn counter from being incremented unnecessarily. + * E.g. don't increment if the turn isn't actually over. + */ + private static void EndTurn() + { + ++turn; + } + } + + /* Class that will be used to define functions and needed static + * variables that determine how the enemy AI will play. + * Most likely going to be a simple min-max a/b pruning function + * with multiple options for difficulty. + */ + public class BotLogic + { + // TODO + } + + /* Class that will be used to handle various menu navigations, + * UI displays, setting up games, ending games, keeping track + * of scores, and other UI and navigation functionality. + */ + public class MenuNav + { + // TODO + } +} \ No newline at end of file diff --git a/Angels and Demons/Assets/Scripts/GameManager.cs.meta b/Angels and Demons/Assets/Scripts/AngelsDemons.cs.meta similarity index 83% rename from Angels and Demons/Assets/Scripts/GameManager.cs.meta rename to Angels and Demons/Assets/Scripts/AngelsDemons.cs.meta index c3d4a1f..b245408 100644 --- a/Angels and Demons/Assets/Scripts/GameManager.cs.meta +++ b/Angels and Demons/Assets/Scripts/AngelsDemons.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 81f6a3ad727884d16b4bd5390a90a3c1 +guid: a7a29e0ee33814ef68cb41b3ae42ae3c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Angels and Demons/Assets/Scripts/BoardManager.cs b/Angels and Demons/Assets/Scripts/BoardManager.cs index 92f99ef..3d50bf0 100644 --- a/Angels and Demons/Assets/Scripts/BoardManager.cs +++ b/Angels and Demons/Assets/Scripts/BoardManager.cs @@ -1,8 +1,6 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; using UnityEngine.UI; - +using AngelsDemons; public class BoardManager : MonoBehaviour { @@ -34,21 +32,12 @@ public class BoardManager : MonoBehaviour public Sprite demonsprite; public Sprite emptysprite; - // Should later be defined in a separate namespace. - public struct WhiteSpace - { - public Image img; - public int spriteindex; - }; - // Keep references of all the space GameObjects. private Button[] blackspaces = new Button[61]; private WhiteSpace[] whitespaces = new WhiteSpace[60]; - // Keep references for when MakeMove() is called. - private int[] spaces = new int[4]; // Indexes relative to whitespaces[] of the spaces being changed. - private int[] sprites = new int[4]; // Which sprite to change the space to. - public bool movemade = false; // Fix to keep ChangeSpaces() from being called every frame. + // GameOver assets. Just to have a way to end the game. + public GameObject gameoverobjects; // Use this for initialization void Start () @@ -60,8 +49,13 @@ public class BoardManager : MonoBehaviour spacespacing = ((canvaswidth - canvasspacing)/11f); SpawnInitialBoard(); - ResetSpaces(); - ResetSprites(); + + Board.ResetSpaces(); + Board.ResetSprites(); + + // This should later be handled by Player.StartGame through MenuNav. + Board.StartGame(); + GameLogic.ResetTurn(); } // Grab the current canvas dimentions, used for dynamic resizing checks. @@ -73,25 +67,6 @@ public class BoardManager : MonoBehaviour return output; } - // Reset the spaces array to all -1 values. This means they will be ignored if they somehow - // get passed to a function that tries to change spaces. - private void ResetSpaces() - { - for(int i = 0; i < spaces.Length; ++i) - { - spaces[i] = -1; - } - } - - // See above, but for the sprites array. - private void ResetSprites() - { - for(int i = 0; i < sprites.Length; ++i) - { - sprites[i] = -1; - } - } - // Function call to return one Instantiated Button object. // Should be changed along with SpawnWhiteSpace to instead spawn the object and attach them // to a defined struct that can also hold the index of the spawned object. This will allow @@ -199,25 +174,25 @@ public class BoardManager : MonoBehaviour } // Change the passed in space indexes' sprites to the specified sprites. - private void ChangeSpaces(int[] spaces, int[] sprites) + private void ChangeSpaces() { - for(int i = 0; i < spaces.Length; ++i) + for(int i = 0; i < Board.GetSpacesLength(); ++i) { - if(spaces[i] >= 0 && spaces[i] < whitespaces.Length) + if(Board.GetSpaces(i) >= 0 && Board.GetSpaces(i) < whitespaces.Length) { - switch(sprites[i]) + switch(Board.GetSprites(i)) { case 0: - whitespaces[spaces[i]].img.sprite = angelsprite; - whitespaces[spaces[i]].spriteindex = 0; + whitespaces[Board.GetSpaces(i)].img.sprite = angelsprite; + whitespaces[Board.GetSpaces(i)].spriteindex = 0; break; case 1: - whitespaces[spaces[i]].img.sprite = demonsprite; - whitespaces[spaces[i]].spriteindex = 1; + whitespaces[Board.GetSpaces(i)].img.sprite = demonsprite; + whitespaces[Board.GetSpaces(i)].spriteindex = 1; break; case 2: - whitespaces[spaces[i]].img.sprite = emptysprite; - whitespaces[spaces[i]].spriteindex = 2; + whitespaces[Board.GetSpaces(i)].img.sprite = emptysprite; + whitespaces[Board.GetSpaces(i)].spriteindex = 2; break; default: break; @@ -227,10 +202,10 @@ public class BoardManager : MonoBehaviour // After a move has been made, since right now spaces are checked every frame, // change all spaces[] values to -1 to avoid sprites being updated every frame. - ResetSpaces(); - ResetSprites(); + Board.ResetSpaces(); + Board.ResetSprites(); - movemade = false; + Board.SetMoveMade(false); } /* Update is called once per frame @@ -246,9 +221,10 @@ public class BoardManager : MonoBehaviour UpdateBoardScale(); } - if(movemade) + if(Board.GetMoveMade() && !Board.IsGameOver()) { - ChangeSpaces(spaces, sprites); + ChangeSpaces(); + CheckGameOver(); } } @@ -256,171 +232,45 @@ public class BoardManager : MonoBehaviour // the GameManager.MakeMove() function with the necessary parameters. public void ButtonAction(Button b) { - int buttonindex = 0; - int.TryParse(b.name.Replace("Move Selection(Clone)", ""), out buttonindex); - - Vector2 boardcoords = ConvertButtonIndex(buttonindex); - - // This is completely incorrect and will most likely need a switch case of some kind in the future. - //Debug.Log("Board coordinates: " + boardcoords.x + " " + boardcoords.y); - - // Temporarily hardcoded. Should later be changed to a GameManager function call that determines - // what to change spaces to. - GameManager.MakeMove(boardcoords, numberofspaces, whitespaces, spaces, sprites, ref movemade); - } - - // Convert a given button index in the blackspaces[] array to board coordinates. - // These need to made more modular in the future to support - // different board sizes. - public static Vector2 ConvertButtonIndex(int i) - { - Vector2 temp; - temp.x = (i*2)%11; - temp.y = 0; - - switch(i) + if(!Board.IsGameOver()) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - return temp; - case 6: - case 7: - case 8: - case 9: - case 10: - temp.y = 1; - return temp; - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - temp.y = 2; - return temp; - case 17: - case 18: - case 19: - case 20: - case 21: - temp.y = 3; - return temp; - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - temp.y = 4; - return temp; - case 28: - case 29: - case 30: - case 31: - case 32: - temp.y = 5; - return temp; - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - temp.y = 6; - return temp; - case 39: - case 40: - case 41: - case 42: - case 43: - temp.y = 7; - return temp; - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - temp.y = 8; - return temp; - case 50: - case 51: - case 52: - case 53: - case 54: - temp.y = 9; - return temp; - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - temp.y = 10; - return temp; - default: - return temp; + int buttonindex = 0; + int.TryParse(b.name.Replace("Move Selection(Clone)", ""), out buttonindex); + + Vector2 boardcoords = Board.ConvertButtonIndex(buttonindex); + + // This is completely incorrect and will most likely need a switch case of some kind in the future. + //Debug.Log("Board coordinates: " + boardcoords.x + " " + boardcoords.y); + + // Temporarily hardcoded. Should later be changed to a GameManager function call that determines + // what to change spaces to. + GameLogic.MakeMove(boardcoords, numberofspaces, whitespaces); + } + else + { + Debug.Log("The game is over."); } } - // Convert a given set of board coordinates to the corresponding whitespaces[] array index. - public static int ConvertImageIndex(Vector2 bc) + public void CheckGameOver() { - int i = 0; + int turn = GameLogic.GetTurn(); + int turnlimit = GameLogic.GetTurnLimit(); - switch(Mathf.RoundToInt(bc.y)) + if(turn > turnlimit) { - case 0: - i = (Mathf.RoundToInt(bc.x) - 1)/2; - break; - case 1: - i = (Mathf.RoundToInt(bc.x))/2; - i += 5; - break; - case 2: - i = (Mathf.RoundToInt(bc.x) - 1)/2; - i += 11; - break; - case 3: - i = (Mathf.RoundToInt(bc.x))/2; - i += 16; - break; - case 4: - i = (Mathf.RoundToInt(bc.x) - 1)/2; - i += 22; - break; - case 5: - i = (Mathf.RoundToInt(bc.x))/2; - i += 27; - break; - case 6: - i = (Mathf.RoundToInt(bc.x) - 1)/2; - i += 33; - break; - case 7: - i = (Mathf.RoundToInt(bc.x))/2; - i += 38; - break; - case 8: - i = (Mathf.RoundToInt(bc.x) - 1)/2; - i += 44; - break; - case 9: - i = (Mathf.RoundToInt(bc.x))/2; - i += 49; - break; - case 10: - i = (Mathf.RoundToInt(bc.x) - 1)/2; - i += 55; - break; - default: - break; + if(!gameoverobjects.activeSelf) + { + gameoverobjects.SetActive(true); + } + Board.EndGame(); + } + else + { + if(gameoverobjects.activeSelf) + { + gameoverobjects.SetActive(false); + } } - - return i; } } diff --git a/Angels and Demons/Assets/Scripts/GameManager.cs b/Angels and Demons/Assets/Scripts/GameManager.cs deleted file mode 100644 index 4021831..0000000 --- a/Angels and Demons/Assets/Scripts/GameManager.cs +++ /dev/null @@ -1,245 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UI; - -public class GameManager : MonoBehaviour -{ - - // Private turn counter. - private static int turn = 1; - - // (currently unused) Static function that returns the current turn count. - public static int GetTurn() - { - return turn; - } - - /* Used to reset the turn counter at the beginning of every game. - * Needs to be at the beginning because I want to continue displaying - * or having the turn counter saved until I can be sure there is a new - * game starting. - */ - public static void ResetTurn() - { - turn = 1; - } - - /* This function is directly called by the BoardManager when a move is attempted, - * and determines what spaces will be changed to what based on the game's rules. - * This is goverened by the following: - * - Which player's turn it is (which sprite to change to) - * - What the space's sprite already is - * - Whether the move is legal based on the game's rules - */ - public static void MakeMove(Vector2 bc, int numberofspaces, BoardManager.WhiteSpace[] whitespaces, int[] spaces, int[] sprites, ref bool movemade) - { - // Function call to determine which spaces will be changed, see definition below. - DetermineSpacesChanged(bc, numberofspaces, spaces); - - // Function call to determine which sprites the spaces will change to, see definition below. - DetermineSpritesChanged(whitespaces, spaces, sprites); - - // Increment the turn counter. - EndTurn(); - - // Tell BoardManager that the move is finished. - movemade = true; - } - - /* This function determines which spaces *can* be changed based on the board's - * limitations. - */ - private static void DetermineSpacesChanged(Vector2 bc, int numberofspaces, int[] spaces) - { - // Used to check adjacent spaces without changing the bc reference passed in. - Vector2 tempbc = bc; - - // "White Space Index", holder variable to save the return of converting from - // board coordinates to the equivalent index in the whitespaces array. - int wsi = 0; - - /* Intricate set of if/elseif statements to determine which moves are - * legate according to the board's size values. - */ - if(bc.x > 0 && bc.x < (numberofspaces - 1)) - { - if(bc.y > 0) - { - /* - Debug.Log( - "changing space:" + - (bc.x) + " " + (bc.y - 1) - ); */ - tempbc = bc; - tempbc.y -= 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[3] = wsi; - } - if(bc.y < (numberofspaces - 1)) - { - /* - Debug.Log( - "changing space:" + - (bc.x) + " " + (bc.y + 1) - ); */ - tempbc = bc; - tempbc.y += 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[1] = wsi; - } - /* - Debug.Log( - "changing spaces:" + - (bc.x - 1) + " " + (bc.y) + "\t" + - (bc.x + 1) + " " + (bc.y) - ); */ - tempbc = bc; - - tempbc.x -= 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[0] = wsi; - - tempbc.x += 2; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[2] = wsi; - } - else if(bc.y > 0 && bc.y < (numberofspaces - 1)) - { - if(bc.x == 0) - { - /* Debug.Log( - "changing space:" + - (bc.x + 1) + " " + (bc.y) - ); */ - tempbc = bc; - tempbc.x += 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[2] = wsi; - } - if(bc.x == (numberofspaces - 1)) - { - /* Debug.Log( - "changing space:" + - (bc.x - 1) + " " + (bc.y) - ); */ - tempbc = bc; - tempbc.x -= 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[0] = wsi; - } - /* Debug.Log( - "changing spaces:" + - (bc.x) + " " + (bc.y - 1) + "\t" + - (bc.x) + " " + (bc.y + 1) - ); */ - tempbc = bc; - - tempbc.y -= 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[3] = wsi; - - tempbc.y += 2; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[1] = wsi; - } - else - { - if(bc.x == 0) - { - /* Debug.Log( - "changing space:" + - (bc.x + 1) + " " + (bc.y) - ); */ - tempbc = bc; - tempbc.x += 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[2] = wsi; - } - if(bc.x == (numberofspaces - 1)) - { - /* Debug.Log( - "changing space:" + - (bc.x - 1) + " " + (bc.y) - ); */ - tempbc = bc; - tempbc.x -= 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[0] = wsi; - } - if(bc.y > 0) - { - /* Debug.Log( - "changing space:" + - (bc.x) + " " + (bc.y - 1) - ); */ - tempbc = bc; - tempbc.y -= 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[3] = wsi; - } - if(bc.y < (numberofspaces - 1)) - { - /* Debug.Log( - "changing space:" + - (bc.x) + " " + (bc.y + 1) - ); */ - tempbc = bc; - tempbc.y += 1; - wsi = BoardManager.ConvertImageIndex(tempbc); - spaces[1] = wsi; - } - } - } - - /* After determining which spaces are legal to change based on the board's limitations, - * this function is called to determine what sprites those spaces will change to, given - * current state of the game and the game's rule set. - */ - private static void DetermineSpritesChanged(BoardManager.WhiteSpace[] whitespaces, int[] spaces, int[] sprites) - { - int currentplayerturn = (turn -1) % 2; - - for(int i = 0; i < spaces.Length; ++i) - { - // If this is a legal move. No need for an else statement, since if it's not, - // it will already be ignored by the BoardManager. - if(spaces[i] >= 0 && spaces[i] < whitespaces.Length) - { - // Check what space's sprite is currently set to, then set sprites[i] - // to the sprite to be changed to, according to the game's rules. - switch(whitespaces[spaces[i]].spriteindex) - { - case 0: - if(currentplayerturn != 0) - { - sprites[i] = 2; - } - break; - case 1: - if(currentplayerturn != 1) - { - sprites[i] = 2; - } - break; - case 2: - sprites[i] = currentplayerturn; - break; - default: - Debug.Log("Illegal sprite index!"); - return; - } - } - } - } - - /* This should be called to increment the turn counter at the end of every turn. - * This is at the end because if an illegal move is made or some other rule is - * broken, it will keep the turn counter from being incremented unnecessarily. - * E.g. don't increment if the turn isn't actually over. - */ - private static void EndTurn() - { - ++turn; - } -} diff --git a/Angels and Demons/Assets/Scripts/PlayerManager.cs b/Angels and Demons/Assets/Scripts/PlayerManager.cs deleted file mode 100644 index a3095ae..0000000 --- a/Angels and Demons/Assets/Scripts/PlayerManager.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class PlayerManager : MonoBehaviour -{ - // Private players variable, used to keep track of which player has which spaces. - // Should later be defined as a struct in a separate namespace. - private static int[] players = new int[2]; - - // Function call to return what the indexed player's space choice is. - public static int getPlayer(int n) - { - return players[n]; - } - - /* Function called at the beginning of a game to set the player spaces - * and reset the turn counter. - * - * This function should later be called by a manager script of some - * kind that handles menu navigation/logistics between games and other - * activity outside of the main game. - */ - public static void StartGame(int playerchoice) - { - players[0] = playerchoice; - - switch(playerchoice) - { - case 1: - players[1] = 2; - break; - case 2: - players[1] = 1; - break; - default: - Debug.Log("Invalid Player Choice!"); - return; - } - - GameManager.ResetTurn(); - } -} diff --git a/Angels and Demons/Assets/Scripts/SceneLoader.cs b/Angels and Demons/Assets/Scripts/SceneLoader.cs new file mode 100644 index 0000000..4e145a2 --- /dev/null +++ b/Angels and Demons/Assets/Scripts/SceneLoader.cs @@ -0,0 +1,23 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; +using AngelsDemons; + +public class SceneLoader : MonoBehaviour +{ + public void StartGame() + { + SceneManager.LoadScene("BoardScene"); + } + + public void ExitGame() + { + SceneManager.LoadScene("Main"); + } + + public void RestartGame() + { + SceneManager.LoadScene(SceneManager.GetActiveScene().name); + } +} diff --git a/Angels and Demons/Assets/Scripts/PlayerManager.cs.meta b/Angels and Demons/Assets/Scripts/SceneLoader.cs.meta similarity index 83% rename from Angels and Demons/Assets/Scripts/PlayerManager.cs.meta rename to Angels and Demons/Assets/Scripts/SceneLoader.cs.meta index 2cc79ad..a8335c7 100644 --- a/Angels and Demons/Assets/Scripts/PlayerManager.cs.meta +++ b/Angels and Demons/Assets/Scripts/SceneLoader.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 923eab5932fe2482e8c5b73ca1e5b0b4 +guid: bc269e21b79164282ab2daa2c07af210 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Angels and Demons/ProjectSettings/GraphicsSettings.asset b/Angels and Demons/ProjectSettings/GraphicsSettings.asset index bf6d3a6bf19d805d7ae90dba91d430021454bbab..e813a1ce0047967dce881a13bf90a5c3babbbb7a 100644 GIT binary patch delta 33 pcmcbmbWVwbfr0-A1B0O7MvepgjCPYx@}Fkpm^@V=c`}P&7yznJ3Hks4 delta 39 vcmX@7bW4eYfr0-A1A}1HMvepgj9!yZ@}FkpoIF(^nU#@&fuU*gM}b%X=l~0j