Elin Decompiled Documentation EA 23.289 Nightly
Loading...
Searching...
No Matches
Game Class Reference
Inheritance diagram for Game:
EClass

Classes

class  Config
 
class  Flags
 

Public Member Functions

void OnUpdate ()
 
void OnLoad ()
 
void OnGameInstantiated ()
 
void _Create ()
 
void StartNewGame ()
 
void AddAdventurers ()
 
void AddAdventurer (string id, Zone z=null)
 
void GotoTitle (bool showDialog=true)
 
void Quit ()
 
bool Save (bool isAutoSave=false, bool silent=false)
 
void OnBeforeSave ()
 
void Kill ()
 
void Pause (Action onUnpause=null)
 

Static Public Member Functions

static new void Wait (float a, Point p)
 
static new void Wait (float a, Card c)
 
static void Wait (float a)
 
static bool TryLoad (string id, bool cloud, Action onLoad)
 
static void Load (string id, bool cloud)
 
static void Create (string _id=null, bool cloud=false)
 
static void OnBeforeInstantiate ()
 
- Static Public Member Functions inherited from EClass
static int rndSeed (int a, int seed)
 
static int rnd (long a)
 
static int rnd (int a)
 
static int curve (long _a, int start, int step, int rate=75)
 
static int sqrt (int a)
 
static int rndHalf (int a)
 
static float rndf (float a)
 
static int rndSqrt (int a)
 
static void Wait (float a, Card c)
 
static void Wait (float a, Point p)
 
static int Bigger (int a, int b)
 
static int Smaller (int a, int b)
 

Public Attributes

SpatialManager spatials = new SpatialManager()
 
CardManager cards = new CardManager()
 
ReligionManager religions = new ReligionManager()
 
FactionManager factions = new FactionManager()
 
DomainManager domains = new DomainManager()
 
Version version
 
Version startVersion
 
PartyManager parties = new PartyManager()
 
new World world
 
new Player player = new Player()
 
QuestManager quests = new QuestManager()
 
RelationManager relations = new RelationManager()
 
MsgLog log
 
PCCUniformManager uniforms = new PCCUniformManager()
 
TeleportManager teleports = new TeleportManager()
 
int seed
 
int idPrologue
 
int idDifficulty
 
int dateScratch
 
double backupTime
 
Flags flags = new Flags()
 
Config config = new Config()
 
List< ThinglostThings = new List<Thing>()
 
GamePrincipal principal = new GamePrincipal()
 
SurvivalManager survival
 
int gameSpeedIndex = 1
 
int lastGameSpeedIndex = 1
 
int sessionMin
 
int countLoadedMaps
 
int saveCount
 
float timeSinceStart
 
bool isLoading
 
bool isKilling
 
bool isCloud
 
GameBlueprint bp
 
GameUpdater updater = new GameUpdater()
 
Zone activeZone
 
Zone lastActiveZone
 
Dictionary< string, IGlobalValuereferenceMap = new Dictionary<string, IGlobalValue>()
 
HashSet< Texture2D > loadedTextures = new HashSet<Texture2D>()
 

Static Public Attributes

static Game Instance
 
static float waitTimer
 
static string id
 
static bool isPaused
 
- Static Public Attributes inherited from EClass
static Core core
 

Properties

static bool IsWaiting [get]
 
Prologue Prologue [get]
 
bool UseGrid [get]
 
bool altUI [get]
 
bool altInv [get]
 
bool altCraft [get]
 
bool altAbility [get]
 
bool IsSurvival [get]
 
Zone StartZone [get]
 
