Elin Decompiled Documentation EA 23.350.1 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 ApplyFix ()
 
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< Thing > lostThings = 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, IGlobalValue > referenceMap = 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 792 of file Game.cs.

793 {
794 principal = IO.DeepCopy(EClass.setting.start.principals[0]);
795 idDifficulty = 1;
796 config.snapFreePos = (config.slope = (config.autoWall = true));
797 config.autoCombat.abortOnAllyDead = true;
798 config.autoCombat.abortOnHalfHP = true;
799 config.autoCombat.bUseHotBar = true;
800 config.autoCombat.bUseInventory = true;
801 config.autoCombat.bDontChangeTarget = true;
802 config.autoCombat.abortOnKill = true;
803 config.autoCombat.abortOnItemLoss = true;
804 seed = EClass.rnd(10000);
805 Debug.Log("creating game: " + id + " seed:" + seed);
807 uniforms.Import();
812 foreach (Spatial value in spatials.map.Values)
813 {
814 value.SetMainFaction(factions.Find(value.source.faction.IsEmpty("wilds")));
815 }
817 cards.container_shipping = ThingGen.Create("container_shipping");
818 cards.container_deliver = ThingGen.Create("container_delivery");
819 cards.container_deposit = ThingGen.Create("container_deposit");
820 bp = new GameBlueprint();
821 bp.Create();
822 }
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:249
StartSetting start
Definition: GameSetting.cs:352
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:10
void OnCreateGame()
Definition: Player.cs:1423
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 1008 of file Game.cs.

1009 {
1010 if (z == null)
1011 {
1012 List<Zone> source = world.region.ListTowns();
1013 do
1014 {
1015 z = source.RandomItem();
1016 }
1017 while ((z is Zone_SubTown && EClass.rnd(5) != 0) || z == EClass.pc.currentZone);
1018 }
1019 Chara chara = CharaGen.Create(id);
1020 chara.SetHomeZone(z);
1021 chara.global.transition = new ZoneTransition
1022 {
1023 state = ZoneTransition.EnterState.RandomVisit
1024 };
1025 z.AddCard(chara);
1026 cards.listAdv.Add(chara);
1027 }
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:1498
Zone currentZone
Definition: Chara.cs:259
static Chara pc
Definition: EClass.cs:15
CardManager cards
Definition: Game.cs:156
List< Zone > ListTowns()
Definition: Region.cs:273
Region region
Definition: World.cs:23
Card AddCard(Card t, Point point)
Definition: Zone.cs:2151

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

◆ AddAdventurers()

void Game.AddAdventurers ( )
inline

Definition at line 981 of file Game.cs.

982 {
983 List<Zone> source = world.region.ListTowns();
984 string[] array = new string[8] { "adv_kiria", "adv_gaki", "adv_wini", "adv_verna", "adv_ivory", "adv_mesherada", "adv_yukiimo", "adv_schwert" };
985 for (int i = 0; i < EClass.setting.balance.numAdv; i++)
986 {
987 Zone zone = source.RandomItem();
988 if (zone is Zone_SubTown && EClass.rnd(5) != 0)
989 {
990 i--;
991 continue;
992 }
993 if (i >= array.Length && i < array.Length + 2)
994 {
996 }
997 Chara chara = CharaGen.Create((i < array.Length) ? array[i] : ((EClass.rnd(10) == 0) ? "adv_fairy" : "adv"));
998 chara.SetHomeZone(zone);
999 chara.global.transition = new ZoneTransition
1000 {
1001 state = ZoneTransition.EnterState.RandomVisit
1002 };
1003 zone.AddCard(chara);
1004 cards.listAdv.Add(chara);
1005 }
1006 }
static void Set(CardBlueprint _bp=null)
static CardBlueprint Chara(int lv, Rarity rarity=Rarity.Normal)
BalanceSetting balance
Definition: GameSetting.cs:356
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 ApplyFix().

◆ ApplyFix()

void Game.ApplyFix ( )
inline

