Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitBaseContainer.cs
Go to the documentation of this file.
1using UnityEngine;
2
4{
5 public bool HasChara => owner.c_idRefCard != null;
6
7 public override bool ShowChildrenNumber
8 {
9 get
10 {
11 if (!HasChara)
12 {
13 return base.ShowChildrenNumber;
14 }
15 return false;
16 }
17 }
18
19 public override string IDInvStyle
20 {
21 get
22 {
23 if (GetParam(3) != null)
24 {
25 return GetParam(3);
26 }
27 return DefaultIdInvStyle;
28 }
29 }
30
31 public override RefCardName RefCardName => RefCardName.None;
32
33 public string idContainer
34 {
35 get
36 {
37 if (GetParam(4) != null)
38 {
39 return GetParam(4);
40 }
41 return DefaultIdContainer;
42 }
43 }
44
45 public int Width
46 {
47 get
48 {
49 if (owner.sourceCard.trait.Length <= 1)
50 {
51 return DefaultWidth;
52 }
53 return GetParam(1).ToInt();
54 }
55 }
56
57 public int Height
58 {
59 get
60 {
61 if (owner.sourceCard.trait.Length <= 2)
62 {
63 return DefaultHeight;
64 }
65 return GetParam(2).ToInt();
66 }
67 }
68
69 public virtual string DefaultIdInvStyle => base.IDInvStyle;
70
71 public virtual string DefaultIdContainer => "default";
72
73 public virtual int DefaultWidth => 6;
74
75 public virtual int DefaultHeight => 2;
76
77 public virtual int ChanceLock => 0;
78
79 public virtual int ChanceMedal => 50;
80
81 public override int DecaySpeedChild => 50;
82
83 public override bool IsContainer => true;
84
85 public virtual bool ShowOpenActAsCrime => owner.isNPCProperty;
86
87 public override bool UseAltTiles
88 {
89 get
90 {
91 if (owner.things.Count == 0)
92 {
93 return owner.c_lockLv == 0;
94 }
95 return false;
96 }
97 }
98
99 public override void OnCreate(int lv)
100 {
102 if (ChanceLock > 0 && ChanceLock > EClass.rnd(100))
103 {
104 lv += 10;
105 owner.c_lockLv = EClass.curve(5 + lv / 2 + EClass.rnd(lv / 2), 50, 10, 80);
106 }
107 Prespawn(lv);
108 }
109
110 public virtual void Prespawn(int lv)
111 {
112 if (!CanOpenContainer)
113 {
114 return;
115 }
116 int num = 1 + EClass.rnd(2);
117 int num2 = EClass.curve(lv, 20, 15);
118 for (int i = 0; i < num; i++)
119 {
120 Thing thing = null;
121 if (EClass.sources.spawnLists.map.ContainsKey(idContainer))
122 {
124 }
125 else if (EClass.sources.categories.map.ContainsKey(idContainer))
126 {
128 }
129 else
130 {
131 string text = idContainer;
132 thing = ((!(text == "money")) ? ((!(text == "provision")) ? ((!EClass.sources.things.map.ContainsKey(idContainer)) ? ThingGen.CreateFromFilter("container_general", (lv + owner.c_lockLv > 0) ? 5 : 0) : ThingGen.Create(idContainer)) : ThingGen.CreateFromCategory((EClass.rnd(2) == 0) ? "preserved" : "drink")) : ((EClass.rnd(2) == 0) ? ThingGen.Create("money").SetNum(10 + EClass.rnd(50 + num2 * 25)) : ((EClass.rnd(2) != 0) ? ThingGen.Create("plat") : ThingGen.Create("money2").SetNum(1 + EClass.rnd(Mathf.Min(2 + num2 / 50, 5))))));
133 }
134 if (thing != null)
135 {
136 owner.AddCard(thing);
137 }
138 }
139 if (EClass.rnd(ChanceMedal) == 0)
140 {
141 owner.Add("medal");
142 }
143 }
144
145 public void PutChara(string id)
146 {
147 owner.c_idRefCard = id;
148 owner.AddCard(ThingGen.Create("junk"));
149 }
150
151 public override void SetName(ref string s)
152 {
154 {
155 s = "_shared".lang(s);
156 }
157 if (!owner.c_idRefName.IsEmpty() && owner.c_altName.IsEmpty())
158 {
159 s = "_written".lang(owner.c_idRefName, s);
160 }
161 }
162}
RefCardName
Definition: RefCardName.cs:2
string[] trait
Definition: CardRow.cs:33
bool isNPCProperty
Definition: Card.cs:526
string c_altName
Definition: Card.cs:1493
int c_lockLv
Definition: Card.cs:924
Card AddCard(Card c)
Definition: Card.cs:2887
Thing SetNum(int a)
Definition: Card.cs:3242
ThingContainer things
Definition: Card.cs:34
virtual Thing Thing
Definition: Card.cs:1934
virtual CardRow sourceCard
Definition: Card.cs:2007
string c_idRefName
Definition: Card.cs:1541
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:2878
Definition: EClass.cs:5
static int curve(int a, int start, int step, int rate=75)
Definition: EClass.cs:55
static int rnd(int a)
Definition: EClass.cs:50
static SourceManager sources
Definition: EClass.cs:42
SourceThing things
SourceSpawnList spawnLists
SourceCategory categories
void SetSize(int w, int h)
static Thing CreateFromFilter(string id, int lv=-1)
Definition: ThingGen.cs:63
static Thing CreateFromCategory(string idCat, int lv=-1)
Definition: ThingGen.cs:75
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
bool IsSharedContainer
Definition: Thing.cs:92
override string IDInvStyle
override void OnCreate(int lv)
virtual void Prespawn(int lv)
override bool ShowChildrenNumber
virtual bool ShowOpenActAsCrime
override void SetName(ref string s)
virtual string DefaultIdInvStyle
override bool IsContainer
override bool UseAltTiles
void PutChara(string id)
override int DecaySpeedChild
virtual string DefaultIdContainer
Definition: Trait.cs:7
virtual bool CanOpenContainer
Definition: Trait.cs:226
string GetParam(int i, string def=null)
Definition: Trait.cs:515
Card owner
Definition: Trait.cs:26