- Properties inherited from EClass
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Faction Wilds [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static SoundManager Sound [get]
 
static CoreDebug debug [get]
 

Private Member Functions

void OnSerializing (StreamingContext context)
 
void OnDeserializing (StreamingContext context)
 

Private Attributes

float welcomeTimer
 

Detailed Description

Definition at line 8 of file Game.cs.

Member Function Documentation

◆ _Create()

void Game._Create ( )
inline

Definition at line 774 of file Game.cs.

775 {
776 principal = IO.DeepCopy(EClass.setting.start.principals[0]);
777 idDifficulty = 1;
778 config.snapFreePos = (config.slope = (config.autoWall = true));
779 config.autoCombat.abortOnAllyDead = true;
780 config.autoCombat.abortOnHalfHP = true;
781 config.autoCombat.bUseHotBar = true;
782 config.autoCombat.bUseInventory = true;
783 config.autoCombat.bDontChangeTarget = true;
784 config.autoCombat.abortOnKill = true;
785 config.autoCombat.abortOnItemLoss = true;
786 seed = EClass.rnd(10000);
787 Debug.Log("creating game: " + id + " seed:" + seed);
789 uniforms.Import();
794 foreach (Spatial value in spatials.map.Values)
795 {
796 value.SetMainFaction(factions.Find(value.source.faction.IsEmpty("wilds")));
797 }
799 cards.container_shipping = ThingGen.Create("container_shipping");
800 cards.container_deliver = ThingGen.Create("container_delivery");
801 cards.container_deposit = ThingGen.Create("container_deposit");
802 bp = new GameBlueprint();
803 bp.Create();
804 }
Version version
Definition: BaseCore.cs:17
void OnCreateGame()
Definition: DomainManager.cs:7
Definition: EClass.cs:6
static Core core
Definition: EClass.cs:7
static int rnd(long a)
Definition: EClass.cs:59
static GameSetting setting
Definition: EClass.cs:35
Faction Find(string id)
List< GamePrincipal > principals
Definition: GameSetting.cs:244
StartSetting start
Definition: GameSetting.cs:305
GameBlueprint bp
Definition: Game.cs:248
new Player player
Definition: Game.cs:180
ReligionManager religions
Definition: Game.cs:159
GamePrincipal principal
Definition: Game.cs:225
DomainManager domains
Definition: Game.cs:165
SpatialManager spatials
Definition: Game.cs:153
PCCUniformManager uniforms
Definition: Game.cs:195
Version startVersion
Definition: Game.cs:171
new World world
Definition: Game.cs:177
int idDifficulty
Definition: Game.cs:207
int seed
Definition: Game.cs:201
FactionManager factions
Definition: Game.cs:162
Definition: IO.cs:11
void OnCreateGame()
Definition: Player.cs:1408
static Spatial CreateRecursive(string id, Spatial parent=null)
Definition: SpatialGen.cs:3
GlobalSpatialList map
SourceZone.Row source
Definition: Spatial.cs:453
virtual void SetMainFaction(Faction f)
Definition: Spatial.cs:646
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: World.cs:4

References EClass.core, ZoneBlueprint.Create(), ThingGen.Create(), SpatialGen.CreateRecursive(), Debug, FactionManager.Find(), SpatialManager.map, DomainManager.OnCreateGame(), FactionManager.OnCreateGame(), Player.OnCreateGame(), ReligionManager.OnCreateGame(), GameSetting.StartSetting.principals, EClass.rnd(), seed, Spatial.SetMainFaction(), EClass.setting, Spatial.source, GameSetting.start, BaseCore.version, and world.

Referenced by Create().

◆ AddAdventurer()

void Game.AddAdventurer ( string  id,
Zone  z = null 
)
inline

Definition at line 990 of file Game.cs.

991 {
992 if (z == null)
993 {
994 List<Zone> source = world.region.ListTowns();
995 do
996 {
997 z = source.RandomItem();
998 }
999 while ((z is Zone_SubTown && EClass.rnd(5) != 0) || z == EClass.pc.currentZone);
1000 }
1001 Chara chara = CharaGen.Create(id);
1002 chara.SetHomeZone(z);
1003 chara.global.transition = new ZoneTransition
1004 {
1005 state = ZoneTransition.EnterState.RandomVisit
1006 };
1007 z.AddCard(chara);
1008 cards.listAdv.Add(chara);
1009 }
List< Chara > listAdv
Definition: CardManager.cs:64
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
Definition: Chara.cs:10
Chara SetHomeZone(Zone zone)
Definition: Chara.cs:1461
Zone currentZone
Definition: Chara.cs:257
static Chara pc
Definition: EClass.cs:15
CardManager cards
Definition: Game.cs:156
List< Zone > ListTowns()
Definition: Region.cs:271
Region region
Definition: World.cs:23
Card AddCard(Card t, Point point)
Definition: Zone.cs:2017

References CharaGen.Create(), Chara.currentZone, CardManager.listAdv, EClass.pc, EClass.rnd(), Chara.SetHomeZone(), and world.

◆ AddAdventurers()

void Game.AddAdventurers ( )
inline

Definition at line 963 of file Game.cs.

964 {
965 List<Zone> source = world.region.ListTowns();
966 string[] array = new string[7] { "adv_kiria", "adv_gaki", "adv_wini", "adv_verna", "adv_ivory", "adv_mesherada", "adv_yukiimo" };
967 for (int i = 0; i < EClass.setting.balance.numAdv; i++)
968 {
969 Zone zone = source.RandomItem();
970 if (zone is Zone_SubTown && EClass.rnd(5) != 0)
971 {
972 i--;
973 continue;
974 }
975 if (i >= array.Length && i < array.Length + 2)
976 {
978 }
979 Chara chara = CharaGen.Create((i < array.Length) ? array[i] : ((EClass.rnd(10) == 0) ? "adv_fairy" : "adv"));
980 chara.SetHomeZone(zone);
981 chara.global.transition = new ZoneTransition
982 {
983 state = ZoneTransition.EnterState.RandomVisit
984 };
985 zone.AddCard(chara);
986 cards.listAdv.Add(chara);
987 }
988 }
static void Set(CardBlueprint _bp=null)
static CardBlueprint Chara(int lv, Rarity rarity=Rarity.Normal)
BalanceSetting balance
Definition: GameSetting.cs:309
Definition: Zone.cs:12

References Zone.AddCard(), GameSetting.balance, CardBlueprint.Chara(), CharaGen.Create(), CardManager.listAdv, GameSetting.BalanceSetting.numAdv, EClass.rnd(), CardBlueprint.Set(), Chara.SetHomeZone(), EClass.setting, and world.

Referenced by OnLoad().

◆ Create()

static void Game.Create ( string  _id = null,
bool  cloud = false 
)
inlinestatic

Definition at line 733 of file Game.cs.

734 {
735 id = _id ?? GameIO.GetNewId(cloud ? CorePath.RootSaveCloud : CorePath.RootSave, "world_");
737 EClass.core.game = (Instance = new Game());
738 EClass.core.game.isCloud = cloud;
742 }
static string RootSave
Definition: CorePath.cs:210
static string RootSaveCloud
Definition: CorePath.cs:212
Game game
Definition: Core.cs:72
Definition: GameIO.cs:11
static string GetNewId(string path, string prefix="", int start=1)
Definition: GameIO.cs:355
static void ResetTemp()
Definition: GameIO.cs:54
Definition: Game.cs:9
void _Create()
Definition: Game.cs:774
static void OnBeforeInstantiate()
Definition: Game.cs:744
static Game Instance
Definition: Game.cs:144
void OnGameInstantiated()
Definition: Game.cs:749

References _Create(), EClass.core, Core.game, GameIO.GetNewId(), OnGameInstantiated(), GameIO.ResetTemp(), CorePath.RootSave, and CorePath.RootSaveCloud.

Referenced by LayerEditBio.OnAfterAddLayer(), LayerEmbark.OnAfterAddLayer(), and CoreDebug.QuickStart().

◆ GotoTitle()

void Game.GotoTitle ( bool  showDialog = true)
inline

Definition at line 1011 of file Game.cs.

1012 {
1013 if (showDialog)
1014 {
1015 Dialog.YesNo("dialog_gotoTitle", delegate
1016 {
1017 if (EClass.game.Save(isAutoSave: true))
1018 {
1019 EClass.scene.Init(Scene.Mode.Title);
1020 }
1021 });
1022 }
1023 else
1024 {
1025 EClass.scene.Init(Scene.Mode.Title);
1026 }
1027 }
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:252
static Game game
Definition: EClass.cs:9
static Scene scene
Definition: EClass.cs:31
bool Save(bool isAutoSave=false, bool silent=false)
Definition: Game.cs:1040
Definition: Scene.cs:8
void Init(Mode newMode)
Definition: Scene.cs:178
Mode
Definition: Scene.cs:10

References EClass.game, Scene.Init(), Save(), EClass.scene, and Dialog.YesNo().

Referenced by LayerPauseMenu.OnClickTitle(), and HotItemContext.Show().

◆ Kill()

void Game.Kill ( )
inline

Definition at line 1113 of file Game.cs.

1114 {
1115 isKilling = true;
1116 Debug.Log("Killing Game: IsStarted? " + EClass.core.IsGameStarted);
1118 {
1119 EClass.ui.OnKillGame();
1122 }
1123 EClass.core.game = (Instance = null);
1124 EClass.Sound.currentPlaylist = null;
1125 Window.dictTab.Clear();
1126 foreach (Texture2D loadedTexture in loadedTextures)
1127 {
1128 if (loadedTexture != null)
1129 {
1130 UnityEngine.Object.Destroy(loadedTexture);
1131 }
1132 }
1133 }
bool IsGameStarted
Definition: Core.cs:84
static UI ui
Definition: EClass.cs:17
HashSet< Texture2D > loadedTextures
Definition: Game.cs:258
Zone activeZone
Definition: Game.cs:252
bool isKilling
Definition: Game.cs:244
void OnKillGame()
Definition: Scene.cs:343
Definition: Window.cs:13
static Dictionary< string, int > dictTab
Definition: Window.cs:596
void OnKillGame()
Definition: Zone.cs:1727

References EClass.core, Debug, Window.dictTab, Core.IsGameStarted, Scene.OnKillGame(), Zone.OnKillGame(), EClass.scene, and EClass.ui.

Referenced by Scene.Init(), Load(), and Core.SetLang().

◆ Load()

static void Game.Load ( string  id,
bool  cloud 
)
inlinestatic

Definition at line 322 of file Game.cs.

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 }
static void PublishEvent(string eventId, object data=null)
static void ClearTemp()
Definition: GameIO.cs:64
static Game LoadGame(string id, string root, bool cloud)
Definition: GameIO.cs:153
void Kill()
Definition: Game.cs:1113
bool altInv
Definition: Game.cs:270
void OnLoad()
Definition: Game.cs:363
bool layerAbility
Definition: Player.cs:35
bool layerInventory
Definition: Player.cs:33
Pref pref
Definition: Player.cs:1068
static TooltipManager Instance
void HideTooltips(bool immediate=false)
static WidgetSideScreen Instance
override void OnChangeResolution()

References altInv, GameIO.ClearTemp(), Debug, EClass.game, TooltipManager.HideTooltips(), Scene.Init(), TooltipManager.Instance, WidgetSideScreen.Instance, Kill(), Player.Pref.layerAbility, Player.Pref.layerInventory, GameIO.LoadGame(), OnBeforeInstantiate(), WidgetSideScreen.OnChangeResolution(), OnGameInstantiated(), OnLoad(), player, Player.pref, BaseModManager.PublishEvent(), CorePath.RootSave, EClass.scene, and EClass.ui.

