Elin Decompiled Documentation EA 23.355 Stable
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 GameIOContext data = new GameIOContext(text);
332 BaseModManager.PublishEvent("elin.game.pre_load", data);
333 EClass.core.game = GameIO.LoadGame(id, text, cloud);
334 EClass.game.isCloud = cloud;
335 EClass.game.isLoading = true;
339 EClass.scene.Init(Scene.Mode.StartGame);
340 if (EClass.game.altInv)
341 {
342 SoundManager.ignoreSounds = true;
344 {
345 EClass.ui.OpenFloatInv();
346 }
347 SoundManager.ignoreSounds = true;
349 {
350 EClass.ui.ToggleAbility();
351 }
352 SoundManager.ignoreSounds = false;
353 TooltipManager.Instance.HideTooltips(immediate: true);
354 }
355 if ((bool)WidgetSideScreen.Instance)
356 {
358 }
359 EClass.game.isLoading = false;
360 BaseModManager.PublishEvent("elin.game.post_load", data);
361 }
362
363 public void OnLoad()
364 {
365 domains.OnLoad();
368 world._OnLoad();
369 player.OnLoad();
371 {
372 EClass.pc.party.members.ForEach(delegate(Chara c)
373 {
374 c.currentZone = EClass.pc.homeZone;
375 c.global.transition = new ZoneTransition
376 {
377 state = ZoneTransition.EnterState.Return
378 };
379 });
380 }
381 player.zone = EClass.pc.currentZone;
382 EClass.pc.currentZone.lastActive = world.date.GetRaw();
383 if (spatials.Find("somewhere") == null)
384 {
385 SpatialGen.Create("somewhere", world.region, register: true);
386 }
387 EClass.pc.homeZone.isKnown = true;
390 foreach (Thing item in EClass.pc.things.List((Thing t) => t.Num <= 0 || t.isDestroyed))
391 {
392 item.parent.RemoveCard(item);
393 }
394 foreach (Thing item2 in EClass.pc.things.List((Thing t) => t.trait is TraitChestMerchant))
395 {
396 item2.Destroy();
397 }
398 foreach (Thing item3 in EClass.pc.things.List((Thing t) => t.invY == 1 && t.invX == -1))
399 {
400 item3.invY = 0;
401 }
402 foreach (Chara value in EClass.game.cards.globalCharas.Values)
403 {
404 if (value.id == "demitas" && value.faction.id == "wilds")
405 {
407 }
408 if (value.memberType == FactionMemberType.Livestock && !value.IsPCFaction)
409 {
410 value.memberType = FactionMemberType.Default;
411 }
412 if (!value.isDyed && value.HasTag(CTAG.random_color))
413 {
414 value.DyeRandom();
415 }
416 }
417 foreach (FactionBranch child in EClass.pc.faction.GetChildren())
418 {
419 foreach (Chara member in child.members)
420 {
421 if (!member.isDead && (member.currentZone == null || member.currentZone.id == "somewhere"))
422 {
423 Debug.Log("exception: Moving invalid chara: " + member.Name + "/" + member.currentZone?.ToString() + "/" + member.homeBranch?.ToString() + "/" + member.faction);
424 member.MoveZone(child.owner, ZoneTransition.EnterState.RandomVisit);
425 }
426 member.RefreshWorkElements(child.owner.elements);
427 member.Refresh();
428 }
429 }
430 EClass.pc.angle = player.angle;
431 ApplyFix();
433 {
435 }
436 if (cards.container_deposit == null)
437 {
438 cards.container_deposit = ThingGen.Create("container_deposit");
439 if (player.bankMoney > 0)
440 {
442 }
443 }
444 foreach (Quest item4 in quests.list)
445 {
446 if (item4 is QuestSequence && !EClass.sources.quests.map.ContainsKey(item4.idSource))
447 {
448 item4.phase = 0;
449 }
450 }
451 foreach (Quest global in quests.globalList)
452 {
453 if (global is QuestSequence && !EClass.sources.quests.map.ContainsKey(global.idSource))
454 {
455 global.phase = 0;
456 }
457 }
458 foreach (KeyValuePair<int, Spatial> item5 in EClass.game.spatials.map.ToList())
459 {
460 if (item5.Value == null)
461 {
462 EClass.game.spatials.map.Remove(item5.Key);
463 }
464 }
465 }
466
467 public void ApplyFix()
468 {
469 Debug.Log("ApplyFix");
471 if (cards.listAdv.Count == 0)
472 {
474 }
475 quests.list.ForeachReverse(delegate(Quest q)
476 {
477 if (!(q is QuestRandom))
478 {
479 foreach (Quest item in quests.list)
480 {
481 if (q != item && item.id == q.id)
482 {
483 quests.list.Remove(item);
484 break;
485 }
486 }
487 }
488 });
489 quests.globalList.ForeachReverse(delegate(Quest q)
490 {
491 if (!(q is QuestRandom))
492 {
493 foreach (Quest global in quests.globalList)
494 {
495 if (q != global && global.id == q.id)
496 {
497 quests.globalList.Remove(global);
498 break;
499 }
500 }
501 }
502 });
503 if (version.IsBelow(0, 23, 354))
504 {
505 FixElement(EClass.pc, 1421);
506 FixElement(EClass.pc, 6904);
507 }
508 if (version.IsBelow(0, 23, 345))
509 {
510 Zone zone = spatials.Find("oldkeep");
511 if (zone != null && zone.visitCount > 0)
512 {
513 zone.SetInt(4, 1);
514 }
515 }
516 if (version.IsBelow(0, 23, 336))
517 {
518 AddAdventurer("adv_schwert");
519 }
520 TryAddQuest("into_darkness", "exile_kettle");
521 if (version.IsBelow(0, 23, 221) && EClass.game.quests.IsCompleted("curry"))
522 {
523 world.SendPackage(ThingGen.CreateParcel(null, ThingGen.CreateCassette(110)));
524 }
525 if (version.IsBelow(0, 23, 185))
526 {
527 player.resetPrincipal = true;
528 }
529 if (version.IsBelow(0, 23, 182))
530 {
531 foreach (Chara value in cards.globalCharas.Values)
532 {
533 if (!value.IsUnique && value.c_lockedAge != 0)
534 {
535 value.elements.SetBase(1243, 1);
536 }
537 }
538 }
539 if (version.IsBelow(0, 23, 155))
540 {
541 AddAdventurer("adv_yukiimo");
542 }
543 if (version.IsBelow(0, 23, 100))
544 {
545 int num = player.recipes.knownRecipes.TryGetValue("trainingDummy_heavy", 0);
546 if (num != 0)
547 {
548 player.recipes.knownRecipes["trainingDummy_heavy1"] = num;
549 }
550 }
551 if (version.IsBelow(0, 23, 96))
552 {
553 EClass.game.principal = IO.DeepCopy(EClass.setting.start.principals[0]);
554 }
555 if (player.resetPrincipal)
556 {
557 GameDifficultySetting gameDifficultySetting = EClass.setting.start.difficulties[idDifficulty];
558 EClass.game.principal.id = -1;
559 EClass.game.principal.permadeath = gameDifficultySetting.deleteGameOnDeath;
560 EClass.game.principal.disableManualSave = !gameDifficultySetting.allowManualSave;
561 EClass.core.actionsNextFrame.Add(delegate
562 {
563 EClass.ui.AddLayer<LayerWorldSetting>();
564 });
565 }
566 if (version.IsBelow(0, 23, 93))
567 {
569 Debug.Log("â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
570 while (TryAddRecipe())
571 {
572 }
573 }
574 if (version.IsBelow(0, 23, 72))
575 {
576 foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
577 {
578 if (!value2.isDead)
579 {
580 value2.c_wasInPcParty = false;
581 }
582 }
583 }
584 if (version.IsBelow(0, 23, 59))
585 {
586 while (TryDestroy())
587 {
588 }
589 }
590 if (version.IsBelow(0, 23, 199) && EClass.game.quests.GetPhase<QuestNegotiationDarkness>() >= 3)
591 {
592 world.SendPackage(ThingGen.CreateParcel(null, ThingGen.Create("bone_duponne")));
593 }
594 if (version.IsBelow(0, 23, 195))
595 {
596 Zone zone2 = spatials.Find("startVillage2");
597 if (zone2 != null && zone2.visitCount > 0)
598 {
600 }
601 }
602 if (version.IsBelow(0, 23, 52))
603 {
604 player.flags.toggleHotbarHighlightActivated = true;
605 }
606 if (version.IsBelow(0, 23, 51))
607 {
608 foreach (Chara value3 in EClass.game.cards.globalCharas.Values)
609 {
610 if (!(value3.id != "adv") && value3.IsPCFaction)
611 {
612 value3.idSkin = value3.uid % (value3.source._tiles.Length - 4) / 2 * 2 + ((!value3.IsMale) ? 1 : 0);
613 }
614 }
615 }
616 if (version.IsBelow(0, 22, 91))
617 {
618 TryAddQuestIfActive("demitas_spellwriter", "into_darkness");
619 }
620 if (version.IsBelow(0, 22, 86))
621 {
622 Chara chara = cards.globalCharas.Find("demitas");
623 if (chara != null && chara._works != null && chara._works.Count > 0)
624 {
625 chara._works[0] = 51;
626 }
627 }
628 if (version.IsBelow(0, 22, 86))
629 {
630 TryAddQuest("farris_tulip", "greatDebt");
631 }
632 if (version.IsBelow(0, 22, 86))
633 {
634 TryAddQuest("exile_whisper", "exile_kettle");
635 }
636 if (version.IsBelow(0, 22, 85))
637 {
638 TryAddQuest("exile_meet", "pre_debt");
639 }
640 if (version.IsBelow(0, 22, 60) && EClass.game.quests.Get<QuestDebt>() != null)
641 {
642 Chara chara2 = cards.globalCharas.Find("loytel");
643 Debug.Log("Loytelfix: " + chara2.homeZone);
644 if (chara2.homeZone == null || !chara2.homeZone.IsPCFaction)
645 {
647 chara2.homeZone = EClass.pc.homeBranch.owner;
648 chara2.RemoveEditorTag(EditorTag.Invulnerable);
649 }
650 }
651 if (version.IsBelow(0, 22, 52) && quests.completedIDs.Contains("vernis_gold"))
652 {
653 quests.Add("pre_debt", "farris");
654 }
655 if (quests.completedIDs.Contains("farris_tulip"))
656 {
657 quests.globalList.ForeachReverse(delegate(Quest q)
658 {
659 if (q.id == "farris_tulip")
660 {
661 quests.globalList.Remove(q);
662 }
663 });
664 }
665 quests.list.ForeachReverse(delegate(Quest q)
666 {
667 if (q is QuestDialog && quests.completedIDs.Contains(q.id))
668 {
669 quests.list.Remove(q);
670 }
671 });
672 if (version.IsBelow(0, 22, 20))
673 {
674 foreach (Chara value4 in cards.globalCharas.Values)
675 {
676 value4.SetBool(18, enable: false);
677 }
678 }
679 if (version.IsBelow(0, 22, 22))
680 {
681 if (EClass.pc.faithElements != null)
682 {
684 }
685 foreach (Element item2 in EClass.pc.elements.ListElements((Element e) => e.source.categorySub == "god"))
686 {
687 EClass.pc.SetFeat(item2.id, 0);
688 }
690 }
691 if (version.IsBelow(0, 22, 45))
692 {
693 player.debt = 20000000;
694 }
695 static void FixElement(Chara c, int idEle)
696 {
697 int num2 = ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)c.race.elementMap, idEle, 0) + ClassExtension.TryGetValue<int, int>((IDictionary<int, int>)c.job.elementMap, idEle, 0);
698 if (c.c_genes != null)
699 {
700 num2 += c.c_genes.CountDNA(idEle);
701 }
702 foreach (BodySlot slot in c.body.slots)
703 {
704 if (slot.thing != null && slot.thing.c_DNA != null)
705 {
706 num2 += ((slot.thing.c_DNA.GetElement(idEle) != null) ? 1 : 0);
707 }
708 }
709 Element orCreateElement = c.elements.GetOrCreateElement(idEle);
710 if (num2 > 0 && orCreateElement.ValueWithoutLink != num2)
711 {
712 Debug.Log("FixElement: " + orCreateElement.Name + "/" + orCreateElement.vBase + "/" + orCreateElement.vSource + "/" + num2);
713 orCreateElement.vBase = num2 - orCreateElement.vSource;
714 }
715 if (orCreateElement is Ability && orCreateElement.Value > 0 && orCreateElement.vPotential < 0)
716 {
717 Debug.Log("FixElement(Ability): " + orCreateElement.Name + "/" + orCreateElement.Value + "/" + orCreateElement.vPotential + "/" + num2);
718 orCreateElement.vPotential = 0;
719 }
720 }
721 void TryAddQuest(string idQuest, string idReqQuest)
722 {
723 if (quests.completedIDs.Contains(idReqQuest) && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
724 {
725 quests.Add(idQuest);
726 }
727 }
728 void TryAddQuestIfActive(string idQuest, string idReqQuest)
729 {
730 if (quests.Get(idReqQuest) != null && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
731 {
732 quests.Add(idQuest);
733 }
734 }
735 bool TryAddRecipe()
736 {
737 foreach (string key in player.recipes.knownRecipes.Keys)
738 {
739 if (key.Length > 1 && key[0] == 'b')
740 {
741 RecipeSource recipeSource = RecipeManager.Get(key + "-p");
742 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
743 {
744 Debug.Log(recipeSource.id);
745 player.recipes.Add(recipeSource.id, showEffect: false);
746 return true;
747 }
748 recipeSource = RecipeManager.Get(key.Replace("-p", ""));
749 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
750 {
751 Debug.Log(recipeSource.id);
752 player.recipes.Add(recipeSource.id, showEffect: false);
753 return true;
754 }
755 }
756 }
757 return false;
758 }
759 static bool TryDestroy()
760 {
761 for (int i = 0; i < EClass.pc.party.members.Count; i++)
762 {
763 Chara chara3 = EClass.pc.party.members[i];
764 Debug.Log(chara3.id + "/" + chara3.uid + "/" + chara3._cints[1]);
765 for (int j = 0; j < EClass.pc.party.members.Count; j++)
766 {
767 Chara chara4 = EClass.pc.party.members[j];
768 if (i != j && chara3.uid == chara4.uid)
769 {
770 EClass.pc.party.uidMembers.RemoveAt(j);
771 EClass.pc.party.members.RemoveAt(j);
772 chara4.Destroy();
773 Debug.Log("Destroyed");
774 return true;
775 }
776 }
777 }
778 return false;
779 }
780 }
781
782 public static void Create(string _id = null, bool cloud = false)
783 {
784 id = _id ?? GameIO.GetNewId(cloud ? CorePath.RootSaveCloud : CorePath.RootSave, "world_");
785 OnBeforeInstantiate();
786 EClass.core.game = (Instance = new Game());
787 EClass.core.game.isCloud = cloud;
791 }
792
793 public static void OnBeforeInstantiate()
794 {
795 Player.seedHallucination = 0;
796 }
797
798 public void OnGameInstantiated()
799 {
800 HotItemHeld.taskBuild = null;
801 InvOwner.Trader = (InvOwner.Main = null);
802 LayerDrama.currentQuest = null;
803 ContentGallery.lastPage = 0;
804 ContentGallery.listMode = false;
805 if (!Application.isEditor || !EClass.debug.enable)
806 {
808 }
809 foreach (Chara value in cards.globalCharas.Values)
810 {
811 if (value.uid == player.uidChara)
812 {
813 player.chara = value;
814 break;
815 }
816 }
818 EClass.ui.widgets.OnGameInstantiated();
819 EClass.Sound.ResetPlaylist();
820 EClass.core.config.ApplyFPS(force: true);
821 }
822
823 public void _Create()
824 {
825 principal = IO.DeepCopy(EClass.setting.start.principals[0]);
826 idDifficulty = 1;
827 config.snapFreePos = (config.slope = (config.autoWall = true));
828 config.autoCombat.abortOnAllyDead = true;
829 config.autoCombat.abortOnHalfHP = true;
830 config.autoCombat.bUseHotBar = true;
831 config.autoCombat.bUseInventory = true;
832 config.autoCombat.bDontChangeTarget = true;
833 config.autoCombat.abortOnKill = true;
834 config.autoCombat.abortOnItemLoss = true;
835 seed = EClass.rnd(10000);
836 Debug.Log("creating game: " + id + " seed:" + seed);
837 startVersion = EClass.core.version;
838 uniforms.Import();
839 religions.OnCreateGame();
840 factions.OnCreateGame();
842 domains.OnCreateGame();
843 foreach (Spatial value in spatials.map.Values)
844 {
845 value.SetMainFaction(factions.Find(value.source.faction.IsEmpty("wilds")));
846 }
847 player.OnCreateGame();
848 cards.container_shipping = ThingGen.Create("container_shipping");
849 cards.container_deliver = ThingGen.Create("container_delivery");
850 cards.container_deposit = ThingGen.Create("container_deposit");
851 bp = new GameBlueprint();
852 bp.Create();
853 }
854
855 public void StartNewGame()
856 {
857 EClass.pc.homeZone = StartZone;
859 parties.Create(EClass.pc);
860 Prologue prologue = EClass.game.Prologue;
861 if (prologue.type == GameType.Survival)
862 {
863 survival = new SurvivalManager();
864 }
865 else
866 {
867 CharaGen.Create("fiama").SetGlobal(EClass.game.StartZone, prologue.posFiama.x, prologue.posFiama.y);
868 CharaGen.Create("ashland").SetGlobal(EClass.game.StartZone, prologue.posAsh.x, prologue.posAsh.y);
869 }
870 if ((bool)LayerTitle.actor)
871 {
872 world.date.hour = EClass.game.Prologue.hour;
874 Player obj = player;
875 Chara chara = EClass.pc;
876 Zone zone = (EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone));
877 Zone zone3 = (chara.currentZone = zone);
878 obj.zone = zone3;
879 EClass.pc.global.transition = new ZoneTransition
880 {
881 state = ZoneTransition.EnterState.Exact,
883 z = EClass.game.Prologue.startZ
884 };
885 EClass.pc.hp = EClass.pc.MaxHP;
888 EClass.pc.AddCondition<ConFaint>(200, force: true);
889 }
890 else
891 {
892 EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone);
893 Zone zone5 = null;
894 ZoneTransition transition = new ZoneTransition
895 {
896 state = ZoneTransition.EnterState.Auto
897 };
898 Chara c = EClass.game.cards.globalCharas.Find("ashland");
899 switch (EClass.debug.startScene)
900 {
901 case CoreDebug.StartScene.Zone:
903 transition = new ZoneTransition
904 {
905 state = ZoneTransition.EnterState.Exact,
907 z = EClass.game.Prologue.startZ
908 };
909 break;
910 case CoreDebug.StartScene.Home:
911 case CoreDebug.StartScene.Story_Test:
913 transition = new ZoneTransition
914 {
915 state = ZoneTransition.EnterState.Exact,
917 z = EClass.game.Prologue.startZ
918 };
919 break;
920 case CoreDebug.StartScene.Survival:
921 EClass.game.idPrologue = 3;
923 transition = new ZoneTransition
924 {
925 state = ZoneTransition.EnterState.Exact,
927 z = EClass.game.Prologue.startZ
928 };
929 break;
930 case CoreDebug.StartScene.Home_Cave:
931 EClass.game.idPrologue = 2;
933 transition = new ZoneTransition
934 {
935 state = ZoneTransition.EnterState.Exact,
937 z = EClass.game.Prologue.startZ
938 };
939 break;
940 case CoreDebug.StartScene.MeetFarris:
941 {
942 Zone parent4 = EClass.game.spatials.Find("nymelle");
943 zone5 = SpatialGen.Create("nymelle", parent4, register: true) as Zone;
944 zone5.lv = -2;
945 EClass.game.quests.Start("exploration", c, assignQuest: false);
946 break;
947 }
948 case CoreDebug.StartScene.NymelleBoss:
949 {
950 Zone parent3 = EClass.game.spatials.Find("nymelle");
951 zone5 = SpatialGen.Create("nymelle_boss", parent3, register: true) as Zone;
952 zone5.lv = -5;
953 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(2);
954 break;
955 }
956 case CoreDebug.StartScene.AfterNymelle:
958 transition = new ZoneTransition
959 {
960 state = ZoneTransition.EnterState.Exact,
962 z = EClass.game.Prologue.startZ
963 };
964 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(5);
965 EClass.game.quests.globalList.Add(Quest.Create("sharedContainer").SetClient(c, assignQuest: false));
966 EClass.game.quests.globalList.Add(Quest.Create("crafter").SetClient(c, assignQuest: false));
967 EClass.game.quests.globalList.Add(Quest.Create("defense").SetClient(c, assignQuest: false));
968 break;
969 case CoreDebug.StartScene.Melilith:
970 {
971 Zone parent2 = EClass.game.spatials.Find("cursed_manor");
972 zone5 = SpatialGen.Create("cursed_manor_dungeon", parent2, register: true) as Zone;
973 zone5.lv = -5;
974 break;
975 }
976 case CoreDebug.StartScene.Tefra:
977 {
978 Zone parent = EClass.game.spatials.Find("vernis");
979 zone5 = SpatialGen.Create("vernis_mine", parent, register: true) as Zone;
980 zone5.lv = -7;
981 break;
982 }
983 }
984 if (zone5 != null)
985 {
986 Player obj2 = player;
987 Chara chara2 = EClass.pc;
988 Zone zone = (EClass.pc.homeZone = zone5);
989 Zone zone3 = (chara2.currentZone = zone);
990 obj2.zone = zone3;
991 EClass.pc.global.transition = transition;
992 }
993 else
994 {
995 Player obj3 = player;
996 Zone zone3 = (EClass.pc.currentZone = EClass.game.spatials.Find(EClass.debug.startZone));
997 obj3.zone = zone3;
998 EClass.pc.global.transition = new ZoneTransition
999 {
1000 state = ZoneTransition.EnterState.Return
1001 };
1002 }
1003 }
1004 EClass.pc.homeZone.isKnown = true;
1005 AddAdventurers();
1006 player.OnStartNewGame();
1007 EClass.scene.Init(Scene.Mode.StartGame);
1008 GameIOContext data = new GameIOContext((isCloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id);
1009 BaseModManager.PublishEvent("elin.game.start_new", data);
1010 }
1011
1012 public void AddAdventurers()
1013 {
1014 List<Zone> source = world.region.ListTowns();
1015 string[] array = new string[8] { "adv_kiria", "adv_gaki", "adv_wini", "adv_verna", "adv_ivory", "adv_mesherada", "adv_yukiimo", "adv_schwert" };
1016 for (int i = 0; i < EClass.setting.balance.numAdv; i++)
1017 {
1018 Zone zone = source.RandomItem();
1019 if (zone is Zone_SubTown && EClass.rnd(5) != 0)
1020 {
1021 i--;
1022 continue;
1023 }
1024 if (i >= array.Length && i < array.Length + 2)
1025 {
1027 }
1028 Chara chara = CharaGen.Create((i < array.Length) ? array[i] : ((EClass.rnd(10) == 0) ? "adv_fairy" : "adv"));
1029 chara.SetHomeZone(zone);
1030 chara.global.transition = new ZoneTransition
1031 {
1032 state = ZoneTransition.EnterState.RandomVisit
1033 };
1034 zone.AddCard(chara);
1035 cards.listAdv.Add(chara);
1036 }
1037 }
1038
1039 public void AddAdventurer(string id, Zone z = null)
1040 {
1041 if (z == null)
1042 {
1043 List<Zone> source = world.region.ListTowns();
1044 do
1045 {
1046 z = source.RandomItem();
1047 }
1048 while ((z is Zone_SubTown && EClass.rnd(5) != 0) || z == EClass.pc.currentZone);
1049 }
1050 Chara chara = CharaGen.Create(id);
1051 chara.SetHomeZone(z);
1052 chara.global.transition = new ZoneTransition
1053 {
1054 state = ZoneTransition.EnterState.RandomVisit
1055 };
1056 z.AddCard(chara);
1057 cards.listAdv.Add(chara);
1058 }
1059
1060 public void GotoTitle(bool showDialog = true)
1061 {
1062 if (showDialog)
1063 {
1064 Dialog.YesNo("dialog_gotoTitle", delegate
1065 {
1066 if (EClass.game.Save(isAutoSave: true))
1067 {
1068 EClass.scene.Init(Scene.Mode.Title);
1069 }
1070 });
1071 }
1072 else
1073 {
1074 EClass.scene.Init(Scene.Mode.Title);
1075 }
1076 }
1077
1078 public void Quit()
1079 {
1080 Dialog.YesNo("dialog_quit", delegate
1081 {
1082 if (EClass.game.Save())
1083 {
1084 EClass.core.Quit();
1085 }
1086 });
1087 }
1088
1089 public bool Save(bool isAutoSave = false, bool silent = false)
1090 {
1091 if (EClass.ui.IsDragging)
1092 {
1093 EClass.ui.EndDrag(canceled: true);
1094 }
1095 if (isAutoSave && EClass.debug.ignoreAutoSave)
1096 {
1097 return true;
1098 }
1099 bool flag = EClass.core.config.game.autoBackup && backupTime >= (double)(EClass.core.config.game.backupInterval * 60 * 30);
1100 if (flag)
1101 {
1102 backupTime = 0.0;
1103 }
1105 countLoadedMaps = 0;
1106 player.pref.layerInventory = EClass.ui.layerFloat.GetLayer<LayerInventory>();
1107 if (player.pref.layerInventory)
1108 {
1109 player.pref.layerAbility = EClass.ui.layerFloat.GetLayer<LayerAbility>();
1110 }
1111 player.pref.layerCraft = EClass.ui.layerFloat.GetLayer<LayerCraftFloat>();
1112 player.angle = EClass.pc.angle;
1113 version = EClass.core.version;
1114 EClass.ui.widgets.UpdateConfigs();
1115 GameIndex gameIndex = null;
1116 try
1117 {
1118 GameIOContext data = new GameIOContext(GameIO.pathCurrentSave);
1119 BaseModManager.PublishEvent("elin.game.pre_save", data);
1120 OnBeforeSave();
1121 gameIndex = GameIO.SaveGame();
1122 BaseModManager.PublishEvent("elin.game.post_save", data);
1123 }
1124 catch (Exception ex)
1125 {
1126 EClass.ui.Say(ex.Message);
1127 SE.Beep();
1128 Msg.Say("error_save");
1129 return false;
1130 }
1131 if (flag)
1132 {
1133 GameIO.MakeBackup(gameIndex);
1134 EClass.ui.Say("backupDone");
1135 }
1136 if (!silent)
1137 {
1138 if (!isAutoSave)
1139 {
1140 SE.WriteJournal();
1141 }
1142 Msg.Say("saved");
1143 }
1144 saveCount++;
1145 return true;
1146 }
1147
1148 public void OnBeforeSave()
1149 {
1150 foreach (Zone zone in spatials.Zones)
1151 {
1152 zone.OnBeforeSave();
1153 }
1154 player.OnBeforeSave();
1155 foreach (Spatial item in spatials.listDestryoed)
1156 {
1157 item.DeleteMapRecursive();
1158 }
1159 spatials.listDestryoed.Clear();
1160 }
1161
1162 public void Kill()
1163 {
1164 isKilling = true;
1165 Debug.Log("Killing Game: IsStarted? " + EClass.core.IsGameStarted);
1167 {
1168 EClass.ui.OnKillGame();
1170 activeZone.OnKillGame();
1171 }
1172 EClass.core.game = (Instance = null);
1173 EClass.Sound.currentPlaylist = null;
1174 Window.dictTab.Clear();
1175 foreach (Texture2D loadedTexture in loadedTextures)
1176 {
1177 if (loadedTexture != null)
1178 {
1179 UnityEngine.Object.Destroy(loadedTexture);
1180 }
1181 }
1182 }
1183
1184 public void Pause(Action onUnpause = null)
1185 {
1186 isPaused = true;
1187 LayerPause layerPause = EClass.ui.AddLayer<LayerPause>();
1188 Game lastGame = EClass.game;
1189 if (onUnpause == null)
1190 {
1191 return;
1192 }
1193 layerPause.SetOnKill(delegate
1194 {
1195 if (EClass.core.IsGameStarted && lastGame == EClass.game)
1196 {
1197 onUnpause();
1198 }
1199 });
1200 }
1201
1202 [OnSerializing]
1203 private void OnSerializing(StreamingContext context)
1204 {
1205 Debug.Log("#io game OnSerializing");
1206 }
1207
1208 [OnDeserializing]
1209 private void OnDeserializing(StreamingContext context)
1210 {
1211 Debug.Log("#io game OnDeserializing");
1212 Instance = this;
1213 }
1214}
CTAG
Definition: CTAG.cs:2
@ seed
EditorTag
Definition: EditorTag.cs:2
FactionMemberType
GameType
Definition: GameType.cs:2
static void OnGameInstantiated()
Definition: ActionMode.cs:247
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
Version version
Definition: BaseCore.cs:17
static void PublishEvent(string eventId, object data=null)
Thing thing
Definition: BodySlot.cs:8
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:74
int c_lockedAge
Definition: Card.cs:1393
bool isDestroyed
Definition: Card.cs:78
void RemoveEditorTag(EditorTag tag)
Definition: Card.cs:2743
ElementContainerCard elements
Definition: Card.cs:42
string id
Definition: Card.cs:36
bool IsUnique
Definition: Card.cs:2143
int invY
Definition: Card.cs:2007
bool IsMale
Definition: Card.cs:2454
string Name
Definition: Card.cs:2191
bool HasTag(CTAG tag)
Definition: Card.cs:2728
void DyeRandom()
Definition: Card.cs:6473
int uid
Definition: Card.cs:125
Trait trait
Definition: Card.cs:54
bool isDyed
Definition: Card.cs:461
void Destroy()
Definition: Card.cs:5314
ThingContainer things
Definition: Card.cs:39
virtual bool IsPC
Definition: Card.cs:2197
int invX
Definition: Card.cs:1995
DNA c_DNA
Definition: Card.cs:1933
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3257
int Num
Definition: Card.cs:161
void SetBool(string id, bool enable)
Definition: Card.cs:2562
virtual bool isSynced
Definition: Card.cs:2139
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
Definition: Chara.cs:10
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1806
int[] _cints
Definition: Chara.cs:84
void RefreshWorkElements(ElementContainer parent=null)
Definition: Chara.cs:9626
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9881
Faction faction
Definition: Chara.cs:433
void SetFeat(int id, int value=1, bool msg=false)
Definition: Chara.cs:10560
Party party
Definition: Chara.cs:45
Chara SetHomeZone(Zone zone)
Definition: Chara.cs:1500
Chara SetGlobal(Zone _home, int x, int z)
Definition: Chara.cs:1546
override bool IsPCFaction
Definition: Chara.cs:691
override int MaxHP
Definition: Chara.cs:728
Zone currentZone
Definition: Chara.cs:261
Stats mana
Definition: Chara.cs:1215
FactionMemberType memberType
Definition: Chara.cs:48
Stats stamina
Definition: Chara.cs:1207
Zone homeZone
Definition: Chara.cs:273
void RefreshFaithElement()
Definition: Chara.cs:10877
ElementContainer faithElements
Definition: Chara.cs:40
FactionBranch homeBranch
Definition: Chara.cs:1115
bool isDead
Definition: Chara.cs:395
List< int > _works
Definition: Chara.cs:54
void MoveZone(string alias)
Definition: Chara.cs:3583
SourceRace.Row race
Definition: Chara.cs:470
new GameConfig game
Definition: CoreConfig.cs:629
void ApplyFPS(bool force=false)
Definition: CoreConfig.cs:865
void TryUpdatePlayedHour()
Definition: CoreConfig.cs:839
string startZone
Definition: CoreDebug.cs:122
bool enable
Definition: CoreDebug.cs:302
void OnLoad()
Definition: CoreDebug.cs:746
bool ignoreAutoSave
Definition: CoreDebug.cs:142
StartScene startScene
Definition: CoreDebug.cs:112
static string RootSave
Definition: CorePath.cs:202
static string RootSaveCloud
Definition: CorePath.cs:204
Game game
Definition: Core.cs:72
bool IsGameStarted
Definition: Core.cs:87
CoreConfig config
Definition: Core.cs:70
Element GetElement(int id)
Definition: DNA.cs:806
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:252
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 ValueWithoutLink
Definition: ELEMENT.cs:303
int id
Definition: ELEMENT.cs:259
int vBase
Definition: ELEMENT.cs:261
SourceElement.Row source
Definition: ELEMENT.cs:282
int vPotential
Definition: ELEMENT.cs:265
int Value
Definition: ELEMENT.cs:301
virtual string Name
Definition: ELEMENT.cs:313
int vSource
Definition: ELEMENT.cs:271
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 string pathCurrentSave
Definition: GameIO.cs:34
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:247
List< GamePrincipal > principals
Definition: GameSetting.cs:249
List< Prologue > prologues
Definition: GameSetting.cs:245
StartSetting start
Definition: GameSetting.cs:352
BalanceSetting balance
Definition: GameSetting.cs:356
void FixedUpdate()
Definition: GameUpdater.cs:444
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:1203
void _Create()
Definition: Game.cs:823
void ApplyFix()
Definition: Game.cs:467
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:793
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:1012
DomainManager domains
Definition: Game.cs:165
static string id
Definition: Game.cs:148
void GotoTitle(bool showDialog=true)
Definition: Game.cs:1060
bool Save(bool isAutoSave=false, bool silent=false)
Definition: Game.cs:1089
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:782
static Game Instance
Definition: Game.cs:144
void Kill()
Definition: Game.cs:1162
void OnDeserializing(StreamingContext context)
Definition: Game.cs:1209
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:1148
void Pause(Action onUnpause=null)
Definition: Game.cs:1184
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:1039
void OnLoad()
Definition: Game.cs:363
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:1078
int idDifficulty
Definition: Game.cs:207
bool altCraft
Definition: Game.cs:272
float timeSinceStart
Definition: Game.cs:240
void OnGameInstantiated()
Definition: Game.cs:798
int seed
Definition: Game.cs:201
static void Wait(float a)
Definition: Game.cs:293
void StartNewGame()
Definition: Game.cs:855
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:10
static void KillActor()
Definition: LayerTitle.cs:191
static EmbarkActor actor
Definition: LayerTitle.cs:25
Layer SetOnKill(Action action)
Definition: Layer.cs:584
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:1456
RecipeManager recipes
Definition: Player.cs:1167
float angle
Definition: Player.cs:1041
Pref pref
Definition: Player.cs:1083
Stats stats
Definition: Player.cs:1086
bool resetPrincipal
Definition: Player.cs:1250
void OnBeforeSave()
Definition: Player.cs:1531
int uidChara
Definition: Player.cs:936
void OnLoad()
Definition: Player.cs:1507
int bankMoney
Definition: Player.cs:981
void OnCreateGame()
Definition: Player.cs:1423
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
int GetPhase(string id)
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
static Quest Create(string _id, string _idPerson=null, Chara c=null, bool assignQuest=true)
Definition: Quest.cs:241
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 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:343
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 SetInt(int id, int value=0)
Definition: Spatial.cs:580
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:238
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:600
void OnKillGame()
Definition: Zone.cs:1863
ElementContainerZone elements
Definition: Zone.cs:46
bool IsPCFaction
Definition: Zone.cs:480
Card AddCard(Card t, Point point)
Definition: Zone.cs:2159
uint Bits
Definition: BitArray32.cs:6
override bool Equals(object obj)
Definition: Version.cs:115
bool IsBelow(int _major, int _minor, int _batch)
Definition: Version.cs:49