Elin Decompiled Documentation EA 23.285 Nightly
Loading...
Searching...
No Matches
CardFilter Class Reference
Inheritance diagram for CardFilter:
EClass CharaFilter ThingFilter

Classes

class  FilterCategory
 
class  FilterItem
 

Public Types

enum  FilterMode { None , Exclude , Match , Equipped }
 

Public Member Functions

override string ToString ()
 
virtual bool ContainsTag (CardRow source, string str)
 
void Init ()
 
bool Pass (CardRow source)
 
void BuildList (List< FilterItem > list, string[] strs)
 

Public Attributes

string id
 
string[] strTag
 
string[] strFilter
 
string[] filterCategory
 
string[] idCard
 
List< FilterItemtags = new List<FilterItem>()
 
List< FilterItemfilters = new List<FilterItem>()
 
List< FilterCategorycategories = new List<FilterCategory>()
 
List< SourceCategory.RowcategoriesInclude = new List<SourceCategory.Row>()
 
bool isChara
 

Protected Member Functions

virtual bool _ShouldPass (CardRow source)
 

Private Attributes

bool isInitialied
 

Additional Inherited Members

- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 
- Static Public Attributes inherited from EClass
static Core core
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Detailed Description

Definition at line 5 of file CardFilter.cs.

Member Enumeration Documentation

◆ FilterMode

Enumerator
None 
Exclude 
Match 
Equipped 

Definition at line 23 of file CardFilter.cs.

Member Function Documentation

◆ _ShouldPass()

virtual bool CardFilter._ShouldPass ( CardRow  source)
inlineprotectedvirtual

Reimplemented in CharaFilter, and ThingFilter.

Definition at line 58 of file CardFilter.cs.

59 {
60 return true;
61 }

Referenced by Pass().

◆ BuildList()

void CardFilter.BuildList ( List< FilterItem list,
string[]  strs 
)
inline

Definition at line 185 of file CardFilter.cs.

186 {
187 if (strs == null)
188 {
189 return;
190 }
191 foreach (string text in strs)
192 {
193 if (text.Length != 0)
194 {
195 FilterItem filterItem = new FilterItem();
196 _ = text[0];
197 switch (text[0])
198 {
199 case '*':
200 filterItem.supersede = true;
201 filterItem.name = text.Substring(1);
202 break;
203 case '-':
204 filterItem.exclude = true;
205 filterItem.name = text.Substring(1);
206 break;
207 default:
208 filterItem.name = text;
209 break;
210 }
211 list.Add(filterItem);
212 }
213 }
214 }

Referenced by Init().

◆ ContainsTag()

virtual bool CardFilter.ContainsTag ( CardRow  source,
string  str 
)
inlinevirtual

Reimplemented in CharaFilter.

Definition at line 63 of file CardFilter.cs.

64 {
65 return source.tag.Contains(str);
66 }
string[] tag
Definition: RenderRow.cs:58

References RenderRow.tag.

Referenced by Pass().

◆ Init()

void CardFilter.Init ( )
inline

Definition at line 68 of file CardFilter.cs.

69 {
72 if (!filterCategory.IsEmpty())
73 {
74 string[] array = filterCategory;
75 foreach (string text in array)
76 {
77 bool flag = text.StartsWith('-');
78 SourceCategory.Row row = EClass.sources.categories.map[flag ? text.Remove(0, 1) : text];
79 categories.Add(new FilterCategory
80 {
81 exclude = flag,
82 row = row
83 });
84 if (!flag)
85 {
86 categoriesInclude.Add(row);
87 }
88 }
89 }
90 isInitialied = true;
91 }
string[] strFilter
Definition: CardFilter.cs:35
string[] filterCategory
Definition: CardFilter.cs:37
List< FilterCategory > categories
Definition: CardFilter.cs:45
string[] strTag
Definition: CardFilter.cs:33
List< FilterItem > filters
Definition: CardFilter.cs:43
void BuildList(List< FilterItem > list, string[] strs)
Definition: CardFilter.cs:185
List< FilterItem > tags
Definition: CardFilter.cs:41
List< SourceCategory.Row > categoriesInclude
Definition: CardFilter.cs:47
bool isInitialied
Definition: CardFilter.cs:49
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
SourceCategory categories

References BuildList(), categories, SourceManager.categories, categoriesInclude, filterCategory, filters, isInitialied, EClass.sources, strFilter, strTag, and tags.

Referenced by Pass().

◆ Pass()

bool CardFilter.Pass ( CardRow  source)
inline

Definition at line 93 of file CardFilter.cs.