Referenced by AM_Adv._OnUpdateInput(), Map.Reload(), and CoreDebug.UpdateInput().

◆ OnBeforeInstantiate()

static void Game.OnBeforeInstantiate ( )
inlinestatic

Definition at line 744 of file Game.cs.

745 {
746 Player.seedHallucination = 0;
747 }

Referenced by Load().

◆ OnBeforeSave()

void Game.OnBeforeSave ( )
inline

Definition at line 1099 of file Game.cs.

1100 {
1101 foreach (Zone zone in spatials.Zones)
1102 {
1103 zone.OnBeforeSave();
1104 }
1106 foreach (Spatial item in spatials.listDestryoed)
1107 {
1108 item.DeleteMapRecursive();
1109 }
1110 spatials.listDestryoed.Clear();
1111 }
void OnBeforeSave()
Definition: Player.cs:1516
List< Zone > Zones
List< Spatial > listDestryoed
void OnBeforeSave()
Definition: Spatial.cs:668

References item, SpatialManager.listDestryoed, Player.OnBeforeSave(), Spatial.OnBeforeSave(), and SpatialManager.Zones.

◆ OnDeserializing()

void Game.OnDeserializing ( StreamingContext  context)
inlineprivate

Definition at line 1160 of file Game.cs.

1161 {
1162 Debug.Log("#io game OnDeserializing");
1163 Instance = this;
1164 }

References Debug.

◆ OnGameInstantiated()

void Game.OnGameInstantiated ( )
inline

Definition at line 749 of file Game.cs.

750 {
751 HotItemHeld.taskBuild = null;
752 InvOwner.Trader = (InvOwner.Main = null);
753 LayerDrama.currentQuest = null;
754 ContentGallery.lastPage = 0;
755 ContentGallery.listMode = false;
756 if (!Application.isEditor || !EClass.debug.enable)
757 {
759 }
760 foreach (Chara value in cards.globalCharas.Values)
761 {
762 if (value.uid == player.uidChara)
763 {
764 player.chara = value;
765 break;
766 }
767 }
769 EClass.ui.widgets.OnGameInstantiated();
770 EClass.Sound.ResetPlaylist();
771 EClass.core.config.ApplyFPS(force: true);
772 }
static void OnGameInstantiated()
Definition: ActionMode.cs:247
GlobalCharaList globalCharas
Definition: CardManager.cs:46
int uid
Definition: Card.cs:123
void ApplyFPS(bool force=false)
Definition: CoreConfig.cs:845
bool enable
Definition: CoreDebug.cs:286
CoreConfig config
Definition: Core.cs:70
static CoreDebug debug
Definition: EClass.cs:49
static SoundManager Sound
Definition: EClass.cs:47
int uidChara
Definition: Player.cs:924
static void BuildList()

References CoreConfig.ApplyFPS(), RecipeManager.BuildList(), Core.config, EClass.core, EClass.debug, CoreDebug.enable, CardManager.globalCharas, ActionMode.OnGameInstantiated(), EClass.Sound, EClass.ui, Card.uid, and Player.uidChara.

Referenced by Create(), and Load().

◆ OnLoad()

void Game.OnLoad ( )
inline

