2using System.Collections.Generic;
3using System.Runtime.Serialization;
102 if (!Input.GetKey(KeyCode.LeftShift))
104 return Input.GetKey(KeyCode.RightShift);
147 public static string id;
151 [JsonProperty(Order = -90)]
154 [JsonProperty(Order = -80)]
157 [JsonProperty(Order = -100)]
160 [JsonProperty(Order = -60)]
163 [JsonProperty(Order = -50)]
191 public PCCUniformManager
uniforms =
new PCCUniformManager();
252 public Dictionary<string, IGlobalValue>
referenceMap =
new Dictionary<string, IGlobalValue>();
289 public static void Wait(
float a)
299 player.stats.timeElapsed += Time.deltaTime;
302 flags.IsWelcomeMessageShown =
true;
307 public static bool TryLoad(
string id,
bool cloud, Action onLoad)
318 public static void Load(
string id,
bool cloud)
321 Debug.Log(
"Loading: " +
id +
": " + text);
328 EClass.game.isCloud = cloud;
329 EClass.game.isLoading =
true;
336 SoundManager.ignoreSounds =
true;
341 SoundManager.ignoreSounds =
true;
346 SoundManager.ignoreSounds =
false;
353 EClass.game.isLoading =
false;
370 state = ZoneTransition.EnterState.Return
380 EClass.pc.homeZone.isKnown =
true;
397 if (value.
id ==
"demitas" && value.
faction.
id ==
"wilds")
435 if (q != item4 && item4.id == q.id)
437 quests.list.Remove(item4);
449 if (q != global && global.id == q.id)
451 quests.globalList.Remove(global);
457 TryAddQuest(
"into_darkness",
"exile_kettle");
458 if (version.
IsBelow(0, 23, 185))
460 player.resetPrincipal =
true;
462 if (version.
IsBelow(0, 23, 182))
472 if (version.
IsBelow(0, 23, 155))
474 AddAdventurer(
"adv_yukiimo");
476 if (version.
IsBelow(0, 23, 100))
484 if (version.
IsBelow(0, 23, 96))
491 EClass.game.principal.id = -1;
493 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
499 if (version.
IsBelow(0, 23, 93))
502 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
503 while (TryAddRecipe())
507 if (version.
IsBelow(0, 23, 72))
513 value3.c_wasInPcParty =
false;
517 if (version.
IsBelow(0, 23, 59))
527 if (version.
IsBelow(0, 23, 195))
529 Zone zone = spatials.
Find(
"startVillage2");
535 if (version.
IsBelow(0, 23, 52))
537 player.flags.toggleHotbarHighlightActivated =
true;
539 if (version.
IsBelow(0, 23, 51))
545 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.
IsMale) ? 1 : 0);
549 if (version.
IsBelow(0, 22, 91))
551 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
553 if (version.
IsBelow(0, 22, 86))
556 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
561 if (version.
IsBelow(0, 22, 86))
563 TryAddQuest(
"farris_tulip",
"greatDebt");
565 if (version.
IsBelow(0, 22, 86))
567 TryAddQuest(
"exile_whisper",
"exile_kettle");
569 if (version.
IsBelow(0, 22, 85))
571 TryAddQuest(
"exile_meet",
"pre_debt");
586 quests.
Add(
"pre_debt",
"farris");
592 if (q.
id ==
"farris_tulip")
594 quests.globalList.Remove(q);
598 quests.
list.ForeachReverse(delegate(
Quest q)
602 quests.list.Remove(q);
605 if (version.
IsBelow(0, 22, 20))
609 value5.
SetBool(18, enable:
false);
612 if (version.
IsBelow(0, 22, 22))
624 if (version.
IsBelow(0, 22, 45))
626 player.debt = 20000000;
654 void TryAddQuest(
string idQuest,
string idReqQuest)
661 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
663 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
672 if (key.Length > 1 && key[0] ==
'b')
692 static bool TryDestroy()
701 if (i != j && chara3.
uid == chara4.
uid)
706 Debug.Log(
"Destroyed");
715 public static void Create(
string _id =
null,
bool cloud =
false)
718 OnBeforeInstantiate();
719 EClass.core.game = (Instance =
new Game());
720 EClass.core.game.isCloud = cloud;
728 Player.seedHallucination = 0;
733 HotItemHeld.taskBuild =
null;
734 InvOwner.Trader = (InvOwner.Main =
null);
735 LayerDrama.currentQuest =
null;
737 ContentGallery.lastPage = 0;
738 ContentGallery.listMode =
false;
747 player.chara = value;
752 EClass.
ui.widgets.OnGameInstantiated();
761 config.snapFreePos = (config.slope = (config.autoWall =
true));
762 config.autoCombat.abortOnAllyDead =
true;
763 config.autoCombat.abortOnHalfHP =
true;
764 config.autoCombat.bUseHotBar =
true;
765 config.autoCombat.bUseInventory =
true;
766 config.autoCombat.bDontChangeTarget =
true;
767 config.autoCombat.abortOnKill =
true;
768 config.autoCombat.abortOnItemLoss =
true;
770 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
776 foreach (
Spatial value
in spatials.
map.Values)
790 EClass.pc.homeZone = StartZone;
810 Zone zone4 = (chara.currentZone = zone2);
816 z = EClass.game.Prologue.startZ
829 state = ZoneTransition.EnterState.Auto
840 z = EClass.game.Prologue.startZ
850 z = EClass.game.Prologue.startZ
854 EClass.game.idPrologue = 3;
860 z = EClass.game.Prologue.startZ
864 EClass.game.idPrologue = 2;
870 z = EClass.game.Prologue.startZ
895 z = EClass.game.Prologue.startZ
921 Zone zone2 = (EClass.pc.homeZone = zone5);
922 Zone zone4 = (chara2.currentZone = zone2);
924 EClass.pc.global.transition = transition;
933 state = ZoneTransition.EnterState.Return
937 EClass.pc.homeZone.isKnown =
true;
945 List<Zone> source =
world.region.ListTowns();
946 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
949 Zone zone = source.RandomItem();
955 if (i >= array.Length && i < array.Length + 2)
963 state = ZoneTransition.EnterState.RandomVisit
974 List<Zone> source =
world.region.ListTowns();
977 z = source.RandomItem();
985 state = ZoneTransition.EnterState.RandomVisit
999 EClass.scene.Init(Scene.Mode.Title);
1020 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1036 countLoadedMaps = 0;
1052 catch (Exception ex)
1085 item.DeleteMapRecursive();
1100 EClass.core.game = (Instance =
null);
1101 EClass.Sound.currentPlaylist =
null;
1103 foreach (Texture2D loadedTexture
in loadedTextures)
1105 if (loadedTexture !=
null)
1107 UnityEngine.Object.Destroy(loadedTexture);
1112 public void Pause(Action onUnpause =
null)
1117 if (onUnpause ==
null)
1133 Debug.Log(
"#io game OnSerializing");
1139 Debug.Log(
"#io game OnDeserializing");
static void OnGameInstantiated()
void SetBool(int id, bool enable)
List< Action > actionsNextFrame
static void Set(CardBlueprint _bp)
static CardBlueprint Chara(int lv, Rarity rarity=Rarity.Normal)
GlobalCharaList globalCharas
void RemoveEditorTag(EditorTag tag)
ElementContainerCard elements
Thing Add(string id, int num=1, int lv=1)
static Chara Create(string id, int lv=-1)
void Refresh(bool calledRecursive=false)
void RefreshWorkElements(ElementContainer parent=null)
Condition AddCondition(string id, int p=100, bool force=false)
void SetFeat(int id, int value=1, bool msg=false)
Chara SetHomeZone(Zone zone)
Chara SetGlobal(Zone _home, int x, int z)
override bool IsPCFaction
FactionMemberType memberType
void RefreshFaithElement()
ElementContainer faithElements
void MoveZone(string alias)
void ApplyFPS(bool force=false)
void TryUpdatePlayedHour()
static string RootSaveCloud
int GetRaw(int offsetHours=0)
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
static SourceManager sources
static SoundManager Sound
static GameSetting setting
List< Element > ListElements(Func< Element, bool > shoudList=null, Comparison< Element > comparison=null)
Element SetBase(string alias, int v, int potential=0)
List< FactionBranch > GetChildren()
static string GetNewId(string path, string prefix="", int start=1)
static bool CanLoad(string root)
static GameIndex SaveGame()
static Game LoadGame(string id, string root, bool cloud)
static void MakeBackup(GameIndex index, string suffix="")
List< GameDifficultySetting > difficulties
List< GamePrincipal > principals
List< Prologue > prologues
ConfigPreference preference
ConfigAutoCombat autoCombat
bool IsWelcomeMessageShown
void OnSerializing(StreamingContext context)
void _OnDeserialized(StreamingContext context)
void OnSerializing(StreamingContext context)
HashSet< Texture2D > loadedTextures
Dictionary< string, IGlobalValue > referenceMap
static void OnBeforeInstantiate()
ReligionManager religions
static void Load(string id, bool cloud)
static bool TryLoad(string id, bool cloud, Action onLoad)
void GotoTitle(bool showDialog=true)
bool Save(bool isAutoSave=false, bool silent=false)
PCCUniformManager uniforms
TeleportManager teleports
static void Create(string _id=null, bool cloud=false)
void OnDeserializing(StreamingContext context)
void Pause(Action onUnpause=null)
static new void Wait(float a, Card c)
static new void Wait(float a, Point p)
void AddAdventurer(string id, Zone z=null)
RelationManager relations
void OnGameInstantiated()
static void Wait(float a)
Layer SetOnKill(Action action)
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Party Create(Chara leader)
HashSet< string > completedIDs
Quest Add(string id, string idGlobalChara=null)
Quest Start(string id, string idGlobalChara)
Quest GetGlobal(string id)
Quest SetClient(Chara c, bool assignQuest=true)
static Quest Create(string _id, string _idPerson=null, Chara c=null)
static RecipeSource Get(string id)
Dictionary< string, int > knownRecipes
void Add(string id, bool showEffect=true)
static Spatial Create(string id, Spatial parent, bool register, int x=-99999, int y=-99999, int icon=0)
static Spatial CreateRecursive(string id, Spatial parent=null)
List< Spatial > listDestryoed
virtual void SetMainFaction(Faction f)
Stats Set(int[] _raw, int _rawIndex, Chara _CC)
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
void RefreshGridRecursive()
static Thing CreateParcel(string idLang=null, params Thing[] things)
static Thing CreateCassette(int id)
static Thing Create(string id, int idMat=-1, int lv=-1)
static Dictionary< string, int > dictTab
override string ToString()
ElementContainerZone elements
Card AddCard(Card t, Point point)
override bool Equals(object obj)
bool IsBelow(int _major, int _minor, int _batch)