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);
332 EClass.game.isCloud = cloud;
333 EClass.game.isLoading =
true;
340 SoundManager.ignoreSounds =
true;
345 SoundManager.ignoreSounds =
true;
350 SoundManager.ignoreSounds =
false;
357 EClass.game.isLoading =
false;
374 state = ZoneTransition.EnterState.Return
384 EClass.pc.homeZone.isKnown =
true;
401 if (value.
id ==
"demitas" && value.
faction.
id ==
"wilds")
439 if (q != item4 && item4.id == q.id)
441 quests.list.Remove(item4);
453 if (q != global && global.id == q.id)
455 quests.globalList.Remove(global);
461 TryAddQuest(
"into_darkness",
"exile_kettle");
466 if (version.
IsBelow(0, 23, 185))
468 player.resetPrincipal =
true;
470 if (version.
IsBelow(0, 23, 182))
480 if (version.
IsBelow(0, 23, 155))
482 AddAdventurer(
"adv_yukiimo");
484 if (version.
IsBelow(0, 23, 100))
492 if (version.
IsBelow(0, 23, 96))
499 EClass.game.principal.id = -1;
501 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
507 if (version.
IsBelow(0, 23, 93))
510 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
511 while (TryAddRecipe())
515 if (version.
IsBelow(0, 23, 72))
521 value3.c_wasInPcParty =
false;
525 if (version.
IsBelow(0, 23, 59))
535 if (version.
IsBelow(0, 23, 195))
537 Zone zone = spatials.
Find(
"startVillage2");
543 if (version.
IsBelow(0, 23, 52))
545 player.flags.toggleHotbarHighlightActivated =
true;
547 if (version.
IsBelow(0, 23, 51))
553 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.
IsMale) ? 1 : 0);
557 if (version.
IsBelow(0, 22, 91))
559 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
561 if (version.
IsBelow(0, 22, 86))
564 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
569 if (version.
IsBelow(0, 22, 86))
571 TryAddQuest(
"farris_tulip",
"greatDebt");
573 if (version.
IsBelow(0, 22, 86))
575 TryAddQuest(
"exile_whisper",
"exile_kettle");
577 if (version.
IsBelow(0, 22, 85))
579 TryAddQuest(
"exile_meet",
"pre_debt");
594 quests.
Add(
"pre_debt",
"farris");
600 if (q.
id ==
"farris_tulip")
602 quests.globalList.Remove(q);
606 quests.
list.ForeachReverse(delegate(
Quest q)
610 quests.list.Remove(q);
613 if (version.
IsBelow(0, 22, 20))
617 value5.
SetBool(18, enable:
false);
620 if (version.
IsBelow(0, 22, 22))
632 if (version.
IsBelow(0, 22, 45))
634 player.debt = 20000000;
664 if (item7.Value ==
null)
669 void TryAddQuest(
string idQuest,
string idReqQuest)
676 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
678 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
687 if (key.Length > 1 && key[0] ==
'b')
707 static bool TryDestroy()
716 if (i != j && chara3.
uid == chara4.
uid)
721 Debug.Log(
"Destroyed");
730 public static void Create(
string _id =
null,
bool cloud =
false)
733 OnBeforeInstantiate();
734 EClass.core.game = (Instance =
new Game());
735 EClass.core.game.isCloud = cloud;
743 Player.seedHallucination = 0;
748 HotItemHeld.taskBuild =
null;
749 InvOwner.Trader = (InvOwner.Main =
null);
750 LayerDrama.currentQuest =
null;
751 ContentGallery.lastPage = 0;
752 ContentGallery.listMode =
false;
761 player.chara = value;
766 EClass.
ui.widgets.OnGameInstantiated();
775 config.snapFreePos = (config.slope = (config.autoWall =
true));
776 config.autoCombat.abortOnAllyDead =
true;
777 config.autoCombat.abortOnHalfHP =
true;
778 config.autoCombat.bUseHotBar =
true;
779 config.autoCombat.bUseInventory =
true;
780 config.autoCombat.bDontChangeTarget =
true;
781 config.autoCombat.abortOnKill =
true;
782 config.autoCombat.abortOnItemLoss =
true;
784 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
791 foreach (
Spatial value
in spatials.
map.Values)
805 EClass.pc.homeZone = StartZone;
825 Zone zone4 = (chara.currentZone = zone2);
831 z = EClass.game.Prologue.startZ
844 state = ZoneTransition.EnterState.Auto
855 z = EClass.game.Prologue.startZ
865 z = EClass.game.Prologue.startZ
869 EClass.game.idPrologue = 3;
875 z = EClass.game.Prologue.startZ
879 EClass.game.idPrologue = 2;
885 z = EClass.game.Prologue.startZ
910 z = EClass.game.Prologue.startZ
936 Zone zone2 = (EClass.pc.homeZone = zone5);
937 Zone zone4 = (chara2.currentZone = zone2);
939 EClass.pc.global.transition = transition;
948 state = ZoneTransition.EnterState.Return
952 EClass.pc.homeZone.isKnown =
true;
960 List<Zone> source =
world.region.ListTowns();
961 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
964 Zone zone = source.RandomItem();
970 if (i >= array.Length && i < array.Length + 2)
978 state = ZoneTransition.EnterState.RandomVisit
989 List<Zone> source =
world.region.ListTowns();
992 z = source.RandomItem();
1000 state = ZoneTransition.EnterState.RandomVisit
1014 EClass.scene.Init(Scene.Mode.Title);
1035 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1051 countLoadedMaps = 0;
1067 catch (Exception ex)
1100 item.DeleteMapRecursive();
1115 EClass.core.game = (Instance =
null);
1116 EClass.Sound.currentPlaylist =
null;
1118 foreach (Texture2D loadedTexture
in loadedTextures)
1120 if (loadedTexture !=
null)
1122 UnityEngine.Object.Destroy(loadedTexture);
1127 public void Pause(Action onUnpause =
null)
1132 if (onUnpause ==
null)
1148 Debug.Log(
"#io game OnSerializing");
1154 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)
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
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)