Beispiel #1
0
        private string GetPlayerName()
        {
            string name;

            ConsoleRenderer.ForegroundColor(ConsoleColor.Green);
            ConsoleRenderer.Write("Type player's name : ");
            ConsoleRenderer.ResetColor();
            ConsoleRenderer.WriteLine("(including only small and capital letters and between 2 and 10 characters)");
            while (true)
            {
                try
                {
                    name = ConsoleInputReader.ReadLine();

                    if (!PlayerNamePattern.IsMatch(name))
                    {
                        throw new ArgumentException("Invalid name. Try again.");
                    }

                    break;
                }
                catch (ArgumentException ex)
                {
                    ConsoleRenderer.WriteLine(ex.Message);
                }
            }

            ConsoleRenderer.ForegroundColor(ConsoleColor.Green);
            ConsoleRenderer.WriteLine("Player name set to: {0}", name);
            ConsoleRenderer.ResetColor();

            return(name);
        }
Beispiel #2
0
        private IRace GetPlayerRace()
        {
            ConsoleRenderer.ForegroundColor(ConsoleColor.Green);
            ConsoleRenderer.WriteLine("Choose a race : ");
            ConsoleRenderer.ResetColor();

            for (int i = 0; i < this.availableRaces.Count; i++)
            {
                IRace currentRace = Activator.CreateInstance(this.availableRaces[i]) as IRace;
                ConsoleRenderer.WriteLine("{0}: {1} - (Health: {2}, Damage: {3})",
                                          i + 1, this.availableRaces[i].Name, currentRace.Health, currentRace.Damage);
            }

            int index;

            while (true)
            {
                try
                {
                    string raceNumber = ConsoleInputReader.ReadLine();

                    if (!int.TryParse(raceNumber, out index))
                    {
                        throw new ArgumentException("Please enter a valid race number.");
                    }

                    index = int.Parse(raceNumber);

                    if (index < 1 || index > this.availableRaces.Count)
                    {
                        throw new ArgumentOutOfRangeException("Please enter a valid race number.");
                    }

                    break;
                }

                catch (ArgumentOutOfRangeException ex)
                {
                    ConsoleRenderer.WriteLine(ex.Message);
                }
                catch (ArgumentException ex)
                {
                    ConsoleRenderer.WriteLine(ex.Message);
                }
            }

            ConsoleRenderer.ForegroundColor(ConsoleColor.Green);
            ConsoleRenderer.WriteLine("Race chosen: {0}", this.availableRaces[index - 1].Name);
            ConsoleRenderer.ResetColor();

            return(Activator.CreateInstance(this.availableRaces[index - 1]) as IRace);
        }
Beispiel #3
0
        public void ListItems()
        {
            var fullSlots = this.SlotList.Where(x => !x.IsEmpty);

            foreach (ISlot currentSlot in fullSlots)
            {
                ConsoleRenderer.WriteLine(currentSlot.GameItem.ToString());
            }

            ConsoleRenderer.ForegroundColor(ConsoleColor.Green);
            ConsoleRenderer.WriteLine("Empty slots: {0}",
                                      this.SlotList.Count() - fullSlots.Count());
            ConsoleRenderer.ResetColor();
        }
Beispiel #4
0
        public override void Execute()
        {
            ConsoleRenderer.BackgroundColor(ConsoleColor.Green);
            ConsoleRenderer.ForegroundColor(ConsoleColor.Red);
            for (int i = 0; i < this.Engine.Map.Height; i++)
            {
                for (int j = 0; j < this.Engine.Map.Width; j++)
                {
                    switch (this.Engine.Map.Matrix[i, j])
                    {
                    case 'H':
                    case 'B':
                        ConsoleRenderer.ForegroundColor(ConsoleColor.Blue);
                        break;

                    case 'P':
                        ConsoleRenderer.ForegroundColor(ConsoleColor.White);
                        break;

                    case 'A':
                    case 'S':
                        ConsoleRenderer.ForegroundColor(ConsoleColor.DarkCyan);
                        break;

                    case '~':
                        ConsoleRenderer.BackgroundColor(ConsoleColor.DarkBlue);
                        ConsoleRenderer.ForegroundColor(ConsoleColor.Cyan);
                        break;

                    default:
                        ConsoleRenderer.ForegroundColor(ConsoleColor.Red);
                        break;
                    }
                    ConsoleRenderer.Write(this.Engine.Map.Matrix[i, j].ToString());
                }

                ConsoleRenderer.WriteLine(string.Empty);
            }

            ConsoleRenderer.ResetColor();
        }