Definition at line 467 of file Game.cs.

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, 345))
504 {
505 Zone zone = spatials.Find("oldkeep");
506 if (zone != null && zone.visitCount > 0)
507 {
508 zone.SetInt(4, 1);
509 }
510 }
511 if (version.IsBelow(0, 23, 336))
512 {
513 AddAdventurer("adv_schwert");
514 }
515 TryAddQuest("into_darkness", "exile_kettle");
516 if (version.IsBelow(0, 23, 221) && EClass.game.quests.IsCompleted("curry"))
517 {
519 }
520 if (version.IsBelow(0, 23, 185))
521 {
522 player.resetPrincipal = true;
523 }
524 if (version.IsBelow(0, 23, 182))
525 {
526 foreach (Chara value in cards.globalCharas.Values)
527 {
528 if (!value.IsUnique && value.c_lockedAge != 0)
529 {
530 value.elements.SetBase(1243, 1);
531 }
532 }
533 }
534 if (version.IsBelow(0, 23, 155))
535 {
536 AddAdventurer("adv_yukiimo");
537 }
538 if (version.IsBelow(0, 23, 100))
539 {
540 int num = player.recipes.knownRecipes.TryGetValue("trainingDummy_heavy", 0);
541 if (num != 0)
542 {
543 player.recipes.knownRecipes["trainingDummy_heavy1"] = num;
544 }
545 }
546 if (version.IsBelow(0, 23, 96))
547 {
548 EClass.game.principal = IO.DeepCopy(EClass.setting.start.principals[0]);
549 }
551 {
553 EClass.game.principal.id = -1;
554 EClass.game.principal.permadeath = gameDifficultySetting.deleteGameOnDeath;
555 EClass.game.principal.disableManualSave = !gameDifficultySetting.allowManualSave;
556 EClass.core.actionsNextFrame.Add(delegate
557 {
558 EClass.ui.AddLayer<LayerWorldSetting>();
559 });
560 }
561 if (version.IsBelow(0, 23, 93))
562 {
564 Debug.Log("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■feafefaeffaeaffeaaeaefseasfaefaef");
565 while (TryAddRecipe())
566 {
567 }
568 }
569 if (version.IsBelow(0, 23, 72))
570 {
571 foreach (Chara value2 in EClass.game.cards.globalCharas.Values)
572 {
573 if (!value2.isDead)
574 {
575 value2.c_wasInPcParty = false;
576 }
577 }
578 }
579 if (version.IsBelow(0, 23, 59))
580 {
581 while (TryDestroy())
582 {
583 }
584 }
586 {
587 world.SendPackage(ThingGen.CreateParcel(null, ThingGen.Create("bone_duponne")));
588 }
589 if (version.IsBelow(0, 23, 195))
590 {
591 Zone zone2 = spatials.Find("startVillage2");
592 if (zone2 != null && zone2.visitCount > 0)
593 {
595 }
596 }
597 if (version.IsBelow(0, 23, 52))
598 {
599 player.flags.toggleHotbarHighlightActivated = true;
600 }
601 if (version.IsBelow(0, 23, 51))
602 {
603 foreach (Chara value3 in EClass.game.cards.globalCharas.Values)
604 {
605 if (!(value3.id != "adv") && value3.IsPCFaction)
606 {
607 value3.idSkin = value3.uid % (value3.source._tiles.Length - 4) / 2 * 2 + ((!value3.IsMale) ? 1 : 0);
608 }
609 }
610 }
611 if (version.IsBelow(0, 22, 91))
612 {
613 TryAddQuestIfActive("demitas_spellwriter", "into_darkness");
614 }
615 if (version.IsBelow(0, 22, 86))
616 {
617 Chara chara = cards.globalCharas.Find("demitas");
618 if (chara != null && chara._works != null && chara._works.Count > 0)
619 {
620 chara._works[0] = 51;
621 }
622 }
623 if (version.IsBelow(0, 22, 86))
624 {
625 TryAddQuest("farris_tulip", "greatDebt");
626 }
627 if (version.IsBelow(0, 22, 86))
628 {
629 TryAddQuest("exile_whisper", "exile_kettle");
630 }
631 if (version.IsBelow(0, 22, 85))
632 {
633 TryAddQuest("exile_meet", "pre_debt");
634 }
635 if (version.IsBelow(0, 22, 60) && EClass.game.quests.Get<QuestDebt>() != null)
636 {
637 Chara chara2 = cards.globalCharas.Find("loytel");
638 Debug.Log("Loytelfix: " + chara2.homeZone);
639 if (chara2.homeZone == null || !chara2.homeZone.IsPCFaction)
640 {
642 chara2.homeZone = EClass.pc.homeBranch.owner;
643 chara2.RemoveEditorTag(EditorTag.Invulnerable);
644 }
645 }
646 if (version.IsBelow(0, 22, 52) && quests.completedIDs.Contains("vernis_gold"))
647 {
648 quests.Add("pre_debt", "farris");
649 }
650 if (quests.completedIDs.Contains("farris_tulip"))
651 {
652 quests.globalList.ForeachReverse(delegate(Quest q)
653 {
654 if (q.id == "farris_tulip")
655 {
656 quests.globalList.Remove(q);
657 }
658 });
659 }
660 quests.list.ForeachReverse(delegate(Quest q)
661 {
662 if (q is QuestDialog && quests.completedIDs.Contains(q.id))
663 {
664 quests.list.Remove(q);
665 }
666 });
667 if (version.IsBelow(0, 22, 20))
668 {
669 foreach (Chara value4 in cards.globalCharas.Values)
670 {
671 value4.SetBool(18, enable: false);
672 }
673 }
674 if (version.IsBelow(0, 22, 22))
675 {
676 if (EClass.pc.faithElements != null)
677 {
679 }
680 foreach (Element item2 in EClass.pc.elements.ListElements((Element e) => e.source.categorySub == "god"))
681 {
682 EClass.pc.SetFeat(item2.id, 0);
683 }
685 }
686 if (version.IsBelow(0, 22, 45))
687 {
688 player.debt = 20000000;
689 }
690 void TryAddQuest(string idQuest, string idReqQuest)
691 {
692 if (quests.completedIDs.Contains(idReqQuest) && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
693 {
694 quests.Add(idQuest);
695 }
696 }
697 void TryAddQuestIfActive(string idQuest, string idReqQuest)
698 {
699 if (quests.Get(idReqQuest) != null && !quests.completedIDs.Contains(idQuest) && quests.GetGlobal(idQuest) == null && quests.Get(idQuest) == null)
700 {
701 quests.Add(idQuest);
702 }
703 }
704 bool TryAddRecipe()
705 {
706 foreach (string key in player.recipes.knownRecipes.Keys)
707 {
708 if (key.Length > 1 && key[0] == 'b')
709 {
710 RecipeSource recipeSource = RecipeManager.Get(key + "-p");
711 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
712 {
713 Debug.Log(recipeSource.id);
714 player.recipes.Add(recipeSource.id, showEffect: false);
715 return true;
716 }
717 recipeSource = RecipeManager.Get(key.Replace("-p", ""));
718 if (recipeSource != null && !player.recipes.knownRecipes.ContainsKey(recipeSource.id))
719 {
720 Debug.Log(recipeSource.id);
721 player.recipes.Add(recipeSource.id, showEffect: false);
722 return true;
723 }
724 }
725 }
726 return false;
727 }
728 static bool TryDestroy()
729 {
730 for (int i = 0; i < EClass.pc.party.members.Count; i++)
731 {
732 Chara chara3 = EClass.pc.party.members[i];
733 Debug.Log(chara3.id + "/" + chara3.uid + "/" + chara3._cints[1]);
734 for (int j = 0; j < EClass.pc.party.members.Count; j++)
735 {
736 Chara chara4 = EClass.pc.party.members[j];
737 if (i != j && chara3.uid == chara4.uid)
738 {
739 EClass.pc.party.uidMembers.RemoveAt(j);
740 EClass.pc.party.members.RemoveAt(j);
741 chara4.Destroy();
742 Debug.Log("Destroyed");
743 return true;
744 }
745 }
746 }
747 return false;
748 }
749 }
EditorTag
Definition: EditorTag.cs:2
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
Chara Find(string id)
Definition: CardManager.cs:20
GlobalCharaList globalCharas
Definition: CardManager.cs:46
int c_lockedAge
Definition: Card.cs:1393
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
bool IsMale
Definition: Card.cs:2454
int uid
Definition: Card.cs:125
void Destroy()
Definition: Card.cs:5314
void SetBool(string id, bool enable)
Definition: Card.cs:2562
int[] _cints
Definition: Chara.cs:82
void SetFeat(int id, int value=1, bool msg=false)
Definition: Chara.cs:10554
Party party
Definition: Chara.cs:43
override bool IsPCFaction
Definition: Chara.cs:689
Zone homeZone
Definition: Chara.cs:271
void RefreshFaithElement()
Definition: Chara.cs:10871
ElementContainer faithElements
Definition: Chara.cs:38
FactionBranch homeBranch
Definition: Chara.cs:1113
bool isDead
Definition: Chara.cs:393
List< int > _works
Definition: Chara.cs:52
static Game game
Definition: EClass.cs:9
static UI ui
Definition: EClass.cs:17
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:259
SourceElement.Row source
Definition: ELEMENT.cs:282
void AddMemeber(Chara c)
List< GameDifficultySetting > difficulties
Definition: GameSetting.cs:247
void AddAdventurers()
Definition: Game.cs:981
void AddAdventurer(string id, Zone z=null)
Definition: Game.cs:1008
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:1167
bool resetPrincipal
Definition: Player.cs:1250
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
string id
Definition: Quest.cs:31
static void BuildList()
static RecipeSource Get(string id)
Dictionary< string, int > knownRecipes
void Add(string id, bool showEffect=true)
Zone Find(string id)
void SetInt(int id, int value=0)
Definition: Spatial.cs:580
int visitCount
Definition: Spatial.cs:154
static Thing CreateParcel(string idLang=null, params Thing[] things)
Definition: ThingGen.cs:42
static Thing CreateCassette(int id)
Definition: ThingGen.cs:238
void SendPackage(Thing p)
Definition: World.cs:68
bool IsPCFaction
Definition: Zone.cs:480
bool IsBelow(int _major, int _minor, int _batch)
Definition: Version.cs:49