Definition at line 363 of file Game.cs.

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;
432 if (cards.listAdv.Count == 0)
433 {
435 }
436 quests.list.ForeachReverse(delegate(Quest q)
437 {
438 if (!(q is QuestRandom))
439 {
440 foreach (Quest item4 in quests.list)
441 {
442 if (q != item4 && item4.id == q.id)
443 {
444 quests.list.Remove(item4);
445 break;
446 }
447 }
448 }
449 });
450 quests.globalList.ForeachReverse(delegate(Quest q)
451 {
452 if (!(q is QuestRandom))
453 {
454 foreach (Quest global in quests.globalList)
455 {
456 if (q != global && global.id == q.id)
457 {
458 quests.globalList.Remove(global);
459 break;
460 }
461 }
462 }
463 });
464 TryAddQuest("into_darkness", "exile_kettle");
465 if (version.IsBelow(0, 23, 221) && EClass.game.quests.IsCompleted("curry"))
466 {
468 }
469 if (version.IsBelow(0, 23, 185))
470 {
471 player.resetPrincipal = true;
472 }
473 if (version.IsBelow(0, 23, 182))
474 {
475 foreach (Chara value2 in cards.globalCharas.Values)
476 {
477 if (!value2.IsUnique && value2.c_lockedAge != 0)
478 {
479 value2.elements.SetBase(1243, 1);
480 }
481 }
482 }
483 if (version.IsBelow(0, 23, 155))
484 {
485 AddAdventurer("adv_yukiimo");
486 }
487 if (version.IsBelow(0, 23, 100))
488 {
489 int num = player.recipes.knownRecipes.TryGetValue("trainingDummy_heavy", 0);
490 if (num != 0)
491 {
492 player.recipes.knownRecipes["trainingDummy_heavy1"] = num;
493 }
494 }
495 if (version.IsBelow(0, 23, 96))
496 {
497 EClass.game.principal = IO.DeepCopy(EClass.setting.start.principals[0]);
498 }
500 {
502 EClass.game.principal.id = -1;
503 EClass.game.principal.permadeath = gameDifficultySetting.deleteGameOnDeath;
504 EClass.game.principal.disableManualSave = !gameDifficultySetting.allowManualSave;
505 EClass.core.actionsNextFrame.Add(delegate
506 {
507 EClass.ui.AddLayer<LayerWorldSetting>();
508 });
509 }
510 if (version.IsBelow(0, 23, 93))
511 {
513 Debug.Log("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■feafefaeffaeaffeaaeaefseasfaefaef");
514 while (TryAddRecipe())
515 {
516 }
517 }
518 if (version.IsBelow(0, 23, 72))
519 {
520 foreach (Chara value3 in EClass.game.cards.globalCharas.Values)
521 {
522 if (!value3.isDead)
523 {
524 value3.c_wasInPcParty = false;
525 }
526 }
527 }
528 if (version.IsBelow(0, 23, 59))
529 {
530 while (TryDestroy())
531 {
532 }
533 }
535 {
536 world.SendPackage(ThingGen.CreateParcel(null, ThingGen.Create("bone_duponne")));
537 }
538 if (version.IsBelow(0, 23, 195))
539 {
540 Zone zone = spatials.Find("startVillage2");
541 if (zone != null && zone.visitCount > 0)
542 {
544 }
545 }
546 if (version.IsBelow(0, 23, 52))
547 {
548 player.flags.toggleHotbarHighlightActivated = true;
549 }
550 if (version.IsBelow(0, 23, 51))
551 {
552 foreach (Chara value4 in EClass.game.cards.globalCharas.Values)
553 {
554 if (!(value4.id != "adv") && value4.IsPCFaction)
555 {
556 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.IsMale) ? 1 : 0);
557 }
558 }
559 }
560 if (version.IsBelow(0, 22, 91))
561 {
562 TryAddQuestIfActive("demitas_spellwriter", "into_darkness");
563 }
564 if (version.IsBelow(0, 22, 86))
565 {
566 Chara chara = cards.globalCharas.Find("demitas");
567 if (chara != null && chara._works != null && chara._works.Count > 0)
568 {
569 chara._works[0] = 51;
570 }
571 }
572 if (version.IsBelow(0, 22, 86))
573 {
574 TryAddQuest("farris_tulip", "greatDebt");
575 }
576 if (version.IsBelow(0, 22, 86))
577 {
578 TryAddQuest("exile_whisper", "exile_kettle");
579 }
580 if (version.IsBelow(0, 22, 85))
581 {
582 TryAddQuest("exile_meet", "pre_debt");
583 }
584 if (version.IsBelow(0, 22, 60) && EClass.game.quests.Get<QuestDebt>() != null)
585 {
586 Chara chara2 = cards.globalCharas.Find("loytel");
587 Debug.Log("Loytelfix: " + chara2.homeZone);
588 if (chara2.homeZone == null || !chara2.homeZone.IsPCFaction)
589 {
591 chara2.homeZone = EClass.pc.homeBranch.owner;
592 chara2.RemoveEditorTag(EditorTag.Invulnerable);
593 }
594 }
595 if (version.IsBelow(0, 22, 52) && quests.completedIDs.Contains("vernis_gold"))
596 {
597 quests.Add("pre_debt", "farris");
598 }
599 if (quests.completedIDs.Contains("farris_tulip"))
600 {
601 quests.globalList.ForeachReverse(delegate(Quest q)
602 {
603 if (q.id == "farris_tulip")
604 {
605 quests.globalList.Remove(q);
606 }
607 });
608 }
609 quests.list.ForeachReverse(delegate(Quest q)
610 {
611 if (q is QuestDialog && quests.completedIDs.Contains(q.id))
612 {
613 quests.list.Remove(q);
614 }
615 });
616 if (version.IsBelow(0, 22, 20))
617 {
618 foreach (Chara value5 in cards.globalCharas.Values)
619 {
620 value5.SetBool(18, enable: false);
621 }
622 }
623 if (version.IsBelow(0, 22, 22))
624 {
625 if (EClass.pc.faithElements != null)
626 {
628 }
629 foreach (Element item5 in EClass.pc.elements.ListElements((Element e) => e.source.categorySub == "god"))
630 {
631 EClass.pc.SetFeat(item5.id, 0);
632 }
634 }
635 if (version.IsBelow(0, 22, 45))
636 {
637 player.debt = 20000000;
638 }
640 {
642 }
643 if (cards.container_deposit == null)
644 {
645 cards.container_deposit = ThingGen.Create("container_deposit");
646 if (player.bankMoney > 0)
647 {
649 }
650 }
651 foreach (Quest item6 in quests.list)
652 {
653 if (item6 is QuestSequence && !EClass.sources.quests.map.ContainsKey(item6.idSource))
654 {
655 item6.phase = 0;
656 }
657 }
658 foreach (Quest global2 in quests.globalList)
659 {
660 if (global2 is QuestSequence && !EClass.sources.quests.map.ContainsKey(global2.idSource))
661 {
662 global2.phase = 0;
663 }
664 }
665 foreach (KeyValuePair<int, Spatial> item7 in EClass.game.spatials.map.ToList())
666 {
667 if (item7.Value == null)
668 {
669 EClass.game.spatials.map.Remove(item7.Key);
670 }
671 }
672 void TryAddQuest(string idQuest, string idReqQuest)
673 {
674 if (quests.completedIDs.Contains(idReqQuest) && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
675 {
676 quests.Add(idQuest);
677 }
678 }
679 void TryAddQuestIfActive(string idQuest, string idReqQuest)
680 {
681 if (quests.Get(idReqQuest) != null && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
682 {
683 quests.Add(idQuest);
684 }
685 }
686 bool TryAddRecipe()
687 {
688 foreach (string key in player.recipes.knownRecipes.Keys)
689 {
690 if (key.Length > 1 && key[0] == 'b')
691 {
692 RecipeSource recipeSource = RecipeManager.Get(key + "-p");
693 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
694 {
695 Debug.Log(recipeSource.id);
696 player.recipes.Add(recipeSource.id, showEffect: false);
697 return true;
698 }
699 recipeSource = RecipeManager.Get(key.Replace("-p", ""));
700 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
701 {
702 Debug.Log(recipeSource.id);
703 player.recipes.Add(recipeSource.id, showEffect: false);
704 return true;
705 }
706 }
707 }
708 return false;
709 }
710 static bool TryDestroy()
711 {
712 for (int i = 0; i < EClass.pc.party.members.Count; i++)
713 {
714 Chara chara3 = EClass.pc.party.members[i];
715 Debug.Log(chara3.id + "/" + chara3.uid + "/" + chara3._cints[1]);
716 for (int j = 0; j < EClass.pc.party.members.Count; j++)
717 {
718 Chara chara4 = EClass.pc.party.members[j];
719 if (i != j && chara3.uid == chara4.uid)
720 {
721 EClass.pc.party.uidMembers.RemoveAt(j);
722 EClass.pc.party.members.RemoveAt(j);
723 chara4.Destroy();
724 Debug.Log("Destroyed");
725 return true;
726 }
727 }
728 }
729 return false;
730 }
731 }
CTAG
Definition: CTAG.cs:2
EditorTag
Definition: EditorTag.cs:2
FactionMemberType
void SetBool(int id, bool enable)
Definition: BaseCard.cs:20
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
Chara Find(string id)
Definition: CardManager.cs:20
Thing container_deposit
Definition: CardManager.cs:58
int c_lockedAge
Definition: Card.cs:1379
bool isDestroyed
Definition: Card.cs:76
void RemoveEditorTag(EditorTag tag)
Definition: Card.cs:2650
ElementContainerCard elements
Definition: Card.cs:42
string id
Definition: Card.cs:36
bool IsUnique
Definition: Card.cs:2129
int invY
Definition: Card.cs:1993
bool IsMale
Definition: Card.cs:2424
string Name
Definition: Card.cs:2177
bool HasTag(CTAG tag)
Definition: Card.cs:2635
void DyeRandom()
Definition: Card.cs:6208
Trait trait
Definition: Card.cs:54
bool isDyed
Definition: Card.cs:459
void Destroy()
Definition: Card.cs:5164
ThingContainer things
Definition: Card.cs:39
int invX
Definition: Card.cs:1981
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3157
int Num
Definition: Card.cs:159
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1759
int[] _cints
Definition: Chara.cs:82
void RefreshWorkElements(ElementContainer parent=null)
Definition: Chara.cs:9213
Faction faction
Definition: Chara.cs:429
void SetFeat(int id, int value=1, bool msg=false)
Definition: Chara.cs:10092
Party party
Definition: Chara.cs:43
override bool IsPCFaction
Definition: Chara.cs:685
FactionMemberType memberType
Definition: Chara.cs:46
Zone homeZone
Definition: Chara.cs:269
void RefreshFaithElement()
Definition: Chara.cs:10406
ElementContainer faithElements
Definition: Chara.cs:38
FactionBranch homeBranch
Definition: Chara.cs:1080
bool isDead
Definition: Chara.cs:391
List< int > _works
Definition: Chara.cs:52
void MoveZone(string alias)
Definition: Chara.cs:3378
void OnLoad()
Definition: CoreDebug.cs:711
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
static SourceManager sources
Definition: EClass.cs:43
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)
List< FactionBranch > GetChildren()
Definition: FACTION.cs:202
string id
Definition: FACTION.cs:129
List< GameDifficultySetting > difficulties
Definition: GameSetting.cs:242
void AddAdventurers()
Definition: Game.cs:963
void AddAdventurer(string id, Zone z=null)
Definition: Game.cs:990
QuestManager quests
Definition: Game.cs:183
Version version
Definition: Game.cs:168
List< int > uidMembers
Definition: Party.cs:12
List< Chara > members
Definition: Party.cs:19
RecipeManager recipes
Definition: Player.cs:1152
float angle
Definition: Player.cs:1026
bool resetPrincipal
Definition: Player.cs:1235
void OnLoad()
Definition: Player.cs:1492
int bankMoney
Definition: Player.cs:969
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)
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
static RecipeSource Get(string id)
Dictionary< string, int > knownRecipes
void Add(string id, bool showEffect=true)
void OnVersionUpdate()
SourceQuest quests
static Spatial Create(string id, Spatial parent, bool register, int x=-99999, int y=-99999, int icon=0)
Definition: SpatialGen.cs:16
Zone Find(string id)
void _OnLoad()
Definition: Spatial.cs:677
bool destryoed
Definition: Spatial.cs:45
string id
Definition: Spatial.cs:13
int visitCount
Definition: Spatial.cs:154
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
Definition: Thing.cs:8
GameDate date
Definition: World.cs:6
void SendPackage(Thing p)
Definition: World.cs:68
override string ToString()
Definition: Zone.cs:554
ElementContainerZone elements
Definition: Zone.cs:43
bool IsPCFaction
Definition: Zone.cs:475
override bool Equals(object obj)
Definition: Version.cs:95
bool IsBelow(int _major, int _minor, int _batch)
Definition: Version.cs:31

