Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitManager.cs
1using System;
2using System.Collections.Generic;
3
4// Token: 0x020006A4 RID: 1700
5public class TraitManager : EClass
6{
7 // Token: 0x06003160 RID: 12640 RVA: 0x001147C8 File Offset: 0x001129C8
8 public void OnAddCard(Card c)
9 {
10 Trait trait = c.trait;
11 this.typeMap.GetOrCreate(trait.GetType(), null).Add(c);
12 if (trait.IsAltar)
13 {
14 this.altars.Add(c);
15 }
16 if (trait.IsRestSpot)
17 {
18 this.restSpots.Add(c);
19 }
20 if (trait is TraitChair)
21 {
22 this.chairs.Add(c);
23 }
24 if (trait is TraitLightSun)
25 {
26 this.suns.Add(c);
27 }
28 }
29
30 // Token: 0x06003161 RID: 12641 RVA: 0x00114844 File Offset: 0x00112A44
31 public void OnRemoveCard(Card c)
32 {
33 Trait trait = c.trait;
34 this.typeMap[trait.GetType()].Remove(c);
35 if (trait.IsAltar)
36 {
37 this.altars.Remove(c);
38 }
39 if (trait.IsRestSpot)
40 {
41 this.restSpots.Remove(c);
42 }
43 if (trait is TraitChair)
44 {
45 this.chairs.Remove(c);
46 }
47 if (trait is TraitLightSun)
48 {
49 this.suns.Remove(c);
50 }
51 }
52
53 // Token: 0x06003162 RID: 12642 RVA: 0x001148BF File Offset: 0x00112ABF
54 public Thing GetRandomThing<T>() where T : Trait
55 {
56 Card card = this.GetTraitSet<T>().RandomItem<int, Card>();
57 if (card == null)
58 {
59 return null;
60 }
61 return card.Thing;
62 }
63
64 // Token: 0x06003163 RID: 12643 RVA: 0x001148D8 File Offset: 0x00112AD8
65 public List<T> List<T>(Func<T, bool> func = null) where T : Trait
66 {
67 TraitSet traitSet = this.GetTraitSet<T>();
68 List<T> list = new List<T>();
69 if (func == null)
70 {
71 using (Dictionary<int, Card>.ValueCollection.Enumerator enumerator = traitSet.Values.GetEnumerator())
72 {
73 while (enumerator.MoveNext())
74 {
75 Card card = enumerator.Current;
76 list.Add(card.trait as T);
77 }
78 return list;
79 }
80 }
81 foreach (Card card2 in traitSet.Values)
82 {
83 if (func(card2.trait as T))
84 {
85 list.Add(card2.trait as T);
86 }
87 }
88 return list;
89 }
90
91 // Token: 0x06003164 RID: 12644 RVA: 0x001149B8 File Offset: 0x00112BB8
92 public TraitSet GetTraitSet<T>() where T : Trait
93 {
94 return this.typeMap.GetOrCreate(typeof(T), null);
95 }
96
97 // Token: 0x06003165 RID: 12645 RVA: 0x001149D0 File Offset: 0x00112BD0
98 public TraitSet GetTraitSet(Type t)
99 {
100 return this.typeMap.GetOrCreate(t, null);
101 }
102
103 // Token: 0x04001B4C RID: 6988
104 public Dictionary<Type, TraitSet> typeMap = new Dictionary<Type, TraitSet>();
105
106 // Token: 0x04001B4D RID: 6989
107 public TraitMap altars = new TraitMap();
108
109 // Token: 0x04001B4E RID: 6990
110 public TraitMap restSpots = new TraitMap();
111
112 // Token: 0x04001B4F RID: 6991
113 public TraitMap chairs = new TraitMap();
114
115 // Token: 0x04001B50 RID: 6992
116 public TraitMap suns = new TraitMap();
117}
Definition Card.cs:13
Definition Thing.cs:10
Definition Trait.cs:9