Elin Decompiled Documentation EA 23.102 Nightly
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 bool staticSkin;
56
57 public int[] _tiles_snow;
58
59 [NonSerialized]
61
62 [NonSerialized]
63 public string name_L;
64
65 [NonSerialized]
66 public string detail_L;
67
68 [NonSerialized]
69 public string aka_L;
70
71 public override bool UseAlias => false;
72
73 public override string GetAlias => "n";
74
75 public SourceRace.Row race_row => _race_row ?? (_race_row = base.sources.races.map[race]);
76
77 public override string RecipeID => id;
78
79 public override string GetSearchName(bool jp)
80 {
81 object obj;
82 if (!jp)
83 {
84 obj = _nameSearch;
85 if (obj == null)
86 {
87 return _nameSearch = (name.StartsWith("*") ? aka : name).ToLower();
88 }
89 }
90 else
91 {
92 obj = _nameSearchJP ?? (_nameSearchJP = (name_JP.StartsWith("*") ? GetText("aka") : GetText()).ToLower());
93 }
94 return (string)obj;
95 }
96
97 public override void SetTiles()
98 {
99 base.SetTiles();
100 staticSkin = HasTag(CTAG.staticSkin);
101 if ((bool)renderData && (bool)renderData.pass && (_tiles_snow == null || _tiles_snow.Length != tiles_snow.Length))
102 {
103 _tiles_snow = new int[tiles_snow.Length];
104 for (int i = 0; i < tiles_snow.Length; i++)
105 {
106 _tiles_snow[i] = tiles_snow[i] / 100 * (int)renderData.pass.pmesh.tiling.x + tiles_snow[i] % 100;
107 }
108 }
109 }
110
111 public override string GetName()
112 {
113 string text = GetText();
114 text = text.Replace("#ele4", "").Replace("#ele3", "").Replace("#ele2", "")
115 .Replace("#ele", "");
116 if (text == "*r")
117 {
118 text = GetText("aka");
119 }
120 if (text[0] == ' ')
121 {
122 text = text.TrimStart(' ');
123 }
124 return text;
125 }
126 }
127
128 public Dictionary<string, Row> _rows = new Dictionary<string, Row>();
129
130 public static Row rowDefaultPCC;
131
132 public override string[] ImportFields => new string[1] { "aka" };
133
134 public override Row CreateRow()
135 {
136 Row obj = new Row();
137 obj.id = SourceData.GetString(0);
138 obj._id = SourceData.GetInt(1);
139 obj.name_JP = SourceData.GetString(2);
140 obj.name = SourceData.GetString(3);
141 obj.aka_JP = SourceData.GetString(4);
142 obj.aka = SourceData.GetString(5);
143 obj.idActor = SourceData.GetStringArray(6);
144 obj.sort = SourceData.GetInt(7);
145 obj.size = SourceData.GetIntArray(8);
146 obj._idRenderData = SourceData.GetString(9);
147 obj.tiles = SourceData.GetIntArray(10);
148 obj.tiles_snow = SourceData.GetIntArray(11);
149 obj.colorMod = SourceData.GetInt(12);
150 obj.components = SourceData.GetStringArray(13);
151 obj.defMat = SourceData.GetString(14);
152 obj.LV = SourceData.GetInt(15);
153 obj.chance = SourceData.GetInt(16);
154 obj.quality = SourceData.GetInt(17);
155 obj.hostility = SourceData.GetString(18);
156 obj.biome = SourceData.GetString(19);
157 obj.tag = SourceData.GetStringArray(20);
158 obj.trait = SourceData.GetStringArray(21);
159 obj.race = SourceData.GetString(22);
160 obj.job = SourceData.GetString(23);
161 obj.tactics = SourceData.GetString(24);
162 obj.aiIdle = SourceData.GetString(25);
163 obj.aiParam = SourceData.GetIntArray(26);
164 obj.actCombat = SourceData.GetStringArray(27);
165 obj.mainElement = SourceData.GetStringArray(28);
166 obj.elements = Core.ParseElements(SourceData.GetStr(29));
167 obj.equip = SourceData.GetString(30);
168 obj.loot = SourceData.GetStringArray(31);
169 obj.category = SourceData.GetString(32);
170 obj.filter = SourceData.GetStringArray(33);
171 obj.gachaFilter = SourceData.GetStringArray(34);
172 obj.tone = SourceData.GetString(35);
173 obj.actIdle = SourceData.GetStringArray(36);
174 obj.lightData = SourceData.GetString(37);
175 obj.idExtra = SourceData.GetString(38);
176 obj.bio = SourceData.GetString(39);
177 obj.faith = SourceData.GetString(40);
178 obj.works = SourceData.GetStringArray(41);
179 obj.hobbies = SourceData.GetStringArray(42);
180 obj.idText = SourceData.GetString(43);
181 obj.moveAnime = SourceData.GetString(44);
182 obj.factory = SourceData.GetStringArray(45);
183 obj.components = SourceData.GetStringArray(46);
184 obj.detail_JP = SourceData.GetString(47);
185 obj.detail = SourceData.GetString(48);
186 return obj;
187 }
188
189 public override void SetRow(Row r)
190 {
191 map[r.id] = r;
192 }
193
194 public override void BackupPref()
195 {
196 _rows.Clear();
197 foreach (Row row in rows)
198 {
199 _rows[row.id] = row;
200 }
201 }
202
203 public override void RestorePref()
204 {
205 foreach (Row row in rows)
206 {
207 row.pref = _rows.TryGetValue(row.id)?.pref ?? new SourcePref();
208 }
209 }
210
211 public override void ValidatePref()
212 {
213 foreach (Row row in rows)
214 {
215 row.pref.Validate();
216 }
217 }
218}
CTAG
Definition: CTAG.cs:2
string id
Definition: CardRow.cs:7
Definition: Core.cs:14
static int[] ParseElements(string str)
Definition: Core.cs:714
ProceduralMesh pmesh
Definition: MeshPass.cs:25
MeshPass pass
Definition: RenderData.cs:16
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
string[] gachaFilter
Definition: SourceChara.cs:37
string[] works
Definition: SourceChara.cs:47
override bool UseAlias
Definition: SourceChara.cs:71
SourceRace.Row _race_row
Definition: SourceChara.cs:60
override string GetAlias
Definition: SourceChara.cs:73
override string GetSearchName(bool jp)
Definition: SourceChara.cs:79
string hostility
Definition: SourceChara.cs:17
string[] hobbies
Definition: SourceChara.cs:49
SourceRace.Row race_row
Definition: SourceChara.cs:75
override void SetTiles()
Definition: SourceChara.cs:97
override string GetName()
Definition: SourceChara.cs:111
string[] actCombat
Definition: SourceChara.cs:31
string[] mainElement
Definition: SourceChara.cs:33
string[] actIdle
Definition: SourceChara.cs:41
override string RecipeID
Definition: SourceChara.cs:77
string moveAnime
Definition: SourceChara.cs:53
override void BackupPref()
Definition: SourceChara.cs:194
override Row CreateRow()
Definition: SourceChara.cs:134
Dictionary< string, Row > _rows
Definition: SourceChara.cs:128
override void ValidatePref()
Definition: SourceChara.cs:211
static Row rowDefaultPCC
Definition: SourceChara.cs:130
override void SetRow(Row r)
Definition: SourceChara.cs:189
override void RestorePref()
Definition: SourceChara.cs:203
override string[] ImportFields
Definition: SourceChara.cs:132
string GetText(string id="name", bool returnNull=false)
Definition: SourceData.cs:553
static string[] GetStringArray(int id)
Definition: SourceData.cs:741
static string GetString(int id)
Definition: SourceData.cs:746
static int GetInt(int id)
Definition: SourceData.cs:711
static string GetStr(int id, bool useDefault=false)
Definition: SourceData.cs:751
static int[] GetIntArray(int id)
Definition: SourceData.cs:736
void Validate()
Definition: SourcePref.cs:333