Elin Decompiled Documentation EA 23.259 Nightly
Loading...
Searching...
No Matches
Game.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Runtime.Serialization;
5using Newtonsoft.Json;
6using UnityEngine;
7
8public class Game : EClass
9{
10 public class Config : EClass
11 {
12 [JsonProperty]
13 public bool showRoof;
14
15 [JsonProperty]
16 public bool showWall;
17
18 [JsonProperty]
19 public bool tilt;
20
21 [JsonProperty]
22 public bool tiltRegion;
23
24 [JsonProperty]
25 public bool slope;
26
27 [JsonProperty]
28 public bool noRoof;
29
30 [JsonProperty]
31 public bool freePos;
32
33 [JsonProperty]
34 public bool snapFreePos;
35
36 [JsonProperty]
37 public bool buildLight;
38
39 [JsonProperty]
40 public bool highlightArea;
41
42 [JsonProperty]
43 public bool autoWall;
44
45 [JsonProperty]
46 public bool showGuideGrid;
47
48 [JsonProperty]
49 public bool reverseSnow;
50
51 [JsonProperty]
52 public bool autoCollectCard;
53
54 [JsonProperty]
55 public bool cheat;
56
57 [JsonProperty]
58 public bool showAllFeat;
59
60 [JsonProperty]
61 public int slopeMod = 50;
62
63 [JsonProperty]
64 public int defaultZoom = 100;
65
66 [JsonProperty]
67 public int zoomedZoom = 125;
68
69 [JsonProperty]
70 public int regionZoom = 100;
71
72 [JsonProperty]
73 public int tiltPower = 80;
74
75 [JsonProperty]
76 public int tiltPowerRegion = 50;
77
78 [JsonProperty]
79 public int gridIconSize = 100;
80
81 [JsonProperty]
82 public int backDrawAlpha = 10;
83
84 [JsonProperty]
85 public int animeSpeed = 100;
86
87 [JsonProperty]
88 public int lowWallObjAltitude = 2;
89
90 [JsonProperty]
92
93 [JsonProperty]
95
96 [JsonProperty]
98
99 public bool FreePos
100 {
101 get
102 {
103 if (!Input.GetKey(KeyCode.LeftShift))
104 {
105 return Input.GetKey(KeyCode.RightShift);
106 }
107 return true;
108 }
109 }
110 }
111
112 public class Flags : EClass
113 {
114 [JsonProperty]
115 public int _b1;
116
118
120 {
121 get
122 {
123 return b1[0];
124 }
125 set
126 {
127 b1[0] = value;
128 }
129 }
130
132 private void OnSerializing(StreamingContext context)
133 {
134 _b1 = (int)b1.Bits;
135 }
136
137 [OnDeserialized]
138 private void _OnDeserialized(StreamingContext context)
139 {
140 b1.Bits = (uint)_b1;
141 }
142 }
143
144 public static Game Instance;
145
146 public static float waitTimer;
147
148 public static string id;
149
150 public static bool isPaused;
151
152 [JsonProperty(Order = -90)]
154
155 [JsonProperty(Order = -80)]
157
158 [JsonProperty(Order = -100)]
160
161 [JsonProperty(Order = -60)]
163
164 [JsonProperty(Order = -50)]
166
167 [JsonProperty]
169
170 [JsonProperty]
172
173 [JsonProperty]
175
176 [JsonProperty]
177 public new World world;
178
179 [JsonProperty]
180 public new Player player = new Player();
181
182 [JsonProperty]
184
185 [JsonProperty]
187
188 [JsonProperty]
189 public MsgLog log = new MsgLog
190 {
191 id = "log"
192 };
193
194 [JsonProperty]
195 public PCCUniformManager uniforms = new PCCUniformManager();
196
197 [JsonProperty]
199
200 [JsonProperty]
201 public int seed;
202
203 [JsonProperty]
204 public int idPrologue;
205
206 [JsonProperty]
207 public int idDifficulty;
208
209 [JsonProperty]
210 public int dateScratch;
211
212 [JsonProperty]
213 public double backupTime;
214
215 [JsonProperty]
216 public Flags flags = new Flags();
217
218 [JsonProperty]
219 public Config config = new Config();
220
221 [JsonProperty]
222 public List<Thing> lostThings = new List<Thing>();
223
224 [JsonProperty]
226
227 [JsonProperty]
229
230 public int gameSpeedIndex = 1;
231
232 public int lastGameSpeedIndex = 1;
233
234 public int sessionMin;
235
236 public int countLoadedMaps;
237
238 public int saveCount;
239
240 public float timeSinceStart;
241
242 public bool isLoading;
243
244 public bool isKilling;
245
246 public bool isCloud;
247
249
251
253
255
256 public Dictionary<string, IGlobalValue> referenceMap = new Dictionary<string, IGlobalValue>();
257
258 public HashSet<Texture2D> loadedTextures = new HashSet<Texture2D>();
259
260 private float welcomeTimer;
261
262 public static bool IsWaiting => waitTimer > 0f;
263
265
267
269
271
273
275
276 public bool IsSurvival => Prologue.type == GameType.Survival;
277
279
280 public new static void Wait(float a, Point p)
281 {
282 _ = p?.IsSync;
283 }
284
285 public new static void Wait(float a, Card c)
286 {
287 if (c != null && c.isSynced && !c.IsPC)
288 {
289 Wait(a);
290 }
291 }
292
293 public static void Wait(float a)
294 {
295 waitTimer = a * (float)(EClass.core.config.game.waiter * 25) / 100f;
296 }
297
298 public void OnUpdate()
299 {
300 backupTime += Time.deltaTime;
301 waitTimer -= Time.deltaTime;
302 timeSinceStart += Time.deltaTime;
303 player.stats.timeElapsed += Time.deltaTime;
305 {
306 flags.IsWelcomeMessageShown = true;
307 }
309 }
310
311 public static bool TryLoad(string id, bool cloud, Action onLoad)
312 {
314 {
315 onLoad();
316 return true;
317 }
318 EClass.ui.Say("incompatible");
319 return false;
320 }
321
322 public static void Load(string id, bool cloud)
323 {
324 string text = (cloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id;
325 Debug.Log("Loading: " + id + ": " + text);
326 if (EClass.game != null)
327 {
328 EClass.game.Kill();
329 }
331 EClass.core.game = GameIO.LoadGame(id, text, cloud);
332 EClass.game.isCloud = cloud;
333 EClass.game.isLoading = true;
337 EClass.scene.Init(Scene.Mode.StartGame);
338 if (EClass.game.altInv)
339 {
340 SoundManager.ignoreSounds = true;
342 {
343 EClass.ui.OpenFloatInv();
344 }
345 SoundManager.ignoreSounds = true;
347 {
348 EClass.ui.ToggleAbility();
349 }
350 SoundManager.ignoreSounds = false;
351 TooltipManager.Instance.HideTooltips(immediate: true);
352 }
353 if ((bool)WidgetSideScreen.Instance)
354 {
356 }
357 EClass.game.isLoading = false;
358 }
359
360 public void OnLoad()
361 {
362 domains.OnLoad();
365 world._OnLoad();
366 player.OnLoad();
368 {
369 EClass.pc.party.members.ForEach(delegate(Chara c)
370 {
371 c.currentZone = EClass.pc.homeZone;
372 c.global.transition = new ZoneTransition
373 {
374 state = ZoneTransition.EnterState.Return
375 };
376 });
377 }
378 player.zone = EClass.pc.currentZone;
379 EClass.pc.currentZone.lastActive = world.date.GetRaw();
380 if (spatials.Find("somewhere") == null)
381 {
382 SpatialGen.Create("somewhere", world.region, register: true);
383 }
384 EClass.pc.homeZone.isKnown = true;
387 foreach (Thing item in EClass.pc.things.List((Thing t) => t.Num <= 0 || t.isDestroyed))
388 {
389 item.parent.RemoveCard(item);
390 }
391 foreach (Thing item2 in EClass.pc.things.List((Thing t) => t.trait is TraitChestMerchant))
392 {
393 item2.Destroy();
394 }
395 foreach (Thing item3 in EClass.pc.things.List((Thing t) => t.invY == 1 && t.invX == -1))
396 {
397 item3.invY = 0;
398 }
399 foreach (Chara value in EClass.game.cards.globalCharas.Values)
400 {
401 if (value.id == "demitas" && value.faction.id == "wilds")
402 {
404 }
405 if (value.memberType == FactionMemberType.Livestock && !value.IsPCFaction)
406 {
407 value.memberType = FactionMemberType.Default;
408 }
409 if (!value.isDyed && value.HasTag(CTAG.random_color))
410 {
411 value.DyeRandom();
412 }
413 }
414 foreach (FactionBranch child in EClass.pc.faction.GetChildren())
415 {
416 foreach (Chara member in child.members)
417 {
418 if (!member.isDead && (member.currentZone == null || member.currentZone.id == "somewhere"))
419 {
420 Debug.Log("exception: Moving invalid chara: " + member.Name + "/" + member.currentZone?.ToString() + "/" + member.homeBranch?.ToString() + "/" + member.faction);
421 member.MoveZone(child.owner, ZoneTransition.EnterState.RandomVisit);
422 }
423 member.RefreshWorkElements(child.owner.elements);
424 member.Refresh();
425 }
426 }
427 EClass.pc.angle = player.angle;
429 if (cards.listAdv.Count == 0)
430 {
432 }
433 quests.list.ForeachReverse(delegate(Quest q)
434 {
435 if (!(q is QuestRandom))
436 {
437 foreach (Quest item4 in quests.list)
438 {
439 if (q != item4 && item4.id == q.id)
440 {
441 quests.list.Remove(item4);
442 break;
443 }
444 }
445 }
446 });
447 quests.globalList.ForeachReverse(delegate(Quest q)
448 {
449 if (!(q is QuestRandom))
450 {
451 foreach (Quest global in quests.globalList)
452 {
453 if (q != global && global.id == q.id)
454 {
455 quests.globalList.Remove(global);
456 break;
457 }
458 }
459 }
460 });
461 TryAddQuest("into_darkness", "exile_kettle");
462 if (version.IsBelow(0, 23, 221) && EClass.game.quests.IsCompleted("curry"))
463 {
464 world.SendPackage(ThingGen.CreateParcel(null, ThingGen.CreateCassette(110)));
465 }
466 if (version.IsBelow(0, 23, 185))
467 {
468 player.resetPrincipal = true;
469 }
470 if (version.IsBelow(0, 23, 182))
471 {
472 foreach (Chara value2 in cards.globalCharas.Values)
473 {
474 if (!value2.IsUnique && value2.c_lockedAge != 0)
475 {
476 value2.elements.SetBase(1243, 1);
477 }
478 }
479 }
480 if (version.IsBelow(0, 23, 155))
481 {
482 AddAdventurer("adv_yukiimo");
483 }
484 if (version.IsBelow(0, 23, 100))
485 {
486 int num = player.recipes.knownRecipes.TryGetValue("trainingDummy_heavy", 0);
487 if (num != 0)
488 {
489 player.recipes.knownRecipes["trainingDummy_heavy1"] = num;
490 }
491 }
492 if (version.IsBelow(0, 23, 96))
493 {
494 EClass.game.principal = IO.DeepCopy(EClass.setting.start.principals[0]);
495 }
496 if (player.resetPrincipal)
497 {
498 GameDifficultySetting gameDifficultySetting = EClass.setting.start.difficulties[idDifficulty];
499 EClass.game.principal.id = -1;
500 EClass.game.principal.permadeath = gameDifficultySetting.deleteGameOnDeath;
501 EClass.game.principal.disableManualSave = !gameDifficultySetting.allowManualSave;
502 EClass.core.actionsNextFrame.Add(delegate
503 {
504 EClass.ui.AddLayer<LayerWorldSetting>();
505 });
506 }
507 if (version.IsBelow(0, 23, 93))
508 {
510 Debug.Log("â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
511 while (TryAddRecipe())
512 {
513 }
514 }
515 if (version.IsBelow(0, 23, 72))
516 {
517 foreach (Chara value3 in EClass.game.cards.globalCharas.Values)
518 {
519 if (!value3.isDead)
520 {
521 value3.c_wasInPcParty = false;
522 }
523 }
524 }
525 if (version.IsBelow(0, 23, 59))
526 {
527 while (TryDestroy())
528 {
529 }
530 }
531 if (version.IsBelow(0, 23, 199) && EClass.game.quests.GetPhase<QuestNegotiationDarkness>() >= 3)
532 {
533 world.SendPackage(ThingGen.CreateParcel(null, ThingGen.Create("bone_duponne")));
534 }
535 if (version.IsBelow(0, 23, 195))
536 {
537 Zone zone = spatials.Find("startVillage2");
538 if (zone != null && zone.visitCount > 0)
539 {
541 }
542 }
543 if (version.IsBelow(0, 23, 52))
544 {
545 player.flags.toggleHotbarHighlightActivated = true;
546 }
547 if (version.IsBelow(0, 23, 51))
548 {
549 foreach (Chara value4 in EClass.game.cards.globalCharas.Values)
550 {
551 if (!(value4.id != "adv") && value4.IsPCFaction)
552 {
553 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.IsMale) ? 1 : 0);
554 }
555 }
556 }
557 if (version.IsBelow(0, 22, 91))
558 {
559 TryAddQuestIfActive("demitas_spellwriter", "into_darkness");
560 }
561 if (version.IsBelow(0, 22, 86))
562 {
563 Chara chara = cards.globalCharas.Find("demitas");
564 if (chara != null && chara._works != null && chara._works.Count > 0)
565 {
566 chara._works[0] = 51;
567 }
568 }
569 if (version.IsBelow(0, 22, 86))
570 {
571 TryAddQuest("farris_tulip", "greatDebt");
572 }
573 if (version.IsBelow(0, 22, 86))
574 {
575 TryAddQuest("exile_whisper", "exile_kettle");
576 }
577 if (version.IsBelow(0, 22, 85))
578 {
579 TryAddQuest("exile_meet", "pre_debt");
580 }
581 if (version.IsBelow(0, 22, 60) && EClass.game.quests.Get<QuestDebt>() != null)
582 {
583 Chara chara2 = cards.globalCharas.Find("loytel");
584 Debug.Log("Loytelfix: " + chara2.homeZone);
585 if (chara2.homeZone == null || !chara2.homeZone.IsPCFaction)
586 {
588 chara2.homeZone = EClass.pc.homeBranch.owner;
589 chara2.RemoveEditorTag(EditorTag.Invulnerable);
590 }
591 }
592 if (version.IsBelow(0, 22, 52) && quests.completedIDs.Contains("vernis_gold"))
593 {
594 quests.Add("pre_debt", "farris");
595 }
596 if (quests.completedIDs.Contains("farris_tulip"))
597 {
598 quests.globalList.ForeachReverse(delegate(Quest q)
599 {
600 if (q.id == "farris_tulip")
601 {
602 quests.globalList.Remove(q);
603 }
604 });
605 }
606 quests.list.ForeachReverse(delegate(Quest q)
607 {
608 if (q is QuestDialog && quests.completedIDs.Contains(q.id))
609 {
610 quests.list.Remove(q);
611 }
612 });
613 if (version.IsBelow(0, 22, 20))
614 {
615 foreach (Chara value5 in cards.globalCharas.Values)
616 {
617 value5.SetBool(18, enable: false);
618 }
619 }
620 if (version.IsBelow(0, 22, 22))
621 {
622 if (EClass.pc.faithElements != null)
623 {
625 }
626 foreach (Element item5 in EClass.pc.elements.ListElements((Element e) => e.source.categorySub == "god"))
627 {
628 EClass.pc.SetFeat(item5.id, 0);
629 }
631 }
632 if (version.IsBelow(0, 22, 45))
633 {
634 player.debt = 20000000;
635 }
636 if (!version.Equals(EClass.core.version))
637 {
638 player.recipes.OnVersionUpdate();
639 }
640 if (cards.container_deposit == null)
641 {
642 cards.container_deposit = ThingGen.Create("container_deposit");
643 if (player.bankMoney > 0)
644 {
645 cards.container_deposit.Add("money", player.bankMoney);
646 }
647 }
648 foreach (Quest item6 in quests.list)
649 {
650 if (item6 is QuestSequence && !EClass.sources.quests.map.ContainsKey(item6.idSource))
651 {
652 item6.phase = 0;
653 }
654 }
655 foreach (Quest global2 in quests.globalList)
656 {
657 if (global2 is QuestSequence && !EClass.sources.quests.map.ContainsKey(global2.idSource))
658 {
659 global2.phase = 0;
660 }
661 }
662 foreach (KeyValuePair<int, Spatial> item7 in EClass.game.spatials.map.ToList())
663 {
664 if (item7.Value == null)
665 {
666 EClass.game.spatials.map.Remove(item7.Key);
667 }
668 }
669 void TryAddQuest(string idQuest, string idReqQuest)
670 {
671 if (quests.completedIDs.Contains(idReqQuest) && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
672 {
673 quests.Add(idQuest);
674 }
675 }
676 void TryAddQuestIfActive(string idQuest, string idReqQuest)
677 {
678 if (quests.Get(idReqQuest) != null && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
679 {
680 quests.Add(idQuest);
681 }
682 }
683 bool TryAddRecipe()
684 {
685 foreach (string key in player.recipes.knownRecipes.Keys)
686 {
687 if (key.Length > 1 && key[0] == 'b')
688 {
689 RecipeSource recipeSource = RecipeManager.Get(key + "-p");
690 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
691 {
692 Debug.Log(recipeSource.id);
693 player.recipes.Add(recipeSource.id, showEffect: false);
694 return true;
695 }
696 recipeSource = RecipeManager.Get(key.Replace("-p", ""));
697 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
698 {
699 Debug.Log(recipeSource.id);
700 player.recipes.Add(recipeSource.id, showEffect: false);
701 return true;
702 }
703 }
704 }
705 return false;
706 }
707 static bool TryDestroy()
708 {
709 for (int i = 0; i < EClass.pc.party.members.Count; i++)
710 {
711 Chara chara3 = EClass.pc.party.members[i];
712 Debug.Log(chara3.id + "/" + chara3.uid + "/" + chara3._cints[1]);
713 for (int j = 0; j < EClass.pc.party.members.Count; j++)
714 {
715 Chara chara4 = EClass.pc.party.members[j];
716 if (i != j && chara3.uid == chara4.uid)
717 {
718 EClass.pc.party.uidMembers.RemoveAt(j);
719 EClass.pc.party.members.RemoveAt(j);
720 chara4.Destroy();
721 Debug.Log("Destroyed");
722 return true;
723 }
724 }
725 }
726 return false;
727 }
728 }
729
730 public static void Create(string _id = null, bool cloud = false)
731 {
732 id = _id ?? GameIO.GetNewId(cloud ? CorePath.RootSaveCloud : CorePath.RootSave, "world_");
733 OnBeforeInstantiate();
734 EClass.core.game = (Instance = new Game());
735 EClass.core.game.isCloud = cloud;
739 }
740
741 public static void OnBeforeInstantiate()
742 {
743 Player.seedHallucination = 0;
744 }
745
746 public void OnGameInstantiated()
747 {
748 HotItemHeld.taskBuild = null;
749 InvOwner.Trader = (InvOwner.Main = null);
750 LayerDrama.currentQuest = null;
751 BookList.Init();
752 ContentGallery.lastPage = 0;
753 ContentGallery.listMode = false;
754 if (!Application.isEditor || !EClass.debug.enable)
755 {
757 }
758 foreach (Chara value in cards.globalCharas.Values)
759 {
760 if (value.uid == player.uidChara)
761 {
762 player.chara = value;
763 break;
764 }
765 }
767 EClass.ui.widgets.OnGameInstantiated();
768 EClass.Sound.ResetPlaylist();
769 EClass.core.config.ApplyFPS(force: true);
770 }
771
772 public void _Create()
773 {
774 principal = IO.DeepCopy(EClass.setting.start.principals[0]);
775 idDifficulty = 1;
776 config.snapFreePos = (config.slope = (config.autoWall = true));
777 config.autoCombat.abortOnAllyDead = true;
778 config.autoCombat.abortOnHalfHP = true;
779 config.autoCombat.bUseHotBar = true;
780 config.autoCombat.bUseInventory = true;
781 config.autoCombat.bDontChangeTarget = true;
782 config.autoCombat.abortOnKill = true;
783 config.autoCombat.abortOnItemLoss = true;
784 seed = EClass.rnd(10000);
785 Debug.Log("creating game: " + id + " seed:" + seed);
786 startVersion = EClass.core.version;
787 uniforms.Import();
788 religions.OnCreateGame();
789 factions.OnCreateGame();
791 domains.OnCreateGame();
792 foreach (Spatial value in spatials.map.Values)
793 {
794 value.SetMainFaction(factions.Find(value.source.faction.IsEmpty("wilds")));
795 }
796 player.OnCreateGame();
797 cards.container_shipping = ThingGen.Create("container_shipping");
798 cards.container_deliver = ThingGen.Create("container_delivery");
799 cards.container_deposit = ThingGen.Create("container_deposit");
800 bp = new GameBlueprint();
801 bp.Create();
802 }
803
804 public void StartNewGame()
805 {
806 EClass.pc.homeZone = StartZone;
808 parties.Create(EClass.pc);
809 Prologue prologue = EClass.game.Prologue;
810 if (prologue.type == GameType.Survival)
811 {
812 survival = new SurvivalManager();
813 }
814 else
815 {
816 CharaGen.Create("fiama").SetGlobal(EClass.game.StartZone, prologue.posFiama.x, prologue.posFiama.y);
817 CharaGen.Create("ashland").SetGlobal(EClass.game.StartZone, prologue.posAsh.x, prologue.posAsh.y);
818 }
819 if ((bool)LayerTitle.actor)
820 {
821 world.date.hour = EClass.game.Prologue.hour;
823 Player obj = player;
824 Chara chara = EClass.pc;
825 Zone zone2 = (EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone));
826 Zone zone4 = (chara.currentZone = zone2);
827 obj.zone = zone4;
828 EClass.pc.global.transition = new ZoneTransition
829 {
830 state = ZoneTransition.EnterState.Exact,
832 z = EClass.game.Prologue.startZ
833 };
834 EClass.pc.hp = EClass.pc.MaxHP;
837 EClass.pc.AddCondition<ConFaint>(200, force: true);
838 }
839 else
840 {
841 EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone);
842 Zone zone5 = null;
843 ZoneTransition transition = new ZoneTransition
844 {
845 state = ZoneTransition.EnterState.Auto
846 };
847 Chara c = EClass.game.cards.globalCharas.Find("ashland");
848 switch (EClass.debug.startScene)
849 {
850 case CoreDebug.StartScene.Zone:
852 transition = new ZoneTransition
853 {
854 state = ZoneTransition.EnterState.Exact,
856 z = EClass.game.Prologue.startZ
857 };
858 break;
859 case CoreDebug.StartScene.Home:
860 case CoreDebug.StartScene.Story_Test:
862 transition = new ZoneTransition
863 {
864 state = ZoneTransition.EnterState.Exact,
866 z = EClass.game.Prologue.startZ
867 };
868 break;
869 case CoreDebug.StartScene.Survival:
870 EClass.game.idPrologue = 3;
872 transition = new ZoneTransition
873 {
874 state = ZoneTransition.EnterState.Exact,
876 z = EClass.game.Prologue.startZ
877 };
878 break;
879 case CoreDebug.StartScene.Home_Cave:
880 EClass.game.idPrologue = 2;
882 transition = new ZoneTransition
883 {
884 state = ZoneTransition.EnterState.Exact,
886 z = EClass.game.Prologue.startZ
887 };
888 break;
889 case CoreDebug.StartScene.MeetFarris:
890 {
891 Zone parent4 = EClass.game.spatials.Find("nymelle");
892 zone5 = SpatialGen.Create("nymelle", parent4, register: true) as Zone;
893 zone5.lv = -2;
894 EClass.game.quests.Start("exploration", c, assignQuest: false);
895 break;
896 }
897 case CoreDebug.StartScene.NymelleBoss:
898 {
899 Zone parent3 = EClass.game.spatials.Find("nymelle");
900 zone5 = SpatialGen.Create("nymelle_boss", parent3, register: true) as Zone;
901 zone5.lv = -5;
902 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(2);
903 break;
904 }
905 case CoreDebug.StartScene.AfterNymelle:
907 transition = new ZoneTransition
908 {
909 state = ZoneTransition.EnterState.Exact,
911 z = EClass.game.Prologue.startZ
912 };
913 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(5);
914 EClass.game.quests.globalList.Add(Quest.Create("sharedContainer").SetClient(c, assignQuest: false));
915 EClass.game.quests.globalList.Add(Quest.Create("crafter").SetClient(c, assignQuest: false));
916 EClass.game.quests.globalList.Add(Quest.Create("defense").SetClient(c, assignQuest: false));
917 break;
918 case CoreDebug.StartScene.Melilith:
919 {
920 Zone parent2 = EClass.game.spatials.Find("cursed_manor");
921 zone5 = SpatialGen.Create("cursed_manor_dungeon", parent2, register: true) as Zone;
922 zone5.lv = -5;
923 break;
924 }
925 case CoreDebug.StartScene.Tefra:
926 {
927 Zone parent = EClass.game.spatials.Find("vernis");
928 zone5 = SpatialGen.Create("vernis_mine", parent, register: true) as Zone;
929 zone5.lv = -7;
930 break;
931 }
932 }
933 if (zone5 != null)
934 {
935 Player obj2 = player;
936 Chara chara2 = EClass.pc;
937 Zone zone2 = (EClass.pc.homeZone = zone5);
938 Zone zone4 = (chara2.currentZone = zone2);
939 obj2.zone = zone4;
940 EClass.pc.global.transition = transition;
941 }
942 else
943 {
944 Player obj3 = player;
945 Zone zone4 = (EClass.pc.currentZone = EClass.game.spatials.Find(EClass.debug.startZone));
946 obj3.zone = zone4;
947 EClass.pc.global.transition = new ZoneTransition
948 {
949 state = ZoneTransition.EnterState.Return
950 };
951 }
952 }
953 EClass.pc.homeZone.isKnown = true;
954 AddAdventurers();
955 player.OnStartNewGame();
956 EClass.scene.Init(Scene.Mode.StartGame);
957 }
958
959 public void AddAdventurers()
960 {
961 List<Zone> source = world.region.ListTowns();
962 string[] array = new string[7] { "adv_kiria", "adv_gaki", "adv_wini", "adv_verna", "adv_ivory", "adv_mesherada", "adv_yukiimo" };
963 for (int i = 0; i < EClass.setting.balance.numAdv; i++)
964 {
965 Zone zone = source.RandomItem();
966 if (zone is Zone_SubTown && EClass.rnd(5) != 0)
967 {
968 i--;
969 continue;
970 }
971 if (i >= array.Length && i < array.Length + 2)
972 {
974 }
975 Chara chara = CharaGen.Create((i < array.Length) ? array[i] : ((EClass.rnd(10) == 0) ? "adv_fairy" : "adv"));
976 chara.SetHomeZone(zone);
977 chara.global.transition = new ZoneTransition
978 {
979 state = ZoneTransition.EnterState.RandomVisit
980 };
981 zone.AddCard(chara);
982 cards.listAdv.Add(chara);
983 }
984 }
985
986 public void AddAdventurer(string id, Zone z = null)
987 {
988 if (z == null)
989 {
990 List<Zone> source = world.region.ListTowns();
991 do
992 {
993 z = source.RandomItem();
994 }
995 while ((z is Zone_SubTown && EClass.rnd(5) != 0) || z == EClass.pc.currentZone);
996 }
997 Chara chara = CharaGen.Create(id);
998 chara.SetHomeZone(z);
999 chara.global.transition = new ZoneTransition
1000 {
1001 state = ZoneTransition.EnterState.RandomVisit
1002 };
1003 z.AddCard(chara);
1004 cards.listAdv.Add(chara);
1005 }
1006
1007 public void GotoTitle(bool showDialog = true)
1008 {
1009 if (showDialog)
1010 {
1011 Dialog.YesNo("dialog_gotoTitle", delegate
1012 {
1013 if (EClass.game.Save(isAutoSave: true))
1014 {
1015 EClass.scene.Init(Scene.Mode.Title);
1016 }
1017 });
1018 }
1019 else
1020 {
1021 EClass.scene.Init(Scene.Mode.Title);
1022 }
1023 }
1024
1025 public void Quit()
1026 {
1027 Dialog.YesNo("dialog_quit", delegate
1028 {
1029 if (EClass.game.Save())
1030 {
1031 EClass.core.Quit();
1032 }
1033 });
1034 }
1035
1036 public bool Save(bool isAutoSave = false, bool silent = false)
1037 {
1038 if (EClass.ui.IsDragging)
1039 {
1040 EClass.ui.EndDrag(canceled: true);
1041 }
1042 if (isAutoSave && EClass.debug.ignoreAutoSave)
1043 {
1044 return true;
1045 }
1046 bool flag = EClass.core.config.game.autoBackup && backupTime >= (double)(EClass.core.config.game.backupInterval * 60 * 30);
1047 if (flag)
1048 {
1049 backupTime = 0.0;
1050 }
1052 countLoadedMaps = 0;
1053 player.pref.layerInventory = EClass.ui.layerFloat.GetLayer<LayerInventory>();
1054 if (player.pref.layerInventory)
1055 {
1056 player.pref.layerAbility = EClass.ui.layerFloat.GetLayer<LayerAbility>();
1057 }
1058 player.pref.layerCraft = EClass.ui.layerFloat.GetLayer<LayerCraftFloat>();
1059 player.angle = EClass.pc.angle;
1060 version = EClass.core.version;
1061 EClass.ui.widgets.UpdateConfigs();
1062 GameIndex gameIndex = null;
1063 try
1064 {
1065 OnBeforeSave();
1066 gameIndex = GameIO.SaveGame();
1067 }
1068 catch (Exception ex)
1069 {
1070 EClass.ui.Say(ex.Message);
1071 SE.Beep();
1072 Msg.Say("error_save");
1073 return false;
1074 }
1075 if (flag)
1076 {
1077 GameIO.MakeBackup(gameIndex);
1078 EClass.ui.Say("backupDone");
1079 }
1080 if (!silent)
1081 {
1082 if (!isAutoSave)
1083 {
1084 SE.WriteJournal();
1085 }
1086 Msg.Say("saved");
1087 }
1088 saveCount++;
1089 return true;
1090 }
1091
1092 public void OnBeforeSave()
1093 {
1094 foreach (Zone zone in spatials.Zones)
1095 {
1096 zone.OnBeforeSave();
1097 }
1098 player.OnBeforeSave();
1099 foreach (Spatial item in spatials.listDestryoed)
1100 {
1101 item.DeleteMapRecursive();
1102 }
1103 spatials.listDestryoed.Clear();
1104 }
1105
1106 public void Kill()
1107 {
1108 isKilling = true;
1109 Debug.Log("Killing Game: IsStarted? " + EClass.core.IsGameStarted);
1111 {
1112 EClass.ui.OnKillGame();
1114 activeZone.OnKillGame();
1115 }
1116 EClass.core.game = (Instance = null);
1117 EClass.Sound.currentPlaylist = null;
1118 Window.dictTab.Clear();
1119 foreach (Texture2D loadedTexture in loadedTextures)
1120 {
1121 if (loadedTexture != null)
1122 {
1123 UnityEngine.Object.Destroy(loadedTexture);
1124 }
1125 }
1126 }
1127
1128 public void Pause(Action onUnpause = null)
1129 {
1130 isPaused = true;
1131 LayerPause layerPause = EClass.ui.AddLayer<LayerPause>();
1132 Game lastGame = EClass.game;
1133 if (onUnpause == null)
1134 {
1135 return;
1136 }
1137 layerPause.SetOnKill(delegate
1138 {
1139 if (EClass.core.IsGameStarted && lastGame == EClass.game)
1140 {
1141 onUnpause();
1142 }
1143 });
1144 }
1145
1146 [OnSerializing]
1147 private void OnSerializing(StreamingContext context)
1148 {
1149 Debug.Log("#io game OnSerializing");
1150 }
1151
1152 [OnDeserializing]
1153 private void OnDeserializing(StreamingContext context)
1154 {
1155 Debug.Log("#io game OnDeserializing");
1156 Instance = this;
1157 }
1158}
CTAG
Definition: CTAG.cs:2
@ seed
EditorTag
Definition: EditorTag.cs:2
FactionMemberType
GameType
Definition: GameType.cs:2
static void OnGameInstantiated()
Definition: ActionMode.cs:247
void SetBool(int id, bool enable)
Definition: BaseCard.cs:20
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
Version version
Definition: BaseCore.cs:17
static void Init()
Definition: BookList.cs:22
static void Set(CardBlueprint _bp=null)
static CardBlueprint Chara(int lv, Rarity rarity=Rarity.Normal)
Chara Find(string id)
Definition: CardManager.cs:20
List< Chara > listAdv
Definition: CardManager.cs:64
GlobalCharaList globalCharas
Definition: CardManager.cs:46
Thing container_deposit
Definition: CardManager.cs:58
Definition: Card.cs:11
float angle
Definition: Card.cs:72
int c_lockedAge
Definition: Card.cs:1354
bool isDestroyed
Definition: Card.cs:76
void RemoveEditorTag(EditorTag tag)
Definition: Card.cs:2613
ElementContainerCard elements
Definition: Card.cs:42
string id
Definition: Card.cs:36
bool IsUnique
Definition: Card.cs:2092
int invY
Definition: Card.cs:1956
bool IsMale
Definition: Card.cs:2387
string Name
Definition: Card.cs:2140
bool HasTag(CTAG tag)
Definition: Card.cs:2598
void DyeRandom()
Definition: Card.cs:6052
int uid
Definition: Card.cs:123
Trait trait
Definition: Card.cs:54
bool isDyed
Definition: Card.cs:459
void Destroy()
Definition: Card.cs:5103
ThingContainer things
Definition: Card.cs:39
virtual bool IsPC
Definition: Card.cs:2146
int invX
Definition: Card.cs:1944
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3100
int Num
Definition: Card.cs:159
virtual bool isSynced
Definition: Card.cs:2088
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
Definition: Chara.cs:10
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1731
int[] _cints
Definition: Chara.cs:82
void RefreshWorkElements(ElementContainer parent=null)
Definition: Chara.cs:9075
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9315
Faction faction
Definition: Chara.cs:429
void SetFeat(int id, int value=1, bool msg=false)
Definition: Chara.cs:9951
Party party
Definition: Chara.cs:43
Chara SetHomeZone(Zone zone)
Definition: Chara.cs:1433
Chara SetGlobal(Zone _home, int x, int z)
Definition: Chara.cs:1477
override bool IsPCFaction
Definition: Chara.cs:673
override int MaxHP
Definition: Chara.cs:710
Zone currentZone
Definition: Chara.cs:257
Stats mana
Definition: Chara.cs:1156
FactionMemberType memberType
Definition: Chara.cs:46
Stats stamina
Definition: Chara.cs:1148
Zone homeZone
Definition: Chara.cs:269
void RefreshFaithElement()
Definition: Chara.cs:10265
ElementContainer faithElements
Definition: Chara.cs:38
FactionBranch homeBranch
Definition: Chara.cs:1068
bool isDead
Definition: Chara.cs:391
List< int > _works
Definition: Chara.cs:52
void MoveZone(string alias)
Definition: Chara.cs:3355
new GameConfig game
Definition: CoreConfig.cs:609
void ApplyFPS(bool force=false)
Definition: CoreConfig.cs:841
void TryUpdatePlayedHour()
Definition: CoreConfig.cs:815
string startZone
Definition: CoreDebug.cs:106
bool enable
Definition: CoreDebug.cs:286
void OnLoad()
Definition: CoreDebug.cs:710
bool ignoreAutoSave
Definition: CoreDebug.cs:126
StartScene startScene
Definition: CoreDebug.cs:96
static string RootSave
Definition: CorePath.cs:206
static string RootSaveCloud
Definition: CorePath.cs:208
Game game
Definition: Core.cs:72
bool IsGameStarted
Definition: Core.cs:84
CoreConfig config
Definition: Core.cs:70
int GetRaw(int offsetHours=0)
Definition: Date.cs:326
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:244
void OnCreateGame()
Definition: DomainManager.cs:7
Definition: EClass.cs:6
static Game game
Definition: EClass.cs:9
static Scene scene
Definition: EClass.cs:31
static Core core
Definition: EClass.cs:7
static int rnd(long a)
Definition: EClass.cs:59
static SourceManager sources
Definition: EClass.cs:43
static Chara pc
Definition: EClass.cs:15
static CoreDebug debug
Definition: EClass.cs:49
static SoundManager Sound
Definition: EClass.cs:47
static UI ui
Definition: EClass.cs:17
static GameSetting setting
Definition: EClass.cs:35
List< Element > ListElements(Func< Element, bool > shoudList=null, Comparison< Element > comparison=null)
void SetParent(Card c)
Element SetBase(string alias, int v, int potential=0)
int id
Definition: ELEMENT.cs:255
SourceElement.Row source
Definition: ELEMENT.cs:278
List< Chara > members
void AddMemeber(Chara c)
Faction Find(string id)
List< FactionBranch > GetChildren()
Definition: FACTION.cs:202
string id
Definition: FACTION.cs:129
Definition: GameIO.cs:11
static string GetNewId(string path, string prefix="", int start=1)
Definition: GameIO.cs:355
static bool CanLoad(string root)
Definition: GameIO.cs:147
static GameIndex SaveGame()
Definition: GameIO.cs:82
static void ClearTemp()
Definition: GameIO.cs:64
static Game LoadGame(string id, string root, bool cloud)
Definition: GameIO.cs:153
static void ResetTemp()
Definition: GameIO.cs:54
static void MakeBackup(GameIndex index, string suffix="")
Definition: GameIO.cs:115
List< GameDifficultySetting > difficulties
Definition: GameSetting.cs:242
List< GamePrincipal > principals
Definition: GameSetting.cs:244
List< Prologue > prologues
Definition: GameSetting.cs:240
StartSetting start
Definition: GameSetting.cs:305
BalanceSetting balance
Definition: GameSetting.cs:309
void FixedUpdate()
Definition: GameUpdater.cs:436
int slopeMod
Definition: Game.cs:61
bool tilt
Definition: Game.cs:19
bool buildLight
Definition: Game.cs:37
int animeSpeed
Definition: Game.cs:85
bool showRoof
Definition: Game.cs:13
bool showWall
Definition: Game.cs:16
int regionZoom
Definition: Game.cs:70
bool autoCollectCard
Definition: Game.cs:52
ConfigPreference preference
Definition: Game.cs:97
bool noRoof
Definition: Game.cs:28
int defaultZoom
Definition: Game.cs:64
bool showGuideGrid
Definition: Game.cs:46
int lowWallObjAltitude
Definition: Game.cs:88
bool highlightArea
Definition: Game.cs:40
int zoomedZoom
Definition: Game.cs:67
int tiltPower
Definition: Game.cs:73
int backDrawAlpha
Definition: Game.cs:82
int tiltPowerRegion
Definition: Game.cs:76
bool showAllFeat
Definition: Game.cs:58
bool snapFreePos
Definition: Game.cs:34
int gridIconSize
Definition: Game.cs:79
bool cheat
Definition: Game.cs:55
bool reverseSnow
Definition: Game.cs:49
bool tiltRegion
Definition: Game.cs:22
bool slope
Definition: Game.cs:25
bool FreePos
Definition: Game.cs:100
bool autoWall
Definition: Game.cs:43
ConfigTactics tactics
Definition: Game.cs:91
bool freePos
Definition: Game.cs:31
ConfigAutoCombat autoCombat
Definition: Game.cs:94
bool IsWelcomeMessageShown
Definition: Game.cs:120
BitArray32 b1
Definition: Game.cs:117
void OnSerializing(StreamingContext context)
Definition: Game.cs:132
void _OnDeserialized(StreamingContext context)
Definition: Game.cs:138
int _b1
Definition: Game.cs:115
Definition: Game.cs:9
void OnSerializing(StreamingContext context)
Definition: Game.cs:1147
void _Create()
Definition: Game.cs:772
bool altAbility
Definition: Game.cs:274
static bool isPaused
Definition: Game.cs:150
HashSet< Texture2D > loadedTextures
Definition: Game.cs:258
int sessionMin
Definition: Game.cs:234
List< Thing > lostThings
Definition: Game.cs:222
bool UseGrid
Definition: Game.cs:266
bool altUI
Definition: Game.cs:268
Dictionary< string, IGlobalValue > referenceMap
Definition: Game.cs:256
bool isLoading
Definition: Game.cs:242
static bool IsWaiting
Definition: Game.cs:262
GameBlueprint bp
Definition: Game.cs:248
static void OnBeforeInstantiate()
Definition: Game.cs:741
new Player player
Definition: Game.cs:180
SurvivalManager survival
Definition: Game.cs:228
PartyManager parties
Definition: Game.cs:174
ReligionManager religions
Definition: Game.cs:159
float welcomeTimer
Definition: Game.cs:260
int countLoadedMaps
Definition: Game.cs:236
static void Load(string id, bool cloud)
Definition: Game.cs:322
int saveCount
Definition: Game.cs:238
int lastGameSpeedIndex
Definition: Game.cs:232
MsgLog log
Definition: Game.cs:189
int gameSpeedIndex
Definition: Game.cs:230
GamePrincipal principal
Definition: Game.cs:225
static bool TryLoad(string id, bool cloud, Action onLoad)
Definition: Game.cs:311
void AddAdventurers()
Definition: Game.cs:959
DomainManager domains
Definition: Game.cs:165
static string id
Definition: Game.cs:148
void GotoTitle(bool showDialog=true)
Definition: Game.cs:1007
bool Save(bool isAutoSave=false, bool silent=false)
Definition: Game.cs:1036
SpatialManager spatials
Definition: Game.cs:153
PCCUniformManager uniforms
Definition: Game.cs:195
TeleportManager teleports
Definition: Game.cs:198
static void Create(string _id=null, bool cloud=false)
Definition: Game.cs:730
static Game Instance
Definition: Game.cs:144
void Kill()
Definition: Game.cs:1106
void OnDeserializing(StreamingContext context)
Definition: Game.cs:1153
Prologue Prologue
Definition: Game.cs:264
CardManager cards
Definition: Game.cs:156
bool isCloud
Definition: Game.cs:246
Zone activeZone
Definition: Game.cs:252
bool IsSurvival
Definition: Game.cs:276
void OnBeforeSave()
Definition: Game.cs:1092
void Pause(Action onUnpause=null)
Definition: Game.cs:1128
GameUpdater updater
Definition: Game.cs:250
void OnUpdate()
Definition: Game.cs:298
static new void Wait(float a, Card c)
Definition: Game.cs:285
static float waitTimer
Definition: Game.cs:146
Flags flags
Definition: Game.cs:216
static new void Wait(float a, Point p)
Definition: Game.cs:280
bool altInv
Definition: Game.cs:270
Zone lastActiveZone
Definition: Game.cs:254
Version startVersion
Definition: Game.cs:171
void AddAdventurer(string id, Zone z=null)
Definition: Game.cs:986
void OnLoad()
Definition: Game.cs:360
new World world
Definition: Game.cs:177
RelationManager relations
Definition: Game.cs:186
int dateScratch
Definition: Game.cs:210
Config config
Definition: Game.cs:219
bool isKilling
Definition: Game.cs:244
QuestManager quests
Definition: Game.cs:183
double backupTime
Definition: Game.cs:213
void Quit()
Definition: Game.cs:1025
int idDifficulty
Definition: Game.cs:207
bool altCraft
Definition: Game.cs:272
float timeSinceStart
Definition: Game.cs:240
void OnGameInstantiated()
Definition: Game.cs:746
int seed
Definition: Game.cs:201
static void Wait(float a)
Definition: Game.cs:293
void StartNewGame()
Definition: Game.cs:804
FactionManager factions
Definition: Game.cs:162
Zone StartZone
Definition: Game.cs:278
Version version
Definition: Game.cs:168
int idPrologue
Definition: Game.cs:204
Definition: IO.cs:11
static void KillActor()
Definition: LayerTitle.cs:191
static EmbarkActor actor
Definition: LayerTitle.cs:25
Layer SetOnKill(Action action)
Definition: Layer.cs:579
Definition: MsgLog.cs:7
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
Party Create(Chara leader)
Definition: PartyManager.cs:9
List< int > uidMembers
Definition: Party.cs:12
List< Chara > members
Definition: Party.cs:19
bool layerAbility
Definition: Player.cs:35
bool layerInventory
Definition: Player.cs:33
double timeElapsed
Definition: Player.cs:66
Definition: Player.cs:11
void OnStartNewGame()
Definition: Player.cs:1383
RecipeManager recipes
Definition: Player.cs:1097
float angle
Definition: Player.cs:971
Pref pref
Definition: Player.cs:1013
Stats stats
Definition: Player.cs:1016
bool resetPrincipal
Definition: Player.cs:1177
void OnBeforeSave()
Definition: Player.cs:1458
int uidChara
Definition: Player.cs:869
void OnLoad()
Definition: Player.cs:1434
int bankMoney
Definition: Player.cs:914
void OnCreateGame()
Definition: Player.cs:1350
Definition: Point.cs:9
bool IsSync
Definition: Point.cs:344
Vector2Int posAsh
Definition: Prologue.cs:23
string idStartZone
Definition: Prologue.cs:9
Vector2Int posFiama
Definition: Prologue.cs:25
int hour
Definition: Prologue.cs:21
GameType type
Definition: Prologue.cs:7
int startX
Definition: Prologue.cs:11
HashSet< string > completedIDs
Definition: QuestManager.cs:17
List< Quest > list
Definition: QuestManager.cs:11
Quest Add(string id, string idGlobalChara=null)
Definition: QuestManager.cs:29
bool IsCompleted(string id)
Quest Start(string id, string idGlobalChara)
Definition: QuestManager.cs:41
List< Quest > globalList
Definition: QuestManager.cs:14
Quest Get(string id)
Quest GetGlobal(string id)
Definition: Quest.cs:7
virtual string idSource
Definition: Quest.cs:149
string id
Definition: Quest.cs:31
void ChangePhase(int a)
Definition: Quest.cs:577
Quest SetClient(Chara c, bool assignQuest=true)
Definition: Quest.cs:380
static Quest Create(string _id, string _idPerson=null, Chara c=null)
Definition: Quest.cs:241
static void BuildList()
static RecipeSource Get(string id)
Dictionary< string, int > knownRecipes
void Add(string id, bool showEffect=true)
void OnVersionUpdate()
Definition: Scene.cs:8
void OnKillGame()
Definition: Scene.cs:341
void Init(Mode newMode)
Definition: Scene.cs:178
Mode
Definition: Scene.cs:10
SourceQuest quests
static Spatial Create(string id, Spatial parent, bool register, int x=-99999, int y=-99999, int icon=0)
Definition: SpatialGen.cs:16
static Spatial CreateRecursive(string id, Spatial parent=null)
Definition: SpatialGen.cs:3
List< Zone > Zones
Zone Find(string id)
GlobalSpatialList map
List< Spatial > listDestryoed
void _OnLoad()
Definition: Spatial.cs:677
void OnBeforeSave()
Definition: Spatial.cs:668
SourceZone.Row source
Definition: Spatial.cs:453
bool destryoed
Definition: Spatial.cs:45
virtual void SetMainFaction(Faction f)
Definition: Spatial.cs:646
string id
Definition: Spatial.cs:13
int visitCount
Definition: Spatial.cs:154
Stats Set(int[] _raw, int _rawIndex, Chara _CC)
Definition: Stats.cs:109
virtual int max
Definition: Stats.cs:68
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
void RefreshGridRecursive()
static Thing CreateParcel(string idLang=null, params Thing[] things)
Definition: ThingGen.cs:42
static Thing CreateCassette(int id)
Definition: ThingGen.cs:230
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
static TooltipManager Instance
void HideTooltips(bool immediate=false)
Definition: Wait.cs:2
static WidgetSideScreen Instance
override void OnChangeResolution()
Definition: Window.cs:13
static Dictionary< string, int > dictTab
Definition: Window.cs:596
Definition: World.cs:4
Region region
Definition: World.cs:23
GameDate date
Definition: World.cs:6
Definition: Zone.cs:12
override string ToString()
Definition: Zone.cs:552
void OnKillGame()
Definition: Zone.cs:1687
ElementContainerZone elements
Definition: Zone.cs:43
bool IsPCFaction
Definition: Zone.cs:473
Card AddCard(Card t, Point point)
Definition: Zone.cs:1977
uint Bits
Definition: BitArray32.cs:6
override bool Equals(object obj)
Definition: Version.cs:95
bool IsBelow(int _major, int _minor, int _batch)
Definition: Version.cs:31