References AddAdventurers(), cards, ElementContainerCard.CheckSkillActions(), Debug, Card.elements, item, QuestManager.list, CardManager.listAdv, EClass.pc, and quests.

Referenced by OnLoad().

◆ Create()

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

Definition at line 751 of file Game.cs.

752 {
753 id = _id ?? GameIO.GetNewId(cloud ? CorePath.RootSaveCloud : CorePath.RootSave, "world_");
755 EClass.core.game = (Instance = new Game());
756 EClass.core.game.isCloud = cloud;
760 }
static string RootSave
Definition: CorePath.cs:202
static string RootSaveCloud
Definition: CorePath.cs:204
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:792
static void OnBeforeInstantiate()
Definition: Game.cs:762
static Game Instance
Definition: Game.cs:144
void OnGameInstantiated()
Definition: Game.cs:767

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 1029 of file Game.cs.

1030 {
1031 if (showDialog)
1032 {
1033 Dialog.YesNo("dialog_gotoTitle", delegate
1034 {
1035 if (EClass.game.Save(isAutoSave: true))
1036 {
1037 EClass.scene.Init(Scene.Mode.Title);
1038 }
1039 });
1040 }
1041 else
1042 {
1043 EClass.scene.Init(Scene.Mode.Title);
1044 }
1045 }
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 Scene scene
Definition: EClass.cs:31
bool Save(bool isAutoSave=false, bool silent=false)
Definition: Game.cs:1058
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 1131 of file Game.cs.

