Elin Decompiled Documentation EA 23.283 Nightly Patch 2
Loading...
Searching...
No Matches
ELEMENT.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class ELEMENT
7{
8 public const int cute = 752;
9
10 public const int antidote = 753;
11
12 public const int nerve = 754;
13
14 public const int blood = 755;
15
16 public const int hotspring = 756;
17
18 public const int roasted = 762;
19
20 public const int stimulant = 760;
21
22 public const int recharge = 761;
23
24 public const int air = 763;
25
26 public const int difficulty = 765;
27
28 public const int rare = 751;
29
30 public const int purity = 759;
31
32 public const int comfort = 750;
33
34 public const int _void = 0;
35
36 public const int old_antidote = 25;
37
38 public const int piety = 85;
39
40 public const int race = 29;
41
42 public const int cure = 26;
43
44 public const int old_heal = 24;
45
46 public const int old_detox = 23;
47
48 public const int cut = 22;
49
50 public const int fire = 21;
51
52 public const int taste = 18;
53
54 public const int decay = 17;
55
56 public const int heat = 16;
57
58 public const int poison = 20;
59
60 public const int growth = 14;
61
62 public const int lv = 1;
63
64 public const int water = 15;
65
66 public const int d = 3;
67
68 public const int socket = 5;
69
70 public const int quality = 2;
71
72 public const int weight = 11;
73
74 public const int size = 12;
75
76 public const int hardness = 13;
77
78 public const int nutrition = 10;
79
80 public static readonly int[] IDS = new int[36]
81 {
82 752, 753, 754, 755, 756, 762, 760, 761, 763, 765,
83 751, 759, 750, 0, 25, 85, 29, 26, 24, 23,
84 22, 21, 18, 17, 16, 20, 14, 1, 15, 3,
85 5, 2, 11, 12, 13, 10
86 };
87}
88public class Element : EClass
89{
90 public class BonusInfo
91 {
92 public Element ele;
93
94 public UINote n;
95
96 public Chara c;
97
98 public bool first = true;
99
100 public long total;
101
102 public void CheckFirst()
103 {
104 if (first)
105 {
106 first = false;
107 n.Space(8);
108 }
109 }
110
111 public void AddText(string text, FontColor col = FontColor.Warning)
112 {
113 CheckFirst();
114 n.AddText("_bullet".lang() + text, col);
115 }
116
117 public void AddText(long v, string text, string textBad = null)
118 {
119 if (v != 0L)
120 {
121 string text2 = text;
122 if (!textBad.IsEmpty() && v < 0)
123 {
124 text2 = textBad;
125 }
126 CheckFirst();
127 total += v;
128 n.AddText("_bullet".lang() + text2 + " " + ((v > 0) ? "+" : "") + v, (v > 0) ? FontColor.Good : FontColor.Bad);
129 }
130 }
131
132 public void AddFix(int v, string text)
133 {
134 if (v != 0)
135 {
136 CheckFirst();
137 n.AddText("_bullet".lang() + text + " " + ((v > 0) ? "+" : "") + v + "%", (v > 0) ? FontColor.Good : FontColor.Bad);
138 }
139 }
140
141 public void WriteNote()
142 {
143 int id = ele.id;
144 int num = 0;
145 foreach (BodySlot slot in c.body.slots)
146 {
147 if (slot.elementId != 44 && slot.thing != null && ((id != 67 && id != 66) || slot.elementId != 35))
148 {
149 Element orCreateElement = slot.thing.elements.GetOrCreateElement(id);
150 if (orCreateElement != null && !orCreateElement.IsGlobalElement)
151 {
152 num += orCreateElement.Value;
153 }
154 }
155 }
156 AddText(num, "equipment".lang());
157 if (c.IsPCFaction)
158 {
160 if (element != null)
161 {
162 AddText(element.Value, "sub_faction".lang());
163 }
164 }
165 foreach (Condition condition in c.conditions)
166 {
167 if (condition.GetElementContainer() != null)
168 {
169 AddText(condition.GetElementContainer().Value(id), condition.Name);
170 }
171 }
172 if (c.tempElements != null)
173 {
174 AddText(c.tempElements.Value(id), "tempStrengthen".lang(), "tempWeaken".lang());
175 }
176 try
177 {
178 if (c.faithElements != null)
179 {
180 int num2 = c.faithElements.Value(id);
181 Element element2 = c.elements.GetElement("featGod_" + c.faith.id + "1");
182 if (element2 != null)
183 {
184 AddText(num2, element2.Name);
185 }
186 else if (num2 != 0)
187 {
188 AddText(num2, EClass.sources.elements.map[1228].GetName());
189 }
190 }
191 }
192 catch
193 {
194 }
195 _ = ele.Value;
196 _ = ele.ValueWithoutLink + total;
197 foreach (Element value in c.elements.dict.Values)
198 {
199 if (value.HasTag("multiplier") && value.source.aliasRef == ele.source.alias)
200 {
201 AddFix(value.Value, value.Name);
202 }
203 }
204 if (id == 79)
205 {
206 c.RefreshSpeed(this);
207 }
208 if (id == 78 && c.IsPCFactionOrMinion)
209 {
210 int num3 = EClass.player.CountKeyItem("lucky_coin");
211 if (num3 > 0)
212 {
213 AddText(EClass.sources.keyItems.alias["lucky_coin"].GetName() + " (+" + num3 * 2 + ")", FontColor.Great);
214 }
216 {
217 AddFix(100, EClass.sources.elements.map[663].GetName());
218 }
219 }
220 if (!c.IsMachine && !(c.id == "android"))
221 {
222 return;
223 }
224 int num4 = c.Evalue(664);
225 if (num4 > 0)
226 {
227 switch (id)
228 {
229 case 64:
230 case 65:
231 AddFix(num4 / 2, EClass.sources.elements.map[664].GetName());
232 break;
233 case 79:
234 AddFix(num4, EClass.sources.elements.map[664].GetName());
235 break;
236 }
237 }
238 }
239 }
240
241 public const int Div = 5;
242
243 public static Element Void = new Element();
244
245 public static int[] List_MainAttributes = new int[9] { 70, 72, 71, 77, 74, 75, 76, 73, 79 };
246
247 public static int[] List_MainAttributesMajor = new int[8] { 70, 72, 71, 77, 74, 75, 76, 73 };
248
249 public static int[] List_Body = new int[4] { 70, 72, 71, 77 };
250
251 public static int[] List_Mind = new int[4] { 74, 75, 76, 73 };
252
254
255 public int id;
256
257 public int vBase;
258
259 public int vExp;
260
261 public int vPotential;
262
263 public int vTempPotential;
264
265 public int vLink;
266
267 public int vSource;
268
270
272
273 public static List<SourceElement.Row> ListElements = new List<SourceElement.Row>();
274
275 public static List<SourceElement.Row> ListAttackElements = new List<SourceElement.Row>();
276
278 {
279 get
280 {
282 if (row == null)
283 {
284 SourceElement.Row obj = ((id == 0) ? GetSource() : Get(id)) ?? EClass.sources.elements.rows[0];
285 SourceElement.Row row2 = obj;
286 _source = obj;
287 row = row2;
288 }
289 return row;
290 }
291 }
292
293 public virtual int DisplayValue => Value;
294
295 public virtual int MinValue => -100;
296
297 public int Value => ValueWithoutLink + vLink + ((owner != null) ? owner.ValueBonus(this) : 0);
298
300
301 public virtual int MinPotential => 100;
302
304
305 public virtual bool CanGainExp => ValueWithoutLink > 0;
306
307 public bool IsFlag => source.tag.Contains("flag");
308
309 public virtual string Name => source.GetName();
310
311 public virtual string FullName => Name;
312
313 public virtual int ExpToNext => 1000;
314
315 public virtual bool UseExpMod => true;
316
317 public virtual int CostTrain => Mathf.Max((ValueWithoutLink / 10 + 5) * (100 + vTempPotential) / 500, 1);
318
319 public virtual int CostLearn => 5;
320
321 public virtual bool ShowXP
322 {
323 get
324 {
326 {
327 return source.category != "attribute";
328 }
329 return true;
330 }
331 }
332
333 public virtual bool ShowMsgOnValueChanged => true;
334
335 public virtual bool ShowValue => true;
336
337 public virtual bool ShowPotential => true;
338
339 public virtual bool UsePotential => true;
340
341 public virtual bool PotentialAsStock => false;
342
343 public virtual bool ShowRelativeAttribute => false;
344
345 public virtual bool ShowBonuses => true;
346
347 public virtual string ShortName => Name;
348
349 public bool IsGlobalElement
350 {
351 get
352 {
353 if (vExp != -1)
354 {
355 return vExp == -2;
356 }
357 return true;
358 }
359 }
360
361 public bool IsFactionWideElement => vExp == -1;
362
363 public bool IsPartyWideElement => vExp == -2;
364
365 public virtual bool ShowEncNumber => true;
366
367 public bool IsTrait => source.tag.Contains("trait");
368
369 public bool IsFoodTrait => !source.foodEffect.IsEmpty();
370
371 public bool IsFoodTraitMain
372 {
373 get
374 {
375 if (IsFoodTrait)
376 {
377 if (!source.tag.Contains("primary"))
378 {
379 return source.tag.Contains("foodpot");
380 }
381 return true;
382 }
383 return false;
384 }
385 }
386
387 public bool IsMainAttribute
388 {
389 get
390 {
391 if (source.category == "attribute")
392 {
393 return source.tag.Contains("primary");
394 }
395 return false;
396 }
397 }
398
399 public Act act => (this as Act) ?? ACT.Create(id);
400
401 public static string GetName(string alias)
402 {
403 return EClass.sources.elements.alias[alias].GetName();
404 }
405
406 public static SourceElement.Row Get(int id)
407 {
408 return EClass.sources.elements.map[id];
409 }
410
412 {
413 return EClass.sources.elements.alias.TryGetValue(GetType().ToString());
414 }
415
416 public virtual int GetSourcePotential(int v)
417 {
418 return 0;
419 }
420
421 public virtual Sprite GetSprite()
422 {
423 return null;
424 }
425
426 public int GetMaterialSourceValue(Thing t, int v)
427 {
428 if (id == 2 || v < 0)
429 {
430 return v;
431 }
432 if (IsTrait)
433 {
434 if (t.IsFurniture)
435 {
436 return v;
437 }
438 return Mathf.Min(v + t.encLV * 10, 60);
439 }
440 return v * (100 + t.encLV * 10) / 100;
441 }
442
443 public virtual long GetSourceValue(long v, int lv, SourceValueType type)
444 {
445 return type switch
446 {
447 SourceValueType.Chara => v * (100 + (lv - 1 + EClass.rnd(lv / 2 + 1)) * source.lvFactor / 10) / 100 + EClass.rnd(lv / 3) * source.lvFactor / 100,
448 SourceValueType.Fixed => v,
449 _ => v * ((source.encFactor == 0) ? 100 : (50 + EClass.rnd(100) + EClass.rnd((int)Mathf.Sqrt(lv * 100)) * source.encFactor / 100)) / 100,
450 };
451 }
452
453 public virtual Sprite GetIcon(string suffix = "")
454 {
455 return SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + source.alias + suffix) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "ele_" + source.aliasParent + suffix) ?? SpriteSheet.Get("Media/Graphics/Icon/Element/icon_elements", "cat_" + source.category);
456 }
457
458 public bool IsActive(Card c)
459 {
460 if (IsGlobalElement && c != null && !c.c_idDeity.IsEmpty() && c.c_idDeity != EClass.pc.idFaith)
461 {
462 return false;
463 }
464 return Value != 0;
465 }
466
467 public int SortVal(bool charaSheet = false)
468 {
469 int num = ((source.sort != 0) ? source.sort : id);
470 return (IsFlag ? 100000 : 0) + ((!charaSheet && IsGlobalElement) ? (-1000000) : 0) + (((IsFoodTrait || IsTrait) && owner != null && owner.Card != null && owner.Card.ShowFoodEnc) ? 10000 : 0) + num;
471 }
472
473 public virtual bool CanLink(ElementContainer owner)
474 {
475 return false;
476 }
477
478 public bool HasTag(string tag)
479 {
480 return source.tag.Contains(tag);
481 }
482
483 public void SetImage(Image i)
484 {
485 Sprite icon = GetIcon();
486 if ((bool)icon)
487 {
488 i.sprite = icon;
489 i.SetNativeSize();
490 }
491 }
492
493 public virtual string GetDetail()
494 {
495 return source.GetDetail();
496 }
497
498 public bool IsFactionElement(Chara c)
499 {
500 if (c == null)
501 {
502 return false;
503 }
504 if (c.IsPCFaction)
505 {
506 foreach (Element value in EClass.pc.faction.charaElements.dict.Values)
507 {
508 if (value.id == id && value.Value > 0)
509 {
510 return true;
511 }
512 }
513 }
514 if (c.faithElements != null)
515 {
516 foreach (Element value2 in c.faithElements.dict.Values)
517 {
518 if (value2.id == id && value2.Value > 0)
519 {
520 return true;
521 }
522 }
523 }
524 return false;
525 }
526
528 {
529 if (!source.aliasParent.IsEmpty())
530 {
531 return c.elements.GetOrCreateElement(source.aliasParent);
532 }
533 return null;
534 }
535
536 public static Dictionary<int, int> GetElementMap(int[] list)
537 {
538 Dictionary<int, int> dictionary = new Dictionary<int, int>();
539 if (list != null)
540 {
541 for (int i = 0; i < list.Length / 2; i++)
542 {
543 dictionary[list[i * 2]] = list[i * 2 + 1];
544 }
545 }
546 return dictionary;
547 }
548
549 public static Dictionary<int, int> GetElementMap(int[] list, Dictionary<int, int> map)
550 {
551 if (list != null)
552 {
553 for (int i = 0; i < list.Length / 2; i++)
554 {
555 map[list[i * 2]] = list[i * 2 + 1];
556 }
557 }
558 return map;
559 }
560
561 public static SourceElement.Row GetRandomElement(int lv = 1, bool useWeight = true)
562 {
563 if (lv > 100)
564 {
565 lv = 100;
566 }
567 if (ListElements.Count == 0)
568 {
569 foreach (SourceElement.Row row in EClass.sources.elements.rows)
570 {
571 if (row.categorySub == "eleAttack" && row.chance > 0)
572 {
573 ListElements.Add(row);
574 }
575 }
576 }
577 List<Tuple<SourceElement.Row, int>> list = new List<Tuple<SourceElement.Row, int>>();
578 foreach (SourceElement.Row listElement in ListElements)
579 {
580 int num = 40 * (listElement.eleP - 100) / 100;
581 if (list.Count == 0 || num < lv)
582 {
583 list.Add(new Tuple<SourceElement.Row, int>(listElement, num));
584 }
585 }
586 return (useWeight ? list.RandomItemWeighted((Tuple<SourceElement.Row, int> a) => 10000 / (100 + (lv - a.Item2) * 25)) : list.RandomItem()).Item1;
587 }
588
589 public void WriteNote(UINote n, ElementContainer owner = null, Action<UINote> onWriteNote = null)
590 {
591 n.Clear();
592 _WriteNote(n, owner, onWriteNote, isRef: false);
593 n.Build();
594 }
595
596 public void WriteNoteWithRef(UINote n, ElementContainer owner, Action<UINote> onWriteNote, Element refEle)
597 {
598 n.Clear();
599 _WriteNote(n, owner, onWriteNote, isRef: false);
600 if (refEle.Value > 0)
601 {
602 refEle._WriteNote(n, owner, onWriteNote, isRef: true);
603 }
605 {
607 }
608 n.Build();
609 }
610
611 public void _WriteNote(UINote n, Chara c, Act act)
612 {
614 Act.Cost cost = e.GetCost(c);
615 int p = e.GetPower(c);
616 n.Space(6);
617 string text = source.GetText("textExtra");
618 if (!text.IsEmpty())
619 {
620 string[] array = text.Split(',');
621 foreach (string text2 in array)
622 {
623 if (text2.StartsWith("@"))
624 {
625 Condition condition = Condition.Create(text2.Replace("@", ""), p);
626 condition.owner = c;
627 if (!source.aliasRef.IsEmpty())
628 {
629 condition.SetElement(EClass.sources.elements.alias[source.aliasRef].id);
630 }
631 switch (act.id)
632 {
633 case 6902:
634 condition.SetRefVal(79, 268);
635 break;
636 case 8510:
637 case 8710:
638 condition.SetRefVal(79, (act.id == 8710) ? 222 : 221);
639 break;
640 }
641 n.AddText("_bullet".lang() + (condition.HasDuration ? "hintCon" : "hintCon2").lang(condition.Name, condition.EvaluateTurn(p).ToString() ?? ""));
642 condition._WriteNote(n, asChild: true);
643 }
644 else
645 {
646 string text3 = text2.Replace("#calc", Calc());
647 if (!source.aliasRef.IsEmpty())
648 {
649 text3 = text3.Replace("#ele", EClass.sources.elements.alias[source.aliasRef].GetName().ToLower());
650 }
651 n.AddText("_bullet".lang() + text3);
652 }
653 }
654 }
655 if (source.tag.Contains("syncRide"))
656 {
657 n.AddText("_bullet".lang() + "hintSyncRide".lang());
658 }
660 {
661 int i = id;
662 if (i != 8230 && i != 8232)
663 {
664 n.AddText("_bullet".lang() + "hintPartyAbility".lang());
665 }
666 }
667 if (!act.LocalAct)
668 {
669 n.Space();
670 n.AddText("isGlobalAct".lang());
671 }
672 if (cost.type == Act.CostType.None || cost.cost == 0 || act.owner is ElementContainerField)
673 {
674 return;
675 }
676 n.Space(4);
677 UIItem uIItem = n.AddExtra<UIItem>("costPrice");
678 int num = cost.cost;
679 if (cost.type == Act.CostType.MP)
680 {
681 if (c.Evalue(483) > 0)
682 {
683 num = cost.cost * 100 / (100 + (int)Mathf.Sqrt(c.Evalue(483) * 10) * 3);
684 }
685 if (c.IsPC && c.HasCondition<StanceManaCost>())
686 {
687 int num2 = c.Evalue(1657);
688 if (num2 > 0 && (vPotential >= 2 || c.ability.Has(act.id)))
689 {
690 num = num * (100 - num2 * 20) / 100;
691 }
692 }
693 }
694 string text4 = cost.cost.ToString() ?? "";
695 if (num != cost.cost)
696 {
697 text4 = num + " (" + text4 + ")";
698 }
699 uIItem.text1.SetText(text4, (((cost.type == Act.CostType.MP) ? c.mana.value : c.stamina.value) >= num) ? FontColor.Good : FontColor.Bad);
700 uIItem.image1.sprite = ((cost.type == Act.CostType.MP) ? EClass.core.refs.icons.mana : EClass.core.refs.icons.stamina);
701 uIItem.image1.SetNativeSize();
702 string Calc()
703 {
704 Dice dice = Dice.Create(e, c);
705 if (dice == null)
706 {
707 return p.ToString() ?? "";
708 }
709 return dice.ToString();
710 }
711 }
712
714 {
715 UIItem uIItem = n.AddHeader("HeaderAbility", FullName.ToTitleCase(wholeText: true), GetSprite());
716 uIItem.text2.text = ((this is Spell) ? (vPotential.ToString() ?? "") : "-");
717 (this as Act)?.SetImage(uIItem.image1);
718 }
719
720 public void _WriteNote(UINote n, ElementContainer owner, Action<UINote> onWriteNote, bool isRef, bool addHeader = true)
721 {
722 bool flag = this is FieldEffect && owner.Chara == null;
723 if (addHeader)
724 {
725 if (isRef)
726 {
727 UIText.globalSizeMod = -2;
728 n.AddHeader("prevElement".lang(FullName));
729 }
730 else if (this is Act && !flag)
731 {
733 n.Space(8);
734 }
735 else
736 {
737 n.AddHeader(FullName.ToTitleCase(wholeText: true));
738 }
739 }
740 string detail = GetDetail();
741 if (!detail.IsEmpty())
742 {
743 n.AddText("NoteText_flavor_element", detail);
744 n.Space(6);
745 }
746 int num = vLink;
747 if (owner.Chara != null && owner.Chara.IsPCFaction)
748 {
750 }
751 bool flag2 = ShowValue;
752 bool flag3 = ShowRelativeAttribute && !flag;
753 if (source.category == "landfeat")
754 {
755 flag2 = false;
756 flag3 = false;
757 }
758 if (!flag)
759 {
760 if (this is Act)
761 {
762 Act act = ACT.Create(source.id);
763 UIItem uIItem = n.AddItem("ItemAbility");
764 uIItem.text1.text = "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num))));
765 uIItem.text2.text = act.TargetType.ToString().lang();
766 uIItem.text3.text = ((this is Spell && owner.Chara != null) ? (owner.Chara.CalcCastingChance(owner.GetOrCreateElement(act.source.id)) + "%") : "-") ?? "";
767 }
768 else if (flag2)
769 {
770 n.AddTopic("TopicLeft", "vCurrent".lang(), "vValue".lang(DisplayValue.ToString() ?? "", ValueWithoutLink + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))));
771 if (ShowPotential)
772 {
773 num = vTempPotential;
774 n.AddTopic("TopicLeft", "vPotential".lang(), "vValue".lang(Potential.ToString() ?? "", vPotential + vSourcePotential + MinPotential + ((num == 0) ? "" : ((num > 0) ? (" + " + num) : (" - " + -num)))));
775 }
777 }
778 }
779 if (flag3 && !source.aliasParent.IsEmpty())
780 {
781 Element element = Create(source.aliasParent);
782 UIItem uIItem2 = n.AddItem("ItemRelativeAttribute");
783 uIItem2.text1.SetText(element.Name);
784 element.SetImage(uIItem2.image1);
785 bool flag4 = source.lvFactor > 0 && this is Act;
786 uIItem2.text2.SetActive(flag4);
787 uIItem2.text3.SetActive(flag4);
788 if (flag4)
789 {
790 uIItem2.text2.SetText(GetPower(EClass.pc).ToString() ?? "");
791 }
792 }
793 OnWriteNote(n, owner);
795 {
796 n.AddTopic("TopicLeft", "Class:", GetType()?.ToString() ?? "");
797 n.AddTopic("TopicLeft", "vExp".lang(), vExp.ToString() ?? "");
798 n.AddTopic("TopicLeft", "vSource", vSource.ToString() ?? "");
799 n.AddTopic("TopicLeft", "vSourcePotential", vSourcePotential.ToString() ?? "");
800 n.AddTopic("TopicLeft", "vPotential", vPotential.ToString() ?? "");
801 n.AddTopic("TopicLeft", "Potential", Potential.ToString() ?? "");
802 }
804 onWriteNote?.Invoke(n);
805 if (ShowBonuses && owner.Chara != null)
806 {
807 BonusInfo bonusInfo = new BonusInfo();
808 bonusInfo.ele = this;
809 bonusInfo.n = n;
810 bonusInfo.c = owner.Chara;
811 bonusInfo.WriteNote();
812 }
813 UIText.globalSizeMod = 0;
814 }
815
816 public void AddEncNote(UINote n, Card Card, ElementContainer.NoteMode mode = ElementContainer.NoteMode.Default, Func<Element, string, string> funcText = null, Action<UINote, Element> onAddNote = null)
817 {
818 string text = "";
819 switch (mode)
820 {
821 case ElementContainer.NoteMode.Domain:
822 n.AddText(Name, FontColor.Default);
823 return;
824 case ElementContainer.NoteMode.Default:
825 case ElementContainer.NoteMode.BonusTrait:
826 {
827 bool flag = source.tag.Contains("common");
828 string categorySub = source.categorySub;
829 bool flag2 = false;
830 bool flag3 = (source.tag.Contains("neg") ? (Value > 0) : (Value < 0));
831 int num = Mathf.Abs(Value);
832 bool flag4 = Card?.ShowFoodEnc ?? false;
833 bool flag5 = Card != null && this is Ability && (Card.IsWeapon || Card.IsThrownWeapon || Card.IsAmmo || Card.category.slot == 35);
834 if (IsTrait || (flag4 && IsFoodTrait))
835 {
836 string[] textArray = source.GetTextArray("textAlt");
837 int num2 = Mathf.Clamp(Value / 10 + 1, (Value < 0 || textArray.Length <= 2) ? 1 : 2, textArray.Length - 1);
838 text = "altEnc".lang(textArray[0].IsEmpty(Name), textArray[num2], EClass.debug.showExtra ? (Value + " " + Name) : "");
839 flag3 = num2 <= 1 || textArray.Length <= 2;
840 flag2 = true;
841 }
842 else if (flag5)
843 {
844 text = "isProc".lang(Name);
845 flag3 = false;
846 }
847 else if (categorySub == "resist" || this is Feat)
848 {
849 text = ("isResist" + (flag3 ? "Neg" : "")).lang(Name);
850 }
851 else if (categorySub == "eleAttack")
852 {
853 text = "isEleAttack".lang(Name);
854 }
855 else if (!source.textPhase.IsEmpty() && Value > 0)
856 {
857 text = source.GetText("textPhase");
858 }
859 else
860 {
861 string name = Name;
862 bool flag6 = source.category == "skill" || (source.category == "attribute" && !source.textPhase.IsEmpty());
863 bool flag7 = source.category == "enchant";
864 if (source.tag.Contains("multiplier"))
865 {
866 flag6 = (flag7 = false);
867 name = EClass.sources.elements.alias[source.aliasRef].GetName();
868 }
869 flag2 = !(flag6 || flag7);
870 text = (flag6 ? "textEncSkill" : (flag7 ? "textEncEnc" : "textEnc")).lang(name, num + (source.tag.Contains("ratio") ? "%" : ""), ((Value > 0) ? "encIncrease" : "encDecrease").lang());
871 }
872 int num3 = ((!(this is Resistance)) ? 1 : 0);
873 int num4 = 5;
874 if (id == 484)
875 {
876 num3 = 0;
877 num4 = 1;
878 }
879 if (!flag && !flag2 && !source.tag.Contains("flag"))
880 {
881 text = text + " [" + "*".Repeat(Mathf.Clamp(num * source.mtp / num4 + num3, 1, 5)) + ((num * source.mtp / num4 + num3 > 5) ? "+" : "") + "]";
882 }
883 if (HasTag("hidden") && mode != ElementContainer.NoteMode.BonusTrait)
884 {
885 text = "(debug)" + text;
886 }
887 FontColor color = (flag ? FontColor.Default : (flag3 ? FontColor.Bad : FontColor.Good));
888 if (IsGlobalElement)
889 {
890 text = text + " " + (IsFactionWideElement ? "_factionWide" : "_partyWide").lang();
891 if (!IsActive(Card))
892 {
893 return;
894 }
895 color = FontColor.Myth;
896 }
897 if (flag4 && IsFoodTrait && !IsFoodTraitMain)
898 {
899 color = FontColor.FoodMisc;
900 }
901 if (id == 2 && Value >= 0)
902 {
903 color = FontColor.FoodQuality;
904 }
905 if (id == 484 && owner != null && owner.Card != null && owner.Card.CountRune(countFree: false) >= owner.Card.MaxRune())
906 {
907 color = FontColor.Gray;
908 }
909 if (funcText != null)
910 {
911 text = funcText(this, text);
912 }
913 UIItem uIItem = n.AddText("NoteText_enc", text, color);
914 Sprite sprite = EClass.core.refs.icons.enc.enc;
915 Thing thing = Card?.Thing;
916 if (thing != null)
917 {
918 if (thing.material.HasEnc(id))
919 {
920 sprite = EClass.core.refs.icons.enc.mat;
921 }
922 foreach (int key in thing.source.elementMap.Keys)
923 {
924 if (key == id)
925 {
926 sprite = EClass.core.refs.icons.enc.card;
927 }
928 }
929 if (thing.ShowFoodEnc && IsFoodTrait)
930 {
932 }
933 if (id == thing.GetInt(107))
934 {
935 sprite = EClass.core.refs.icons.enc.cat;
936 }
937 if (thing.GetRuneEnc(id) != null)
938 {
939 sprite = EClass.core.refs.icons.enc.rune;
940 }
941 }
942 if ((bool)sprite)
943 {
944 uIItem.image1.SetActive(enable: true);
945 uIItem.image1.sprite = sprite;
946 }
947 uIItem.image2.SetActive(source.IsWeaponEnc || source.IsShieldEnc);
948 uIItem.image2.sprite = (source.IsWeaponEnc ? EClass.core.refs.icons.enc.weaponEnc : EClass.core.refs.icons.enc.shieldEnc);
949 onAddNote?.Invoke(n, this);
950 return;
951 }
952 }
953 UIItem uIItem2 = n.AddTopic("TopicAttribute", Name, "".TagColor((ValueWithoutLink > 0) ? SkinManager.CurrentColors.textGood : SkinManager.CurrentColors.textBad, ValueWithoutLink.ToString() ?? ""));
954 if ((bool)uIItem2.button1)
955 {
956 uIItem2.button1.tooltip.onShowTooltip = delegate(UITooltip t)
957 {
959 };
960 }
961 SetImage(uIItem2.image1);
962 Image image = uIItem2.image2;
963 int value = (Potential - 80) / 20;
964 image.enabled = Potential != 80;
965 image.sprite = EClass.core.refs.spritesPotential[Mathf.Clamp(Mathf.Abs(value), 0, EClass.core.refs.spritesPotential.Count - 1)];
966 image.color = ((Potential - 80 >= 0) ? Color.white : new Color(1f, 0.7f, 0.7f));
967 }
968
969 public virtual void OnWriteNote(UINote n, ElementContainer owner)
970 {
971 }
972
973 public virtual void OnChangeValue()
974 {
975 }
976
978 {
979 if (owner == null || source.levelBonus.IsEmpty())
980 {
981 return;
982 }
983 bool flag = n == null;
984 string[] array = (source.GetText("levelBonus", returnNull: true) ?? source.levelBonus).Split(Environment.NewLine.ToCharArray());
985 if (!flag)
986 {
987 n.Space(10);
988 }
989 string[] array2 = array;
990 foreach (string obj in array2)
991 {
992 string[] array3 = obj.Split(',');
993 int lv = array3[0].ToInt();
994 SourceElement.Row row = (EClass.sources.elements.alias.ContainsKey(array3[1]) ? EClass.sources.elements.alias[array3[1]] : null);
995 if (flag)
996 {
997 if (lv > ValueWithoutLink)
998 {
999 break;
1000 }
1001 if (row != null && !owner.Has(row.id) && owner is ElementContainerZone)
1002 {
1003 owner.Learn(row.id);
1004 }
1005 }
1006 else
1007 {
1008 string s = ((row != null) ? row.GetName() : array3[1]);
1009 n.AddText((" Lv " + lv).TagColor(FontColor.Topic) + " " + s.TagColorGoodBad(() => (row != null) ? owner.Has(row.id) : (lv <= ValueWithoutLink), () => false));
1010 }
1011 }
1012 if (!flag)
1013 {
1014 n.Space(4);
1015 }
1016 }
1017
1019 {
1020 switch (m)
1021 {
1022 case UIList.SortMode.ByCategory:
1023 return source.id + ((!source.aliasParent.IsEmpty()) ? (EClass.sources.elements.alias[source.aliasParent].id * 10000) : 0);
1024 case UIList.SortMode.ByNumber:
1025 return -vPotential * 10000 + source.id;
1026 case UIList.SortMode.ByElementParent:
1027 if (!source.aliasParent.IsEmpty())
1028 {
1029 return EClass.sources.elements.alias[source.aliasParent].sort;
1030 }
1031 return id;
1032 default:
1033 if (source.sort == 0)
1034 {
1035 return source.id;
1036 }
1037 return source.sort;
1038 }
1039 }
1040
1041 public virtual Act.Cost GetCost(Chara c)
1042 {
1043 if (source.cost[0] == 0)
1044 {
1045 Act.Cost result = default(Act.Cost);
1046 result.type = Act.CostType.None;
1047 return result;
1048 }
1049 Act.Cost result2 = default(Act.Cost);
1050 if (this is Spell)
1051 {
1052 result2.type = Act.CostType.MP;
1053 int num = EClass.curve(Value, 50, 10);
1054 result2.cost = source.cost[0] * (100 + ((!source.tag.Contains("noCostInc")) ? (num * 3) : 0)) / 100;
1055 }
1056 else
1057 {
1058 result2.type = Act.CostType.SP;
1059 result2.cost = source.cost[0];
1060 switch (source.id)
1061 {
1062 case 6020:
1063 result2.cost = Mathf.Min(c.stamina.max / 3 + 10, 30);
1064 break;
1065 case 6663:
1066 case 6664:
1067 case 6665:
1068 {
1069 int num2 = -2 + c.body.CountWeapons();
1070 result2.cost += num2 * 2;
1071 break;
1072 }
1073 }
1074 }
1075 if (!c.IsPC && result2.cost > 2)
1076 {
1077 result2.cost /= 2;
1078 }
1079 return result2;
1080 }
1081
1082 public virtual int GetPower(Card c)
1083 {
1084 return 100;
1085 }
1086
1087 public virtual void SetTextValue(UIText text, bool shorten = false)
1088 {
1089 string text2 = DisplayValue.ToString() ?? "";
1090 if (ShowXP)
1091 {
1092 text2 += ".".TagSize((vExp / 10).ToString("D2") ?? "", 11);
1093 }
1094 if (vLink != 0)
1095 {
1096 string text3 = ((vLink > 0) ? "+" : "") + (shorten ? vLink.ToShortNumber() : ((object)vLink));
1097 text2 = "<color=" + ((DisplayValue > ValueWithoutLink) ? SkinManager.CurrentColors.textGood : SkinManager.CurrentColors.textBad).ToHex() + ">" + text2 + (" (" + text3 + ")").TagSize(13) + "</color>";
1098 }
1099 text.text = text2;
1100 }
1101
1102 public virtual bool IsPurchaseFeatReqMet(ElementContainer owner, int lv = -1)
1103 {
1104 return false;
1105 }
1106
1107 public virtual void WritePurchaseReq(UINote n, int lv = 1)
1108 {
1109 }
1110
1111 public static Element Create(int id, int v = 0)
1112 {
1113 SourceElement.Row row = EClass.sources.elements.map.TryGetValue(id);
1114 if (row == null)
1115 {
1116 return null;
1117 }
1118 Element element = ClassCache.Create<Element>(row.type.IsEmpty("Element"), "Elin");
1119 element.id = id;
1120 element.vBase = v;
1121 element._source = row;
1122 return element;
1123 }
1124
1125 public static Element Create(string id, int v = 1)
1126 {
1127 return Create(EClass.sources.elements.alias[id].id, v);
1128 }
1129
1130 public static int GetId(string alias)
1131 {
1132 return EClass.sources.elements.alias[alias].id;
1133 }
1134
1135 public static int GetResistLv(int v)
1136 {
1137 int num = v / 5;
1138 if (num < -2)
1139 {
1140 num = -2;
1141 }
1142 if (num > 4)
1143 {
1144 num = 4;
1145 }
1146 return num;
1147 }
1148
1149 public static int GetResistDamage(int dmg, int v, int power = 0)
1150 {
1151 int num = GetResistLv(v);
1152 if (power > 0 && num > 0)
1153 {
1154 num = Mathf.Max(num - power, 0);
1155 }
1156 if (num >= 4)
1157 {
1158 return 0;
1159 }
1160 return num switch
1161 {
1162 3 => dmg / 4,
1163 2 => dmg / 3,
1164 1 => dmg / 2,
1165 0 => dmg,
1166 -1 => dmg * 3 / 2,
1167 -2 => dmg * 2,
1168 _ => dmg * 2,
1169 };
1170 }
1171}
FontColor
Definition: FontColor.cs:2
SourceValueType
Definition: ACT.cs:6
static Act Create(int id)
Definition: ACT.cs:36
Definition: ACT.cs:62
CostType
Definition: ACT.cs:64
virtual bool LocalAct
Definition: ACT.cs:173
virtual TargetType TargetType
Definition: ACT.cs:144
virtual bool HaveLongPressAction
Definition: ACT.cs:135
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
virtual ElementContainer GetElementContainer()
void SetElement(int id)
virtual bool HasDuration
virtual string Name
override void _WriteNote(UINote n, bool asChild=false)
virtual int EvaluateTurn(int p)
void SetRefVal(int a, int b)
int elementId
Definition: BodySlot.cs:6
Thing thing
Definition: BodySlot.cs:8
Definition: Card.cs:11
int CountRune(bool countFree=true)
Definition: Card.cs:3710
bool IsPCFactionOrMinion
Definition: Card.cs:2300
ElementContainerCard elements
Definition: Card.cs:42
string id
Definition: Card.cs:36
SourceMaterial.Row material
Definition: Card.cs:2077
string c_idDeity
Definition: Card.cs:1595
bool IsFurniture
Definition: Card.cs:2279
int MaxRune()
Definition: Card.cs:3726
int encLV
Definition: Card.cs:327
SocketData GetRuneEnc(int idEle)
Definition: Card.cs:3695
virtual Thing Thing
Definition: Card.cs:2084
int Evalue(int ele)
Definition: Card.cs:2599
bool ShowFoodEnc
Definition: Card.cs:2218
bool Has(int id)
List< BodySlot > slots
Definition: CharaBody.cs:8
int CountWeapons()
Definition: CharaBody.cs:560
Definition: Chara.cs:10
CharaBody body
Definition: Chara.cs:94
string idFaith
Definition: Chara.cs:233
Faction faction
Definition: Chara.cs:429
override bool IsPC
Definition: Chara.cs:626
ElementContainer tempElements
Definition: Chara.cs:36
List< Condition > conditions
Definition: Chara.cs:213
bool HasCondition(string alias)
Definition: Chara.cs:9589
int CalcCastingChance(Element e, int num=1)
Definition: Chara.cs:6252
override bool IsPCFaction
Definition: Chara.cs:685
Stats stamina
Definition: Chara.cs:1172
ElementContainer faithElements
Definition: Chara.cs:38
void RefreshSpeed(Element.BonusInfo info=null)
Definition: Chara.cs:1905
Religion faith
Definition: Chara.cs:441
CharaAbility ability
Definition: Chara.cs:426
bool IsMachine
Definition: Chara.cs:917
static Condition Create(string alias, int power=100, Action< Condition > onCreate=null)
Definition: Condition.cs:46
bool showExtra
Definition: CoreDebug.cs:168
Sprite traitFood
Definition: CoreRef.cs:71
Sprite shieldEnc
Definition: CoreRef.cs:77
Sprite mana
Definition: CoreRef.cs:124
Sprite stamina
Definition: CoreRef.cs:126
List< Sprite > spritesPotential
Definition: CoreRef.cs:375
Icons icons
Definition: CoreRef.cs:355
CoreRef refs
Definition: Core.cs:51
Definition: Dice.cs:5
override string ToString()
Definition: Dice.cs:115
static Dice Create(Element ele, Card c)
Definition: Dice.cs:120
Definition: EClass.cs:6
static int curve(long _a, int start, int step, int rate=75)
Definition: EClass.cs:69
static Core core
Definition: EClass.cs:7
static int rnd(long a)
Definition: EClass.cs:59
static SourceManager sources
Definition: EClass.cs:43
static Player player
Definition: EClass.cs:13
static Chara pc
Definition: EClass.cs:15
static CoreDebug debug
Definition: EClass.cs:49
const int air
Definition: ELEMENT.cs:24
const int stimulant
Definition: ELEMENT.cs:20
const int antidote
Definition: ELEMENT.cs:10
const int weight
Definition: ELEMENT.cs:72
const int growth
Definition: ELEMENT.cs:60
const int old_heal
Definition: ELEMENT.cs:44
const int race
Definition: ELEMENT.cs:40
const int comfort
Definition: ELEMENT.cs:32
const int cute
Definition: ELEMENT.cs:8
const int decay
Definition: ELEMENT.cs:54
const int purity
Definition: ELEMENT.cs:30
const int nutrition
Definition: ELEMENT.cs:78
const int difficulty
Definition: ELEMENT.cs:26
const int _void
Definition: ELEMENT.cs:34
const int heat
Definition: ELEMENT.cs:56
const int rare
Definition: ELEMENT.cs:28
const int taste
Definition: ELEMENT.cs:52
const int size
Definition: ELEMENT.cs:74
const int quality
Definition: ELEMENT.cs:70
const int piety
Definition: ELEMENT.cs:38
const int nerve
Definition: ELEMENT.cs:12
const int poison
Definition: ELEMENT.cs:58
static readonly int[] IDS
Definition: ELEMENT.cs:80
const int hotspring
Definition: ELEMENT.cs:16
const int cure
Definition: ELEMENT.cs:42
const int roasted
Definition: ELEMENT.cs:18
const int water
Definition: ELEMENT.cs:64
const int fire
Definition: ELEMENT.cs:50
const int recharge
Definition: ELEMENT.cs:22
const int lv
Definition: ELEMENT.cs:62
const int old_detox
Definition: ELEMENT.cs:46
const int socket
Definition: ELEMENT.cs:68
const int old_antidote
Definition: ELEMENT.cs:36
const int blood
Definition: ELEMENT.cs:14
const int d
Definition: ELEMENT.cs:66
const int hardness
Definition: ELEMENT.cs:76
const int cut
Definition: ELEMENT.cs:48
Dictionary< int, Element > dict
void Learn(int ele, int v=1)
bool Has(int ele)
virtual Card Card
int Value(int ele)
virtual int ValueBonus(Element e)
Element GetOrCreateElement(Element ele)
virtual Chara Chara
Element GetElement(string alias)
void AddText(string text, FontColor col=FontColor.Warning)
Definition: ELEMENT.cs:111
void WriteNote()
Definition: ELEMENT.cs:141
void AddFix(int v, string text)
Definition: ELEMENT.cs:132
void AddText(long v, string text, string textBad=null)
Definition: ELEMENT.cs:117
Element ele
Definition: ELEMENT.cs:92
void CheckFirst()
Definition: ELEMENT.cs:102
bool IsFactionElement(Chara c)
Definition: ELEMENT.cs:498
virtual bool ShowPotential
Definition: ELEMENT.cs:337
virtual bool ShowMsgOnValueChanged
Definition: ELEMENT.cs:333
virtual bool CanGainExp
Definition: ELEMENT.cs:305
virtual Sprite GetSprite()
Definition: ELEMENT.cs:421
virtual int DisplayValue
Definition: ELEMENT.cs:293
virtual void OnChangeValue()
Definition: ELEMENT.cs:973
virtual long GetSourceValue(long v, int lv, SourceValueType type)
Definition: ELEMENT.cs:443
static Element Create(string id, int v=1)
Definition: ELEMENT.cs:1125
int ValueWithoutLink
Definition: ELEMENT.cs:299
static int[] List_Body
Definition: ELEMENT.cs:249
static SourceElement.Row GetRandomElement(int lv=1, bool useWeight=true)
Definition: ELEMENT.cs:561
virtual bool ShowXP
Definition: ELEMENT.cs:322
virtual bool UseExpMod
Definition: ELEMENT.cs:315
static int GetResistDamage(int dmg, int v, int power=0)
Definition: ELEMENT.cs:1149
int Potential
Definition: ELEMENT.cs:303
int GetMaterialSourceValue(Thing t, int v)
Definition: ELEMENT.cs:426
virtual SourceElement.Row GetSource()
Definition: ELEMENT.cs:411
int id
Definition: ELEMENT.cs:255
int vBase
Definition: ELEMENT.cs:257
virtual void WritePurchaseReq(UINote n, int lv=1)
Definition: ELEMENT.cs:1107
SourceElement.Row source
Definition: ELEMENT.cs:278
int vExp
Definition: ELEMENT.cs:259
virtual bool IsPurchaseFeatReqMet(ElementContainer owner, int lv=-1)
Definition: ELEMENT.cs:1102
void _WriteNote(UINote n, Chara c, Act act)
Definition: ELEMENT.cs:611
int vPotential
Definition: ELEMENT.cs:261
static SourceElement.Row Get(int id)
Definition: ELEMENT.cs:406
virtual int GetSourcePotential(int v)
Definition: ELEMENT.cs:416
ElementContainer owner
Definition: ELEMENT.cs:271
virtual Sprite GetIcon(string suffix="")
Definition: ELEMENT.cs:453
static int GetResistLv(int v)
Definition: ELEMENT.cs:1135
virtual int MinValue
Definition: ELEMENT.cs:295
bool HasTag(string tag)
Definition: ELEMENT.cs:478
virtual int CostTrain
Definition: ELEMENT.cs:317
int vTempPotential
Definition: ELEMENT.cs:263
static List< SourceElement.Row > ListAttackElements
Definition: ELEMENT.cs:275
static int[] List_MainAttributes
Definition: ELEMENT.cs:245
static int GetId(string alias)
Definition: ELEMENT.cs:1130
virtual string FullName
Definition: ELEMENT.cs:311
void AddHeaderAbility(UINote n)
Definition: ELEMENT.cs:713
static Dictionary< int, int > GetElementMap(int[] list, Dictionary< int, int > map)
Definition: ELEMENT.cs:549
void AddEncNote(UINote n, Card Card, ElementContainer.NoteMode mode=ElementContainer.NoteMode.Default, Func< Element, string, string > funcText=null, Action< UINote, Element > onAddNote=null)
Definition: ELEMENT.cs:816
int GetSortVal(UIList.SortMode m)
Definition: ELEMENT.cs:1018
virtual int GetPower(Card c)
Definition: ELEMENT.cs:1082
void SetImage(Image i)
Definition: ELEMENT.cs:483
int Value
Definition: ELEMENT.cs:297
void CheckLevelBonus(ElementContainer owner, UINote n=null)
Definition: ELEMENT.cs:977
virtual bool ShowRelativeAttribute
Definition: ELEMENT.cs:343
void WriteNoteWithRef(UINote n, ElementContainer owner, Action< UINote > onWriteNote, Element refEle)
Definition: ELEMENT.cs:596
bool IsFoodTrait
Definition: ELEMENT.cs:369
virtual string Name
Definition: ELEMENT.cs:309
static Dictionary< int, int > GetElementMap(int[] list)
Definition: ELEMENT.cs:536
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1111
virtual bool CanLink(ElementContainer owner)
Definition: ELEMENT.cs:473
int vLink
Definition: ELEMENT.cs:265
virtual Act.Cost GetCost(Chara c)
Definition: ELEMENT.cs:1041
virtual bool ShowEncNumber
Definition: ELEMENT.cs:365
static string GetName(string alias)
Definition: ELEMENT.cs:401
static List< SourceElement.Row > ListElements
Definition: ELEMENT.cs:273
virtual bool ShowBonuses
Definition: ELEMENT.cs:345
virtual bool PotentialAsStock
Definition: ELEMENT.cs:341
int vSource
Definition: ELEMENT.cs:267
void WriteNote(UINote n, ElementContainer owner=null, Action< UINote > onWriteNote=null)
Definition: ELEMENT.cs:589
static Element Void
Definition: ELEMENT.cs:243
virtual bool UsePotential
Definition: ELEMENT.cs:339
int vSourcePotential
Definition: ELEMENT.cs:269
void _WriteNote(UINote n, ElementContainer owner, Action< UINote > onWriteNote, bool isRef, bool addHeader=true)
Definition: ELEMENT.cs:720
bool IsGlobalElement
Definition: ELEMENT.cs:350
bool IsPartyWideElement
Definition: ELEMENT.cs:363
bool IsTrait
Definition: ELEMENT.cs:367
bool IsFactionWideElement
Definition: ELEMENT.cs:361
static int[] List_Mind
Definition: ELEMENT.cs:251
virtual void OnWriteNote(UINote n, ElementContainer owner)
Definition: ELEMENT.cs:969
virtual string GetDetail()
Definition: ELEMENT.cs:493
Element GetParent(Card c)
Definition: ELEMENT.cs:527
virtual int MinPotential
Definition: ELEMENT.cs:301
virtual int CostLearn
Definition: ELEMENT.cs:319
SourceElement.Row _source
Definition: ELEMENT.cs:253
virtual void SetTextValue(UIText text, bool shorten=false)
Definition: ELEMENT.cs:1087
static int[] List_MainAttributesMajor
Definition: ELEMENT.cs:247
const int Div
Definition: ELEMENT.cs:241
Act act
Definition: ELEMENT.cs:399
bool IsFoodTraitMain
Definition: ELEMENT.cs:372
bool IsFlag
Definition: ELEMENT.cs:307
virtual bool ShowValue
Definition: ELEMENT.cs:335
bool IsMainAttribute
Definition: ELEMENT.cs:388
virtual int ExpToNext
Definition: ELEMENT.cs:313
bool IsActive(Card c)
Definition: ELEMENT.cs:458
virtual string ShortName
Definition: ELEMENT.cs:347
int SortVal(bool charaSheet=false)
Definition: ELEMENT.cs:467
ElementContainerFaction charaElements
Definition: FACTION.cs:146
Definition: FEAT.cs:316
int CountKeyItem(string alias)
Definition: Player.cs:2193
virtual string id
Definition: Religion.cs:26
static SkinColorProfile CurrentColors
Definition: SkinManager.cs:84
override string GetName()
SourceKeyItem keyItems
SourceElement elements
Definition: SPELL.cs:626
static Sprite Get(string id)
Definition: SpriteSheet.cs:28
virtual int value
Definition: Stats.cs:56
virtual int max
Definition: Stats.cs:68
Definition: Thing.cs:8
SourceThing.Row source
Definition: Thing.cs:11
Definition: UIItem.cs:5
Image image2
Definition: UIItem.cs:16
UIText text3
Definition: UIItem.cs:10
UIButton button1
Definition: UIItem.cs:18
Image image1
Definition: UIItem.cs:14
UIText text2
Definition: UIItem.cs:8
UIText text1
Definition: UIItem.cs:6
Definition: UIList.cs:9
SortMode
Definition: UIList.cs:27
Definition: UINote.cs:6
void Clear()
Definition: UINote.cs:35
UIItem AddItem(string id)
Definition: UINote.cs:139
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
UIItem AddTopic(string id, string text, string value=null)
Definition: UINote.cs:144
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
void Space(int sizeY=0, int sizeX=1)
Definition: UINote.cs:62
void Build()
Definition: UINote.cs:49
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:163
UINote note
Definition: UITooltip.cs:21
Definition: ACT.cs:71
CostType type
Definition: ACT.cs:74
int cost
Definition: ACT.cs:72