public MeritInfo(MeritKey key, string name, string effect, string description, int cost, Dictionary <string, Prerequisite> prerequisites, Character character, MeritCategory category, bool requiresParameter, bool isFree, string parameterName, string editorDisplayName) { Key = key; Name = name; Effect = effect; Description = description; Cost = cost; Category = category; RequiresParameter = requiresParameter; IsFree = isFree; // if this merit is free for a character ParameterName = parameterName; EditorDisplayName = editorDisplayName; CategoryName = MeritFactory.GetCategoryName(category); IsRacial = category == MeritCategory.Racial; Prerequisites = prerequisites .ToDictionary(d => d.Key, d => new PrerequisiteInfo(d.Value.Name, d.Value.Func, character)); }
private string RankPrerequisiteError(MeritKey chosenMerit, MeritKey prerequisiteMerit) { return($"{MeritFactory.GetName(chosenMerit)} requires {MeritFactory.GetName(prerequisiteMerit)}."); }
private bool MultiRankMeritMeetsRankPrerequisite(MeritKey chosenMerit, MeritKey prerequisiteMerit) { // ignore if chosen merit is not in list, else check that prerequisite is also in list return(!NonFreeMerits.Any(cm => cm.MeritKey == chosenMerit) || _merits.Any(cm => cm.MeritKey == prerequisiteMerit)); }