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();
249 public Dictionary<string, IGlobalValue>
referenceMap =
new Dictionary<string, IGlobalValue>();
284 public static void Wait(
float a)
294 player.stats.timeElapsed += Time.deltaTime;
297 flags.IsWelcomeMessageShown =
true;
302 public static bool TryLoad(
string id,
bool cloud, Action onLoad)
313 public static void Load(
string id,
bool cloud)
316 Debug.Log(
"Loading: " +
id +
": " + text);
323 EClass.game.isCloud = cloud;
324 EClass.game.isLoading =
true;
331 SoundManager.ignoreSounds =
true;
336 SoundManager.ignoreSounds =
true;
341 SoundManager.ignoreSounds =
false;
348 EClass.game.isLoading =
false;
365 state = ZoneTransition.EnterState.Return
375 EClass.pc.homeZone.isKnown =
true;
392 if (value.
id ==
"demitas" && value.
faction.
id ==
"wilds")
430 if (q != item4 && item4.id == q.id)
432 quests.list.Remove(item4);
444 if (q != global && global.id == q.id)
446 quests.globalList.Remove(global);
452 TryAddQuest(
"into_darkness",
"exile_kettle");
453 if (version.
IsBelow(0, 23, 100))
461 if (version.
IsBelow(0, 23, 96))
464 player.resetPrincipal =
true;
469 EClass.game.principal.id = -1;
471 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
477 if (version.
IsBelow(0, 23, 93))
480 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
481 while (TryAddRecipe())
485 if (version.
IsBelow(0, 23, 72))
491 value2.c_wasInPcParty =
false;
495 if (version.
IsBelow(0, 23, 59))
501 if (version.
IsBelow(0, 23, 52))
503 player.flags.toggleHotbarHighlightActivated =
true;
505 if (version.
IsBelow(0, 23, 51))
511 value3.idSkin = value3.uid % (value3.source._tiles.Length - 4) / 2 * 2 + ((!value3.
IsMale) ? 1 : 0);
515 if (version.
IsBelow(0, 22, 91))
517 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
519 if (version.
IsBelow(0, 22, 86))
522 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
527 if (version.
IsBelow(0, 22, 86))
529 TryAddQuest(
"farris_tulip",
"greatDebt");
531 if (version.
IsBelow(0, 22, 86))
533 TryAddQuest(
"exile_whisper",
"exile_kettle");
535 if (version.
IsBelow(0, 22, 85))
537 TryAddQuest(
"exile_meet",
"pre_debt");
552 quests.
Add(
"pre_debt",
"farris");
558 if (q.
id ==
"farris_tulip")
560 quests.globalList.Remove(q);
564 quests.
list.ForeachReverse(delegate(
Quest q)
568 quests.list.Remove(q);
571 if (version.
IsBelow(0, 22, 20))
575 value4.
SetBool(18, enable:
false);
578 if (version.
IsBelow(0, 22, 22))
590 if (version.
IsBelow(0, 22, 45))
592 player.debt = 20000000;
620 void TryAddQuest(
string idQuest,
string idReqQuest)
627 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
629 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
638 if (key.Length > 1 && key[0] ==
'b')
658 static bool TryDestroy()
667 if (i != j && chara3.
uid == chara4.
uid)
672 Debug.Log(
"Destroyed");
681 public static void Create(
string _id =
null,
bool cloud =
false)
684 OnBeforeInstantiate();
685 EClass.core.game = (Instance =
new Game());
686 EClass.core.game.isCloud = cloud;
694 Player.seedHallucination = 0;
699 HotItemHeld.taskBuild =
null;
700 InvOwner.Trader = (InvOwner.Main =
null);
701 LayerDrama.currentQuest =
null;
703 ContentGallery.lastPage = 0;
704 ContentGallery.listMode =
false;
713 player.chara = value;
718 EClass.
ui.widgets.OnGameInstantiated();
727 config.snapFreePos = (config.slope = (config.autoWall =
true));
728 config.autoCombat.abortOnAllyDead =
true;
729 config.autoCombat.abortOnHalfHP =
true;
730 config.autoCombat.bUseHotBar =
true;
731 config.autoCombat.bUseInventory =
true;
732 config.autoCombat.bDontChangeTarget =
true;
733 config.autoCombat.abortOnKill =
true;
734 config.autoCombat.abortOnItemLoss =
true;
736 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
742 foreach (
Spatial value
in spatials.
map.Values)
756 EClass.pc.homeZone = StartZone;
769 Zone zone4 = (chara.currentZone = zone2);
775 z = EClass.game.Prologue.startZ
788 state = ZoneTransition.EnterState.Auto
799 z = EClass.game.Prologue.startZ
809 z = EClass.game.Prologue.startZ
813 EClass.game.idPrologue = 2;
819 z = EClass.game.Prologue.startZ
844 z = EClass.game.Prologue.startZ
870 Zone zone2 = (EClass.pc.homeZone = zone5);
871 Zone zone4 = (chara2.currentZone = zone2);
873 EClass.pc.global.transition = transition;
882 state = ZoneTransition.EnterState.Return
886 EClass.pc.homeZone.isKnown =
true;
894 List<Zone> source =
world.region.ListTowns();
895 string[] array =
new string[6] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada" };
898 Zone zone = source.RandomItem();
904 if (i >= array.Length && i < array.Length + 2)
912 state = ZoneTransition.EnterState.RandomVisit
927 EClass.scene.Init(Scene.Mode.Title);
948 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1013 item.DeleteMapRecursive();
1028 EClass.core.game = (Instance =
null);
1029 EClass.Sound.currentPlaylist =
null;
1031 foreach (Texture2D loadedTexture
in loadedTextures)
1033 if (loadedTexture !=
null)
1035 UnityEngine.Object.Destroy(loadedTexture);
1040 public void Pause(Action onUnpause =
null)
1045 if (onUnpause ==
null)
1061 Debug.Log(
"#io game OnSerializing");
1067 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 SetHomeZone(Zone zone)
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 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)
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)
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 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)