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;
752 ContentGallery.lastPage = 0;
753 ContentGallery.listMode =
false;
762 player.chara = value;
767 EClass.
ui.widgets.OnGameInstantiated();
776 config.snapFreePos = (config.slope = (config.autoWall =
true));
777 config.autoCombat.abortOnAllyDead =
true;
778 config.autoCombat.abortOnHalfHP =
true;
779 config.autoCombat.bUseHotBar =
true;
780 config.autoCombat.bUseInventory =
true;
781 config.autoCombat.bDontChangeTarget =
true;
782 config.autoCombat.abortOnKill =
true;
783 config.autoCombat.abortOnItemLoss =
true;
785 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
792 foreach (
Spatial value
in spatials.
map.Values)
806 EClass.pc.homeZone = StartZone;
826 Zone zone4 = (chara.currentZone = zone2);
832 z = EClass.game.Prologue.startZ
845 state = ZoneTransition.EnterState.Auto
856 z = EClass.game.Prologue.startZ
866 z = EClass.game.Prologue.startZ
870 EClass.game.idPrologue = 3;
876 z = EClass.game.Prologue.startZ
880 EClass.game.idPrologue = 2;
886 z = EClass.game.Prologue.startZ
911 z = EClass.game.Prologue.startZ
937 Zone zone2 = (EClass.pc.homeZone = zone5);
938 Zone zone4 = (chara2.currentZone = zone2);
940 EClass.pc.global.transition = transition;
949 state = ZoneTransition.EnterState.Return
953 EClass.pc.homeZone.isKnown =
true;
961 List<Zone> source =
world.region.ListTowns();
962 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
965 Zone zone = source.RandomItem();
971 if (i >= array.Length && i < array.Length + 2)
979 state = ZoneTransition.EnterState.RandomVisit
990 List<Zone> source =
world.region.ListTowns();
993 z = source.RandomItem();
1001 state = ZoneTransition.EnterState.RandomVisit
1015 EClass.scene.Init(Scene.Mode.Title);
1036 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1052 countLoadedMaps = 0;
1068 catch (Exception ex)
1101 item.DeleteMapRecursive();
1116 EClass.core.game = (Instance =
null);
1117 EClass.Sound.currentPlaylist =
null;
1119 foreach (Texture2D loadedTexture
in loadedTextures)
1121 if (loadedTexture !=
null)
1123 UnityEngine.Object.Destroy(loadedTexture);
1128 public void Pause(Action onUnpause =
null)
1133 if (onUnpause ==
null)
1149 Debug.Log(
"#io game OnSerializing");
1155 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)