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)]
194 public PCCUniformManager
uniforms =
new PCCUniformManager();
255 public Dictionary<string, IGlobalValue>
referenceMap =
new Dictionary<string, IGlobalValue>();
292 public static void Wait(
float a)
302 player.stats.timeElapsed += Time.deltaTime;
305 flags.IsWelcomeMessageShown =
true;
310 public static bool TryLoad(
string id,
bool cloud, Action onLoad)
321 public static void Load(
string id,
bool cloud)
324 Debug.Log(
"Loading: " +
id +
": " + text);
331 EClass.game.isCloud = cloud;
332 EClass.game.isLoading =
true;
339 SoundManager.ignoreSounds =
true;
344 SoundManager.ignoreSounds =
true;
349 SoundManager.ignoreSounds =
false;
356 EClass.game.isLoading =
false;
373 state = ZoneTransition.EnterState.Return
383 EClass.pc.homeZone.isKnown =
true;
400 if (value.
id ==
"demitas" && value.
faction.
id ==
"wilds")
438 if (q != item4 && item4.id == q.id)
440 quests.list.Remove(item4);
452 if (q != global && global.id == q.id)
454 quests.globalList.Remove(global);
460 TryAddQuest(
"into_darkness",
"exile_kettle");
465 if (version.
IsBelow(0, 23, 185))
467 player.resetPrincipal =
true;
469 if (version.
IsBelow(0, 23, 182))
479 if (version.
IsBelow(0, 23, 155))
481 AddAdventurer(
"adv_yukiimo");
483 if (version.
IsBelow(0, 23, 100))
491 if (version.
IsBelow(0, 23, 96))
498 EClass.game.principal.id = -1;
500 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
506 if (version.
IsBelow(0, 23, 93))
509 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
510 while (TryAddRecipe())
514 if (version.
IsBelow(0, 23, 72))
520 value3.c_wasInPcParty =
false;
524 if (version.
IsBelow(0, 23, 59))
534 if (version.
IsBelow(0, 23, 195))
536 Zone zone = spatials.
Find(
"startVillage2");
542 if (version.
IsBelow(0, 23, 52))
544 player.flags.toggleHotbarHighlightActivated =
true;
546 if (version.
IsBelow(0, 23, 51))
552 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.
IsMale) ? 1 : 0);
556 if (version.
IsBelow(0, 22, 91))
558 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
560 if (version.
IsBelow(0, 22, 86))
563 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
568 if (version.
IsBelow(0, 22, 86))
570 TryAddQuest(
"farris_tulip",
"greatDebt");
572 if (version.
IsBelow(0, 22, 86))
574 TryAddQuest(
"exile_whisper",
"exile_kettle");
576 if (version.
IsBelow(0, 22, 85))
578 TryAddQuest(
"exile_meet",
"pre_debt");
593 quests.
Add(
"pre_debt",
"farris");
599 if (q.
id ==
"farris_tulip")
601 quests.globalList.Remove(q);
605 quests.
list.ForeachReverse(delegate(
Quest q)
609 quests.list.Remove(q);
612 if (version.
IsBelow(0, 22, 20))
616 value5.
SetBool(18, enable:
false);
619 if (version.
IsBelow(0, 22, 22))
631 if (version.
IsBelow(0, 22, 45))
633 player.debt = 20000000;
661 void TryAddQuest(
string idQuest,
string idReqQuest)
668 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
670 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
679 if (key.Length > 1 && key[0] ==
'b')
699 static bool TryDestroy()
708 if (i != j && chara3.
uid == chara4.
uid)
713 Debug.Log(
"Destroyed");
722 public static void Create(
string _id =
null,
bool cloud =
false)
725 OnBeforeInstantiate();
726 EClass.core.game = (Instance =
new Game());
727 EClass.core.game.isCloud = cloud;
735 Player.seedHallucination = 0;
740 HotItemHeld.taskBuild =
null;
741 InvOwner.Trader = (InvOwner.Main =
null);
742 LayerDrama.currentQuest =
null;
744 ContentGallery.lastPage = 0;
745 ContentGallery.listMode =
false;
754 player.chara = value;
759 EClass.
ui.widgets.OnGameInstantiated();
768 config.snapFreePos = (config.slope = (config.autoWall =
true));
769 config.autoCombat.abortOnAllyDead =
true;
770 config.autoCombat.abortOnHalfHP =
true;
771 config.autoCombat.bUseHotBar =
true;
772 config.autoCombat.bUseInventory =
true;
773 config.autoCombat.bDontChangeTarget =
true;
774 config.autoCombat.abortOnKill =
true;
775 config.autoCombat.abortOnItemLoss =
true;
777 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
784 foreach (
Spatial value
in spatials.
map.Values)
798 EClass.pc.homeZone = StartZone;
818 Zone zone4 = (chara.currentZone = zone2);
824 z = EClass.game.Prologue.startZ
837 state = ZoneTransition.EnterState.Auto
848 z = EClass.game.Prologue.startZ
858 z = EClass.game.Prologue.startZ
862 EClass.game.idPrologue = 3;
868 z = EClass.game.Prologue.startZ
872 EClass.game.idPrologue = 2;
878 z = EClass.game.Prologue.startZ
903 z = EClass.game.Prologue.startZ
929 Zone zone2 = (EClass.pc.homeZone = zone5);
930 Zone zone4 = (chara2.currentZone = zone2);
932 EClass.pc.global.transition = transition;
941 state = ZoneTransition.EnterState.Return
945 EClass.pc.homeZone.isKnown =
true;
953 List<Zone> source =
world.region.ListTowns();
954 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
957 Zone zone = source.RandomItem();
963 if (i >= array.Length && i < array.Length + 2)
971 state = ZoneTransition.EnterState.RandomVisit
982 List<Zone> source =
world.region.ListTowns();
985 z = source.RandomItem();
993 state = ZoneTransition.EnterState.RandomVisit
1007 EClass.scene.Init(Scene.Mode.Title);
1028 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1044 countLoadedMaps = 0;
1060 catch (Exception ex)
1093 item.DeleteMapRecursive();
1108 EClass.core.game = (Instance =
null);
1109 EClass.Sound.currentPlaylist =
null;
1111 foreach (Texture2D loadedTexture
in loadedTextures)
1113 if (loadedTexture !=
null)
1115 UnityEngine.Object.Destroy(loadedTexture);
1120 public void Pause(Action onUnpause =
null)
1125 if (onUnpause ==
null)
1141 Debug.Log(
"#io game OnSerializing");
1147 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)