Elin Modding Docs Doc
Loading...
Searching...
No Matches
Religion.cs
1using System;
2using Newtonsoft.Json;
3using UnityEngine;
4
5// Token: 0x02000094 RID: 148
6public class Religion : EClass
7{
8 // Token: 0x170000D2 RID: 210
9 // (get) Token: 0x06000405 RID: 1029 RVA: 0x0001BBD5 File Offset: 0x00019DD5
10 public virtual string id
11 {
12 get
13 {
14 return "";
15 }
16 }
17
18 // Token: 0x170000D3 RID: 211
19 // (get) Token: 0x06000406 RID: 1030 RVA: 0x0001BBDC File Offset: 0x00019DDC
20 public virtual bool IsAvailable
21 {
22 get
23 {
24 return false;
25 }
26 }
27
28 // Token: 0x06000407 RID: 1031 RVA: 0x0001BBDF File Offset: 0x00019DDF
29 public virtual SourceElement.Row GetFeat(int i)
30 {
31 return EClass.sources.elements.alias["featGod_" + this.id + i.ToString()];
32 }
33
34 // Token: 0x170000D4 RID: 212
35 // (get) Token: 0x06000408 RID: 1032 RVA: 0x0001BC0C File Offset: 0x00019E0C
36 public string Name
37 {
38 get
39 {
40 return this.source.GetName();
41 }
42 }
43
44 // Token: 0x170000D5 RID: 213
45 // (get) Token: 0x06000409 RID: 1033 RVA: 0x0001BC1C File Offset: 0x00019E1C
46 public SourceReligion.Row source
47 {
48 get
49 {
50 SourceReligion.Row result;
51 if ((result = this._source) == null)
52 {
53 result = (this._source = EClass.sources.religions.map[this.id]);
54 }
55 return result;
56 }
57 }
58
59 // Token: 0x170000D6 RID: 214
60 // (get) Token: 0x0600040A RID: 1034 RVA: 0x0001BC56 File Offset: 0x00019E56
61 public string NameShort
62 {
63 get
64 {
65 return this.source.GetTextArray("name2")[1];
66 }
67 }
68
69 // Token: 0x170000D7 RID: 215
70 // (get) Token: 0x0600040B RID: 1035 RVA: 0x0001BC6A File Offset: 0x00019E6A
71 public string NameDomain
72 {
73 get
74 {
75 return this.source.GetTextArray("name2")[0];
76 }
77 }
78
79 // Token: 0x170000D8 RID: 216
80 // (get) Token: 0x0600040C RID: 1036 RVA: 0x0001BC7E File Offset: 0x00019E7E
81 public string TextType
82 {
83 get
84 {
85 return ("sub_" + this.source.type).lang();
86 }
87 }
88
89 // Token: 0x170000D9 RID: 217
90 // (get) Token: 0x0600040D RID: 1037 RVA: 0x0001BC9A File Offset: 0x00019E9A
91 public string TextGodGender
92 {
93 get
94 {
95 return this.source.GetText("textType", false);
96 }
97 }
98
99 // Token: 0x170000DA RID: 218
100 // (get) Token: 0x0600040E RID: 1038 RVA: 0x0001BCAD File Offset: 0x00019EAD
101 public string TextMood
102 {
103 get
104 {
105 return this.GetTextTemper(-99999);
106 }
107 }
108
109 // Token: 0x170000DB RID: 219
110 // (get) Token: 0x0600040F RID: 1039 RVA: 0x0001BCBA File Offset: 0x00019EBA
111 public bool IsEyth
112 {
113 get
114 {
115 return this.id == "eyth";
116 }
117 }
118
119 // Token: 0x170000DC RID: 220
120 // (get) Token: 0x06000410 RID: 1040 RVA: 0x0001BCCC File Offset: 0x00019ECC
121 public bool IsEhekatl
122 {
123 get
124 {
125 return this.id == "luck";
126 }
127 }
128
129 // Token: 0x170000DD RID: 221
130 // (get) Token: 0x06000411 RID: 1041 RVA: 0x0001BCDE File Offset: 0x00019EDE
131 public bool IsOpatos
132 {
133 get
134 {
135 return this.id == "earth";
136 }
137 }
138
139 // Token: 0x170000DE RID: 222
140 // (get) Token: 0x06000412 RID: 1042 RVA: 0x0001BCF0 File Offset: 0x00019EF0
141 public virtual bool IsMinorGod
142 {
143 get
144 {
145 return false;
146 }
147 }
148
149 // Token: 0x170000DF RID: 223
150 // (get) Token: 0x06000413 RID: 1043 RVA: 0x0001BCF3 File Offset: 0x00019EF3
151 public virtual bool CanJoin
152 {
153 get
154 {
155 return true;
156 }
157 }
158
159 // Token: 0x06000414 RID: 1044 RVA: 0x0001BCF6 File Offset: 0x00019EF6
160 public void Init()
161 {
162 this.relation = this.source.relation;
163 }
164
165 // Token: 0x06000415 RID: 1045 RVA: 0x0001BD09 File Offset: 0x00019F09
166 public void OnLoad()
167 {
168 }
169
170 // Token: 0x06000416 RID: 1046 RVA: 0x0001BD0B File Offset: 0x00019F0B
171 public void OnAdvanceDay()
172 {
173 }
174
175 // Token: 0x06000417 RID: 1047 RVA: 0x0001BD0D File Offset: 0x00019F0D
176 public Sprite GetSprite()
177 {
178 return ResourceCache.Load<Sprite>("Media/Graphics/Image/Faction/" + this.source.id) ?? ResourceCache.Load<Sprite>("Media/Graphics/Image/Faction/eyth");
179 }
180
181 // Token: 0x06000418 RID: 1048 RVA: 0x0001BD38 File Offset: 0x00019F38
182 public void SetTextRelation(UIText text)
183 {
184 if (this.relation > 100)
185 {
186 text.SetText("reFriend".lang(), FontColor.Good);
187 return;
188 }
189 if (this.relation < -100)
190 {
191 text.SetText("reEnemy".lang(), FontColor.Bad);
192 return;
193 }
194 text.SetText("reNone".lang(), FontColor.Passive);
195 }
196
197 // Token: 0x06000419 RID: 1049 RVA: 0x0001BD90 File Offset: 0x00019F90
198 public string GetTextBenefit()
199 {
200 string text = "";
201 for (int i = 0; i < this.source.elements.Length; i += 2)
202 {
203 if (i != 0)
204 {
205 text = text + Lang.words.comma.ToString() + Lang.space;
206 }
207 text += EClass.sources.elements.map[this.source.elements[i]].GetName();
208 }
209 return this.source.GetText("textBenefit", false) + (this.IsEyth ? "" : "textBenefit".lang(text, null, null, null, null));
210 }
211
212 // Token: 0x0600041A RID: 1050 RVA: 0x0001BE3C File Offset: 0x0001A03C
213 public string GetTextTemper(int _temper = -99999)
214 {
215 if (this.IsEyth)
216 {
217 return "-";
218 }
219 if (_temper == -99999)
220 {
221 _temper = this.mood;
222 }
223 string[] list = Lang.GetList("temper");
224 if (_temper <= -85)
225 {
226 return list[0].ToTitleCase(false).TagColor(FontColor.Bad, null);
227 }
228 if (_temper <= -45)
229 {
230 return list[1].ToTitleCase(false).TagColor(FontColor.Bad, null);
231 }
232 if (_temper <= -15)
233 {
234 return list[2].ToTitleCase(false);
235 }
236 if (_temper < 15)
237 {
238 return list[3].ToTitleCase(false);
239 }
240 if (_temper < 45)
241 {
242 return list[4].ToTitleCase(false);
243 }
244 if (_temper < 85)
245 {
246 return list[5].ToTitleCase(false).TagColor(FontColor.Great, null);
247 }
248 return list[6].ToTitleCase(false).TagColor(FontColor.Good, null);
249 }
250
251 // Token: 0x0600041B RID: 1051 RVA: 0x0001BEF2 File Offset: 0x0001A0F2
252 public void Revelation(string idTalk, int chance = 100)
253 {
254 if (this.IsEyth || EClass.rnd(100) > chance)
255 {
256 return;
257 }
258 this.Talk(idTalk, EClass.pc, null);
259 }
260
261 // Token: 0x0600041C RID: 1052 RVA: 0x0001BF14 File Offset: 0x0001A114
262 public void Talk(string idTalk, Card c = null, Card agent = null)
263 {
264 if (this.IsEyth)
265 {
266 return;
267 }
268 Msg.SetColor(Msg.colors.TalkGod);
269 Msg.Say("<i>" + this.GetGodTalk(idTalk) + " </i>", c ?? EClass.pc, null, null, null);
270 }
271
272 // Token: 0x0600041D RID: 1053 RVA: 0x0001BF62 File Offset: 0x0001A162
273 public string GetGodTalk(string suffix)
274 {
275 return EClass.sources.dataGodTalk.GetText(this.id, suffix).Split(Environment.NewLine.ToCharArray()).RandomItem<string>();
276 }
277
278 // Token: 0x0600041E RID: 1054 RVA: 0x0001BF90 File Offset: 0x0001A190
279 public int GetOfferingValue(Thing t, int num = -1)
280 {
281 if (num == -1)
282 {
283 num = t.Num;
284 }
285 int num2 = 0;
286 if (t.source._origin == "meat")
287 {
288 num2 = Mathf.Clamp(t.SelfWeight / 10, 1, 1000);
289 }
290 else
291 {
292 foreach (string text in this.source.cat_offer)
293 {
294 if (t.category.IsChildOf(text))
295 {
296 num2 = Mathf.Clamp(t.SelfWeight / 10, 50, 1000);
297 num2 *= EClass.sources.categories.map[text].offer / 100;
298 break;
299 }
300 }
301 }
302 if (num2 == 0)
303 {
304 return 0;
305 }
306 if (t.IsDecayed)
307 {
308 num2 /= 10;
309 }
310 num2 *= (t.LV * 2 + 100) / 100;
311 return Mathf.Max(num2, 1) * num;
312 }
313
314 // Token: 0x0600041F RID: 1055 RVA: 0x0001C06C File Offset: 0x0001A26C
315 public bool TryGetGift()
316 {
317 if (this.IsEyth || this.source.rewards.Length == 0)
318 {
319 return false;
320 }
321 Point point = EClass.pc.pos.GetNearestPoint(false, false, false, false) ?? EClass.pc.pos;
322 int num = EClass.pc.Evalue(85);
323 if (this.giftRank == 0 && (num >= 15 || EClass.debug.enable))
324 {
325 this.Talk("pet", null, null);
326 Chara chara = CharaGen.Create(this.source.rewards[0], -1);
327 EClass._zone.AddCard(chara, point);
328 chara.MakeAlly(true);
329 chara.PlayEffect("aura_heaven", true, 0f, default(Vector3));
330 this.giftRank = 1;
331 return true;
332 }
333 if (this.source.rewards.Length >= 2 && this.giftRank == 1 && (num >= 30 || EClass.debug.enable))
334 {
335 this.Talk("gift", null, null);
336 string[] array = this.source.rewards[1].Split('|', StringSplitOptions.None);
337 foreach (string text in array)
338 {
339 this.Reforge(text, point, text == array[0]);
340 }
341 this.giftRank = 2;
342 return true;
343 }
344 return false;
345 }
346
347 // Token: 0x06000420 RID: 1056 RVA: 0x0001C1BC File Offset: 0x0001A3BC
348 public void Reforge(string id, Point pos = null, bool first = true)
349 {
350 if (pos == null)
351 {
352 pos = EClass.pc.pos.Copy();
353 }
354 pos.Set(pos.GetNearestPoint(false, false, false, true) ?? pos);
355 Thing thing = ThingGen.Create(id, -1, -1);
356 foreach (Element element in thing.elements.dict.Values)
357 {
358 if (element.id != 66 && element.id != 67 && element.id != 64 && element.id != 65 && element.id != 92)
359 {
360 uint num = <PrivateImplementationDetails>.ComputeStringHash(id);
361 if (num <= 1934600421U)
362 {
363 if (num <= 968766664U)
364 {
365 if (num != 850586461U)
366 {
367 if (num == 968766664U)
368 {
369 if (id == "sword_muramasa2")
370 {
371 if (element.id == 401 || element.id == 916 || element.id == 661)
372 {
373 element.vExp = -1;
374 }
375 }
376 }
377 }
378 else if (id == "luckydagger")
379 {
380 if (element.id != 426)
381 {
382 element.vExp = -1;
383 }
384 }
385 }
386 else if (num != 1352297338U)
387 {
388 if (num != 1755407712U)
389 {
390 if (num == 1934600421U)
391 {
392 if (id == "warmonger")
393 {
394 if (element.id == 423 || element.id == 463 || element.id == 460 || element.id == 464 || element.id == 465)
395 {
396 element.vExp = -1;
397 }
398 }
399 }
400 }
401 else if (id == "scythe_kumi")
402 {
403 if (element.id == 6650 || element.id == 480 || element.id == 959 || element.id == 428 || element.id == 640 || element.id == 665)
404 {
405 element.vExp = -1;
406 }
407 }
408 }
409 else if (id == "pole_holy")
410 {
411 if (element.id == 60 || element.id == 461 || element.id == 423)
412 {
413 element.vExp = -1;
414 }
415 }
416 }
417 else if (num <= 2931008955U)
418 {
419 if (num != 2376119426U)
420 {
421 if (num == 2931008955U)
422 {
423 if (id == "kogitsunemaru")
424 {
425 if (element.id != 656)
426 {
427 element.vExp = -1;
428 }
429 }
430 }
431 }
432 else if (id == "staff_element")
433 {
434 if (element.id == 411 || (element is Resistance && element.id != 959))
435 {
436 element.vExp = -1;
437 }
438 }
439 }
440 else if (num != 3457783642U)
441 {
442 if (num != 3896459095U)
443 {
444 if (num == 3950410875U)
445 {
446 if (id == "cloak_mani")
447 {
448 if (element.id == 427 || element.id == 957 || element.id == 105 || element.id == 466 || element.id == 664)
449 {
450 element.vExp = -1;
451 }
452 }
453 }
454 }
455 else if (id == "blunt_earth")
456 {
457 if (element.id == 70 || element.id == 55 || element.id == 56 || element.id == 954 || element.id == 423 || element.id == 421)
458 {
459 element.vExp = -1;
460 }
461 }
462 }
463 else if (id == "shirt_wind")
464 {
465 if (!(element is Resistance) && element.id != 226 && element.id != 152 && element.id != 77)
466 {
467 element.vExp = -1;
468 }
469 }
470 }
471 }
472 thing.c_idDeity = this.source.id;
473 EClass._zone.AddCard(thing, pos);
474 pos.PlayEffect("aura_heaven");
475 if (first)
476 {
477 pos.PlaySound("godbless", true, 1f, true);
478 }
479 }
480
481 // Token: 0x06000421 RID: 1057 RVA: 0x0001C690 File Offset: 0x0001A890
482 public virtual void OnBecomeBranchFaith()
483 {
484 }
485
486 // Token: 0x06000422 RID: 1058 RVA: 0x0001C694 File Offset: 0x0001A894
487 public void JoinFaith(Chara c)
488 {
489 if (!c.IsPC)
490 {
491 c.faith = this;
492 c.RefreshFaithElement();
493 EClass.Sound.Play("worship");
494 Msg.Say("changeFaith", c, this.Name, null, null);
495 return;
496 }
497 if (c.faith != this)
498 {
499 c.faith.LeaveFaith(c);
500 }
501 EClass.pc.c_daysWithGod = 0;
502 Msg.Say("worship", this.Name, null, null, null);
503 this.Talk("worship", c, null);
504 EClass.Sound.Play("worship");
505 c.PlayEffect("aura_heaven", true, 0f, default(Vector3));
506 c.faith = this;
507 c.elements.SetBase(85, 0, 0);
508 this.OnJoinFaith();
509 if (this.IsEyth)
510 {
511 this.mood = 0;
512 }
513 else
514 {
515 this.mood = 50;
516 }
517 c.RefreshFaithElement();
518 if (!c.HasElement(306, 1))
519 {
520 c.elements.Learn(306, 1);
521 }
522 if (c.IsPC)
523 {
524 EClass.pc.faction.charaElements.OnJoinFaith();
525 }
526 }
527
528 // Token: 0x06000423 RID: 1059 RVA: 0x0001C7C0 File Offset: 0x0001A9C0
529 public void LeaveFaith(Chara c)
530 {
531 if (this.IsEyth)
532 {
533 return;
534 }
535 if (c.IsPC)
536 {
537 Msg.Say("worship2");
538 this.Punish(c);
539 }
540 if (c.IsPC)
541 {
542 EClass.pc.faction.charaElements.OnLeaveFaith();
543 }
544 this.OnLeaveFaith();
545 c.RefreshFaithElement();
546 }
547
548 // Token: 0x06000424 RID: 1060 RVA: 0x0001C818 File Offset: 0x0001AA18
549 public void Punish(Chara c)
550 {
551 this.Talk("wrath", null, null);
552 if (c.Evalue(1228) > 0)
553 {
554 c.SayNothingHappans();
555 return;
556 }
557 c.hp = 1;
558 c.mana.value = 1;
559 c.stamina.value = 1;
560 Thing thing = ThingGen.Create("punish_ball", -1, -1);
561 thing.ChangeWeight(EClass.pc.WeightLimit / 4 + 1000);
562 c.AddThing(thing, true, -1, -1);
563 c.AddCondition<ConWrath>(2000 + (c.IsPC ? (EClass.pc.c_daysWithGod * 20) : 0), false);
564 }
565
566 // Token: 0x06000425 RID: 1061 RVA: 0x0001C8BC File Offset: 0x0001AABC
567 public void PunishTakeOver(Chara c)
568 {
569 this.Talk("takeoverFail", null, null);
570 if (c.Evalue(1228) > 0)
571 {
572 c.SayNothingHappans();
573 return;
574 }
575 c.hp /= 2;
576 if (c.mana.value > 0)
577 {
578 c.mana.value = c.mana.value / 2;
579 }
580 if (c.stamina.value > 0)
581 {
582 c.stamina.value = c.stamina.value / 2;
583 }
584 Thing thing = ThingGen.Create("punish_ball", -1, -1);
585 thing.c_weight = EClass.pc.WeightLimit / 4 + 1000;
586 thing.isWeightChanged = true;
587 thing.SetDirtyWeight();
588 c.AddThing(thing, true, -1, -1);
589 c.AddCondition<ConWrath>(200, false);
590 }
591
592 // Token: 0x06000426 RID: 1062 RVA: 0x0001C98F File Offset: 0x0001AB8F
593 public virtual void OnJoinFaith()
594 {
595 }
596
597 // Token: 0x06000427 RID: 1063 RVA: 0x0001C991 File Offset: 0x0001AB91
598 public virtual void OnLeaveFaith()
599 {
600 }
601
602 // Token: 0x06000428 RID: 1064 RVA: 0x0001C993 File Offset: 0x0001AB93
603 public void OnChangeHour()
604 {
605 if (this.IsEyth)
606 {
607 this.mood = 0;
608 return;
609 }
610 this.mood = EClass.rnd(200) - 100;
611 }
612
613 // Token: 0x040005CD RID: 1485
614 [JsonProperty]
615 public int relation;
616
617 // Token: 0x040005CE RID: 1486
618 [JsonProperty]
619 public int giftRank;
620
621 // Token: 0x040005CF RID: 1487
622 [JsonProperty]
623 public int mood;
624
625 // Token: 0x040005D0 RID: 1488
626 public SourceReligion.Row _source;
627}
Definition Card.cs:13
Definition Chara.cs:12
Definition Msg.cs:7
Definition Point.cs:11
Definition Thing.cs:10