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, 155))
455 AddAdventurer(
"adv_yukiimo");
457 if (version.
IsBelow(0, 23, 100))
465 if (version.
IsBelow(0, 23, 96))
468 player.resetPrincipal =
true;
473 EClass.game.principal.id = -1;
475 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
481 if (version.
IsBelow(0, 23, 93))
484 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
485 while (TryAddRecipe())
489 if (version.
IsBelow(0, 23, 72))
495 value2.c_wasInPcParty =
false;
499 if (version.
IsBelow(0, 23, 59))
505 if (version.
IsBelow(0, 23, 52))
507 player.flags.toggleHotbarHighlightActivated =
true;
509 if (version.
IsBelow(0, 23, 51))
515 value3.idSkin = value3.uid % (value3.source._tiles.Length - 4) / 2 * 2 + ((!value3.
IsMale) ? 1 : 0);
519 if (version.
IsBelow(0, 22, 91))
521 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
523 if (version.
IsBelow(0, 22, 86))
526 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
531 if (version.
IsBelow(0, 22, 86))
533 TryAddQuest(
"farris_tulip",
"greatDebt");
535 if (version.
IsBelow(0, 22, 86))
537 TryAddQuest(
"exile_whisper",
"exile_kettle");
539 if (version.
IsBelow(0, 22, 85))
541 TryAddQuest(
"exile_meet",
"pre_debt");
556 quests.
Add(
"pre_debt",
"farris");
562 if (q.
id ==
"farris_tulip")
564 quests.globalList.Remove(q);
568 quests.
list.ForeachReverse(delegate(
Quest q)
572 quests.list.Remove(q);
575 if (version.
IsBelow(0, 22, 20))
579 value4.
SetBool(18, enable:
false);
582 if (version.
IsBelow(0, 22, 22))
594 if (version.
IsBelow(0, 22, 45))
596 player.debt = 20000000;
624 void TryAddQuest(
string idQuest,
string idReqQuest)
631 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
633 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
642 if (key.Length > 1 && key[0] ==
'b')
662 static bool TryDestroy()
671 if (i != j && chara3.
uid == chara4.
uid)
676 Debug.Log(
"Destroyed");
685 public static void Create(
string _id =
null,
bool cloud =
false)
688 OnBeforeInstantiate();
689 EClass.core.game = (Instance =
new Game());
690 EClass.core.game.isCloud = cloud;
698 Player.seedHallucination = 0;
703 HotItemHeld.taskBuild =
null;
704 InvOwner.Trader = (InvOwner.Main =
null);
705 LayerDrama.currentQuest =
null;
707 ContentGallery.lastPage = 0;
708 ContentGallery.listMode =
false;
717 player.chara = value;
722 EClass.
ui.widgets.OnGameInstantiated();
731 config.snapFreePos = (config.slope = (config.autoWall =
true));
732 config.autoCombat.abortOnAllyDead =
true;
733 config.autoCombat.abortOnHalfHP =
true;
734 config.autoCombat.bUseHotBar =
true;
735 config.autoCombat.bUseInventory =
true;
736 config.autoCombat.bDontChangeTarget =
true;
737 config.autoCombat.abortOnKill =
true;
738 config.autoCombat.abortOnItemLoss =
true;
740 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
746 foreach (
Spatial value
in spatials.
map.Values)
760 EClass.pc.homeZone = StartZone;
773 Zone zone4 = (chara.currentZone = zone2);
779 z = EClass.game.Prologue.startZ
792 state = ZoneTransition.EnterState.Auto
803 z = EClass.game.Prologue.startZ
813 z = EClass.game.Prologue.startZ
817 EClass.game.idPrologue = 2;
823 z = EClass.game.Prologue.startZ
848 z = EClass.game.Prologue.startZ
874 Zone zone2 = (EClass.pc.homeZone = zone5);
875 Zone zone4 = (chara2.currentZone = zone2);
877 EClass.pc.global.transition = transition;
886 state = ZoneTransition.EnterState.Return
890 EClass.pc.homeZone.isKnown =
true;
898 List<Zone> source =
world.region.ListTowns();
899 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
902 Zone zone = source.RandomItem();
908 if (i >= array.Length && i < array.Length + 2)
916 state = ZoneTransition.EnterState.RandomVisit
927 List<Zone> source =
world.region.ListTowns();
930 z = source.RandomItem();
938 state = ZoneTransition.EnterState.RandomVisit
952 EClass.scene.Init(Scene.Mode.Title);
973 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1005 catch (Exception ex)
1038 item.DeleteMapRecursive();
1053 EClass.core.game = (Instance =
null);
1054 EClass.Sound.currentPlaylist =
null;
1056 foreach (Texture2D loadedTexture
in loadedTextures)
1058 if (loadedTexture !=
null)
1060 UnityEngine.Object.Destroy(loadedTexture);
1065 public void Pause(Action onUnpause =
null)
1070 if (onUnpause ==
null)
1086 Debug.Log(
"#io game OnSerializing");
1092 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)
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 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)