Elin Modding Docs Doc
Loading...
Searching...
No Matches
Zone_Dungeon.cs
1using System;
2using System.Linq;
3using System.Runtime.CompilerServices;
4using Algorithms;
5using UnityEngine;
6
7// Token: 0x0200072B RID: 1835
8public class Zone_Dungeon : Zone
9{
10 // Token: 0x17000FF2 RID: 4082
11 // (get) Token: 0x06003498 RID: 13464 RVA: 0x0011C837 File Offset: 0x0011AA37
12 public override string IDGenerator
13 {
14 get
15 {
16 return "Dungeon";
17 }
18 }
19
20 // Token: 0x17000FF3 RID: 4083
21 // (get) Token: 0x06003499 RID: 13465 RVA: 0x0011C83E File Offset: 0x0011AA3E
22 public override bool DisableRooms
23 {
24 get
25 {
26 return !base.IsPCFaction;
27 }
28 }
29
30 // Token: 0x17000FF4 RID: 4084
31 // (get) Token: 0x0600349A RID: 13466 RVA: 0x0011C849 File Offset: 0x0011AA49
32 public override bool UseFog
33 {
34 get
35 {
36 return true;
37 }
38 }
39
40 // Token: 0x17000FF5 RID: 4085
41 // (get) Token: 0x0600349B RID: 13467 RVA: 0x0011C84C File Offset: 0x0011AA4C
42 public override bool ShowDangerLv
43 {
44 get
45 {
46 return true;
47 }
48 }
49
50 // Token: 0x17000FF6 RID: 4086
51 // (get) Token: 0x0600349C RID: 13468 RVA: 0x0011C84F File Offset: 0x0011AA4F
52 public override float PrespawnRate
53 {
54 get
55 {
56 if (!this.idExport.IsEmpty())
57 {
58 return 0f;
59 }
60 return 1f;
61 }
62 }
63
64 // Token: 0x17000FF7 RID: 4087
65 // (get) Token: 0x0600349D RID: 13469 RVA: 0x0011C869 File Offset: 0x0011AA69
66 public override bool IsReturnLocation
67 {
68 get
69 {
70 return base.GetDeepestLv() == base.lv;
71 }
72 }
73
74 // Token: 0x17000FF8 RID: 4088
75 // (get) Token: 0x0600349E RID: 13470 RVA: 0x0011C879 File Offset: 0x0011AA79
76 public override int StartLV
77 {
78 get
79 {
80 return -1;
81 }
82 }
83
84 // Token: 0x17000FF9 RID: 4089
85 // (get) Token: 0x0600349F RID: 13471 RVA: 0x0011C87C File Offset: 0x0011AA7C
86 public override bool BlockBorderExit
87 {
88 get
89 {
90 return true;
91 }
92 }
93
94 // Token: 0x17000FFA RID: 4090
95 // (get) Token: 0x060034A0 RID: 13472 RVA: 0x0011C87F File Offset: 0x0011AA7F
96 public override float EvolvedChance
97 {
98 get
99 {
100 if (!EClass.debug.test)
101 {
102 return 0.08f;
103 }
104 return 1f;
105 }
106 }
107
108 // Token: 0x17000FFB RID: 4091
109 // (get) Token: 0x060034A1 RID: 13473 RVA: 0x0011C898 File Offset: 0x0011AA98
110 public override float BigDaddyChance
111 {
112 get
113 {
114 if (!EClass.debug.test)
115 {
116 return 0.08f;
117 }
118 return 1f;
119 }
120 }
121
122 // Token: 0x17000FFC RID: 4092
123 // (get) Token: 0x060034A2 RID: 13474 RVA: 0x0011C8B1 File Offset: 0x0011AAB1
124 public override float ShrineChance
125 {
126 get
127 {
128 if (!EClass.debug.test)
129 {
130 return 0.35f;
131 }
132 return 1f;
133 }
134 }
135
136 // Token: 0x17000FFD RID: 4093
137 // (get) Token: 0x060034A3 RID: 13475 RVA: 0x0011C8CA File Offset: 0x0011AACA
138 public override bool IsSnowCovered
139 {
140 get
141 {
142 return false;
143 }
144 }
145
146 // Token: 0x17000FFE RID: 4094
147 // (get) Token: 0x060034A4 RID: 13476 RVA: 0x0011C8CD File Offset: 0x0011AACD
148 public override bool GrowPlant
149 {
150 get
151 {
152 return true;
153 }
154 }
155
156 // Token: 0x17000FFF RID: 4095
157 // (get) Token: 0x060034A5 RID: 13477 RVA: 0x0011C8D0 File Offset: 0x0011AAD0
158 public override bool GrowWeed
159 {
160 get
161 {
162 return false;
163 }
164 }
165
166 // Token: 0x17001000 RID: 4096
167 // (get) Token: 0x060034A6 RID: 13478 RVA: 0x0011C8D3 File Offset: 0x0011AAD3
168 public override bool CountDeepestLevel
169 {
170 get
171 {
172 return true;
173 }
174 }
175
176 // Token: 0x17001001 RID: 4097
177 // (get) Token: 0x060034A7 RID: 13479 RVA: 0x0011C8D6 File Offset: 0x0011AAD6
178 public override ZoneTransition.EnterState RegionEnterState
179 {
180 get
181 {
182 return ZoneTransition.EnterState.Down;
183 }
184 }
185
186 // Token: 0x060034A8 RID: 13480 RVA: 0x0011C8DA File Offset: 0x0011AADA
187 public override string GetDungenID()
188 {
189 if (EClass.rnd(2) == 0)
190 {
191 return "DungeonRuins";
192 }
193 if (EClass.rnd(4) == 0)
194 {
195 return "Cavern";
196 }
197 if (EClass.rnd(8) == 0)
198 {
199 return "RoundRooms";
200 }
201 return "Dungeon";
202 }
203
204 // Token: 0x060034A9 RID: 13481 RVA: 0x0011C90B File Offset: 0x0011AB0B
205 public override void OnGenerateMap()
206 {
207 if (!this.idExport.IsEmpty())
208 {
209 return;
210 }
211 base.TryGenerateOre();
212 base.TryGenerateBigDaddy();
213 base.TryGenerateEvolved(false);
214 base.TryGenerateShrine();
215 }
216
217 // Token: 0x060034AA RID: 13482 RVA: 0x0011C934 File Offset: 0x0011AB34
218 public void PlaceRail(Zone_Dungeon.RailType railType = Zone_Dungeon.RailType.Mine)
219 {
220 Zone_Dungeon.<>c__DisplayClass35_0 CS$<>8__locals1;
221 CS$<>8__locals1.idRail = 31;
222 CS$<>8__locals1.idTrolley = "390";
223 CS$<>8__locals1.placeStopper = true;
224 int num = 8;
225 if (railType == Zone_Dungeon.RailType.Factoy)
226 {
227 CS$<>8__locals1.idRail = 110;
228 CS$<>8__locals1.placeStopper = false;
229 num = EClass.rnd(4) + 1;
230 }
231 PathManager.Instance._pathfinder.PunishChangeDirection = true;
232 PathManager.Instance._pathfinder.Diagonals = false;
233 TraitStairsDown traitStairsDown = EClass._map.FindThing<TraitStairsDown>();
234 TraitStairsUp traitStairsUp = EClass._map.FindThing<TraitStairsUp>();
235 if (traitStairsDown != null && traitStairsUp != null)
236 {
237 Zone_Dungeon.<PlaceRail>g__TryPlaceRail|35_0(traitStairsDown.owner.pos, traitStairsUp.owner.pos, ref CS$<>8__locals1);
238 }
239 int num2 = 0;
240 for (int i = 0; i < 200; i++)
241 {
242 if (Zone_Dungeon.<PlaceRail>g__TryPlaceRail|35_0(EClass._map.bounds.GetRandomSurface(false, true, false), EClass._map.bounds.GetRandomSurface(false, true, false), ref CS$<>8__locals1))
243 {
244 num2++;
245 if (num2 > num)
246 {
247 break;
248 }
249 }
250 }
251 PathManager.Instance._pathfinder.Diagonals = true;
252 }
253
254 // Token: 0x060034AC RID: 13484 RVA: 0x0011CA40 File Offset: 0x0011AC40
255 [CompilerGenerated]
256 internal static bool <PlaceRail>g__TryPlaceRail|35_0(Point p1, Point p2, ref Zone_Dungeon.<>c__DisplayClass35_0 A_2)
257 {
258 if (p1.Distance(p2) < 20)
259 {
260 return false;
261 }
262 PathProgress pathProgress = PathManager.Instance.RequestPathImmediate(p1, p2, EClass.pc, PathManager.MoveType.Default, -1, 0);
263 if (!pathProgress.HasPath)
264 {
265 return false;
266 }
267 Point point = new Point();
268 Point point2 = new Point();
269 bool flag = false;
270 int num = 0;
271 foreach (PathFinderNode pathFinderNode in pathProgress.nodes)
272 {
273 Point shared = Point.GetShared(pathFinderNode.X, pathFinderNode.Z);
274 for (int i = -1; i < 2; i++)
275 {
276 int j = -1;
277 while (j < 2)
278 {
279 point2.Set(shared.x + j, shared.z + i);
280 if ((Mathf.Abs(j) != 1 || Mathf.Abs(i) != 1) && point2.IsValid && point2.sourceObj.id == 31 && !point2.Equals(point))
281 {
282 flag = true;
283 if (num == 0)
284 {
285 return false;
286 }
287 break;
288 }
289 else
290 {
291 j++;
292 }
293 }
294 }
295 if (shared.sourceObj.id == A_2.idRail)
296 {
297 break;
298 }
299 shared.SetBlock(0, 0);
300 shared.SetObj(A_2.idRail, 1, 0);
301 shared.Things.ForeachReverse(delegate(Thing t)
302 {
303 if (!t.trait.CanBeDestroyed)
304 {
305 return;
306 }
307 t.Destroy();
308 });
309 if (flag)
310 {
311 break;
312 }
313 num++;
314 point.Set(shared);
315 }
316 if (!flag & A_2.placeStopper)
317 {
318 Point shared2 = Point.GetShared(pathProgress.nodes.LastItem<PathFinderNode>().X, pathProgress.nodes.LastItem<PathFinderNode>().Z);
319 Cell cell = shared2.cell;
320 int dir = (cell.Front.obj == 31) ? 0 : ((cell.Right.obj == 31) ? 1 : ((cell.Back.obj == 31) ? 2 : 3));
321 if (!shared2.HasThing)
322 {
323 EClass._zone.AddCard(ThingGen.Create("1208", -1, -1), shared2).Install().dir = dir;
324 }
325 }
326 if (num > 2)
327 {
328 Point shared3 = Point.GetShared(pathProgress.nodes.First<PathFinderNode>().X, pathProgress.nodes.First<PathFinderNode>().Z);
329 if (!shared3.HasThing)
330 {
331 EClass._zone.AddCard(ThingGen.Create(A_2.idTrolley, -1, -1), shared3).Install();
332 }
333 }
334 return true;
335 }
336
337 // Token: 0x02000C1A RID: 3098
338 public enum RailType
339 {
340 // Token: 0x04003026 RID: 12326
341 Mine,
342 // Token: 0x04003027 RID: 12327
343 Factoy
344 }
345}
Definition Cell.cs:10
Definition Point.cs:11
Definition Thing.cs:10
Definition Zone.cs:14