Elin Decompiled Documentation EA 23.249 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 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:554
string c_altName
Definition: Card.cs:1593
int c_lockLv
Definition: Card.cs:964
Card AddCard(Card c)
Definition: Card.cs:3090
Thing SetNum(int a)
Definition: Card.cs:3495
ThingContainer things
Definition: Card.cs:38
virtual Thing Thing
Definition: Card.cs:2058
virtual CardRow sourceCard
Definition: Card.cs:2131
string c_idRefName
Definition: Card.cs:1641
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3081
int LV
Definition: Card.cs:386
Definition: EClass.cs:6
static int curve(int _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:112
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:235
string GetParam(int i, string def=null)
Definition: Trait.cs:566
Card owner
Definition: Trait.cs:27