1132 {
1133 isKilling = true;
1134 Debug.Log("Killing Game: IsStarted? " + EClass.core.IsGameStarted);
1136 {
1137 EClass.ui.OnKillGame();
1140 }
1141 EClass.core.game = (Instance = null);
1142 EClass.Sound.currentPlaylist = null;
1143 Window.dictTab.Clear();
1144 foreach (Texture2D loadedTexture in loadedTextures)
1145 {
1146 if (loadedTexture != null)
1147 {
1148 UnityEngine.Object.Destroy(loadedTexture);
1149 }
1150 }
1151 }
bool IsGameStarted
Definition: Core.cs:87
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:1855

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

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

◆ 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:1131
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:1083
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 762 of file Game.cs.

763 {
764 Player.seedHallucination = 0;
765 }

Referenced by Load().

◆ OnBeforeSave()

void Game.OnBeforeSave ( )
inline

Definition at line 1117 of file Game.cs.

1118 {
1119 foreach (Zone zone in spatials.Zones)
1120 {
1121 zone.OnBeforeSave();
1122 }
1124 foreach (Spatial item in spatials.listDestryoed)
1125 {
1126 item.DeleteMapRecursive();
1127 }
1128 spatials.listDestryoed.Clear();
1129 }
void OnBeforeSave()
Definition: Player.cs:1531
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 1178 of file Game.cs.

