Elin Decompiled Documentation EA 23.316 Nightly
Loading...
Searching...
No Matches
SourceStat.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceStat : SourceDataInt<SourceStat.Row>
5{
6 [Serializable]
7 public class Row : BaseRow
8 {
9 public int id;
10
11 public string alias;
12
13 public string name_JP;
14
15 public string name;
16
17 public string type;
18
19 public string group;
20
21 public string curse;
22
23 public string duration;
24
25 public int durationMax;
26
27 public int hexPower;
28
29 public string[] negate;
30
31 public string[] defenseAttb;
32
33 public string[] resistance;
34
35 public int gainRes;
36
37 public string[] elements;
38
39 public string[] nullify;
40
41 public string[] tag;
42
43 public int[] phase;
44
45 public string colors;
46
47 public string element;
48
49 public string[] effect;
50
51 public string[] strPhase_JP;
52
53 public string[] strPhase;
54
55 public string textPhase_JP;
56
57 public string textPhase;
58
59 public string textEnd_JP;
60
61 public string textEnd;
62
63 public string textPhase2_JP;
64
65 public string textPhase2;
66
67 public string gradient;
68
69 public bool invert;
70
71 public string detail_JP;
72
73 public string detail;
74
75 [NonSerialized]
76 public string name_L;
77
78 [NonSerialized]
79 public string detail_L;
80
81 [NonSerialized]
82 public string textPhase_L;
83
84 [NonSerialized]
85 public string textPhase2_L;
86
87 [NonSerialized]
88 public string textEnd_L;
89
90 [NonSerialized]
91 public string[] strPhase_L;
92
93 public override bool UseAlias => true;
94
95 public override string GetAlias => alias;
96 }
97
98 public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
99 {
100 ["id"] = 0,
101 ["alias"] = 1,
102 ["name_JP"] = 2,
103 ["name"] = 3,
104 ["type"] = 4,
105 ["group"] = 5,
106 ["curse"] = 6,
107 ["duration"] = 7,
108 ["durationMax"] = 8,
109 ["hexPower"] = 9,
110 ["negate"] = 10,
111 ["defenseAttb"] = 11,
112 ["resistance"] = 12,
113 ["gainRes"] = 13,
114 ["elements"] = 14,
115 ["nullify"] = 15,
116 ["tag"] = 16,
117 ["phase"] = 17,
118 ["colors"] = 18,
119 ["element"] = 19,
120 ["effect"] = 20,
121 ["strPhase_JP"] = 21,
122 ["strPhase"] = 22,
123 ["textPhase_JP"] = 23,
124 ["textPhase"] = 24,
125 ["textEnd_JP"] = 25,
126 ["textEnd"] = 26,
127 ["textPhase2_JP"] = 27,
128 ["textPhase2"] = 28,
129 ["gradient"] = 29,
130 ["invert"] = 30,
131 ["detail_JP"] = 31,
132 ["detail"] = 32
133 };
134
135 public static readonly IReadOnlyDictionary<string, string> TypeMapping = new Dictionary<string, string>
136 {
137 ["id"] = "int",
138 ["alias"] = "string",
139 ["name_JP"] = "string",
140 ["name"] = "string",
141 ["type"] = "string",
142 ["group"] = "string",
143 ["curse"] = "string",
144 ["duration"] = "string",
145 ["durationMax"] = "int",
146 ["hexPower"] = "int",
147 ["negate"] = "string[]",
148 ["defenseAttb"] = "string[]",
149 ["resistance"] = "string[]",
150 ["gainRes"] = "int",
151 ["elements"] = "string[]",
152 ["nullify"] = "string[]",
153 ["tag"] = "string[]",
154 ["phase"] = "int[]",
155 ["colors"] = "string",
156 ["element"] = "string",
157 ["effect"] = "string[]",
158 ["strPhase_JP"] = "string[]",
159 ["strPhase"] = "string[]",
160 ["textPhase_JP"] = "string",
161 ["textPhase"] = "string",
162 ["textEnd_JP"] = "string",
163 ["textEnd"] = "string",
164 ["textPhase2_JP"] = "string",
165 ["textPhase2"] = "string",
166 ["gradient"] = "string",
167 ["invert"] = "bool",
168 ["detail_JP"] = "string",
169 ["detail"] = "string"
170 };
171
172 [NonSerialized]
173 public Dictionary<string, List<Row>> groups = new Dictionary<string, List<Row>>();
174
175 public override string[] ImportFields => new string[4] { "strPhase", "textPhase", "textPhase2", "textEnd" };
176
177 public override Row CreateRow()
178 {
179 return new Row
180 {
181 id = SourceData.GetInt(0),
182 alias = SourceData.GetString(1),
183 name_JP = SourceData.GetString(2),
184 name = SourceData.GetString(3),
185 type = SourceData.GetString(4),
186 group = SourceData.GetString(5),
187 curse = SourceData.GetString(6),
188 duration = SourceData.GetString(7),
189 durationMax = SourceData.GetInt(8),
190 hexPower = SourceData.GetInt(9),
191 negate = SourceData.GetStringArray(10),
192 defenseAttb = SourceData.GetStringArray(11),
193 resistance = SourceData.GetStringArray(12),
194 gainRes = SourceData.GetInt(13),
195 elements = SourceData.GetStringArray(14),
196 nullify = SourceData.GetStringArray(15),
197 tag = SourceData.GetStringArray(16),
198 phase = SourceData.GetIntArray(17),
199 colors = SourceData.GetString(18),
200 element = SourceData.GetString(19),
201 effect = SourceData.GetStringArray(20),
202 strPhase_JP = SourceData.GetStringArray(21),
203 strPhase = SourceData.GetStringArray(22),
204 textPhase_JP = SourceData.GetString(23),
205 textPhase = SourceData.GetString(24),
206 textEnd_JP = SourceData.GetString(25),
207 textEnd = SourceData.GetString(26),
208 textPhase2_JP = SourceData.GetString(27),
209 textPhase2 = SourceData.GetString(28),
210 gradient = SourceData.GetString(29),
211 invert = SourceData.GetBool(30),
212 detail_JP = SourceData.GetString(31),
213 detail = SourceData.GetString(32)
214 };
215 }
216
217 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
218 {
219 return new Row
220 {
221 id = SourceData.GetInt(mapping["id"]),
222 alias = SourceData.GetString(mapping["alias"]),
223 name_JP = SourceData.GetString(mapping["name_JP"]),
224 name = SourceData.GetString(mapping["name"]),
225 type = SourceData.GetString(mapping["type"]),
226 group = SourceData.GetString(mapping["group"]),
227 curse = SourceData.GetString(mapping["curse"]),
228 duration = SourceData.GetString(mapping["duration"]),
229 durationMax = SourceData.GetInt(mapping["durationMax"]),
230 hexPower = SourceData.GetInt(mapping["hexPower"]),
231 negate = SourceData.GetStringArray(mapping["negate"]),
232 defenseAttb = SourceData.GetStringArray(mapping["defenseAttb"]),
233 resistance = SourceData.GetStringArray(mapping["resistance"]),
234 gainRes = SourceData.GetInt(mapping["gainRes"]),
235 elements = SourceData.GetStringArray(mapping["elements"]),
236 nullify = SourceData.GetStringArray(mapping["nullify"]),
237 tag = SourceData.GetStringArray(mapping["tag"]),
238 phase = SourceData.GetIntArray(mapping["phase"]),
239 colors = SourceData.GetString(mapping["colors"]),
240 element = SourceData.GetString(mapping["element"]),
241 effect = SourceData.GetStringArray(mapping["effect"]),
242 strPhase_JP = SourceData.GetStringArray(mapping["strPhase_JP"]),
243 strPhase = SourceData.GetStringArray(mapping["strPhase"]),
244 textPhase_JP = SourceData.GetString(mapping["textPhase_JP"]),
245 textPhase = SourceData.GetString(mapping["textPhase"]),
246 textEnd_JP = SourceData.GetString(mapping["textEnd_JP"]),
247 textEnd = SourceData.GetString(mapping["textEnd"]),
248 textPhase2_JP = SourceData.GetString(mapping["textPhase2_JP"]),
249 textPhase2 = SourceData.GetString(mapping["textPhase2"]),
250 gradient = SourceData.GetString(mapping["gradient"]),
251 invert = SourceData.GetBool(mapping["invert"]),
252 detail_JP = SourceData.GetString(mapping["detail_JP"]),
253 detail = SourceData.GetString(mapping["detail"])
254 };
255 }
256
257 public override void SetRow(Row r)
258 {
259 map[r.id] = r;
260 }
261
262 public override IReadOnlyDictionary<string, int> GetRowMapping()
263 {
264 return RowMapping;
265 }
266
267 public override IReadOnlyDictionary<string, string> GetTypeMapping()
268 {
269 return TypeMapping;
270 }
271
272 public override void OnInit()
273 {
274 foreach (Row row in rows)
275 {
276 if (!row.group.IsEmpty())
277 {
278 groups.GetOrCreate(row.group).Add(row);
279 }
280 }
281 }
282}
static string[] GetStringArray(int id)
Definition: SourceData.cs:1011
static string GetString(int id)
Definition: SourceData.cs:1016
static bool GetBool(int id)
Definition: SourceData.cs:986
static int GetInt(int id)
Definition: SourceData.cs:981
static int[] GetIntArray(int id)
Definition: SourceData.cs:1006
string detail_L
Definition: SourceStat.cs:79
string textEnd_JP
Definition: SourceStat.cs:59
string detail
Definition: SourceStat.cs:73
string textPhase_JP
Definition: SourceStat.cs:55
string[] nullify
Definition: SourceStat.cs:39
string alias
Definition: SourceStat.cs:11
string group
Definition: SourceStat.cs:19
string textPhase2_JP
Definition: SourceStat.cs:63
override bool UseAlias
Definition: SourceStat.cs:93
string name_L
Definition: SourceStat.cs:76
override string GetAlias
Definition: SourceStat.cs:95
string[] strPhase
Definition: SourceStat.cs:53
string[] strPhase_JP
Definition: SourceStat.cs:51
string detail_JP
Definition: SourceStat.cs:71
string textEnd_L
Definition: SourceStat.cs:88
string textPhase2_L
Definition: SourceStat.cs:85
string[] negate
Definition: SourceStat.cs:29
string[] elements
Definition: SourceStat.cs:37
string textPhase
Definition: SourceStat.cs:57
string curse
Definition: SourceStat.cs:21
string[] defenseAttb
Definition: SourceStat.cs:31
string textPhase_L
Definition: SourceStat.cs:82
string textPhase2
Definition: SourceStat.cs:65
string name_JP
Definition: SourceStat.cs:13
string[] resistance
Definition: SourceStat.cs:33
string textEnd
Definition: SourceStat.cs:61
string[] strPhase_L
Definition: SourceStat.cs:91
string duration
Definition: SourceStat.cs:23
string gradient
Definition: SourceStat.cs:67
string element
Definition: SourceStat.cs:47
string[] tag
Definition: SourceStat.cs:41
string colors
Definition: SourceStat.cs:45
string[] effect
Definition: SourceStat.cs:49
override Row CreateRow()
Definition: SourceStat.cs:177
override string[] ImportFields
Definition: SourceStat.cs:175
static readonly IReadOnlyDictionary< string, string > TypeMapping
Definition: SourceStat.cs:135
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceStat.cs:217
override void SetRow(Row r)
Definition: SourceStat.cs:257
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceStat.cs:262
Dictionary< string, List< Row > > groups
Definition: SourceStat.cs:173
override IReadOnlyDictionary< string, string > GetTypeMapping()
Definition: SourceStat.cs:267
override void OnInit()
Definition: SourceStat.cs:272
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceStat.cs:98