Elin Decompiled Documentation EA 23.229 Stable 1st Anniversary Patch 2
Loading...
Searching...
No Matches
Spatial.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Runtime.Serialization;
3using Algorithms;
4using Newtonsoft.Json;
5using UnityEngine;
6
7public class Spatial : EClass
8{
9 [JsonProperty]
11
12 [JsonProperty]
13 public string id;
14
15 [JsonProperty]
16 public string idUser;
17
18 [JsonProperty]
19 public string name;
20
21 [JsonProperty]
22 public string idMainFaction;
23
24 [JsonProperty]
25 public string idProfile;
26
27 [JsonProperty]
28 public string idCurrentSubset;
29
30 [JsonProperty]
31 public string idHat;
32
33 [JsonProperty]
34 public int[] _ints = new int[30];
35
36 [JsonProperty]
37 public List<Spatial> children = new List<Spatial>();
38
39 [JsonProperty]
40 public List<Spatial> connections = new List<Spatial>();
41
42 [JsonProperty(PropertyName = "Y")]
43 public Dictionary<int, int> mapInt = new Dictionary<int, int>();
44
45 public bool destryoed;
46
47 public bool isImported;
48
50
52
54
55 protected Point _regionPos = new Point();
56
57 public int _bits
58 {
59 get
60 {
61 return _ints[0];
62 }
63 set
64 {
65 _ints[0] = value;
66 }
67 }
68
69 public int uid
70 {
71 get
72 {
73 return _ints[1];
74 }
75 set
76 {
77 _ints[1] = value;
78 }
79 }
80
81 public int icon
82 {
83 get
84 {
85 return _ints[2];
86 }
87 set
88 {
89 _ints[2] = value;
90 }
91 }
92
93 public int x
94 {
95 get
96 {
97 return _ints[3];
98 }
99 set
100 {
101 _ints[3] = value;
102 }
103 }
104
105 public int y
106 {
107 get
108 {
109 return _ints[4];
110 }
111 set
112 {
113 _ints[4] = value;
114 }
115 }
116
117 public int lastActive
118 {
119 get
120 {
121 return _ints[5];
122 }
123 set
124 {
125 _ints[5] = value;
126 }
127 }
128
129 public int idPrefix
130 {
131 get
132 {
133 return _ints[6];
134 }
135 set
136 {
137 _ints[6] = value;
138 }
139 }
140
141 public int lv
142 {
143 get
144 {
145 return _ints[7];
146 }
147 set
148 {
149 _ints[7] = value;
150 }
151 }
152
153 public int visitCount
154 {
155 get
156 {
157 return _ints[8];
158 }
159 set
160 {
161 _ints[8] = value;
162 }
163 }
164
165 public int dateExpire
166 {
167 get
168 {
169 return _ints[9];
170 }
171 set
172 {
173 _ints[9] = value;
174 }
175 }
176
177 public int dateRevive
178 {
179 get
180 {
181 return _ints[10];
182 }
183 set
184 {
185 _ints[10] = value;
186 }
187 }
188
189 public int _dangerLv
190 {
191 get
192 {
193 return _ints[11];
194 }
195 set
196 {
197 _ints[11] = value;
198 }
199 }
200
201 public int dateRegenerate
202 {
203 get
204 {
205 return _ints[12];
206 }
207 set
208 {
209 _ints[12] = value;
210 }
211 }
212
213 public int influence
214 {
215 get
216 {
217 return _ints[13];
218 }
219 set
220 {
221 _ints[13] = value;
222 }
223 }
224
225 public int investment
226 {
227 get
228 {
229 return _ints[14];
230 }
231 set
232 {
233 _ints[14] = value;
234 }
235 }
236
237 public int development
238 {
239 get
240 {
241 return _ints[15];
242 }
243 set
244 {
245 _ints[15] = value;
246 }
247 }
248
249 public int electricity
250 {
251 get
252 {
253 return _ints[16];
254 }
255 set
256 {
257 _ints[16] = value;
258 }
259 }
260
261 public int dateHat
262 {
263 get
264 {
265 return _ints[17];
266 }
267 set
268 {
269 _ints[17] = value;
270 }
271 }
272
273 public int uidBoss
274 {
275 get
276 {
277 return _ints[18];
278 }
279 set
280 {
281 _ints[18] = value;
282 }
283 }
284
285 public int dateQuest
286 {
287 get
288 {
289 return _ints[19];
290 }
291 set
292 {
293 _ints[19] = value;
294 }
295 }
296
297 public int version
298 {
299 get
300 {
301 return _ints[20];
302 }
303 set
304 {
305 _ints[20] = value;
306 }
307 }
308
309 public bool isGenerated
310 {
311 get
312 {
313 return bits[0];
314 }
315 set
316 {
317 bits[0] = value;
318 }
319 }
320
321 public bool isShore
322 {
323 get
324 {
325 return bits[3];
326 }
327 set
328 {
329 bits[3] = value;
330 }
331 }
332
333 public bool isRandomSite
334 {
335 get
336 {
337 return bits[6];
338 }
339 set
340 {
341 bits[6] = value;
342 }
343 }
344
345 public bool isKnown
346 {
347 get
348 {
349 return bits[7];
350 }
351 set
352 {
353 bits[7] = value;
354 }
355 }
356
357 public bool isMapSaved
358 {
359 get
360 {
361 return bits[8];
362 }
363 set
364 {
365 bits[8] = value;
366 }
367 }
368
369 public bool isExternalZone
370 {
371 get
372 {
373 return bits[9];
374 }
375 set
376 {
377 bits[9] = value;
378 }
379 }
380
381 public bool isConquered
382 {
383 get
384 {
385 return bits[10];
386 }
387 set
388 {
389 bits[10] = value;
390 }
391 }
392
393 public bool isBeach
394 {
395 get
396 {
397 return bits[11];
398 }
399 set
400 {
401 bits[11] = value;
402 }
403 }
404
405 public bool isPeace
406 {
407 get
408 {
409 return bits[12];
410 }
411 set
412 {
413 bits[12] = value;
414 }
415 }
416
417 public bool isDeathLocation
418 {
419 get
420 {
421 return bits[13];
422 }
423 set
424 {
425 bits[13] = value;
426 }
427 }
428
429 public bool isAlarmSet
430 {
431 get
432 {
433 return bits[14];
434 }
435 set
436 {
437 bits[14] = value;
438 }
439 }
440
442 {
443 get
444 {
445 return EClass.game.factions.dictAll.TryGetValue(idMainFaction) ?? EClass.Wilds;
446 }
447 set
448 {
449 idMainFaction = ((value == null) ? EClass.Wilds.uid : value.uid);
450 }
451 }
452
454
456
457 public bool IsClosed => source.tag.Contains("closed");
458
459 public int mapX
460 {
461 get
462 {
463 if (!EClass._zone.IsRegion)
464 {
465 return x;
466 }
467 return x - EClass.scene.elomap.minX;
468 }
469 }
470
471 public int mapY
472 {
473 get
474 {
475 if (!EClass._zone.IsRegion)
476 {
477 return y;
478 }
479 return y - EClass.scene.elomap.minY;
480 }
481 }
482
483 public virtual int ContentLv => DangerLv;
484
485 public virtual int DangerLv => _dangerLv;
486
487 public virtual int DangerLvFix => 0;
488
489 public virtual int DangerLvBoost => 0;
490
491 public virtual float VolumeSea
492 {
493 get
494 {
495 if (!isShore)
496 {
497 return 0f;
498 }
499 return 1f;
500 }
501 }
502
503 public virtual bool ShowDangerLv => false;
504
505 public virtual bool CanSpawnAdv => false;
506
507 public string pathSave => GameIO.pathCurrentSave + uid + "/";
508
509 public virtual string Name => ((idPrefix == 0) ? "" : (EClass.sources.zoneAffixes.map[idPrefix].GetName().ToTitleCase() + Lang.space)) + name.IsEmpty(source.GetText()) + NameSuffix;
510
511 public string NameWithDangerLevel => Name + (isRandomSite ? "dangerLv".lang(DangerLv.ToString() ?? "") : "");
512
513 public virtual string NameSuffix => "";
514
515 public virtual bool IsRegion => false;
516
517 public virtual bool CanFastTravel
518 {
519 get
520 {
521 if (!isRandomSite)
522 {
523 return !IsClosed;
524 }
525 return false;
526 }
527 }
528
530 {
531 get
532 {
533 if (_tile == null)
534 {
537 }
538 return _tile;
539 }
540 }
541
542 public virtual bool IsSnowZone => Tile.IsSnow;
543
544 public virtual bool IsSnowCovered
545 {
546 get
547 {
548 if (!EClass._map.IsIndoor)
549 {
550 if (!IsSnowZone)
551 {
553 }
554 return true;
555 }
556 return false;
557 }
558 }
559
561
562 public virtual bool isClaimable => false;
563
564 public int Seed => EClass.game.seed + Mathf.Abs(x) * 1000 + Mathf.Abs(y);
565
566 public int GetInt(int id, int? defaultInt = null)
567 {
568 if (mapInt.TryGetValue(id, out var value))
569 {
570 return value;
571 }
572 return defaultInt.GetValueOrDefault();
573 }
574
575 public void AddInt(int id, int value)
576 {
577 SetInt(id, GetInt(id) + value);
578 }
579
580 public void SetInt(int id, int value = 0)
581 {
582 if (value == 0)
583 {
584 if (mapInt.ContainsKey(id))
585 {
586 mapInt.Remove(id);
587 }
588 }
589 else
590 {
591 mapInt[id] = value;
592 }
593 }
594
595 public override string ToString()
596 {
597 return Name + "(" + uid + ")";
598 }
599
601 private void OnSerializing(StreamingContext context)
602 {
603 _bits = (int)bits.Bits;
604 }
605
607 private void OnDeserialized(StreamingContext context)
608 {
609 bits.Bits = (uint)_bits;
610 }
611
612 public void Create(string _id, int _x, int _y, int _icon)
613 {
614 x = _x;
615 y = _y;
616 icon = _icon;
618 id = _id;
619 development = source.dev;
620 _ = source.name == "*r";
621 _dangerLv = source.LV;
623 {
624 isKnown = true;
625 }
626 OnCreate();
627 Rand.SetSeed();
628 }
629
630 public void Register()
631 {
632 if (uid == 0)
633 {
635 }
636 }
637
638 public virtual void OnCreate()
639 {
640 }
641
642 public virtual void OnAfterCreate()
643 {
644 }
645
646 public virtual void SetMainFaction(Faction f)
647 {
648 mainFaction = f;
649 }
650
652 {
653 if (this is Zone)
654 {
655 return this as Zone;
656 }
657 foreach (Spatial child in children)
658 {
659 Zone firstZone = child.GetFirstZone();
660 if (firstZone != null)
661 {
662 return firstZone;
663 }
664 }
665 return null;
666 }
667
668 public void OnBeforeSave()
669 {
671 }
672
673 public virtual void _OnBeforeSave()
674 {
675 }
676
677 public void _OnLoad()
678 {
679 foreach (Spatial child in children)
680 {
681 child._OnLoad();
682 }
683 OnLoad();
684 }
685
686 public virtual void OnLoad()
687 {
688 }
689
690 public virtual void Destroy()
691 {
692 }
693
694 public void DeleteMapRecursive()
695 {
696 foreach (Spatial child in children)
697 {
698 child.DeleteMapRecursive();
699 }
700 IO.DeleteDirectory(pathSave);
701 }
702
703 public virtual void AddChild(Spatial child)
704 {
705 child.parent = this;
706 children.Add(child);
707 }
708
709 public void RemoveChild(Spatial child)
710 {
711 children.Remove(child);
712 child.parent = null;
713 }
714
716 {
717 Spatial spatial = this;
718 foreach (Spatial child in children)
719 {
720 if (!child.isExternalZone && child.lv < spatial.lv)
721 {
722 spatial = child;
723 }
724 }
725 return spatial as Zone;
726 }
727
728 public Zone FindZone(int lv)
729 {
730 foreach (Spatial child in children)
731 {
732 if (!child.isExternalZone && child.lv == lv)
733 {
734 return child as Zone;
735 }
736 }
737 if (this.lv != lv)
738 {
739 return null;
740 }
741 return this as Zone;
742 }
743
744 public Zone FindZone(string _id)
745 {
746 foreach (Spatial child in children)
747 {
748 Zone zone = child._FindZone(_id);
749 if (zone != null)
750 {
751 return zone;
752 }
753 }
754 return null;
755 }
756
757 protected Zone _FindZone(string _id)
758 {
759 foreach (Spatial child in children)
760 {
761 Zone zone = child._FindZone(_id);
762 if (zone != null)
763 {
764 return zone;
765 }
766 }
767 if (this is Zone && id == _id)
768 {
769 return (Zone)this;
770 }
771 return null;
772 }
773
774 public virtual bool CanKill()
775 {
776 return false;
777 }
778
779 public int Dist(Point p)
780 {
782 if (pathProgress.HasPath)
783 {
784 int num = 0;
785 {
786 foreach (PathFinderNode node in pathProgress.nodes)
787 {
788 bool flag = EClass.scene.elomap.GetTileInfo(node.X + EClass.scene.elomap.minX, node.Z + EClass.scene.elomap.minY)?.IsSnow ?? false;
789 num += ((!flag) ? 1 : 2);
790 }
791 return num;
792 }
793 }
794 return Fov.Distance(x, y, p.x + EClass.scene.elomap.minX, p.z + EClass.scene.elomap.minY);
795 }
796
797 public int Dist(Spatial s)
798 {
799 return Fov.Distance(s.x, s.y, x, y);
800 }
801
802 public void MakeGameObject(GameObject parentGo)
803 {
804 GameObject gameObject = new GameObject();
805 gameObject.name = ToString();
806 gameObject.transform.SetParent(parentGo.transform);
807 gameObject.AddComponent<SpatialInspector>().spatial = this;
808 foreach (Spatial child in children)
809 {
810 child.MakeGameObject(gameObject);
811 }
812 }
813}
Faction faction
Definition: Chara.cs:425
bool travelAnywhere
Definition: CoreDebug.cs:207
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Scene scene
Definition: EClass.cs:30
static Zone _zone
Definition: EClass.cs:20
static World world
Definition: EClass.cs:40
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
static Faction Wilds
Definition: EClass.cs:28
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
void Initialize(EloMap _elomap)
Definition: EloMapActor.cs:28
EloMap elomap
Definition: EloMapActor.cs:7
bool IsSnow
Definition: EloMap.cs:55
int minX
Definition: EloMap.cs:112
int minY
Definition: EloMap.cs:114
bool IsSnow(int gx, int gy)
Definition: EloMap.cs:434
TileInfo GetTileInfo(int gx, int gy)
Definition: EloMap.cs:286
Dictionary< string, Faction > dictAll
string uid
Definition: FACTION.cs:132
Definition: Fov.cs:6
static int Distance(int x1, int y1, int x2, int y2)
Definition: Fov.cs:134
SpatialManager spatials
Definition: Game.cs:152
FactionManager factions
Definition: Game.cs:161
Definition: Lang.cs:6
static string space
Definition: Lang.cs:32
bool IsIndoor
Definition: Map.cs:131
void RequestPathImmediate(PathProgress progress)
Definition: PathManager.cs:41
static PathManager Instance
Definition: PathManager.cs:16
List< PathFinderNode > nodes
Definition: PathProgress.cs:16
Definition: Point.cs:9
Point Set(int _x, int _z)
Definition: Point.cs:491
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
Definition: Rand.cs:4
static void SetSeed(int a=-1)
Definition: Rand.cs:37
EloMap elomap
Definition: Region.cs:8
EloMapActor elomapActor
Definition: Scene.cs:101
EloMap elomap
Definition: Scene.cs:149
bool isWinter
Definition: Season.cs:53
SourceZone zones
SourceZoneAffix zoneAffixes
void AssignUID(Spatial s)
Dictionary< int, int > mapInt
Definition: Spatial.cs:43
int mapX
Definition: Spatial.cs:460
int _dangerLv
Definition: Spatial.cs:190
int Dist(Spatial s)
Definition: Spatial.cs:797
int Dist(Point p)
Definition: Spatial.cs:779
int lv
Definition: Spatial.cs:142
Zone FindZone(string _id)
Definition: Spatial.cs:744
int electricity
Definition: Spatial.cs:250
virtual bool CanSpawnAdv
Definition: Spatial.cs:505
void SetInt(int id, int value=0)
Definition: Spatial.cs:580
virtual void OnCreate()
Definition: Spatial.cs:638
bool isRandomSite
Definition: Spatial.cs:334
virtual void AddChild(Spatial child)
Definition: Spatial.cs:703
EloMap.TileInfo _tile
Definition: Spatial.cs:53
bool isMapSaved
Definition: Spatial.cs:358
virtual bool IsSnowZone
Definition: Spatial.cs:542
int uid
Definition: Spatial.cs:70
bool isDeathLocation
Definition: Spatial.cs:418
virtual int ContentLv
Definition: Spatial.cs:483
bool isAlarmSet
Definition: Spatial.cs:430
virtual bool ShowDangerLv
Definition: Spatial.cs:503
void AddInt(int id, int value)
Definition: Spatial.cs:575
int investment
Definition: Spatial.cs:226
Spatial parent
Definition: Spatial.cs:10
int icon
Definition: Spatial.cs:82
void RemoveChild(Spatial child)
Definition: Spatial.cs:709
virtual void OnAfterCreate()
Definition: Spatial.cs:642
bool isExternalZone
Definition: Spatial.cs:370
int uidBoss
Definition: Spatial.cs:274
string idCurrentSubset
Definition: Spatial.cs:28
bool isGenerated
Definition: Spatial.cs:310
void MakeGameObject(GameObject parentGo)
Definition: Spatial.cs:802
EloMap.TileInfo Tile
Definition: Spatial.cs:530
void _OnLoad()
Definition: Spatial.cs:677
void DeleteMapRecursive()
Definition: Spatial.cs:694
bool IsClosed
Definition: Spatial.cs:457
virtual int DangerLvFix
Definition: Spatial.cs:487
void Create(string _id, int _x, int _y, int _icon)
Definition: Spatial.cs:612
string idMainFaction
Definition: Spatial.cs:22
void OnBeforeSave()
Definition: Spatial.cs:668
bool IsPlayerFaction
Definition: Spatial.cs:455
virtual bool IsRegion
Definition: Spatial.cs:515
virtual void _OnBeforeSave()
Definition: Spatial.cs:673
string name
Definition: Spatial.cs:19
string pathSave
Definition: Spatial.cs:507
virtual string Name
Definition: Spatial.cs:509
BitArray32 bits
Definition: Spatial.cs:49
virtual int DangerLvBoost
Definition: Spatial.cs:489
int Seed
Definition: Spatial.cs:564
bool isBeach
Definition: Spatial.cs:394
virtual bool IsSnowCovered
Definition: Spatial.cs:545
int dateQuest
Definition: Spatial.cs:286
virtual void Destroy()
Definition: Spatial.cs:690
override string ToString()
Definition: Spatial.cs:595
int dateHat
Definition: Spatial.cs:262
Zone GetFirstZone()
Definition: Spatial.cs:651
bool isKnown
Definition: Spatial.cs:346
virtual void OnLoad()
Definition: Spatial.cs:686
Faction mainFaction
Definition: Spatial.cs:442
Point _regionPos
Definition: Spatial.cs:55
int[] _ints
Definition: Spatial.cs:34
SourceZone.Row source
Definition: Spatial.cs:453
virtual bool CanKill()
Definition: Spatial.cs:774
void OnDeserialized(StreamingContext context)
Definition: Spatial.cs:607
bool destryoed
Definition: Spatial.cs:45
virtual void SetMainFaction(Faction f)
Definition: Spatial.cs:646
virtual float VolumeSea
Definition: Spatial.cs:492
int GetInt(int id, int? defaultInt=null)
Definition: Spatial.cs:566
int idPrefix
Definition: Spatial.cs:130
virtual bool isClaimable
Definition: Spatial.cs:562
virtual string NameSuffix
Definition: Spatial.cs:513
void Register()
Definition: Spatial.cs:630
virtual int DangerLv
Definition: Spatial.cs:485
string id
Definition: Spatial.cs:13
int development
Definition: Spatial.cs:238
int lastActive
Definition: Spatial.cs:118
SourceZone.Row _source
Definition: Spatial.cs:51
void OnSerializing(StreamingContext context)
Definition: Spatial.cs:601
virtual bool CanFastTravel
Definition: Spatial.cs:518
bool isImported
Definition: Spatial.cs:47
bool isConquered
Definition: Spatial.cs:382
int version
Definition: Spatial.cs:298
string idProfile
Definition: Spatial.cs:25
int y
Definition: Spatial.cs:106
virtual Point RegionPos
Definition: Spatial.cs:560
int dateExpire
Definition: Spatial.cs:166
bool isShore
Definition: Spatial.cs:322
Zone _FindZone(string _id)
Definition: Spatial.cs:757
int dateRevive
Definition: Spatial.cs:178
bool isPeace
Definition: Spatial.cs:406
Zone FindDeepestZone()
Definition: Spatial.cs:715
int mapY
Definition: Spatial.cs:472
int dateRegenerate
Definition: Spatial.cs:202
int influence
Definition: Spatial.cs:214
int _bits
Definition: Spatial.cs:58
List< Spatial > connections
Definition: Spatial.cs:40
int visitCount
Definition: Spatial.cs:154
int x
Definition: Spatial.cs:94
List< Spatial > children
Definition: Spatial.cs:37
Zone FindZone(int lv)
Definition: Spatial.cs:728
string idUser
Definition: Spatial.cs:16
string NameWithDangerLevel
Definition: Spatial.cs:511
string idHat
Definition: Spatial.cs:31
Region region
Definition: World.cs:23
Season season
Definition: World.cs:9
Definition: Zone.cs:12
uint Bits
Definition: BitArray32.cs:6