public void PieceSelect(GameObject seletedObject)
        {
            //Validate piece can be clicked
            if (CurrentPlayer.SelectedPiece == null && seletedObject.name.Contains(CurrentPlayer.TeamColor))
            {
                int selection = (int)char.GetNumericValue(seletedObject.name[seletedObject.name.Length - 1]);
                CurrentPlayer.SelectPiece(selection);

                Coordinates location     = CurrentPlayer.SelectedPiece.CurrentLocation;
                BoardSpace  currentSpace = Board.Spaces[location.Section][location.Row][location.Position];

                //Enable neighboring spaces for selection
                foreach (var adjacentSpace in currentSpace.AdjacentSpaces)
                {
                    GameObject target = GameObject.Find("Space." + adjacentSpace.Section + "." + adjacentSpace.Row + "." + adjacentSpace.Position);
                    target.GetComponent <PolygonCollider2D>().enabled = true;
                }

                //Update Text
                GameObject header = GameObject.Find("SelectionHeader");
                header.GetComponent <TextMeshProUGUI>().SetText("Piece " + selection);
                GameObject details = GameObject.Find("SelectionDetails");
                details.GetComponent <TextMeshProUGUI>().SetText("Gold on Board:\n   " + CurrentPlayer.SelectedPiece.Gold);
            }
        }
        public void SpaceSelect(GameObject selectedObject)
        {
            //Disable board spaces
            Coordinates currentLocation   = CurrentPlayer.SelectedPiece.CurrentLocation;
            BoardSpace  currentBoardSpace = Board.Spaces[currentLocation.Section][currentLocation.Row][currentLocation.Position];

            foreach (var adjacentSpace in currentBoardSpace.AdjacentSpaces)
            {
                GameObject target = GameObject.Find("Space." + adjacentSpace.Section + "." + adjacentSpace.Row + "." + adjacentSpace.Position);
                target.GetComponent <PolygonCollider2D>().enabled = false;
            }

            //Move selectedPiece to new location
            GameObject currentPiece = GameObject.Find(CurrentPlayer.TeamColor + CurrentPlayer.GetPieceNumber());

            currentPiece.gameObject.transform.localPosition = selectedObject.transform.localPosition;

            //Disable selectedPiece for remainder of turn
            currentPiece.GetComponent <CircleCollider2D>().enabled = false;

            //Update GameBoard
            //Naming convention for spaces is "Space.X.Y.Z"
            Coordinates newLocation = new Coordinates(
                (int)char.GetNumericValue(selectedObject.name[6]),
                (int)char.GetNumericValue(selectedObject.name[8]),
                (int)char.GetNumericValue(selectedObject.name[10])
                );

            CurrentPlayer.SelectedPiece.Move(newLocation);

            //Deposit on-board Gold if the new location is at the center of the map
            if (newLocation.Row == 0)
            {
                AddPlayerGold();
            }

            //Check for Asteroid in new location
            BoardSpace newBoardSpace = Board.Spaces[newLocation.Section][newLocation.Row][newLocation.Position];
            Asteroid   foundAsteroid = newBoardSpace.asteroid;
            int        goldCollected = 0;

            if (foundAsteroid != null)
            {
                GameObject asteroidUI = GameObject.Find("Ast" + foundAsteroid.Number);

                GameObject header = GameObject.Find("SelectionHeader");
                header.GetComponent <TextMeshProUGUI>().SetText("Asteroid " + foundAsteroid.Number);

                //If Asteroid is newly Discovered or captured from other player, claim it
                if (foundAsteroid.ControllingPlayer != CurrentPlayer.Team)
                {
                    asteroidUI.gameObject.transform.localPosition    = selectedObject.transform.localPosition;
                    asteroidUI.GetComponent <MeshRenderer>().enabled = true;

                    foundAsteroid.ControllingPlayer = CurrentPlayer.Team;
                    CurrentPlayer.ClaimAsteroid(foundAsteroid);

                    GameObject details = GameObject.Find("SelectionDetails");
                    details.GetComponent <TextMeshProUGUI>().SetText("Claimed by " + CurrentPlayer.TeamColor + "\n" +
                                                                     "Gold remaining:\n   " + foundAsteroid.GetRemainingGold());
                }
                //Otherwise already controlled by player, collect accumlated gold
                else
                {
                    goldCollected = foundAsteroid.TakeGold();
                    CurrentPlayer.SelectedPiece.CollectGold(goldCollected);

                    GameObject details = GameObject.Find("SelectionDetails");
                    details.GetComponent <TextMeshProUGUI>().SetText("Gold collected:\n   " + goldCollected + "\n" +
                                                                     "Gold remaining:\n   " + foundAsteroid.GetRemainingGold());
                }
            }

            UpdatePlayerTurn();
        }