Elin Decompiled Documentation EA 23.265 Nightly Patch 2
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 string IDInvStyle
8 {
9 get
10 {
11 if (GetParam(3) != null)
12 {
13 return GetParam(3);
14 }
15 return DefaultIdInvStyle;
16 }
17 }
18
19 public override RefCardName RefCardName => RefCardName.None;
20
21 public string idContainer
22 {
23 get
24 {
25 if (GetParam(4) != null)
26 {
27 return GetParam(4);
28 }
29 return DefaultIdContainer;
30 }
31 }
32
33 public int Width
34 {
35 get
36 {
37 if (owner.sourceCard.trait.Length <= 1)
38 {
39 return DefaultWidth;
40 }
41 return GetParam(1).ToInt();
42 }
43 }
44
45 public int Height
46 {
47 get
48 {
49 if (owner.sourceCard.trait.Length <= 2)
50 {
51 return DefaultHeight;
52 }
53 return GetParam(2).ToInt();
54 }
55 }
56
57 public virtual string DefaultIdInvStyle => base.IDInvStyle;
58
59 public virtual string DefaultIdContainer => "default";
60
61 public virtual int DefaultWidth => 6;
62
63 public virtual int DefaultHeight => 2;
64
65 public virtual int ChanceLock => 0;
66
67 public virtual int ChanceMedal => 50;
68
69 public override int DecaySpeedChild => 50;
70
71 public override bool IsContainer => true;
72
73 public virtual bool ShowOpenActAsCrime => owner.isNPCProperty;
74
75 public override bool UseAltTiles
76 {
77 get
78 {
79 if (owner.things.Count == 0 && owner.c_lockLv == 0)
80 {
81 return !HasChara;
82 }
83 return false;
84 }
85 }
86
87 public override void OnCreate(int lv)
88 {
90 if (ChanceLock > 0 && ChanceLock > EClass.rnd(100))
91 {
92 lv += 10;
93 owner.c_lockLv = EClass.curve(5 + lv / 2 + EClass.rnd(lv / 2), 50, 10, 80);
94 }
95 Prespawn(lv);
96 }
97
98 public virtual void Prespawn(int lv)
99 {
100 if (!CanOpenContainer)
101 {
102 return;
103 }
104 int num = 1 + EClass.rnd(2);
105 int num2 = EClass.curve(lv, 20, 15);
106 for (int i = 0; i < num; i++)
107 {
108 Thing thing = null;
109 if (EClass.sources.spawnLists.map.ContainsKey(idContainer))
110 {
112 }
113 else if (EClass.sources.categories.map.ContainsKey(idContainer))
114 {
116 }
117 else
118 {
119 string text = idContainer;
120 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))))));
121 }
122 if (thing != null)
123 {
124 owner.AddCard(thing);
125 }
126 }
127 if (EClass.rnd(ChanceMedal) == 0)
128 {
129 owner.Add("medal");
130 }
131 }
132
133 public void PutChara(string id)
134 {
135 owner.c_idRefCard = id;
136 owner.AddCard(ThingGen.CreateFromCategory("furniture", EClass.pc.LV + 10));
137 }
138
139 public override void SetName(ref string s)
140 {
142 {
143 s = "_shared".lang(s);
144 }
145 if (!owner.c_idRefName.IsEmpty() && owner.c_altName.IsEmpty())
146 {
147 s = "_written".lang(owner.c_idRefName, s);
148 }
149 }
150}
RefCardName
Definition: RefCardName.cs:2
string[] trait
Definition: CardRow.cs:33
bool isNPCProperty
Definition: Card.cs:555
string c_altName
Definition: Card.cs:1594
int c_lockLv
Definition: Card.cs:965
Card AddCard(Card c)
Definition: Card.cs:3109
Thing SetNum(int a)
Definition: Card.cs:3520
ThingContainer things
Definition: Card.cs:39
virtual Thing Thing
Definition: Card.cs:2059
virtual CardRow sourceCard
Definition: Card.cs:2132
string c_idRefName
Definition: Card.cs:1642
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3100
int LV
Definition: Card.cs:387
Definition: EClass.cs:6
static int curve(long _a, int start, int step, int rate=75)
Definition: EClass.cs:69
static int rnd(long a)
Definition: EClass.cs:59
static SourceManager sources
Definition: EClass.cs:43
static Chara pc
Definition: EClass.cs:15
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:113
override string IDInvStyle
override void OnCreate(int lv)
virtual void Prespawn(int lv)
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:246
string GetParam(int i, string def=null)
Definition: Trait.cs:577
Card owner
Definition: Trait.cs:28