References Spatial._OnLoad(), AddAdventurers(), FactionBranch.AddMemeber(), Player.angle, cards, ElementContainerCard.CheckSkillActions(), SpatialGen.Create(), Chara.currentZone, World.date, EClass.debug, Debug, Card.Destroy(), Spatial.destryoed, domains, Card.DyeRandom(), Card.elements, Zone.elements, Chara.faction, factions, SpatialManager.Find(), EClass.game, Faction.GetChildren(), Date.GetRaw(), CardManager.globalCharas, Card.HasTag(), Chara.homeBranch, Chara.homeZone, Card.id, Faction.id, Spatial.id, Card.invX, Card.invY, Chara.isDead, Card.isDestroyed, Card.isDyed, Chara.IsPCFaction, item, QuestManager.list, ThingContainer.List(), CardManager.listAdv, FactionBranch.members, Party.members, Chara.memberType, Chara.MoveZone(), Card.Name, Card.Num, CoreDebug.OnLoad(), DomainManager.OnLoad(), FactionManager.OnLoad(), Player.OnLoad(), ReligionManager.OnLoad(), FactionBranch.owner, Chara.party, EClass.pc, player, quests, Chara.Refresh(), ThingContainer.RefreshGridRecursive(), Chara.RefreshWorkElements(), World.region, religions, spatials, Card.things, Zone.ToString(), Card.trait, and world.

Referenced by Load().

◆ OnSerializing()

void Game.OnSerializing ( StreamingContext  context)
inlineprivate

Definition at line 1154 of file Game.cs.

1155 {
1156 Debug.Log("#io game OnSerializing");
1157 }

References Debug.

◆ OnUpdate()

void Game.OnUpdate ( )
inline

Definition at line 298 of file Game.cs.

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 }
void FixedUpdate()
Definition: GameUpdater.cs:436
bool IsWelcomeMessageShown
Definition: Game.cs:120
GameUpdater updater
Definition: Game.cs:250
static float waitTimer
Definition: Game.cs:146
Flags flags
Definition: Game.cs:216
double backupTime
Definition: Game.cs:213
float timeSinceStart
Definition: Game.cs:240
double timeElapsed
Definition: Player.cs:66
Stats stats
Definition: Player.cs:1071

References backupTime, GameUpdater.FixedUpdate(), flags, Game.Flags.IsWelcomeMessageShown, player, Player.stats, Player.Stats.timeElapsed, timeSinceStart, updater, and waitTimer.

Referenced by Core.Update().

◆ Pause()

void Game.Pause ( Action  onUnpause = null)
inline

Definition at line 1135 of file Game.cs.

1136 {
1137 isPaused = true;
1138 LayerPause layerPause = EClass.ui.AddLayer<LayerPause>();
1139 Game lastGame = EClass.game;
1140 if (onUnpause == null)
1141 {
1142 return;
1143 }
1144 layerPause.SetOnKill(delegate
1145 {
1146 if (EClass.core.IsGameStarted && lastGame == EClass.game)
1147 {
1148 onUnpause();
1149 }
1150 });
1151 }
static bool isPaused
Definition: Game.cs:150
Layer SetOnKill(Action action)
Definition: Layer.cs:579

References EClass.core, EClass.game, Core.IsGameStarted, Layer.SetOnKill(), and EClass.ui.

Referenced by ZoneEventQuest.OnTickRound(), and ZoneEventQuest.SpawnBoss().

◆ Quit()

void Game.Quit ( )
inline

Definition at line 1029 of file Game.cs.

1030 {
1031 Dialog.YesNo("dialog_quit", delegate
1032 {
1033 if (EClass.game.Save())
1034 {
1035 EClass.core.Quit();
1036 }
1037 });
1038 }

References EClass.game, Save(), and Dialog.YesNo().

Referenced by EUtil.ExitGame(), LayerPauseMenu.OnClickExit(), and HotItemContext.Show().

◆ Save()

bool Game.Save ( bool  isAutoSave = false,
bool  silent = false 
)
inline

Definition at line 1040 of file Game.cs.

1041 {
1042 if (EClass.ui.IsDragging)
1043 {
1044 EClass.ui.EndDrag(canceled: true);
1045 }
1046 if (isAutoSave && EClass.debug.ignoreAutoSave)
1047 {
1048 return true;
1049 }
1050 bool flag = EClass.core.config.game.autoBackup && backupTime >= (double)(EClass.core.config.game.backupInterval * 60 * 30);
1051 if (flag)
1052 {
1053 backupTime = 0.0;
1054 }
1056 countLoadedMaps = 0;
1057 player.pref.layerInventory = EClass.ui.layerFloat.GetLayer<LayerInventory>();
1059 {
1060 player.pref.layerAbility = EClass.ui.layerFloat.GetLayer<LayerAbility>();
1061 }
1062 player.pref.layerCraft = EClass.ui.layerFloat.GetLayer<LayerCraftFloat>();
1063 player.angle = EClass.pc.angle;
1065 EClass.ui.widgets.UpdateConfigs();
1066 GameIndex gameIndex = null;
1067 try
1068 {
1069 GameIOContext data = new GameIOContext(GameIO.pathCurrentSave);
1070 BaseModManager.PublishEvent("elin.game.pre_save", data);
1071 OnBeforeSave();
1072 gameIndex = GameIO.SaveGame();
1073 BaseModManager.PublishEvent("elin.game.post_save", data);
1074 }
1075 catch (Exception ex)
1076 {
1077 EClass.ui.Say(ex.Message);
1078 SE.Beep();
1079 Msg.Say("error_save");
1080 return false;
1081 }
1082 if (flag)
1083 {
1084 GameIO.MakeBackup(gameIndex);
1085 EClass.ui.Say("backupDone");
1086 }
1087 if (!silent)
1088 {
1089 if (!isAutoSave)
1090 {
1091 SE.WriteJournal();
1092 }
1093 Msg.Say("saved");
1094 }
1095 saveCount++;
1096 return true;
1097 }
float angle
Definition: Card.cs:72
new GameConfig game
Definition: CoreConfig.cs:609
void TryUpdatePlayedHour()
Definition: CoreConfig.cs:819
bool ignoreAutoSave
Definition: CoreDebug.cs:126
static string pathCurrentSave
Definition: GameIO.cs:34
static GameIndex SaveGame()
Definition: GameIO.cs:82
static void MakeBackup(GameIndex index, string suffix="")
Definition: GameIO.cs:115
int countLoadedMaps
Definition: Game.cs:236
int saveCount
Definition: Game.cs:238
void OnBeforeSave()
Definition: Game.cs:1099
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58