1179 {
1180 Debug.Log("#io game OnDeserializing");
1181 Instance = this;
1182 }

References Debug.

◆ OnGameInstantiated()

void Game.OnGameInstantiated ( )
inline

Definition at line 767 of file Game.cs.

768 {
769 HotItemHeld.taskBuild = null;
770 InvOwner.Trader = (InvOwner.Main = null);
771 LayerDrama.currentQuest = null;
772 ContentGallery.lastPage = 0;
773 ContentGallery.listMode = false;
774 if (!Application.isEditor || !EClass.debug.enable)
775 {
777 }
778 foreach (Chara value in cards.globalCharas.Values)
779 {
780 if (value.uid == player.uidChara)
781 {
782 player.chara = value;
783 break;
784 }
785 }
787 EClass.ui.widgets.OnGameInstantiated();
788 EClass.Sound.ResetPlaylist();
789 EClass.core.config.ApplyFPS(force: true);
790 }
static void OnGameInstantiated()
Definition: ActionMode.cs:247
void ApplyFPS(bool force=false)
Definition: CoreConfig.cs:865
bool enable
Definition: CoreDebug.cs:302
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:936

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;
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 }
CTAG
Definition: CTAG.cs:2
FactionMemberType
Thing container_deposit
Definition: CardManager.cs:58
bool isDestroyed
Definition: Card.cs:78
int invY
Definition: Card.cs:2007
string Name
Definition: Card.cs:2191
bool HasTag(CTAG tag)
Definition: Card.cs:2728
void DyeRandom()
Definition: Card.cs:6473
Trait trait
Definition: Card.cs:54
bool isDyed
Definition: Card.cs:461
ThingContainer things
Definition: Card.cs:39
int invX
Definition: Card.cs:1995
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3257
int Num
Definition: Card.cs:161
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1804
void RefreshWorkElements(ElementContainer parent=null)
Definition: Chara.cs:9620
Faction faction
Definition: Chara.cs:431
FactionMemberType memberType
Definition: Chara.cs:46
void MoveZone(string alias)
Definition: Chara.cs:3577
void OnLoad()
Definition: CoreDebug.cs:741
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
static SourceManager sources
Definition: EClass.cs:43
List< Chara > members
List< FactionBranch > GetChildren()
Definition: FACTION.cs:202
string id
Definition: FACTION.cs:129
void ApplyFix()
Definition: Game.cs:467
float angle
Definition: Player.cs:1041
void OnLoad()
Definition: Player.cs:1507
int bankMoney
Definition: Player.cs:981
virtual string idSource
Definition: Quest.cs:149
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
void _OnLoad()
Definition: Spatial.cs:677
bool destryoed
Definition: Spatial.cs:45
string id
Definition: Spatial.cs:13
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
void RefreshGridRecursive()
Definition: Thing.cs:8
GameDate date
Definition: World.cs:6
override string ToString()
Definition: Zone.cs:600
ElementContainerZone elements
Definition: Zone.cs:46
override bool Equals(object obj)
Definition: Version.cs:115

