Example #1
0
        private static string GenerateName()
        {
            GrammarRequest req = default(GrammarRequest);

            req.Rules.AddRange(QuestGen.QuestNameRulesReadOnly);
            foreach (KeyValuePair <string, string> item in QuestGen.QuestNameConstantsReadOnly)
            {
                req.Constants.Add(item.Key, item.Value);
            }
            QuestGenUtility.AddSlateVars(ref req);
            Predicate <string> predicate = (string x) => !Find.QuestManager.QuestsListForReading.Any((Quest y) => y.name == x);

            if (QuestGen.Root.nameMustBeUnique)
            {
                return(NameGenerator.GenerateName(req, predicate, appendNumberIfNameUsed: false, "questName"));
            }
            string text = null;
            int    i;

            for (i = 0; i < 20; i++)
            {
                text = NameGenerator.GenerateName(req, null, appendNumberIfNameUsed: false, "questName");
                if (predicate(text))
                {
                    break;
                }
            }
            if (i == 20)
            {
                Log.Warning("Generated duplicate quest name. QuestScriptDef: " + QuestGen.Root + ". Quest name: " + text);
            }
            return(text);
        }