References Card.angle, CoreConfig.GameConfig.backupInterval, Core.config, EClass.core, EClass.debug, CoreConfig.game, CoreDebug.ignoreAutoSave, Player.Pref.layerInventory, GameIO.MakeBackup(), GameIO.pathCurrentSave, EClass.pc, Player.pref, BaseModManager.PublishEvent(), GameIO.SaveGame(), Msg.Say(), CoreConfig.TryUpdatePlayedHour(), EClass.ui, and BaseCore.version.

Referenced by AM_Adv._OnUpdateInput(), LayerSleep.Advance(), LayerNewZone.Embark(), GotoTitle(), Scene.Init(), Chara.MoveZone(), LayerPauseMenu.OnClickSave(), TraitDeedRelocate.OnRead(), Quit(), Map.Reload(), HotItemContext.Show(), and CoreDebug.UpdateInput().

◆ StartNewGame()

void Game.StartNewGame ( )
inline

Definition at line 806 of file Game.cs.

807 {
808 EClass.pc.homeZone = StartZone;
811 Prologue prologue = EClass.game.Prologue;
812 if (prologue.type == GameType.Survival)
813 {
815 }
816 else
817 {
818 CharaGen.Create("fiama").SetGlobal(EClass.game.StartZone, prologue.posFiama.x, prologue.posFiama.y);
819 CharaGen.Create("ashland").SetGlobal(EClass.game.StartZone, prologue.posAsh.x, prologue.posAsh.y);
820 }
821 if ((bool)LayerTitle.actor)
822 {
823 world.date.hour = EClass.game.Prologue.hour;
825 Player obj = player;
826 Chara chara = EClass.pc;
827 Zone zone2 = (EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone));
828 Zone zone4 = (chara.currentZone = zone2);
829 obj.zone = zone4;
830 EClass.pc.global.transition = new ZoneTransition
831 {
832 state = ZoneTransition.EnterState.Exact,
834 z = EClass.game.Prologue.startZ
835 };
836 EClass.pc.hp = EClass.pc.MaxHP;
839 EClass.pc.AddCondition<ConFaint>(200, force: true);
840 }
841 else
842 {
843 EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone);
844 Zone zone5 = null;
845 ZoneTransition transition = new ZoneTransition
846 {
847 state = ZoneTransition.EnterState.Auto
848 };
849 Chara c = EClass.game.cards.globalCharas.Find("ashland");
850 switch (EClass.debug.startScene)
851 {
852 case CoreDebug.StartScene.Zone:
854 transition = new ZoneTransition
855 {
856 state = ZoneTransition.EnterState.Exact,
858 z = EClass.game.Prologue.startZ
859 };
860 break;
861 case CoreDebug.StartScene.Home:
862 case CoreDebug.StartScene.Story_Test:
864 transition = new ZoneTransition
865 {
866 state = ZoneTransition.EnterState.Exact,
868 z = EClass.game.Prologue.startZ
869 };
870 break;
871 case CoreDebug.StartScene.Survival:
872 EClass.game.idPrologue = 3;
874 transition = new ZoneTransition
875 {
876 state = ZoneTransition.EnterState.Exact,
878 z = EClass.game.Prologue.startZ
879 };
880 break;
881 case CoreDebug.StartScene.Home_Cave:
882 EClass.game.idPrologue = 2;
884 transition = new ZoneTransition
885 {
886 state = ZoneTransition.EnterState.Exact,
888 z = EClass.game.Prologue.startZ
889 };
890 break;
891 case CoreDebug.StartScene.MeetFarris:
892 {
893 Zone parent4 = EClass.game.spatials.Find("nymelle");
894 zone5 = SpatialGen.Create("nymelle", parent4, register: true) as Zone;
895 zone5.lv = -2;
896 EClass.game.quests.Start("exploration", c, assignQuest: false);
897 break;
898 }
899 case CoreDebug.StartScene.NymelleBoss:
900 {
901 Zone parent3 = EClass.game.spatials.Find("nymelle");
902 zone5 = SpatialGen.Create("nymelle_boss", parent3, register: true) as Zone;
903 zone5.lv = -5;
904 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(2);
905 break;
906 }
907 case CoreDebug.StartScene.AfterNymelle:
909 transition = new ZoneTransition
910 {
911 state = ZoneTransition.EnterState.Exact,
913 z = EClass.game.Prologue.startZ
914 };
915 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(5);
916 EClass.game.quests.globalList.Add(Quest.Create("sharedContainer").SetClient(c, assignQuest: false));
917 EClass.game.quests.globalList.Add(Quest.Create("crafter").SetClient(c, assignQuest: false));
918 EClass.game.quests.globalList.Add(Quest.Create("defense").SetClient(c, assignQuest: false));
919 break;
920 case CoreDebug.StartScene.Melilith:
921 {
922 Zone parent2 = EClass.game.spatials.Find("cursed_manor");
923 zone5 = SpatialGen.Create("cursed_manor_dungeon", parent2, register: true) as Zone;
924 zone5.lv = -5;
925 break;
926 }
927 case CoreDebug.StartScene.Tefra:
928 {
929 Zone parent = EClass.game.spatials.Find("vernis");
930 zone5 = SpatialGen.Create("vernis_mine", parent, register: true) as Zone;
931 zone5.lv = -7;
932 break;
933 }
934 }
935 if (zone5 != null)
936 {
937 Player obj2 = player;
938 Chara chara2 = EClass.pc;
939 Zone zone2 = (EClass.pc.homeZone = zone5);
940 Zone zone4 = (chara2.currentZone = zone2);
941 obj2.zone = zone4;
942 EClass.pc.global.transition = transition;
943 }
944 else
945 {
946 Player obj3 = player;
947 Zone zone4 = (EClass.pc.currentZone = EClass.game.spatials.Find(EClass.debug.startZone));
948 obj3.zone = zone4;
949 EClass.pc.global.transition = new ZoneTransition
950 {
951 state = ZoneTransition.EnterState.Return
952 };
953 }
954 }
955 EClass.pc.homeZone.isKnown = true;
958 EClass.scene.Init(Scene.Mode.StartGame);
959 GameIOContext data = new GameIOContext((isCloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id);
960 BaseModManager.PublishEvent("elin.game.start_new", data);
961 }
GameType
Definition: GameType.cs:2
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9453
Chara SetGlobal(Zone _home, int x, int z)
Definition: Chara.cs:1505
override int MaxHP
Definition: Chara.cs:722
Stats mana
Definition: Chara.cs:1180
Stats stamina
Definition: Chara.cs:1172
string startZone
Definition: CoreDebug.cs:106
StartScene startScene
Definition: CoreDebug.cs:96
SurvivalManager survival
Definition: Game.cs:228
PartyManager parties
Definition: Game.cs:174
Prologue Prologue
Definition: Game.cs:264
bool isCloud
Definition: Game.cs:246
Zone StartZone
Definition: Game.cs:278
static void KillActor()
Definition: LayerTitle.cs:191
static EmbarkActor actor
Definition: LayerTitle.cs:25
Party Create(Chara leader)
Definition: PartyManager.cs:9
Definition: Player.cs:11
void OnStartNewGame()
Definition: Player.cs:1441
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
Quest Start(string id, string idGlobalChara)
Definition: QuestManager.cs:41
static Quest Create(string _id, string _idPerson=null, Chara c=null, bool assignQuest=true)
Definition: Quest.cs:241
void ChangePhase(int a)
Definition: Quest.cs:577
Quest SetClient(Chara c, bool assignQuest=true)
Definition: Quest.cs:380
Stats Set(int[] _raw, int _rawIndex, Chara _CC)
Definition: Stats.cs:109
virtual int max
Definition: Stats.cs:68

