Elin Decompiled Documentation EA 23.312 Nightly Patch 4
Loading...
Searching...
No Matches
SourceChara.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceChara : SourceDataString<SourceChara.Row>
5{
6 [Serializable]
7 public class Row : CardRow
8 {
9 public int _id;
10
11 public string aka_JP;
12
13 public string aka;
14
15 public int[] tiles_snow;
16
17 public string hostility;
18
19 public string biome;
20
21 public string race;
22
23 public string job;
24
25 public string tactics;
26
27 public string aiIdle;
28
29 public int[] aiParam;
30
31 public string[] actCombat;
32
33 public string[] mainElement;
34
35 public string equip;
36
37 public string[] gachaFilter;
38
39 public string tone;
40
41 public string[] actIdle;
42
43 public string bio;
44
45 public string faith;
46
47 public string[] works;
48
49 public string[] hobbies;
50
51 public string idText;
52
53 public string moveAnime;
54
55 public string[] recruitItems;
56
57 public bool staticSkin;
58
59 public int[] _tiles_snow;
60
61 public int skinAntiSpider;
62
63 [NonSerialized]
65
66 [NonSerialized]
67 public string name_L;
68
69 [NonSerialized]
70 public string detail_L;
71
72 [NonSerialized]
73 public string aka_L;
74
75 public override bool UseAlias => false;
76
77 public override string GetAlias => "n";
78
80 {
81 get
82 {
84 if (row == null)
85 {
86 SourceRace.Row obj = base.sources.races.map.TryGetValue(race) ?? base.sources.races.map["norland"];
87 SourceRace.Row row2 = obj;
88 _race_row = obj;
89 row = row2;
90 }
91 return row;
92 }
93 }
94
95 public override string RecipeID => id;
96
97 public override string GetSearchName(bool jp)
98 {
99 object obj;
100 if (!jp)
101 {
102 obj = _nameSearch;
103 if (obj == null)
104 {
105 return _nameSearch = (name.StartsWith("*") ? aka : name).ToLower();
106 }
107 }
108 else
109 {
110 obj = _nameSearchJP ?? (_nameSearchJP = (name_JP.StartsWith("*") ? GetText("aka") : GetText()).ToLower());
111 }
112 return (string)obj;
113 }
114
115 public override void SetTiles()
116 {
117 base.SetTiles();
118 staticSkin = HasTag(CTAG.staticSkin);
119 if (!renderData || !renderData.pass)
120 {
121 return;
122 }
123 if (_tiles_snow == null || _tiles_snow.Length != tiles_snow.Length)
124 {
125 _tiles_snow = new int[tiles_snow.Length];
126 for (int i = 0; i < tiles_snow.Length; i++)
127 {
128 _tiles_snow[i] = tiles_snow[i] / 100 * (int)renderData.pass.pmesh.tiling.x + tiles_snow[i] % 100;
129 }
130 }
131 skinAntiSpider = ((staticSkin && HasTag(CTAG.antiSpider)) ? 1 : 0);
132 }
133
134 public override string GetName()
135 {
136 string text = GetText();
137 text = text.Replace("#ele5", "").Replace("#ele4", "").Replace("#ele3", "")
138 .Replace("#ele2", "")
139 .Replace("#ele", "");
140 if (text == "*r")
141 {
142 text = GetText("aka");
143 }
144 if (text[0] == ' ')
145 {
146 text = text.TrimStart(' ');
147 }
148 return text.Replace(" ", " ");
149 }
150 }
151
152 public static readonly IReadOnlyDictionary<string, int> RowMapping;
153
154 public static readonly IReadOnlyDictionary<string, string> TypeMapping;
155
156 public Dictionary<string, Row> _rows = new Dictionary<string, Row>();
157
158 public static Row rowDefaultPCC;
159
160 public override string[] ImportFields => new string[1] { "aka" };
161
162 public override Row CreateRow()
163 {
164 Row obj = new Row();
165 obj.id = SourceData.GetString(0);
166 obj._id = SourceData.GetInt(1);
167 obj.name_JP = SourceData.GetString(2);
168 obj.name = SourceData.GetString(3);
169 obj.aka_JP = SourceData.GetString(4);
170 obj.aka = SourceData.GetString(5);
171 obj.idActor = SourceData.GetStringArray(6);
172 obj.sort = SourceData.GetInt(7);
173 obj.size = SourceData.GetIntArray(8);
174 obj._idRenderData = SourceData.GetString(9);
175 obj.tiles = SourceData.GetIntArray(10);
176 obj.tiles_snow = SourceData.GetIntArray(11);
177 obj.colorMod = SourceData.GetInt(12);
178 obj.components = SourceData.GetStringArray(13);
179 obj.defMat = SourceData.GetString(14);
180 obj.LV = SourceData.GetInt(15);
181 obj.chance = SourceData.GetInt(16);
182 obj.quality = SourceData.GetInt(17);
183 obj.hostility = SourceData.GetString(18);
184 obj.biome = SourceData.GetString(19);
185 obj.tag = SourceData.GetStringArray(20);
186 obj.trait = SourceData.GetStringArray(21);
187 obj.race = SourceData.GetString(22);
188 obj.job = SourceData.GetString(23);
189 obj.tactics = SourceData.GetString(24);
190 obj.aiIdle = SourceData.GetString(25);
191 obj.aiParam = SourceData.GetIntArray(26);
192 obj.actCombat = SourceData.GetStringArray(27);
193 obj.mainElement = SourceData.GetStringArray(28);
194 obj.elements = Core.ParseElements(SourceData.GetStr(29));
195 obj.equip = SourceData.GetString(30);
196 obj.loot = SourceData.GetStringArray(31);
197 obj.category = SourceData.GetString(32);
198 obj.filter = SourceData.GetStringArray(33);
199 obj.gachaFilter = SourceData.GetStringArray(34);
200 obj.tone = SourceData.GetString(35);
201 obj.actIdle = SourceData.GetStringArray(36);
202 obj.lightData = SourceData.GetString(37);
203 obj.idExtra = SourceData.GetString(38);
204 obj.bio = SourceData.GetString(39);
205 obj.faith = SourceData.GetString(40);
206 obj.works = SourceData.GetStringArray(41);
207 obj.hobbies = SourceData.GetStringArray(42);
208 obj.idText = SourceData.GetString(43);
209 obj.moveAnime = SourceData.GetString(44);
210 obj.factory = SourceData.GetStringArray(45);
211 obj.components = SourceData.GetStringArray(46);
212 obj.recruitItems = SourceData.GetStringArray(47);
213 obj.detail_JP = SourceData.GetString(48);
214 obj.detail = SourceData.GetString(49);
215 return obj;
216 }
217
218 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
219 {
220 Row obj = new Row();
221 obj.id = SourceData.GetString(mapping["id"]);
222 obj._id = SourceData.GetInt(mapping["_id"]);
223 obj.name_JP = SourceData.GetString(mapping["name_JP"]);
224 obj.name = SourceData.GetString(mapping["name"]);
225 obj.aka_JP = SourceData.GetString(mapping["aka_JP"]);
226 obj.aka = SourceData.GetString(mapping["aka"]);
227 obj.idActor = SourceData.GetStringArray(mapping["idActor"]);
228 obj.sort = SourceData.GetInt(mapping["sort"]);
229 obj.size = SourceData.GetIntArray(mapping["size"]);
230 obj._idRenderData = SourceData.GetString(mapping["_idRenderData"]);
231 obj.tiles = SourceData.GetIntArray(mapping["tiles"]);
232 obj.tiles_snow = SourceData.GetIntArray(mapping["tiles_snow"]);
233 obj.colorMod = SourceData.GetInt(mapping["colorMod"]);
234 obj.components = SourceData.GetStringArray(mapping["components"]);
235 obj.defMat = SourceData.GetString(mapping["defMat"]);
236 obj.LV = SourceData.GetInt(mapping["LV"]);
237 obj.chance = SourceData.GetInt(mapping["chance"]);
238 obj.quality = SourceData.GetInt(mapping["quality"]);
239 obj.hostility = SourceData.GetString(mapping["hostility"]);
240 obj.biome = SourceData.GetString(mapping["biome"]);
241 obj.tag = SourceData.GetStringArray(mapping["tag"]);
242 obj.trait = SourceData.GetStringArray(mapping["trait"]);
243 obj.race = SourceData.GetString(mapping["race"]);
244 obj.job = SourceData.GetString(mapping["job"]);
245 obj.tactics = SourceData.GetString(mapping["tactics"]);
246 obj.aiIdle = SourceData.GetString(mapping["aiIdle"]);
247 obj.aiParam = SourceData.GetIntArray(mapping["aiParam"]);
248 obj.actCombat = SourceData.GetStringArray(mapping["actCombat"]);
249 obj.mainElement = SourceData.GetStringArray(mapping["mainElement"]);
250 obj.elements = Core.ParseElements(SourceData.GetStr(mapping["elements"]));
251 obj.equip = SourceData.GetString(mapping["equip"]);
252 obj.loot = SourceData.GetStringArray(mapping["loot"]);
253 obj.category = SourceData.GetString(mapping["category"]);
254 obj.filter = SourceData.GetStringArray(mapping["filter"]);
255 obj.gachaFilter = SourceData.GetStringArray(mapping["gachaFilter"]);
256 obj.tone = SourceData.GetString(mapping["tone"]);
257 obj.actIdle = SourceData.GetStringArray(mapping["actIdle"]);
258 obj.lightData = SourceData.GetString(mapping["lightData"]);
259 obj.idExtra = SourceData.GetString(mapping["idExtra"]);
260 obj.bio = SourceData.GetString(mapping["bio"]);
261 obj.faith = SourceData.GetString(mapping["faith"]);
262 obj.works = SourceData.GetStringArray(mapping["works"]);
263 obj.hobbies = SourceData.GetStringArray(mapping["hobbies"]);
264 obj.idText = SourceData.GetString(mapping["idText"]);
265 obj.moveAnime = SourceData.GetString(mapping["moveAnime"]);
266 obj.factory = SourceData.GetStringArray(mapping["factory"]);
267 obj.components = SourceData.GetStringArray(mapping["components"]);
268 obj.recruitItems = SourceData.GetStringArray(mapping["recruitItems"]);
269 obj.detail_JP = SourceData.GetString(mapping["detail_JP"]);
270 obj.detail = SourceData.GetString(mapping["detail"]);
271 return obj;
272 }
273
274 public override void SetRow(Row r)
275 {
276 map[r.id] = r;
277 }
278
279 public override IReadOnlyDictionary<string, int> GetRowMapping()
280 {
281 return RowMapping;
282 }
283
284 public override IReadOnlyDictionary<string, string> GetTypeMapping()
285 {
286 return TypeMapping;
287 }
288
289 public override void BackupPref()
290 {
291 SourceAsset._SavePrefs("prefs_auto");
292 _rows.Clear();
293 foreach (Row row in rows)
294 {
295 _rows[row.id] = row;
296 }
297 }
298
299 public override void RestorePref()
300 {
301 foreach (Row row in rows)
302 {
303 row.pref = _rows.TryGetValue(row.id)?.pref ?? new SourcePref();
304 }
305 }
306
307 public override void ValidatePref()
308 {
309 foreach (Row row in rows)
310 {
311 row.pref.Validate();
312 }
313 }
314
315 static SourceChara()
316 {
317 Dictionary<string, int> dictionary = new Dictionary<string, int>();
318 dictionary["id"] = 0;
319 dictionary["_id"] = 1;
320 dictionary["name_JP"] = 2;
321 dictionary["name"] = 3;
322 dictionary["aka_JP"] = 4;
323 dictionary["aka"] = 5;
324 dictionary["idActor"] = 6;
325 dictionary["sort"] = 7;
326 dictionary["size"] = 8;
327 dictionary["_idRenderData"] = 9;
328 dictionary["tiles"] = 10;
329 dictionary["tiles_snow"] = 11;
330 dictionary["colorMod"] = 12;
331 dictionary["components"] = 13;
332 dictionary["defMat"] = 14;
333 dictionary["LV"] = 15;
334 dictionary["chance"] = 16;
335 dictionary["quality"] = 17;
336 dictionary["hostility"] = 18;
337 dictionary["biome"] = 19;
338 dictionary["tag"] = 20;
339 dictionary["trait"] = 21;
340 dictionary["race"] = 22;
341 dictionary["job"] = 23;
342 dictionary["tactics"] = 24;
343 dictionary["aiIdle"] = 25;
344 dictionary["aiParam"] = 26;
345 dictionary["actCombat"] = 27;
346 dictionary["mainElement"] = 28;
347 dictionary["elements"] = 29;
348 dictionary["equip"] = 30;
349 dictionary["loot"] = 31;
350 dictionary["category"] = 32;
351 dictionary["filter"] = 33;
352 dictionary["gachaFilter"] = 34;
353 dictionary["tone"] = 35;
354 dictionary["actIdle"] = 36;
355 dictionary["lightData"] = 37;
356 dictionary["idExtra"] = 38;
357 dictionary["bio"] = 39;
358 dictionary["faith"] = 40;
359 dictionary["works"] = 41;
360 dictionary["hobbies"] = 42;
361 dictionary["idText"] = 43;
362 dictionary["moveAnime"] = 44;
363 dictionary["factory"] = 45;
364 dictionary["components"] = 46;
365 dictionary["recruitItems"] = 47;
366 dictionary["detail_JP"] = 48;
367 dictionary["detail"] = 49;
368 RowMapping = dictionary;
369 Dictionary<string, string> dictionary2 = new Dictionary<string, string>();
370 dictionary2["id"] = "string";
371 dictionary2["_id"] = "int";
372 dictionary2["name_JP"] = "string";
373 dictionary2["name"] = "string";
374 dictionary2["aka_JP"] = "string";
375 dictionary2["aka"] = "string";
376 dictionary2["idActor"] = "string[]";
377 dictionary2["sort"] = "int";
378 dictionary2["size"] = "int[]";
379 dictionary2["_idRenderData"] = "string";
380 dictionary2["tiles"] = "int[]";
381 dictionary2["tiles_snow"] = "int[]";
382 dictionary2["colorMod"] = "int";
383 dictionary2["components"] = "string[]";
384 dictionary2["defMat"] = "string";
385 dictionary2["LV"] = "int";
386 dictionary2["chance"] = "int";
387 dictionary2["quality"] = "int";
388 dictionary2["hostility"] = "string";
389 dictionary2["biome"] = "string";
390 dictionary2["tag"] = "string[]";
391 dictionary2["trait"] = "string[]";
392 dictionary2["race"] = "string";
393 dictionary2["job"] = "string";
394 dictionary2["tactics"] = "string";
395 dictionary2["aiIdle"] = "string";
396 dictionary2["aiParam"] = "int[]";
397 dictionary2["actCombat"] = "string[]";
398 dictionary2["mainElement"] = "string[]";
399 dictionary2["elements"] = "elements";
400 dictionary2["equip"] = "string";
401 dictionary2["loot"] = "string[]";
402 dictionary2["category"] = "string";
403 dictionary2["filter"] = "string[]";
404 dictionary2["gachaFilter"] = "string[]";
405 dictionary2["tone"] = "string";
406 dictionary2["actIdle"] = "string[]";
407 dictionary2["lightData"] = "string";
408 dictionary2["idExtra"] = "string";
409 dictionary2["bio"] = "string";
410 dictionary2["faith"] = "string";
411 dictionary2["works"] = "string[]";
412 dictionary2["hobbies"] = "string[]";
413 dictionary2["idText"] = "string";
414 dictionary2["moveAnime"] = "string";
415 dictionary2["factory"] = "string[]";
416 dictionary2["components"] = "string[]";
417 dictionary2["recruitItems"] = "string[]";
418 dictionary2["detail_JP"] = "string";
419 dictionary2["detail"] = "string";
420 TypeMapping = dictionary2;
421 }
422}
CTAG
Definition: CTAG.cs:2
string id
Definition: CardRow.cs:7
Definition: Core.cs:14
static int[] ParseElements(string str)
Definition: Core.cs:726
ProceduralMesh pmesh
Definition: MeshPass.cs:25
MeshPass pass
Definition: RenderData.cs:17
RenderData renderData
Definition: RenderRow.cs:71
SourcePref pref
Definition: RenderRow.cs:68
bool HasTag(CTAG _tag)
Definition: RenderRow.cs:125
string _nameSearch
Definition: RenderRow.cs:92
string name
Definition: RenderRow.cs:30
string _nameSearchJP
Definition: RenderRow.cs:95
string name_JP
Definition: RenderRow.cs:32
static void _SavePrefs(string id="prefs")
Definition: SourceAsset.cs:36
string[] gachaFilter
Definition: SourceChara.cs:37
string[] works
Definition: SourceChara.cs:47
override bool UseAlias
Definition: SourceChara.cs:75
SourceRace.Row _race_row
Definition: SourceChara.cs:64
override string GetAlias
Definition: SourceChara.cs:77
override string GetSearchName(bool jp)
Definition: SourceChara.cs:97
string hostility
Definition: SourceChara.cs:17
string[] hobbies
Definition: SourceChara.cs:49
SourceRace.Row race_row
Definition: SourceChara.cs:80
override void SetTiles()
Definition: SourceChara.cs:115
override string GetName()
Definition: SourceChara.cs:134
string[] actCombat
Definition: SourceChara.cs:31
string[] mainElement
Definition: SourceChara.cs:33
string[] recruitItems
Definition: SourceChara.cs:55
string[] actIdle
Definition: SourceChara.cs:41
override string RecipeID
Definition: SourceChara.cs:95
string moveAnime
Definition: SourceChara.cs:53
override void BackupPref()
Definition: SourceChara.cs:289
static readonly IReadOnlyDictionary< string, string > TypeMapping
Definition: SourceChara.cs:154
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceChara.cs:279
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceChara.cs:218
override Row CreateRow()
Definition: SourceChara.cs:162
Dictionary< string, Row > _rows
Definition: SourceChara.cs:156
override IReadOnlyDictionary< string, string > GetTypeMapping()
Definition: SourceChara.cs:284
override void ValidatePref()
Definition: SourceChara.cs:307
static Row rowDefaultPCC
Definition: SourceChara.cs:158
override void SetRow(Row r)
Definition: SourceChara.cs:274
static SourceChara()
Definition: SourceChara.cs:315
override void RestorePref()
Definition: SourceChara.cs:299
override string[] ImportFields
Definition: SourceChara.cs:160
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceChara.cs:152
string GetText(string id="name", bool returnNull=false)
Definition: SourceData.cs:688
static string[] GetStringArray(int id)
Definition: SourceData.cs:1011
static string GetString(int id)
Definition: SourceData.cs:1016
static int GetInt(int id)
Definition: SourceData.cs:981
static string GetStr(int id, bool useDefault=false)
Definition: SourceData.cs:1021
static int[] GetIntArray(int id)
Definition: SourceData.cs:1006
void Validate()
Definition: SourcePref.cs:351