コード例 #1
0
ファイル: Character.cs プロジェクト: muqg/Battles
        public static void Create()
        {
            List <Character> characters = Game.CurrentPlayer.Characters;

            if (characters.Count < Constants.MaxCharacters)
            {
                Menu.Announce("Create new character");
                while (true)
                {
                    Console.WriteLine($"Choose a name for your character{Constants.BackMessage}:");
                    string name = Command.ParseAlphaCommand();

                    if (name.Equals(Constants.BackCommand))
                    {
                        return;
                    }
                    else if (name.Length < nameLength)
                    {
                        Console.WriteLine("Name must be at least 4 characters long and must contain only letters.\n");
                        continue;
                    }
                    else if (characters.Find(c => c.Name.Equals(name)) != null)
                    {
                        Console.WriteLine("Character with that name already exists.\n");
                        continue;
                    }

                    while (true)
                    {
                        Console.WriteLine("Choose a class:");

                        // Get all classes
                        string[] classNames = CharacterClasses.Select(c => c.Name).ToArray();

                        Menu.ShowOptions(classNames.Select(c => c.SplitCapital()).ToArray()); // Show options to choose from

                        int command = Command.ParseIntCommand();
                        if (command > 0 && command <= classNames.Length)
                        {
                            Type characterClass = Utility.GetType((classNames[command - 1]).ToString());
                            characters.Add(Activator.CreateInstance(characterClass, name) as Character);

                            Console.WriteLine($"Character {name} created.\n");
                            Game.CurrentPlayer.Save();

                            return;
                        }
                        else
                        {
                            Console.WriteLine(Constants.InvalidCommand);
                            continue;
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine($"You have the maximum of {Constants.MaxCharacters} characters created.\n");
            }
        }
コード例 #2
0
        /// <summary>
        /// Returns a list of all used models in the configuration
        /// </summary>
        public List <string> GetUsedModelsNames()
        {
            var needToLoadModels = BluePrints.Values.OfType <IVoxelEntity>().Select(e => e.ModelName).Where(m => !string.IsNullOrEmpty(m)).ToList();

            needToLoadModels.AddRange(CharacterClasses.Select(c => c.ModelName));
            needToLoadModels.AddRange(TreeBluePrints.Select(c => c.SeedModel));
            needToLoadModels = needToLoadModels.Distinct().ToList();
            return(needToLoadModels);
        }