References BaseCore.actionsNextFrame, LayerTitle.actor, Chara.AddCondition(), cards, Quest.ChangePhase(), EClass.core, PartyManager.Create(), Quest.Create(), CharaGen.Create(), SpatialGen.Create(), EClass.debug, CardManager.GlobalCharaList.Find(), SpatialManager.Find(), EClass.game, CardManager.globalCharas, QuestManager.globalList, Prologue.hour, Prologue.idStartZone, Scene.Init(), LayerTitle.KillActor(), Chara.mana, Stats.max, Chara.MaxHP, Player.OnStartNewGame(), EClass.pc, Prologue.posAsh, Prologue.posFiama, Prologue, BaseModManager.PublishEvent(), quests, CorePath.RootSave, CorePath.RootSaveCloud, EClass.scene, Stats.Set(), Quest.SetClient(), Chara.SetGlobal(), spatials, Chara.stamina, QuestManager.Start(), CoreDebug.startScene, Prologue.startX, CoreDebug.startZone, StartZone, and Prologue.type.

Referenced by CoreDebug.QuickStart(), and DramaOutcome.StartNewGame().

◆ TryLoad()

static bool Game.TryLoad ( string  id,
bool  cloud,
Action  onLoad 
)
inlinestatic

Definition at line 311 of file Game.cs.

312 {
314 {
315 onLoad();
316 return true;
317 }
318 EClass.ui.Say("incompatible");
319 return false;
320 }
static bool CanLoad(string root)
Definition: GameIO.cs:147

References GameIO.CanLoad(), CorePath.RootSave, CorePath.RootSaveCloud, and EClass.ui.

Referenced by AM_Adv._OnUpdateInput().

◆ Wait() [1/3]

static void Game.Wait ( float  a)
inlinestatic

Definition at line 293 of file Game.cs.

294 {
295 waitTimer = a * (float)(EClass.core.config.game.waiter * 25) / 100f;
296 }

References Core.config, EClass.core, CoreConfig.game, CoreConfig.GameConfig.waiter, and waitTimer.

◆ Wait() [2/3]

static new void Game.Wait ( float  a,
Card  c 
)
inlinestatic

Definition at line 285 of file Game.cs.

286 {
287 if (c != null && c.isSynced && !c.IsPC)
288 {
289 Wait(a);
290 }
291 }
virtual bool IsPC
Definition: Card.cs:2183
virtual bool isSynced
Definition: Card.cs:2125
Definition: Wait.cs:2

References Card.IsPC, and Card.isSynced.

◆ Wait() [3/3]

static new void Game.Wait ( float  a,
Point  p 
)
inlinestatic

Definition at line 280 of file Game.cs.

281 {
282 _ = p?.IsSync;
283 }
bool IsSync
Definition: Point.cs:344

References Point.IsSync.

Referenced by EClass.Wait().

Member Data Documentation

◆ activeZone

◆ backupTime

double Game.backupTime

Definition at line 213 of file Game.cs.

Referenced by OnUpdate().

◆ bp

GameBlueprint Game.bp

Definition at line 248 of file Game.cs.

◆ cards

CardManager Game.cards = new CardManager()

Definition at line 156 of file Game.cs.

Referenced by ReligionManager.ジュアさまの薄い本をください(), QuestManager.Add(), Zone.AddGlobalCharasOnActivate(), QuestManager.AddQuestAsh(), QuestManager.AddQuestFiama(), Zone.AddRandomVisitor(), GameDate.AdvanceDay(), GameDate.AdvanceHour(), LayerShippingResult.Awake(), TraitSalesTag.CanTagSale(), ElementContainerFaction.CheckDirty(), SurvivalManager.CheckLoytelDebt(), Faction.CountMembers(), Card.Create(), LayerInventory.CreateContainer(), Card.Destroy(), Chara.Die(), CoreDebug.Fix_RemoveAshland(), CoreDebug.Fix_RemoveDemitas(), RefChara.Get(), DramaSequence.GetActor(), RefChara.GetAndCache(), Faction.HasMember(), TaskDump.IsValidContainer(), Faction.IsWearingPanty(), TaskDump.ListThingsToPut(), Zone_Specwing.OnActivate(), Faction.OnAdvanceMonth(), Zone_WindRest.OnAfterSimulate(), Zone_Nymelle.OnBeforeSimulate(), QuestDefense.OnChangePhase(), QuestVernis.OnChangePhase(), DramaOutcome.OnClaimLand(), Quest.OnClickQuest(), QuestIntroInspector.OnComplete(), QuestSharedContainer.OnComplete(), TraitDrinkMilkMother.OnDrink(), QuestDialog.OnDropReward(), SurvivalManager.OnExpandFloor(), Zone_DungeonPuppy.OnGenerateMap(), ElementContainerFaction.OnJoinFaith(), ElementContainerFaction.OnLeaveFaith(), ZoneInstanceBout.OnLeaveZone(), ListPeopleParty.OnList(), ListPeopleRevive.OnList(), OnLoad(), TraitStoryBookHome.OnRead(), ListPeopleParty.OnRefreshMenu(), QuestDebt.OnStart(), QuestExploration.OnStart(), ZoneEventWedding.OnVisit(), DramaManager.ParseLine(), InvOwnerDeliver.PayBill(), ActEffect.Proc(), DramaOutcome.QuestExploration_AfterComplete(), DramaOutcome.QuestExploration_AfterCrystal(), CoreDebug.QuickStart(), FactionBranch.ReceivePackages(), WindowChara.RefreshNote(), WindowChara.RefreshProfile(), LayerQuestBoard.RefreshRanking(), Chara.RemoveGlobal(), FactionBranch.RemoveMemeber(), CoreDebug.ResetPetUpgrades(), CharaMassTransfer.Restore(), SerializedCards.Restore(), Zone.Revive(), AI_Idle.Run(), TaskDump.Run(), World.SendPackage(), Meeting.SetChara(), Chara.SetGlobal(), FactionBranch.SetOwner(), UIFactionInfo.SetZone(), UIZoneInfo.SetZone(), GameDate.ShipGoods(), GameDate.ShipPackages(), QuestManager.Start(), StartNewGame(), Zone.TryAddThingInSharedContainer(), Faction.TryPayBill(), GrowSystem.TryPick(), TraitBed.ValidateOwners(), EloPos.WriteNote(), and Thing.WriteNote().

◆ config

◆ countLoadedMaps

int Game.countLoadedMaps

Definition at line 236 of file Game.cs.

Referenced by Zone.Activate(), and Scene.Init().

◆ dateScratch

int Game.dateScratch

Definition at line 210 of file Game.cs.

◆ domains

DomainManager Game.domains = new DomainManager()

Definition at line 165 of file Game.cs.

Referenced by OnLoad().

◆ factions

◆ flags

Flags Game.flags = new Flags()

Definition at line 216 of file Game.cs.

Referenced by OnUpdate().

◆ gameSpeedIndex

int Game.gameSpeedIndex = 1

◆ id

◆ idDifficulty

int Game.idDifficulty

Definition at line 207 of file Game.cs.

◆ idPrologue

