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");
462 if (version.
IsBelow(0, 23, 185))
464 player.resetPrincipal =
true;
466 if (version.
IsBelow(0, 23, 182))
476 if (version.
IsBelow(0, 23, 155))
478 AddAdventurer(
"adv_yukiimo");
480 if (version.
IsBelow(0, 23, 100))
488 if (version.
IsBelow(0, 23, 96))
495 EClass.game.principal.id = -1;
497 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
503 if (version.
IsBelow(0, 23, 93))
506 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
507 while (TryAddRecipe())
511 if (version.
IsBelow(0, 23, 72))
517 value3.c_wasInPcParty =
false;
521 if (version.
IsBelow(0, 23, 59))
531 if (version.
IsBelow(0, 23, 195))
533 Zone zone = spatials.
Find(
"startVillage2");
539 if (version.
IsBelow(0, 23, 52))
541 player.flags.toggleHotbarHighlightActivated =
true;
543 if (version.
IsBelow(0, 23, 51))
549 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.
IsMale) ? 1 : 0);
553 if (version.
IsBelow(0, 22, 91))
555 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
557 if (version.
IsBelow(0, 22, 86))
560 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
565 if (version.
IsBelow(0, 22, 86))
567 TryAddQuest(
"farris_tulip",
"greatDebt");
569 if (version.
IsBelow(0, 22, 86))
571 TryAddQuest(
"exile_whisper",
"exile_kettle");
573 if (version.
IsBelow(0, 22, 85))
575 TryAddQuest(
"exile_meet",
"pre_debt");
590 quests.
Add(
"pre_debt",
"farris");
596 if (q.
id ==
"farris_tulip")
598 quests.globalList.Remove(q);
602 quests.
list.ForeachReverse(delegate(
Quest q)
606 quests.list.Remove(q);
609 if (version.
IsBelow(0, 22, 20))
613 value5.
SetBool(18, enable:
false);
616 if (version.
IsBelow(0, 22, 22))
628 if (version.
IsBelow(0, 22, 45))
630 player.debt = 20000000;
658 void TryAddQuest(
string idQuest,
string idReqQuest)
665 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
667 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
676 if (key.Length > 1 && key[0] ==
'b')
696 static bool TryDestroy()
705 if (i != j && chara3.
uid == chara4.
uid)
710 Debug.Log(
"Destroyed");
719 public static void Create(
string _id =
null,
bool cloud =
false)
722 OnBeforeInstantiate();
723 EClass.core.game = (Instance =
new Game());
724 EClass.core.game.isCloud = cloud;
732 Player.seedHallucination = 0;
737 HotItemHeld.taskBuild =
null;
738 InvOwner.Trader = (InvOwner.Main =
null);
739 LayerDrama.currentQuest =
null;
741 ContentGallery.lastPage = 0;
742 ContentGallery.listMode =
false;
751 player.chara = value;
756 EClass.
ui.widgets.OnGameInstantiated();
765 config.snapFreePos = (config.slope = (config.autoWall =
true));
766 config.autoCombat.abortOnAllyDead =
true;
767 config.autoCombat.abortOnHalfHP =
true;
768 config.autoCombat.bUseHotBar =
true;
769 config.autoCombat.bUseInventory =
true;
770 config.autoCombat.bDontChangeTarget =
true;
771 config.autoCombat.abortOnKill =
true;
772 config.autoCombat.abortOnItemLoss =
true;
774 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
780 foreach (
Spatial value
in spatials.
map.Values)
794 EClass.pc.homeZone = StartZone;
814 Zone zone4 = (chara.currentZone = zone2);
820 z = EClass.game.Prologue.startZ
833 state = ZoneTransition.EnterState.Auto
844 z = EClass.game.Prologue.startZ
854 z = EClass.game.Prologue.startZ
858 EClass.game.idPrologue = 3;
864 z = EClass.game.Prologue.startZ
868 EClass.game.idPrologue = 2;
874 z = EClass.game.Prologue.startZ
899 z = EClass.game.Prologue.startZ
925 Zone zone2 = (EClass.pc.homeZone = zone5);
926 Zone zone4 = (chara2.currentZone = zone2);
928 EClass.pc.global.transition = transition;
937 state = ZoneTransition.EnterState.Return
941 EClass.pc.homeZone.isKnown =
true;
949 List<Zone> source =
world.region.ListTowns();
950 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
953 Zone zone = source.RandomItem();
959 if (i >= array.Length && i < array.Length + 2)
967 state = ZoneTransition.EnterState.RandomVisit
978 List<Zone> source =
world.region.ListTowns();
981 z = source.RandomItem();
989 state = ZoneTransition.EnterState.RandomVisit
1003 EClass.scene.Init(Scene.Mode.Title);
1024 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1040 countLoadedMaps = 0;
1056 catch (Exception ex)
1089 item.DeleteMapRecursive();
1104 EClass.core.game = (Instance =
null);
1105 EClass.Sound.currentPlaylist =
null;
1107 foreach (Texture2D loadedTexture
in loadedTextures)
1109 if (loadedTexture !=
null)
1111 UnityEngine.Object.Destroy(loadedTexture);
1116 public void Pause(Action onUnpause =
null)
1121 if (onUnpause ==
null)
1137 Debug.Log(
"#io game OnSerializing");
1143 Debug.Log(
"#io game OnDeserializing");
static void OnGameInstantiated()
void SetBool(int id, bool enable)
List< Action > actionsNextFrame
static void Set(CardBlueprint _bp=null)
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)
bool IsCompleted(string id)
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)