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); }
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); }
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(); }
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(); }