Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 private string RankPrerequisiteError(MeritKey chosenMerit, MeritKey prerequisiteMerit)
 {
     return($"{MeritFactory.GetName(chosenMerit)} requires {MeritFactory.GetName(prerequisiteMerit)}.");
 }
Exemplo n.º 3
0
 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));
 }