Exemplo n.º 1
0
 public TraitList(string title, TraitTypeFilter filter, params string[] names)
 {
     this.title = title;
     this.filter = filter;
     this.names = names.ToList();
 }
Exemplo n.º 2
0
 private static bool filterPasses(TraitTypeFilter filter, GurpsProperty property)
 {
     switch (filter)
     {
         case TraitTypeFilter.Locked: return true;
         case TraitTypeFilter.Skills:
             return property is AbstractSkill && !((AbstractSkill)property).category;
         case TraitTypeFilter.Advantages:
             return property is Advantage && isAdvantageNonNegative((Advantage)property);
         case TraitTypeFilter.Disadvantages:
             return property is Advantage && !isAdvantageNonNegative((Advantage)property);
     }
     throw null;
 }
Exemplo n.º 3
0
 private IEnumerable<GurpsProperty> internalSearch(string query, TraitTypeFilter filter, GurpsCharacter character)
 {
     var dontInclude = new HashSet<string>(character.layout.getNames());
     var words = query.ToLower().Split(' ');
     foreach (GurpsProperty property in nameToThing.Values)
     {
         if (!filterPasses(filter, property))
             continue;
         if (dontInclude.Contains(property.name))
             continue;
         var nameToLower = property.DisplayName.ToLower();
         if (words.All((word) => nameToLower.Contains(word)))
             yield return property;
     }
 }
Exemplo n.º 4
0
 public List<GurpsProperty> search(string query, TraitTypeFilter filter, GurpsCharacter character)
 {
     return new List<GurpsProperty>(order(internalSearch(query, filter, character)));
 }