References Spatial._OnLoad(), Card.Add(), FactionBranch.AddMemeber(), Player.angle, ApplyFix(), Player.bankMoney, cards, CardManager.container_deposit, EClass.core, ThingGen.Create(), SpatialGen.Create(), Chara.currentZone, World.date, EClass.debug, Debug, Card.Destroy(), Spatial.destryoed, domains, Card.DyeRandom(), Zone.elements, Version.Equals(), Chara.faction, factions, SpatialManager.Find(), EClass.game, Faction.GetChildren(), Date.GetRaw(), CardManager.globalCharas, QuestManager.globalList, Card.HasTag(), Chara.homeBranch, Chara.homeZone, Card.id, Faction.id, Spatial.id, Quest.idSource, Card.invX, Card.invY, Chara.isDead, Card.isDestroyed, Card.isDyed, Chara.IsPCFaction, item, QuestManager.list, ThingContainer.List(), SpatialManager.map, FactionBranch.members, Party.members, Chara.memberType, Chara.MoveZone(), Card.Name, Card.Num, CoreDebug.OnLoad(), DomainManager.OnLoad(), FactionManager.OnLoad(), Player.OnLoad(), ReligionManager.OnLoad(), RecipeManager.OnVersionUpdate(), FactionBranch.owner, Chara.party, EClass.pc, player, quests, SourceManager.quests, Player.recipes, Chara.Refresh(), ThingContainer.RefreshGridRecursive(), Chara.RefreshWorkElements(), World.region, religions, EClass.sources, spatials, Card.things, Zone.ToString(), Card.trait, version, BaseCore.version, and world.

Referenced by Load().

◆ OnSerializing()

void Game.OnSerializing ( StreamingContext  context)
inlineprivate

Definition at line 1172 of file Game.cs.

1173 {
1174 Debug.Log("#io game OnSerializing");
1175 }

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:444
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:1086

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 1153 of file Game.cs.

1154 {
1155 isPaused = true;
1156 LayerPause layerPause = EClass.ui.AddLayer<LayerPause>();
1157 Game lastGame = EClass.game;
1158 if (onUnpause == null)
1159 {
1160 return;
1161 }
1162 layerPause.SetOnKill(delegate
1163 {
1164 if (EClass.core.IsGameStarted && lastGame == EClass.game)
1165 {
1166 onUnpause();
1167 }
1168 });
1169 }
static bool isPaused
Definition: Game.cs:150
Layer SetOnKill(Action action)
Definition: Layer.cs:584

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 1047 of file Game.cs.

1048 {
1049 Dialog.YesNo("dialog_quit", delegate
1050 {
1051 if (EClass.game.Save())
1052 {
1053 EClass.core.Quit();
1054 }
1055 });
1056 }

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 1058 of file Game.cs.

1059 {
1060 if (EClass.ui.IsDragging)
1061 {
1062 EClass.ui.EndDrag(canceled: true);
1063 }
1064 if (isAutoSave && EClass.debug.ignoreAutoSave)
1065 {
1066 return true;
1067 }
1068 bool flag = EClass.core.config.game.autoBackup && backupTime >= (double)(EClass.core.config.game.backupInterval * 60 * 30);
1069 if (flag)
1070 {
1071 backupTime = 0.0;
1072 }
1074 countLoadedMaps = 0;
1075 player.pref.layerInventory = EClass.ui.layerFloat.GetLayer<LayerInventory>();
1077 {
1078 player.pref.layerAbility = EClass.ui.layerFloat.GetLayer<LayerAbility>();
1079 }
1080 player.pref.layerCraft = EClass.ui.layerFloat.GetLayer<LayerCraftFloat>();
1081 player.angle = EClass.pc.angle;
1083 EClass.ui.widgets.UpdateConfigs();
1084 GameIndex gameIndex = null;
1085 try
1086 {
1087 GameIOContext data = new GameIOContext(GameIO.pathCurrentSave);
1088 BaseModManager.PublishEvent("elin.game.pre_save", data);
1089 OnBeforeSave();
1090 gameIndex = GameIO.SaveGame();
1091 BaseModManager.PublishEvent("elin.game.post_save", data);
1092 }
1093 catch (Exception ex)
1094 {
1095 EClass.ui.Say(ex.Message);
1096 SE.Beep();
1097 Msg.Say("error_save");
1098 return false;
1099 }
1100 if (flag)
1101 {
1102 GameIO.MakeBackup(gameIndex);
1103 EClass.ui.Say("backupDone");
1104 }
1105 if (!silent)
1106 {
1107 if (!isAutoSave)
1108 {
1109 SE.WriteJournal();
1110 }
1111 Msg.Say("saved");
1112 }
1113 saveCount++;
1114 return true;
1115 }
float angle
Definition: Card.cs:74
new GameConfig game
Definition: CoreConfig.cs:629
void TryUpdatePlayedHour()
Definition: CoreConfig.cs:839
bool ignoreAutoSave
Definition: CoreDebug.cs:142
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:1117
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 824 of file Game.cs.

