2using System.Collections.Generic;
4using System.Runtime.Serialization;
103 if (!Input.GetKey(KeyCode.LeftShift))
105 return Input.GetKey(KeyCode.RightShift);
148 public static string id;
152 [JsonProperty(Order = -90)]
155 [JsonProperty(Order = -80)]
158 [JsonProperty(Order = -100)]
161 [JsonProperty(Order = -60)]
164 [JsonProperty(Order = -50)]
195 public PCCUniformManager
uniforms =
new PCCUniformManager();
256 public Dictionary<string, IGlobalValue>
referenceMap =
new Dictionary<string, IGlobalValue>();
293 public static void Wait(
float a)
303 player.stats.timeElapsed += Time.deltaTime;
306 flags.IsWelcomeMessageShown =
true;
311 public static bool TryLoad(
string id,
bool cloud, Action onLoad)
322 public static void Load(
string id,
bool cloud)
325 Debug.Log(
"Loading: " +
id +
": " + text);
331 GameIOContext data =
new GameIOContext(text);
334 EClass.game.isCloud = cloud;
335 EClass.game.isLoading =
true;
342 SoundManager.ignoreSounds =
true;
347 SoundManager.ignoreSounds =
true;
352 SoundManager.ignoreSounds =
false;
359 EClass.game.isLoading =
false;
377 state = ZoneTransition.EnterState.Return
387 EClass.pc.homeZone.isKnown =
true;
404 if (value.
id ==
"demitas" && value.
faction.
id ==
"wilds")
460 if (item5.Value ==
null)
469 Debug.Log(
"ApplyFix");
481 if (q != item && item.id == q.id)
483 quests.list.Remove(item);
495 if (q != global && global.id == q.id)
497 quests.globalList.Remove(global);
521 if (version.
IsBelow(0, 23, 345))
523 Zone zone = spatials.
Find(
"oldkeep");
529 if (version.
IsBelow(0, 23, 336))
531 AddAdventurer(
"adv_schwert");
533 TryAddQuest(
"into_darkness",
"exile_kettle");
538 if (version.
IsBelow(0, 23, 185))
540 player.resetPrincipal =
true;
542 if (version.
IsBelow(0, 23, 182))
552 if (version.
IsBelow(0, 23, 155))
554 AddAdventurer(
"adv_yukiimo");
556 if (version.
IsBelow(0, 23, 100))
564 if (version.
IsBelow(0, 23, 96))
571 EClass.game.principal.id = -1;
573 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
579 if (version.
IsBelow(0, 23, 93))
582 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
583 while (TryAddRecipe())
587 if (version.
IsBelow(0, 23, 72))
593 value2.c_wasInPcParty =
false;
597 if (version.
IsBelow(0, 23, 59))
607 if (version.
IsBelow(0, 23, 195))
609 Zone zone2 = spatials.
Find(
"startVillage2");
615 if (version.
IsBelow(0, 23, 52))
617 player.flags.toggleHotbarHighlightActivated =
true;
619 if (version.
IsBelow(0, 23, 51))
625 value3.idSkin = value3.uid % (value3.source._tiles.Length - 4) / 2 * 2 + ((!value3.
IsMale) ? 1 : 0);
629 if (version.
IsBelow(0, 22, 91))
631 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
633 if (version.
IsBelow(0, 22, 86))
636 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
641 if (version.
IsBelow(0, 22, 86))
643 TryAddQuest(
"farris_tulip",
"greatDebt");
645 if (version.
IsBelow(0, 22, 86))
647 TryAddQuest(
"exile_whisper",
"exile_kettle");
649 if (version.
IsBelow(0, 22, 85))
651 TryAddQuest(
"exile_meet",
"pre_debt");
666 quests.
Add(
"pre_debt",
"farris");
672 if (q.
id ==
"farris_tulip")
674 quests.globalList.Remove(q);
678 quests.
list.ForeachReverse(delegate(
Quest q)
682 quests.list.Remove(q);
685 if (version.
IsBelow(0, 22, 20))
689 value4.
SetBool(18, enable:
false);
692 if (version.
IsBelow(0, 22, 22))
704 if (version.
IsBelow(0, 22, 45))
706 player.debt = 20000000;
708 void TryAddQuest(
string idQuest,
string idReqQuest)
715 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
717 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
726 if (key.Length > 1 && key[0] ==
'b')
746 static bool TryDestroy()
755 if (i != j && chara3.
uid == chara4.
uid)
760 Debug.Log(
"Destroyed");
769 public static void Create(
string _id =
null,
bool cloud =
false)
772 OnBeforeInstantiate();
773 EClass.core.game = (Instance =
new Game());
774 EClass.core.game.isCloud = cloud;
782 Player.seedHallucination = 0;
787 HotItemHeld.taskBuild =
null;
788 InvOwner.Trader = (InvOwner.Main =
null);
789 LayerDrama.currentQuest =
null;
790 ContentGallery.lastPage = 0;
791 ContentGallery.listMode =
false;
800 player.chara = value;
805 EClass.
ui.widgets.OnGameInstantiated();
814 config.snapFreePos = (config.slope = (config.autoWall =
true));
815 config.autoCombat.abortOnAllyDead =
true;
816 config.autoCombat.abortOnHalfHP =
true;
817 config.autoCombat.bUseHotBar =
true;
818 config.autoCombat.bUseInventory =
true;
819 config.autoCombat.bDontChangeTarget =
true;
820 config.autoCombat.abortOnKill =
true;
821 config.autoCombat.abortOnItemLoss =
true;
823 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
830 foreach (
Spatial value
in spatials.
map.Values)
844 EClass.pc.homeZone = StartZone;
864 Zone zone3 = (chara.currentZone = zone);
870 z = EClass.game.Prologue.startZ
883 state = ZoneTransition.EnterState.Auto
894 z = EClass.game.Prologue.startZ
904 z = EClass.game.Prologue.startZ
908 EClass.game.idPrologue = 3;
914 z = EClass.game.Prologue.startZ
918 EClass.game.idPrologue = 2;
924 z = EClass.game.Prologue.startZ
949 z = EClass.game.Prologue.startZ
975 Zone zone = (EClass.pc.homeZone = zone5);
976 Zone zone3 = (chara2.currentZone = zone);
978 EClass.pc.global.transition = transition;
987 state = ZoneTransition.EnterState.Return
991 EClass.pc.homeZone.isKnown =
true;
1001 List<Zone> source =
world.region.ListTowns();
1002 string[] array =
new string[8] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo",
"adv_schwert" };
1005 Zone zone = source.RandomItem();
1011 if (i >= array.Length && i < array.Length + 2)
1019 state = ZoneTransition.EnterState.RandomVisit
1030 List<Zone> source =
world.region.ListTowns();
1033 z = source.RandomItem();
1041 state = ZoneTransition.EnterState.RandomVisit
1055 EClass.scene.Init(Scene.Mode.Title);
1076 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1092 countLoadedMaps = 0;
1111 catch (Exception ex)
1144 item.DeleteMapRecursive();
1159 EClass.core.game = (Instance =
null);
1160 EClass.Sound.currentPlaylist =
null;
1162 foreach (Texture2D loadedTexture
in loadedTextures)
1164 if (loadedTexture !=
null)
1166 UnityEngine.Object.Destroy(loadedTexture);
1171 public void Pause(Action onUnpause =
null)
1176 if (onUnpause ==
null)
1192 Debug.Log(
"#io game OnSerializing");
1198 Debug.Log(
"#io game OnDeserializing");
static void OnGameInstantiated()
List< Action > actionsNextFrame
static void PublishEvent(string eventId, object data=null)
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)
void SetBool(string id, bool enable)
BodySlot GetSlot(Thing t, bool onlyEmpty=false, bool secondSlot=false)
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 void _AddBodyPart(BodyCode bodyCode)
static void _RemoveBodyPart(BodyCode bodyCode)
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 string pathCurrentSave
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)
static Quest Create(string _id, string _idPerson=null, Chara c=null, bool assignQuest=true)
Quest SetClient(Chara c, bool assignQuest=true)
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
void SetInt(int id, int value=0)
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)