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();
249 public Dictionary<string, IGlobalValue>
referenceMap =
new Dictionary<string, IGlobalValue>();
284 public static void Wait(
float a)
294 player.stats.timeElapsed += Time.deltaTime;
297 flags.IsWelcomeMessageShown =
true;
302 public static bool TryLoad(
string id,
bool cloud, Action onLoad)
313 public static void Load(
string id,
bool cloud)
316 Debug.Log(
"Loading: " +
id +
": " + text);
323 EClass.game.isCloud = cloud;
324 EClass.game.isLoading =
true;
331 SoundManager.ignoreSounds =
true;
336 SoundManager.ignoreSounds =
true;
341 SoundManager.ignoreSounds =
false;
348 EClass.game.isLoading =
false;
365 state = ZoneTransition.EnterState.Return
375 EClass.pc.homeZone.isKnown =
true;
392 if (value.
id ==
"demitas" && value.
faction.
id ==
"wilds")
430 if (q != item4 && item4.id == q.id)
432 quests.list.Remove(item4);
444 if (q != global && global.id == q.id)
446 quests.globalList.Remove(global);
452 TryAddQuest(
"into_darkness",
"exile_kettle");
453 if (version.
IsBelow(0, 23, 182))
463 if (version.
IsBelow(0, 23, 155))
465 AddAdventurer(
"adv_yukiimo");
467 if (version.
IsBelow(0, 23, 100))
475 if (version.
IsBelow(0, 23, 96))
478 player.resetPrincipal =
true;
483 EClass.game.principal.id = -1;
485 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
491 if (version.
IsBelow(0, 23, 93))
494 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
495 while (TryAddRecipe())
499 if (version.
IsBelow(0, 23, 72))
505 value3.c_wasInPcParty =
false;
509 if (version.
IsBelow(0, 23, 59))
515 if (version.
IsBelow(0, 23, 52))
517 player.flags.toggleHotbarHighlightActivated =
true;
519 if (version.
IsBelow(0, 23, 51))
525 value4.idSkin = value4.uid % (value4.source._tiles.Length - 4) / 2 * 2 + ((!value4.
IsMale) ? 1 : 0);
529 if (version.
IsBelow(0, 22, 91))
531 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
533 if (version.
IsBelow(0, 22, 86))
536 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
541 if (version.
IsBelow(0, 22, 86))
543 TryAddQuest(
"farris_tulip",
"greatDebt");
545 if (version.
IsBelow(0, 22, 86))
547 TryAddQuest(
"exile_whisper",
"exile_kettle");
549 if (version.
IsBelow(0, 22, 85))
551 TryAddQuest(
"exile_meet",
"pre_debt");
566 quests.
Add(
"pre_debt",
"farris");
572 if (q.
id ==
"farris_tulip")
574 quests.globalList.Remove(q);
578 quests.
list.ForeachReverse(delegate(
Quest q)
582 quests.list.Remove(q);
585 if (version.
IsBelow(0, 22, 20))
589 value5.
SetBool(18, enable:
false);
592 if (version.
IsBelow(0, 22, 22))
604 if (version.
IsBelow(0, 22, 45))
606 player.debt = 20000000;
634 void TryAddQuest(
string idQuest,
string idReqQuest)
641 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
643 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
652 if (key.Length > 1 && key[0] ==
'b')
672 static bool TryDestroy()
681 if (i != j && chara3.
uid == chara4.
uid)
686 Debug.Log(
"Destroyed");
695 public static void Create(
string _id =
null,
bool cloud =
false)
698 OnBeforeInstantiate();
699 EClass.core.game = (Instance =
new Game());
700 EClass.core.game.isCloud = cloud;
708 Player.seedHallucination = 0;
713 HotItemHeld.taskBuild =
null;
714 InvOwner.Trader = (InvOwner.Main =
null);
715 LayerDrama.currentQuest =
null;
717 ContentGallery.lastPage = 0;
718 ContentGallery.listMode =
false;
727 player.chara = value;
732 EClass.
ui.widgets.OnGameInstantiated();
741 config.snapFreePos = (config.slope = (config.autoWall =
true));
742 config.autoCombat.abortOnAllyDead =
true;
743 config.autoCombat.abortOnHalfHP =
true;
744 config.autoCombat.bUseHotBar =
true;
745 config.autoCombat.bUseInventory =
true;
746 config.autoCombat.bDontChangeTarget =
true;
747 config.autoCombat.abortOnKill =
true;
748 config.autoCombat.abortOnItemLoss =
true;
750 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
756 foreach (
Spatial value
in spatials.
map.Values)
770 EClass.pc.homeZone = StartZone;
783 Zone zone4 = (chara.currentZone = zone2);
789 z = EClass.game.Prologue.startZ
802 state = ZoneTransition.EnterState.Auto
813 z = EClass.game.Prologue.startZ
823 z = EClass.game.Prologue.startZ
827 EClass.game.idPrologue = 2;
833 z = EClass.game.Prologue.startZ
858 z = EClass.game.Prologue.startZ
884 Zone zone2 = (EClass.pc.homeZone = zone5);
885 Zone zone4 = (chara2.currentZone = zone2);
887 EClass.pc.global.transition = transition;
896 state = ZoneTransition.EnterState.Return
900 EClass.pc.homeZone.isKnown =
true;
908 List<Zone> source =
world.region.ListTowns();
909 string[] array =
new string[7] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo" };
912 Zone zone = source.RandomItem();
918 if (i >= array.Length && i < array.Length + 2)
926 state = ZoneTransition.EnterState.RandomVisit
937 List<Zone> source =
world.region.ListTowns();
940 z = source.RandomItem();
948 state = ZoneTransition.EnterState.RandomVisit
962 EClass.scene.Init(Scene.Mode.Title);
983 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1015 catch (Exception ex)
1048 item.DeleteMapRecursive();
1063 EClass.core.game = (Instance =
null);
1064 EClass.Sound.currentPlaylist =
null;
1066 foreach (Texture2D loadedTexture
in loadedTextures)
1068 if (loadedTexture !=
null)
1070 UnityEngine.Object.Destroy(loadedTexture);
1075 public void Pause(Action onUnpause =
null)
1080 if (onUnpause ==
null)
1096 Debug.Log(
"#io game OnSerializing");
1102 Debug.Log(
"#io game OnDeserializing");
static void OnGameInstantiated()
void SetBool(int id, bool enable)
List< Action > actionsNextFrame
static void Set(CardBlueprint _bp)
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 SetHomeZone(Zone zone)
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 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)
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 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)