int Game.idPrologue

Definition at line 204 of file Game.cs.

Referenced by DramaOutcome.fiama_gold(), UICharaMaker.ListModes(), and UICharaMaker.SetChara().

◆ Instance

Game Game.Instance
static

Definition at line 144 of file Game.cs.

◆ isCloud

◆ isKilling

bool Game.isKilling

Definition at line 244 of file Game.cs.

Referenced by LayerInventory.OnKill().

◆ isLoading

◆ isPaused

bool Game.isPaused
static

Definition at line 150 of file Game.cs.

Referenced by GameUpdater.CharaUpdater.FixedUpdate().

◆ lastActiveZone

Zone Game.lastActiveZone

Definition at line 254 of file Game.cs.

Referenced by LayerPeople.CreateSelectEmbarkMembers().

◆ lastGameSpeedIndex

int Game.lastGameSpeedIndex = 1

Definition at line 232 of file Game.cs.

Referenced by ActionMode.UnPause().

◆ loadedTextures

HashSet<Texture2D> Game.loadedTextures = new HashSet<Texture2D>()

Definition at line 258 of file Game.cs.

Referenced by Card.GetPaintSprite().

◆ log

MsgLog Game.log
Initial value:
= new MsgLog
{
id = "log"
}
Definition: MsgLog.cs:7

Definition at line 189 of file Game.cs.

Referenced by ContentChronicle.OnSwitchContent(), and Msg.SayRaw().

◆ lostThings

List<Thing> Game.lostThings = new List<Thing>()

Definition at line 222 of file Game.cs.

◆ parties

PartyManager Game.parties = new PartyManager()

Definition at line 174 of file Game.cs.

◆ player

new Player Game.player = new Player()

Definition at line 180 of file Game.cs.

Referenced by Core.Awake(), GameIndex.Create(), Load(), OnLoad(), OnUpdate(), and ItemCulture.Refresh().

◆ principal

◆ quests

QuestManager Game.quests = new QuestManager()

Definition at line 183 of file Game.cs.

Referenced by InvOwnerDeliver._OnProcess(), ActPlan._Update(), QuestManager.Add(), GameDate.AdvanceDay(), GameDate.AdvanceHour(), DramaCustomSequence.Build(), QuestVernis.CanUpdateOnTalk(), TraitDamnPool.CanUse(), SurvivalManager.CheckLoytelDebt(), Quest.Complete(), QuestCraft.Deliver(), QuestDeliver.Deliver(), AI_PlayMusic.Evaluate(), ZonePreEnterOnCompleteQuestInstance.Execute(), Player.ExitBorder(), Quest.Fail(), Recipe.GetQuestTrack(), Chara.GiveGift(), TraitDoorman_Fighter.GiveTrial(), TraitDoorman_Mage.GiveTrial(), TraitDoorman_Thief.GiveTrial(), DramaOutcome.guild_trial(), Quest.Init(), Scene.Init(), Chara.IsEscorted(), RecipeManager.ListSources(), DramaOutcome.melilith_friend(), Player.ModKarma(), Zone_DungeonDead.OnActivate(), Zone_Exile.OnActivate(), Zone_Specwing.OnActivate(), Trait.OnBarter(), QuestDefense.OnChangePhase(), DramaOutcome.OnClaimLand(), ItemQuestTracker.OnClickClose(), QuestIntroInspector.OnComplete(), QuestLoytelFarm.OnComplete(), QuestSharedContainer.OnComplete(), QuestShippingChest.OnComplete(), QuestVernis.OnComplete(), Quest.OnCompleteTask(), TCExtra.OnDraw(), QuestDialog.OnDropReward(), Player.Flags.OnEnterZone(), Zone_DungeonPuppy.OnGenerateMap(), OnLoad(), TraitStoryBookHome.OnRead(), QuestExploration.OnStart(), QuestIntoDarkness.OnStart(), Player.OnStartNewGame(), ContentQuest.OnSwitchContent(), TraitDamnPool.OnUse(), DramaManager.ParseLine(), InvOwnerDeliver.PayBill(), DramaOutcome.poppy_found(), DramaOutcome.QuestDebt_reward(), DramaOutcome.QuestExploration_AfterComplete(), DramaOutcome.QuestExploration_AfterCrystal(), DramaOutcome.QuestExploration_MeetFarris(), DramaOutcome.QuestExploration_MeetFarris2(), CoreDebug.QuickStart(), ItemQuestTracker.Refresh(), LayerShippingResult.Refresh(), WidgetQuestTracker.Refresh(), TCOrbitChara.RefreshAll(), LayerQuestBoard.RefreshQuest(), CoreDebug.Reset_LoytelDebt(), RecipeUpdater.RunRecipe(), ItemQuest.SetQuest(), CardRenderer.ShowBossText(), Chara.ShowDialog(), StartNewGame(), ActThrow.Throw(), Chara.Tick(), Recipe.ToggleTrack(), Chara.TryDropBossLoot(), WidgetQuestTracker.TryShow(), TraitTeleporter.TryTeleport(), CoreDebug.UpdateInput(), and Zone.UpdateQuests().

◆ referenceMap

Dictionary<string, IGlobalValue> Game.referenceMap = new Dictionary<string, IGlobalValue>()

Definition at line 256 of file Game.cs.

◆ relations

RelationManager Game.relations = new RelationManager()

Definition at line 186 of file Game.cs.

Referenced by GameDate.AdvanceDay().

◆ religions

◆ saveCount

int Game.saveCount

Definition at line 238 of file Game.cs.

◆ seed

◆ sessionMin

int Game.sessionMin

Definition at line 234 of file Game.cs.

Referenced by QueueList< T >.GetTask(), and TaskList< T >.GetTask().

◆ spatials

◆ startVersion

Version Game.startVersion

Definition at line 171 of file Game.cs.

◆ survival

◆ teleports

◆ timeSinceStart

float Game.timeSinceStart

Definition at line 240 of file Game.cs.

Referenced by OnUpdate().

◆ uniforms

PCCUniformManager Game.uniforms = new PCCUniformManager()

Definition at line 195 of file Game.cs.

Referenced by LayerEditPCC.Activate(), LayerEditPCC.Apply(), and Chara.ApplyJob().

◆ updater

◆ version

Version Game.version

Definition at line 168 of file Game.cs.

◆ waitTimer

float Game.waitTimer
static

Definition at line 146 of file Game.cs.

Referenced by OnUpdate(), and Wait().

◆ welcomeTimer

float Game.welcomeTimer
private

Definition at line 260 of file Game.cs.

◆ world

Property Documentation

◆ altAbility

bool Game.altAbility
get

Definition at line 274 of file Game.cs.

Referenced by LayerAbility.OnInit(), ButtonAbility.SetAct(), and UI.ToggleAbility().

◆ altCraft

bool Game.altCraft
get

Definition at line 272 of file Game.cs.

Referenced by Scene.Init().

◆ altInv

bool Game.altInv
get

◆ altUI

bool Game.altUI
get

Definition at line 268 of file Game.cs.

Referenced by ActionMode.Activate(), BuildMenu.Deactivate(), and BuildMenu.Init().

◆ IsSurvival

◆ IsWaiting

bool Game.IsWaiting
staticget

Definition at line 262 of file Game.cs.

Referenced by Scene.OnUpdate().

◆ Prologue

◆ StartZone

◆ UseGrid

bool Game.UseGrid
get

Definition at line 266 of file Game.cs.

Referenced by InvOwner.OnDrag(), and InvOwner.Transaction.Process().


The documentation for this class was generated from the following file: