Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitSwitch.cs
1using System;
2
3// Token: 0x0200030E RID: 782
4public class TraitSwitch : Trait
5{
6 // Token: 0x17000742 RID: 1858
7 // (get) Token: 0x06001955 RID: 6485 RVA: 0x000A22A4 File Offset: 0x000A04A4
8 public int TrapLv
9 {
10 get
11 {
12 return EClass._zone.DangerLv;
13 }
14 }
15
16 // Token: 0x17000743 RID: 1859
17 // (get) Token: 0x06001956 RID: 6486 RVA: 0x000A22B0 File Offset: 0x000A04B0
18 public virtual bool CanDisarmTrap
19 {
20 get
21 {
22 return false;
23 }
24 }
25
26 // Token: 0x17000744 RID: 1860
27 // (get) Token: 0x06001957 RID: 6487 RVA: 0x000A22B3 File Offset: 0x000A04B3
28 public virtual bool CanManucalActivate
29 {
30 get
31 {
32 return false;
33 }
34 }
35
36 // Token: 0x17000745 RID: 1861
37 // (get) Token: 0x06001958 RID: 6488 RVA: 0x000A22B6 File Offset: 0x000A04B6
38 public virtual bool StartHidden
39 {
40 get
41 {
42 return false;
43 }
44 }
45
46 // Token: 0x06001959 RID: 6489 RVA: 0x000A22B9 File Offset: 0x000A04B9
47 public virtual bool IgnoreWhenLevitating()
48 {
49 return false;
50 }
51
52 // Token: 0x17000746 RID: 1862
53 // (get) Token: 0x0600195A RID: 6490 RVA: 0x000A22BC File Offset: 0x000A04BC
54 public virtual bool IsNegativeEffect
55 {
56 get
57 {
58 return false;
59 }
60 }
61
62 // Token: 0x17000747 RID: 1863
63 // (get) Token: 0x0600195B RID: 6491 RVA: 0x000A22C0 File Offset: 0x000A04C0
64 public virtual bool IsJammed
65 {
66 get
67 {
68 return this.owner.GetInt(60, null) >= 3;
69 }
70 }
71
72 // Token: 0x17000748 RID: 1864
73 // (get) Token: 0x0600195C RID: 6492 RVA: 0x000A22E9 File Offset: 0x000A04E9
74 public virtual bool IsLaidByDog
75 {
76 get
77 {
78 return this.owner.c_idRefCard == "dog_mine";
79 }
80 }
81
82 // Token: 0x0600195D RID: 6493 RVA: 0x000A2300 File Offset: 0x000A0500
83 public override void OnInstall(bool byPlayer)
84 {
85 if (byPlayer && this.StartHidden)
86 {
87 this.owner.SetHidden(true);
88 }
89 }
90
91 // Token: 0x0600195E RID: 6494 RVA: 0x000A231C File Offset: 0x000A051C
92 public override void TrySetAct(ActPlan p)
93 {
94 if (!EClass._zone.IsPCFaction && this.CanDisarmTrap)
95 {
96 p.TrySetAct("actDisarm", delegate()
97 {
98 if (!this.TryDisarmTrap(EClass.pc) && EClass.pc.Evalue(1656) < 3 && EClass.rnd(2) == 0)
99 {
100 this.ActivateTrap(EClass.pc);
101 }
102 return true;
103 }, this.owner, null, 1, false, true, false);
104 return;
105 }
106 if (this.CanManucalActivate)
107 {
108 p.TrySetAct("actUse", delegate()
109 {
110 this.ActivateTrap(EClass.pc);
111 return true;
112 }, this.owner, null, 1, false, true, false);
113 }
114 }
115
116 // Token: 0x0600195F RID: 6495 RVA: 0x000A238C File Offset: 0x000A058C
117 public bool TryDisarmTrap(Chara c)
118 {
119 if (EClass.rnd(c.Evalue(293) * 15 + 20 + c.DEX) > EClass.rnd(this.TrapLv * 12 + 100))
120 {
121 c.Say("disarm_success", c, this.owner, null, null);
122 this.owner.PlaySound("disarm", 1f, true);
123 c.ModExp(293, 50 + this.TrapLv);
124 int num = EClass.debug.enable ? 10 : EClass.pc.Evalue(1656);
125 if (!c.IsPCParty)
126 {
127 num = 0;
128 }
129 if (!this.IsLaidByDog && num > 0 && num + 2 > EClass.rnd(10))
130 {
131 string id = "scrap";
132 int idMat = -1;
133 int lv = num * 5 + EClass.pc.Evalue(293) / 4 + EClass.pc.Evalue(210) / 4;
134 if (EClass.rnd(3) == 0)
135 {
136 id = "junk";
137 }
138 if (EClass.rnd(4) == 0)
139 {
140 id = "microchip";
141 }
142 if (EClass.rnd(20) == 0)
143 {
144 id = "medal";
145 }
146 if (EClass.rnd(30) == 0)
147 {
148 id = "ic";
149 }
150 if (EClass.rnd(4) == 0)
151 {
152 id = "ingot";
153 idMat = MATERIAL.GetRandomMaterial(lv, "metal", false).id;
154 }
155 if (EClass.rnd(4) == 0)
156 {
157 id = "texture";
158 idMat = MATERIAL.GetRandomMaterial(lv, "leather", false).id;
159 }
160 Thing thing = ThingGen.Create(id, idMat, lv);
161 thing.isHidden = false;
162 EClass.pc.Say("scavenge", this.owner, thing, null, null);
163 EClass._map.TrySmoothPick(this.owner.pos, thing, EClass.pc);
164 }
165 this.owner.Destroy();
166 return true;
167 }
168 c.Say("disarm_fail", c, this.owner, null, null);
169 c.PlaySound("disarm_fail", 1f, true);
170 c.ModExp(293, 20 + this.TrapLv / 3);
171 if (c.IsPCFaction)
172 {
173 int @int = this.owner.GetInt(60, null);
174 this.owner.SetInt(60, @int + 1);
175 }
176 if (this.IsJammed)
177 {
178 c.Say("trapJammed", this.owner, null, null);
179 c.PlaySound("electricity_insufficient", 1f, true);
180 }
181 return false;
182 }
183
184 // Token: 0x06001960 RID: 6496 RVA: 0x000A25F0 File Offset: 0x000A07F0
185 public void ActivateTrap(Chara c)
186 {
187 if (this.IsJammed)
188 {
189 c.Say("trapJammed2", this.owner, null, null);
190 return;
191 }
192 TraitSwitch.haltMove = true;
193 this.OnActivateTrap(c);
194 if (c.IsPC && TraitSwitch.haltMove)
195 {
196 EClass.player.haltMove = true;
197 }
198 }
199
200 // Token: 0x06001961 RID: 6497 RVA: 0x000A2640 File Offset: 0x000A0840
201 public virtual void OnActivateTrap(Chara c)
202 {
203 }
204
205 // Token: 0x040010AF RID: 4271
206 public static bool haltMove;
207}
Definition Chara.cs:12
Definition Thing.cs:10
Definition Trait.cs:9