94 {
95 if (!isInitialied)
96 {
97 Init();
98 }
99 if (source.chance == 0 || source.isOrigin)
100 {
101 return false;
102 }
103 bool flag = false;
104 bool flag2 = false;
105 for (int i = 0; i < tags.Count; i++)
106 {
107 FilterItem filterItem = tags[i];
108 if (filterItem.supersede)
109 {
110 if (ContainsTag(source, filterItem.name))
111 {
112 flag = true;
113 break;
114 }
115 }
116 else if (filterItem.exclude)
117 {
118 if (ContainsTag(source, filterItem.name))
119 {
120 return false;
121 }
122 }
123 else
124 {
125 flag2 = true;
126 if (!flag && ContainsTag(source, filterItem.name))
127 {
128 flag = true;
129 }
130 }
131 }
132 if (flag2 && !flag)
133 {
134 return false;
135 }
136 for (int j = 0; j < filters.Count; j++)
137 {
138 FilterItem filterItem2 = filters[j];
139 if (filterItem2.supersede)
140 {
141 break;
142 }
143 if (filterItem2.exclude)
144 {
145 if (source.filter.Contains(filterItem2.name))
146 {
147 return false;
148 }
149 }
150 else if (!source.filter.Contains(filterItem2.name))
151 {
152 return false;
153 }
154 }
155 if ((isChara && !source.isChara) || (!isChara && source.isChara))
156 {
157 return false;
158 }
159 if (categories.Count > 0)
160 {
161 bool flag3 = false;
162 foreach (FilterCategory category in categories)
163 {
164 if ((!flag3 || category.exclude) && EClass.sources.categories.map[source.category].IsChildOf(category.row))
165 {
166 if (category.exclude)
167 {
168 return false;
169 }
170 flag3 = true;
171 }
172 }
173 if (!flag3)
174 {
175 return false;
176 }
177 }
178 if (!_ShouldPass(source))
179 {
180 return false;
181 }
182 return true;
183 }
virtual bool _ShouldPass(CardRow source)
Definition: CardFilter.cs:58
void Init()
Definition: CardFilter.cs:68
virtual bool ContainsTag(CardRow source, string str)
Definition: CardFilter.cs:63
bool isChara
Definition: CardFilter.cs:51
bool isChara
Definition: CardRow.cs:55
bool isOrigin
Definition: CardRow.cs:52
string[] filter
Definition: CardRow.cs:31
string category
Definition: RenderRow.cs:46
int chance
Definition: RenderRow.cs:24

References _ShouldPass(), categories, SourceManager.categories, RenderRow.category, RenderRow.chance, ContainsTag(), CardFilter.FilterItem.exclude, CardFilter.FilterCategory.exclude, CardRow.filter, filters, Init(), isChara, CardRow.isChara, isInitialied, CardRow.isOrigin, CardFilter.FilterItem.name, CardFilter.FilterCategory.row, EClass.sources, CardFilter.FilterItem.supersede, and tags.

Referenced by SpawnList.CreateMaster().

◆ ToString()

override string CardFilter.ToString ( )
inline

Definition at line 53 of file CardFilter.cs.

54 {
55 return id;
56 }
string id
Definition: CardFilter.cs:31

References id.

Member Data Documentation

◆ categories

List<FilterCategory> CardFilter.categories = new List<FilterCategory>()

Definition at line 45 of file CardFilter.cs.

Referenced by Init(), and Pass().

◆ categoriesInclude

List<SourceCategory.Row> CardFilter.categoriesInclude = new List<SourceCategory.Row>()

Definition at line 47 of file CardFilter.cs.

Referenced by Init(), and SpawnList.Select().

◆ filterCategory

string [] CardFilter.filterCategory

Definition at line 37 of file CardFilter.cs.

Referenced by Init().

◆ filters

List<FilterItem> CardFilter.filters = new List<FilterItem>()

Definition at line 43 of file CardFilter.cs.

Referenced by Init(), and Pass().

◆ id

string CardFilter.id

Definition at line 31 of file CardFilter.cs.

Referenced by ToString().

◆ idCard

string [] CardFilter.idCard

Definition at line 39 of file CardFilter.cs.

Referenced by SpawnList.CreateMaster().

◆ isChara

bool CardFilter.isChara

Definition at line 51 of file CardFilter.cs.

Referenced by CharaFilter.CharaFilter(), and Pass().

◆ isInitialied

bool CardFilter.isInitialied
private

Definition at line 49 of file CardFilter.cs.

Referenced by Init(), and Pass().

◆ strFilter

string [] CardFilter.strFilter

Definition at line 35 of file CardFilter.cs.

Referenced by Init().

◆ strTag

string [] CardFilter.strTag

Definition at line 33 of file CardFilter.cs.

Referenced by Init().

◆ tags

List<FilterItem> CardFilter.tags = new List<FilterItem>()

Definition at line 41 of file CardFilter.cs.

Referenced by Init(), Pass(), and SpawnList.Select().


The documentation for this class was generated from the following file: