9 public override string ToString()
15 protected virtual bool _ShouldPass(
CardRow source)
21 public virtual bool ContainsTag(
CardRow source,
string str)
23 return source.tag.Contains(str);
29 this.BuildList(this.tags, this.strTag);
30 this.BuildList(this.filters, this.strFilter);
31 if (!this.filterCategory.IsEmpty())
33 foreach (
string text
in this.filterCategory)
35 bool flag = text.StartsWith(
'-');
44 this.categoriesInclude.Add(row);
48 this.isInitialied =
true;
52 public bool Pass(
CardRow source)
54 if (!this.isInitialied)
58 if (source.chance == 0 || source.isOrigin)
62 for (
int i = 0; i < this.tags.Count; i++)
65 if (filterItem.exclude)
67 if (this.ContainsTag(source, filterItem.name))
72 else if (!this.ContainsTag(source, filterItem.name))
77 for (
int j = 0; j < this.filters.Count; j++)
80 if (filterItem2.exclude)
82 if (source.filter.Contains(filterItem2.name))
87 else if (!source.filter.Contains(filterItem2.name))
92 if ((this.isChara && !source.isChara) || (!
this.isChara && source.isChara))
96 if (this.categories.Count > 0)
101 if ((!flag || filterCategory.exclude) &&
EClass.sources.categories.map[source.category].IsChildOf(filterCategory.row))
103 if (filterCategory.exclude)
115 return this._ShouldPass(source);
119 public void BuildList(List<CardFilter.FilterItem> list,
string[] strs)
125 foreach (
string text
in strs)
134 bool flag = text.StartsWith(
"-");
138 name = (flag ? text.Substring(1) : text)
146 public string[] strTag;
149 public string[] strFilter;
152 public string[] filterCategory;
155 public string[] idCard;
170 private bool isInitialied;
196 public enum FilterMode