825 {
826 EClass.pc.homeZone = StartZone;
829 Prologue prologue = EClass.game.Prologue;
830 if (prologue.type == GameType.Survival)
831 {
833 }
834 else
835 {
836 CharaGen.Create("fiama").SetGlobal(EClass.game.StartZone, prologue.posFiama.x, prologue.posFiama.y);
837 CharaGen.Create("ashland").SetGlobal(EClass.game.StartZone, prologue.posAsh.x, prologue.posAsh.y);
838 }
839 if ((bool)LayerTitle.actor)
840 {
841 world.date.hour = EClass.game.Prologue.hour;
843 Player obj = player;
844 Chara chara = EClass.pc;
845 Zone zone = (EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone));
846 Zone zone3 = (chara.currentZone = zone);
847 obj.zone = zone3;
848 EClass.pc.global.transition = new ZoneTransition
849 {
850 state = ZoneTransition.EnterState.Exact,
852 z = EClass.game.Prologue.startZ
853 };
854 EClass.pc.hp = EClass.pc.MaxHP;
857 EClass.pc.AddCondition<ConFaint>(200, force: true);
858 }
859 else
860 {
861 EClass.pc.homeZone = EClass.game.spatials.Find(EClass.game.Prologue.idStartZone);
862 Zone zone5 = null;
863 ZoneTransition transition = new ZoneTransition
864 {
865 state = ZoneTransition.EnterState.Auto
866 };
867 Chara c = EClass.game.cards.globalCharas.Find("ashland");
868 switch (EClass.debug.startScene)
869 {
870 case CoreDebug.StartScene.Zone:
872 transition = new ZoneTransition
873 {
874 state = ZoneTransition.EnterState.Exact,
876 z = EClass.game.Prologue.startZ
877 };
878 break;
879 case CoreDebug.StartScene.Home:
880 case CoreDebug.StartScene.Story_Test:
882 transition = new ZoneTransition
883 {
884 state = ZoneTransition.EnterState.Exact,
886 z = EClass.game.Prologue.startZ
887 };
888 break;
889 case CoreDebug.StartScene.Survival:
890 EClass.game.idPrologue = 3;
892 transition = new ZoneTransition
893 {
894 state = ZoneTransition.EnterState.Exact,
896 z = EClass.game.Prologue.startZ
897 };
898 break;
899 case CoreDebug.StartScene.Home_Cave:
900 EClass.game.idPrologue = 2;
902 transition = new ZoneTransition
903 {
904 state = ZoneTransition.EnterState.Exact,
906 z = EClass.game.Prologue.startZ
907 };
908 break;
909 case CoreDebug.StartScene.MeetFarris:
910 {
911 Zone parent4 = EClass.game.spatials.Find("nymelle");
912 zone5 = SpatialGen.Create("nymelle", parent4, register: true) as Zone;
913 zone5.lv = -2;
914 EClass.game.quests.Start("exploration", c, assignQuest: false);
915 break;
916 }
917 case CoreDebug.StartScene.NymelleBoss:
918 {
919 Zone parent3 = EClass.game.spatials.Find("nymelle");
920 zone5 = SpatialGen.Create("nymelle_boss", parent3, register: true) as Zone;
921 zone5.lv = -5;
922 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(2);
923 break;
924 }
925 case CoreDebug.StartScene.AfterNymelle:
927 transition = new ZoneTransition
928 {
929 state = ZoneTransition.EnterState.Exact,
931 z = EClass.game.Prologue.startZ
932 };
933 EClass.game.quests.Start("exploration", c, assignQuest: false).ChangePhase(5);
934 EClass.game.quests.globalList.Add(Quest.Create("sharedContainer").SetClient(c, assignQuest: false));
935 EClass.game.quests.globalList.Add(Quest.Create("crafter").SetClient(c, assignQuest: false));
936 EClass.game.quests.globalList.Add(Quest.Create("defense").SetClient(c, assignQuest: false));
937 break;
938 case CoreDebug.StartScene.Melilith:
939 {
940 Zone parent2 = EClass.game.spatials.Find("cursed_manor");
941 zone5 = SpatialGen.Create("cursed_manor_dungeon", parent2, register: true) as Zone;
942 zone5.lv = -5;
943 break;
944 }
945 case CoreDebug.StartScene.Tefra:
946 {
947 Zone parent = EClass.game.spatials.Find("vernis");
948 zone5 = SpatialGen.Create("vernis_mine", parent, register: true) as Zone;
949 zone5.lv = -7;
950 break;
951 }
952 }
953 if (zone5 != null)
954 {
955 Player obj2 = player;
956 Chara chara2 = EClass.pc;
957 Zone zone = (EClass.pc.homeZone = zone5);
958 Zone zone3 = (chara2.currentZone = zone);
959 obj2.zone = zone3;
960 EClass.pc.global.transition = transition;
961 }
962 else
963 {
964 Player obj3 = player;
965 Zone zone3 = (EClass.pc.currentZone = EClass.game.spatials.Find(EClass.debug.startZone));
966 obj3.zone = zone3;
967 EClass.pc.global.transition = new ZoneTransition
968 {
969 state = ZoneTransition.EnterState.Return
970 };
971 }
972 }
973 EClass.pc.homeZone.isKnown = true;
976 EClass.scene.Init(Scene.Mode.StartGame);
977 GameIOContext data = new GameIOContext((isCloud ? CorePath.RootSaveCloud : CorePath.RootSave) + id);
978 BaseModManager.PublishEvent("elin.game.start_new", data);
979 }
GameType
Definition: GameType.cs:2
Condition AddCondition(string id, int p=100, bool force=false)
Definition: Chara.cs:9875
Chara SetGlobal(Zone _home, int x, int z)
Definition: Chara.cs:1544
override int MaxHP
Definition: Chara.cs:726
Stats mana
Definition: Chara.cs:1213
Stats stamina
Definition: Chara.cs:1205
string startZone
Definition: CoreDebug.cs:122
StartScene startScene
Definition: CoreDebug.cs:112
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:1456
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:2197
virtual bool isSynced
Definition: Card.cs:2139
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(), ApplyFix(), LayerShippingResult.Awake(), TraitSalesTag.CanTagSale(), ElementContainerFaction.CheckDirty(), SurvivalManager.CheckLoytelDebt(), Faction.CountMembers(), Card.Create(), LayerInventory.CreateContainer(), Card.Destroy(), CharaExtension.DestroyImmediate(), Chara.Die(), Zone.FindSharedContainer(), 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(), CustomCharaContent.OnGameLoad(), Zone_DungeonPuppy.OnGenerateMap(), ElementContainerFaction.OnJoinFaith(), ElementContainerFaction.OnLeaveFaith(), ZoneInstanceBout.OnLeaveZone(), ListPeopleParty.OnList(), ListPeopleRevive.OnList(), OnLoad(), TraitStoryBookHome.OnRead(), ListPeopleParty.OnRefreshMenu(), QuestDebt.OnStart(), QuestExploration.OnStart(), ZoneEventWedding.OnVisit(), Zone_Aquli.OnVisitNewMapOrRegenerate(), 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(), DramaOutcome.reward_stone_dream(), AI_Idle.Run(), TaskDump.Run(), World.SendPackage(), Meeting.SetChara(), Chara.SetGlobal(), FactionBranch.SetOwner(), UIFactionInfo.SetZone(), UIZoneInfo.SetZone(), GameDate.ShipGoods(), GameDate.ShipPackages(), QuestManager.Start(), StartNewGame(), 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()

◆ 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(), ApplyFix(), LayerShippingResult.Awake(), 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(), TraitAshland.ShouldShowQuestIcon(), TraitFiama.ShouldShowQuestIcon(), 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.

Referenced by OnLoad().

◆ 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: