Elin Modding Docs Doc
Loading...
Searching...
No Matches
Biography.cs
1using System;
2using Newtonsoft.Json;
3
4// Token: 0x020002A3 RID: 675
5public class Biography : EClass
6{
7 // Token: 0x17000606 RID: 1542
8 // (get) Token: 0x060015B1 RID: 5553 RVA: 0x00093CBE File Offset: 0x00091EBE
9 // (set) Token: 0x060015B2 RID: 5554 RVA: 0x00093CC8 File Offset: 0x00091EC8
10 public string idLike
11 {
12 get
13 {
14 return this.strs[0];
15 }
16 set
17 {
18 this.strs[0] = value;
19 }
20 }
21
22 // Token: 0x17000607 RID: 1543
23 // (get) Token: 0x060015B3 RID: 5555 RVA: 0x00093CD3 File Offset: 0x00091ED3
24 // (set) Token: 0x060015B4 RID: 5556 RVA: 0x00093CDD File Offset: 0x00091EDD
25 public int gender
26 {
27 get
28 {
29 return this.ints[0];
30 }
31 set
32 {
33 this.ints[0] = value;
34 }
35 }
36
37 // Token: 0x17000608 RID: 1544
38 // (get) Token: 0x060015B5 RID: 5557 RVA: 0x00093CE8 File Offset: 0x00091EE8
39 // (set) Token: 0x060015B6 RID: 5558 RVA: 0x00093CF2 File Offset: 0x00091EF2
40 public int weight
41 {
42 get
43 {
44 return this.ints[2];
45 }
46 set
47 {
48 this.ints[2] = value;
49 }
50 }
51
52 // Token: 0x17000609 RID: 1545
53 // (get) Token: 0x060015B7 RID: 5559 RVA: 0x00093CFD File Offset: 0x00091EFD
54 // (set) Token: 0x060015B8 RID: 5560 RVA: 0x00093D07 File Offset: 0x00091F07
55 public int height
56 {
57 get
58 {
59 return this.ints[3];
60 }
61 set
62 {
63 this.ints[3] = value;
64 }
65 }
66
67 // Token: 0x1700060A RID: 1546
68 // (get) Token: 0x060015B9 RID: 5561 RVA: 0x00093D12 File Offset: 0x00091F12
69 // (set) Token: 0x060015BA RID: 5562 RVA: 0x00093D1C File Offset: 0x00091F1C
70 public int birthDay
71 {
72 get
73 {
74 return this.ints[4];
75 }
76 set
77 {
78 this.ints[4] = value;
79 }
80 }
81
82 // Token: 0x1700060B RID: 1547
83 // (get) Token: 0x060015BB RID: 5563 RVA: 0x00093D27 File Offset: 0x00091F27
84 // (set) Token: 0x060015BC RID: 5564 RVA: 0x00093D31 File Offset: 0x00091F31
85 public int birthMonth
86 {
87 get
88 {
89 return this.ints[5];
90 }
91 set
92 {
93 this.ints[5] = value;
94 }
95 }
96
97 // Token: 0x1700060C RID: 1548
98 // (get) Token: 0x060015BD RID: 5565 RVA: 0x00093D3C File Offset: 0x00091F3C
99 // (set) Token: 0x060015BE RID: 5566 RVA: 0x00093D46 File Offset: 0x00091F46
100 public int birthYear
101 {
102 get
103 {
104 return this.ints[6];
105 }
106 set
107 {
108 this.ints[6] = value;
109 }
110 }
111
112 // Token: 0x1700060D RID: 1549
113 // (get) Token: 0x060015BF RID: 5567 RVA: 0x00093D51 File Offset: 0x00091F51
114 // (set) Token: 0x060015C0 RID: 5568 RVA: 0x00093D5B File Offset: 0x00091F5B
115 public int idHome
116 {
117 get
118 {
119 return this.ints[7];
120 }
121 set
122 {
123 this.ints[7] = value;
124 }
125 }
126
127 // Token: 0x1700060E RID: 1550
128 // (get) Token: 0x060015C1 RID: 5569 RVA: 0x00093D66 File Offset: 0x00091F66
129 // (set) Token: 0x060015C2 RID: 5570 RVA: 0x00093D70 File Offset: 0x00091F70
130 public int idDad
131 {
132 get
133 {
134 return this.ints[8];
135 }
136 set
137 {
138 this.ints[8] = value;
139 }
140 }
141
142 // Token: 0x1700060F RID: 1551
143 // (get) Token: 0x060015C3 RID: 5571 RVA: 0x00093D7B File Offset: 0x00091F7B
144 // (set) Token: 0x060015C4 RID: 5572 RVA: 0x00093D86 File Offset: 0x00091F86
145 public int idMom
146 {
147 get
148 {
149 return this.ints[9];
150 }
151 set
152 {
153 this.ints[9] = value;
154 }
155 }
156
157 // Token: 0x17000610 RID: 1552
158 // (get) Token: 0x060015C5 RID: 5573 RVA: 0x00093D92 File Offset: 0x00091F92
159 // (set) Token: 0x060015C6 RID: 5574 RVA: 0x00093D9D File Offset: 0x00091F9D
160 public int idLoc
161 {
162 get
163 {
164 return this.ints[10];
165 }
166 set
167 {
168 this.ints[10] = value;
169 }
170 }
171
172 // Token: 0x17000611 RID: 1553
173 // (get) Token: 0x060015C7 RID: 5575 RVA: 0x00093DA9 File Offset: 0x00091FA9
174 // (set) Token: 0x060015C8 RID: 5576 RVA: 0x00093DB4 File Offset: 0x00091FB4
175 public int idAdvDad
176 {
177 get
178 {
179 return this.ints[11];
180 }
181 set
182 {
183 this.ints[11] = value;
184 }
185 }
186
187 // Token: 0x17000612 RID: 1554
188 // (get) Token: 0x060015C9 RID: 5577 RVA: 0x00093DC0 File Offset: 0x00091FC0
189 // (set) Token: 0x060015CA RID: 5578 RVA: 0x00093DCB File Offset: 0x00091FCB
190 public int idAdvMom
191 {
192 get
193 {
194 return this.ints[12];
195 }
196 set
197 {
198 this.ints[12] = value;
199 }
200 }
201
202 // Token: 0x17000613 RID: 1555
203 // (get) Token: 0x060015CB RID: 5579 RVA: 0x00093DD7 File Offset: 0x00091FD7
204 // (set) Token: 0x060015CC RID: 5580 RVA: 0x00093DE2 File Offset: 0x00091FE2
205 public int idHobby
206 {
207 get
208 {
209 return this.ints[13];
210 }
211 set
212 {
213 this.ints[13] = value;
214 }
215 }
216
217 // Token: 0x17000614 RID: 1556
218 // (get) Token: 0x060015CD RID: 5581 RVA: 0x00093DEE File Offset: 0x00091FEE
219 // (set) Token: 0x060015CE RID: 5582 RVA: 0x00093DF9 File Offset: 0x00091FF9
220 public int stability
221 {
222 get
223 {
224 return this.ints[14];
225 }
226 set
227 {
228 this.ints[14] = value;
229 }
230 }
231
232 // Token: 0x17000615 RID: 1557
233 // (get) Token: 0x060015CF RID: 5583 RVA: 0x00093E05 File Offset: 0x00092005
234 // (set) Token: 0x060015D0 RID: 5584 RVA: 0x00093E10 File Offset: 0x00092010
235 public int law
236 {
237 get
238 {
239 return this.ints[15];
240 }
241 set
242 {
243 this.ints[15] = value;
244 }
245 }
246
247 // Token: 0x17000616 RID: 1558
248 // (get) Token: 0x060015D1 RID: 5585 RVA: 0x00093E1C File Offset: 0x0009201C
249 // (set) Token: 0x060015D2 RID: 5586 RVA: 0x00093E27 File Offset: 0x00092027
250 public int affection
251 {
252 get
253 {
254 return this.ints[16];
255 }
256 set
257 {
258 this.ints[16] = value;
259 }
260 }
261
262 // Token: 0x17000617 RID: 1559
263 // (get) Token: 0x060015D3 RID: 5587 RVA: 0x00093E33 File Offset: 0x00092033
264 // (set) Token: 0x060015D4 RID: 5588 RVA: 0x00093E3E File Offset: 0x0009203E
265 public int dominance
266 {
267 get
268 {
269 return this.ints[17];
270 }
271 set
272 {
273 this.ints[17] = value;
274 }
275 }
276
277 // Token: 0x17000618 RID: 1560
278 // (get) Token: 0x060015D5 RID: 5589 RVA: 0x00093E4A File Offset: 0x0009204A
279 // (set) Token: 0x060015D6 RID: 5590 RVA: 0x00093E55 File Offset: 0x00092055
280 public int extroversion
281 {
282 get
283 {
284 return this.ints[18];
285 }
286 set
287 {
288 this.ints[18] = value;
289 }
290 }
291
292 // Token: 0x17000619 RID: 1561
293 // (get) Token: 0x060015D7 RID: 5591 RVA: 0x00093E61 File Offset: 0x00092061
294 // (set) Token: 0x060015D8 RID: 5592 RVA: 0x00093E6C File Offset: 0x0009206C
295 public int idInterest
296 {
297 get
298 {
299 return this.ints[19];
300 }
301 set
302 {
303 this.ints[19] = value;
304 }
305 }
306
307 // Token: 0x1700061A RID: 1562
308 // (get) Token: 0x060015D9 RID: 5593 RVA: 0x00093E78 File Offset: 0x00092078
309 public string nameHome
310 {
311 get
312 {
313 return this.StrBio(this.idHome);
314 }
315 }
316
317 // Token: 0x1700061B RID: 1563
318 // (get) Token: 0x060015DA RID: 5594 RVA: 0x00093E86 File Offset: 0x00092086
319 public string nameLoc
320 {
321 get
322 {
323 return this.StrBio(this.idLoc);
324 }
325 }
326
327 // Token: 0x1700061C RID: 1564
328 // (get) Token: 0x060015DB RID: 5595 RVA: 0x00093E94 File Offset: 0x00092094
329 public string nameDad
330 {
331 get
332 {
333 return "textParent".lang(this.StrBio(this.idAdvDad), this.StrBio(this.idDad), null, null, null);
334 }
335 }
336
337 // Token: 0x1700061D RID: 1565
338 // (get) Token: 0x060015DC RID: 5596 RVA: 0x00093EBB File Offset: 0x000920BB
339 public string nameMom
340 {
341 get
342 {
343 return "textParent".lang(this.StrBio(this.idAdvMom), this.StrBio(this.idMom), null, null, null);
344 }
345 }
346
347 // Token: 0x1700061E RID: 1566
348 // (get) Token: 0x060015DD RID: 5597 RVA: 0x00093EE2 File Offset: 0x000920E2
349 public string nameBirthplace
350 {
351 get
352 {
353 return "birthLoc2".lang(this.nameHome, this.nameLoc, null, null, null);
354 }
355 }
356
357 // Token: 0x1700061F RID: 1567
358 // (get) Token: 0x060015DE RID: 5598 RVA: 0x00093EFD File Offset: 0x000920FD
359 // (set) Token: 0x060015DF RID: 5599 RVA: 0x00093F15 File Offset: 0x00092115
360 public int age
361 {
362 get
363 {
364 return EClass.world.date.year - this.birthYear;
365 }
366 set
367 {
368 this.birthYear = EClass.world.date.year - value;
369 }
370 }
371
372 // Token: 0x17000620 RID: 1568
373 // (get) Token: 0x060015E0 RID: 5600 RVA: 0x00093F2E File Offset: 0x0009212E
374 public int ageOriginal
375 {
376 get
377 {
378 return EClass.game.Prologue.year - this.birthYear;
379 }
380 }
381
382 // Token: 0x17000621 RID: 1569
383 // (get) Token: 0x060015E1 RID: 5601 RVA: 0x00093F46 File Offset: 0x00092146
384 public bool IsUnderAge
385 {
386 get
387 {
388 return this.age < 18;
389 }
390 }
391
392 // Token: 0x060015E2 RID: 5602 RVA: 0x00093F54 File Offset: 0x00092154
393 public string TextAge(Chara c)
394 {
395 string result;
396 if (this.age < 1000)
397 {
398 if ((result = (c.IsUnique ? this.ageOriginal : this.age).ToString()) == null)
399 {
400 return "";
401 }
402 }
403 else
404 {
405 result = "???";
406 }
407 return result;
408 }
409
410 // Token: 0x060015E3 RID: 5603 RVA: 0x00093F9C File Offset: 0x0009219C
411 public void Generate(Chara c)
412 {
413 string bio = c.source.bio;
414 SourceRace.Row race = c.Chara.race;
415 this.stability = Rand.rndNormal(100);
416 this.law = Rand.rndNormal(100);
417 this.affection = Rand.rndNormal(100);
418 this.dominance = Rand.rndNormal(100);
419 this.extroversion = Rand.rndNormal(100);
420 this.idInterest = EClass.rnd(Enum.GetNames(typeof(Interest)).Length);
421 if (Biography.idFemale.Contains(c.id) || c.race.id == "roran")
422 {
423 this.SetGender(1);
424 }
425 else
426 {
427 this.SetGender(Gender.GetRandom());
428 }
429 this.RerollBio(c, 0, false);
430 c.SetRandomTone();
431 c.SetRandomTalk();
432 bool flag = c.IsHuman;
433 if (!bio.IsEmpty())
434 {
435 string[] array = bio.Split('/', StringSplitOptions.None);
436 this.SetGender((array[0] == "f") ? 1 : 2);
437 if (array.Length > 1)
438 {
439 if (!c.source.HasTag(CTAG.randomPortrait))
440 {
441 flag = false;
442 }
443 this.age = int.Parse(array[1]);
444 c.pccData = IO.LoadFile<PCCData>(CorePath.packageCore + "Data/PCC/" + c.id + ".txt", false, null);
445 }
446 if (array.Length > 2)
447 {
448 this.height = int.Parse(array[2]);
449 }
450 if (array.Length > 3)
451 {
452 this.weight = int.Parse(array[3]);
453 }
454 if (array.Length > 4)
455 {
456 c.c_idTone = array[4];
457 }
458 if (array.Length > 5 && !array[5].IsEmpty())
459 {
460 c.c_idTalk = array[5];
461 }
462 }
463 if (c.trait is TraitGuildClerk)
464 {
465 flag = true;
466 }
467 if (flag && !c.HasTag(CTAG.noPortrait))
468 {
469 this.SetPortrait(c);
470 }
471 if (c.id == "prostitute" && this.age < 15)
472 {
473 this.age = 15;
474 }
475 SourceThing.Row row = EClass.sources.things.rows.RandomItem<SourceThing.Row>();
476 this.idLike = row.id;
477 this.idHobby = EClass.sources.elements.hobbies.RandomItem<SourceElement.Row>().id;
478 }
479
480 // Token: 0x060015E4 RID: 5604 RVA: 0x000941C8 File Offset: 0x000923C8
481 public void RerollBio(Chara c, int ageIndex = 0, bool keepParent = false)
482 {
483 this.GenerateBirthday(c, ageIndex);
484 this.GenerateAppearance(c);
485 if (!keepParent)
486 {
487 this.GenerateDad();
488 this.GenerateMom();
489 this.idHome = this.RndBio("home");
490 this.idLoc = this.RndBio("loc");
491 }
492 }
493
494 // Token: 0x060015E5 RID: 5605 RVA: 0x00094218 File Offset: 0x00092418
495 public void GenerateBirthday(Chara c, int ageIndex = 0)
496 {
497 SourceRace.Row race = c.race;
498 int num = race.age[0];
499 int num2 = race.age[1];
500 if (ageIndex != 0)
501 {
502 int num3 = (num2 - num) / 4;
503 this.age = Rand.Range(num + num3 * (ageIndex - 1), num + num3 * ageIndex);
504 }
505 else
506 {
507 this.age = Rand.Range(num, num2);
508 }
509 this.birthDay = EClass.rnd(30) + 1;
510 this.birthMonth = EClass.rnd(12) + 1;
511 }
512
513 // Token: 0x060015E6 RID: 5606 RVA: 0x0009428C File Offset: 0x0009248C
514 public void GenerateAppearance(Chara c)
515 {
516 SourceRace.Row race = c.race;
517 this.height = race.height + EClass.rnd(race.height / 5 + 1) - EClass.rnd(race.height / 5 + 1);
518 this.weight = this.height * this.height * (EClass.rnd(6) + 18) / 10000;
519 }
520
521 // Token: 0x060015E7 RID: 5607 RVA: 0x000942EF File Offset: 0x000924EF
522 public void GenerateDad()
523 {
524 this.idDad = this.RndBio("parent");
525 this.idAdvDad = this.RndBio("adv");
526 }
527
528 // Token: 0x060015E8 RID: 5608 RVA: 0x00094313 File Offset: 0x00092513
529 public void GenerateMom()
530 {
531 this.idMom = this.RndBio("parent");
532 this.idAdvMom = this.RndBio("adv");
533 }
534
535 // Token: 0x060015E9 RID: 5609 RVA: 0x00094337 File Offset: 0x00092537
536 private int RndBio(string group)
537 {
538 return WordGen.GetID(group);
539 }
540
541 // Token: 0x060015EA RID: 5610 RVA: 0x00094340 File Offset: 0x00092540
542 private string StrBio(int id)
543 {
544 string result;
545 if (!EClass.sources.langWord.map.ContainsKey(id))
546 {
547 if ((result = id.ToString()) == null)
548 {
549 return "";
550 }
551 }
552 else
553 {
554 result = EClass.sources.langWord.map[id].GetText("name", false).Split(',', StringSplitOptions.None)[0];
555 }
556 return result;
557 }
558
559 // Token: 0x060015EB RID: 5611 RVA: 0x0009439F File Offset: 0x0009259F
560 public void SetGender(int g)
561 {
562 this.gender = g;
563 if (this.gender > 2)
564 {
565 this.gender = 0;
566 }
567 }
568
569 // Token: 0x060015EC RID: 5612 RVA: 0x000943B8 File Offset: 0x000925B8
570 public void SetPortrait(Chara c)
571 {
572 if (c.id == "shojo")
573 {
574 c.c_idPortrait = Portrait.GetRandomPortrait("special_f-littlegirl");
575 return;
576 }
577 c.c_idPortrait = Portrait.GetRandomPortrait(this.gender, c.GetIdPortraitCat());
578 }
579
580 // Token: 0x060015ED RID: 5613 RVA: 0x000943F4 File Offset: 0x000925F4
581 public string TextBio(Chara c)
582 {
583 return string.Concat(new string[]
584 {
585 c.race.GetText("name", false).ToTitleCase(true),
586 " ",
587 Lang.Parse("age", this.TextAge(c), null, null, null, null),
588 " ",
589 Lang._gender(this.gender)
590 });
591 }
592
593 // Token: 0x060015EE RID: 5614 RVA: 0x0009445C File Offset: 0x0009265C
594 public string TextBio2(Chara c)
595 {
596 return Lang.Parse("heightWeight", this.height.ToString() ?? "", this.weight.ToString() ?? "", null, null, null) + " " + ((c.material.alias == "meat") ? "" : c.material.GetName().ToTitleCase(true));
597 }
598
599 // Token: 0x060015EF RID: 5615 RVA: 0x000944E0 File Offset: 0x000926E0
600 public string TextBirthDate(Chara c, bool _age = false)
601 {
602 return Lang.Parse("birthText", (this.birthYear >= 0) ? (this.birthYear.ToString() ?? "") : "???", this.birthMonth.ToString() ?? "", this.birthDay.ToString() ?? "", null, null) + (_age ? (" (" + Lang.Parse("age", this.TextAge(c), null, null, null, null) + ")") : "");
603 }
604
605 // Token: 0x060015F0 RID: 5616 RVA: 0x00094584 File Offset: 0x00092784
606 public string TextAppearance()
607 {
608 return Lang.Parse("heightWeight", this.height.ToString() ?? "", this.weight.ToString() ?? "", null, null, null);
609 }
610
611 // Token: 0x04001020 RID: 4128
612 public static string[] idFemale = new string[]
613 {
614 "shojo",
615 "sister",
616 "sister_cat",
617 "younglady",
618 "sister_undead"
619 };
620
621 // Token: 0x04001021 RID: 4129
622 [JsonProperty]
623 public int[] ints = new int[20];
624
625 // Token: 0x04001022 RID: 4130
626 [JsonProperty]
627 public string[] strs = new string[3];
628
629 // Token: 0x04001023 RID: 4131
630 public int[] personalities = new int[5];
631}
Definition Chara.cs:12