private static IMonster InstantiatePlayer()
        {
            ConsoleExtras.ColorLine("Enter a class: " + string.Join(", ", Enum.GetNames(typeof(Race))));
            IMonster player = GetMonster(ConsoleExtras.GetRaceInput());

            ConsoleExtras.ColorLine("\nWrite stat inputs for your monster.", ConsoleColor.Cyan);
            ConsoleExtras.ColorLine("TIP: if input is outside range, it will be automatically put within range", ConsoleColor.DarkYellow);
            GetStatInfo(player, out int health, out int defence, out int power, out int speed);

            return(player.Initialize(health, defence, power, speed));
        }
        public IMonster MakeCompletelyRandomMonster()
        {
            IMonster monster = MonsterRegistry.GetRandomMonster();

            // Get a random monster out of the 4 types, and name out of the pre-made list
            MonsterTypes type = (MonsterTypes)random.Next(4);
            string       name = names[random.Next(names.Count)];

            monster.Initialize(name, type);

            return(monster);
        }
        private static IMonster InstantiateEnemy(Race race)
        {
            var  ran    = new Random();
            int  length = Enum.GetValues(typeof(Race)).Length;
            Race randomRace;

            do
            {
                randomRace = (Race)ran.Next(0, length);
            }while (randomRace == race);
            IMonster enemy = GetMonster(randomRace);

            ConsoleExtras.ColorLine($"\nWrite stat inputs for enemy monster ({enemy.Name}).", ConsoleColor.Red);
            ConsoleExtras.ColorLine("TIP: if input is outside range, it will be automatically put within range", ConsoleColor.DarkYellow);
            GetStatInfo(enemy, out int health, out int defence, out int power, out int speed);

            return(enemy.Initialize(health, defence, power, speed));
        }