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