Exemplo n.º 1
0
        public static string MoveCursorOnPitch(string onTeam = null)
        {
            while (true)
            {
                if (!LastTileHadPlayer && HoldingPlayer != null)
                {
                    PitchHandler.Pitch[Position[0], Position[1]].StoredPlayer = null;
                }
                ConsoleKey input    = Console.ReadKey().Key;
                int[]      movement = InputHandler.Move8(input);
                if (input == ConsoleKey.Enter)
                {
                    if (HoldingPlayer != null && PitchHandler.Pitch[Position[0], Position[1]].StoredPlayer == null)
                    {
                        PitchHandler.Pitch[Position[0], Position[1]].StoredPlayer = HoldingPlayer;
                        HoldingPlayer.Position = new int[] { Position[0], Position[1] };
                        HoldingPlayer          = null;
                        continue;
                    }
                    return(InputHandler.ChoiceMenu(TurnHandler.AvailableActions));
                }
                if (onTeam == null)
                {
                    Position[0] = (Position[0] + movement[0]) % PitchHandler.Pitch.GetLength(0);
                    if (Position[0] < 0)
                    {
                        Position[0] = (PitchHandler.Pitch.GetLength(0) - 1);
                    }
                }
                else if (onTeam == "Home")
                {
                    Position[0] = (Position[0] + movement[0]) % 13;
                    if (Position[0] < 0)
                    {
                        Position[0] = 12;
                    }
                }
                else if (onTeam == "Away")
                {
                    Position[0] = ((Position[0] + movement[0] - 13) % 13) + 13;
                    if (Position[0] < 13)
                    {
                        Position[0] = (PitchHandler.Pitch.GetLength(0) - 1);
                    }
                }
                Position[1] = (Position[1] + movement[1]) % PitchHandler.Pitch.GetLength(1);
                if (Position[1] < 0)
                {
                    Position[1] = (PitchHandler.Pitch.GetLength(1) - 1);
                }


                if (PitchHandler.Pitch[Position[0], Position[1]].StoredPlayer != null)
                {
                    LastTileHadPlayer = true;
                    RenderHandler.RenderPitch();
                    PitchHandler.Pitch[Position[0], Position[1]].StoredPlayer.WritePlayerData();
                }
                else if (HoldingPlayer != null)
                {
                    LastTileHadPlayer = false;
                    PitchHandler.Pitch[Position[0], Position[1]].StoredPlayer = HoldingPlayer;
                    RenderHandler.RenderPitch();
                }
                else
                {
                    RenderHandler.RenderPitch();
                }
            }
        }