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);
503 if (version.
IsBelow(0, 23, 354))
508 if (version.
IsBelow(0, 23, 345))
510 Zone zone = spatials.
Find(
"oldkeep");
516 if (version.
IsBelow(0, 23, 336))
518 AddAdventurer(
"adv_schwert");
520 TryAddQuest(
"into_darkness",
"exile_kettle");
525 if (version.
IsBelow(0, 23, 185))
527 player.resetPrincipal =
true;
529 if (version.
IsBelow(0, 23, 182))
539 if (version.
IsBelow(0, 23, 155))
541 AddAdventurer(
"adv_yukiimo");
543 if (version.
IsBelow(0, 23, 100))
551 if (version.
IsBelow(0, 23, 96))
558 EClass.game.principal.id = -1;
560 EClass.game.principal.disableManualSave = !gameDifficultySetting.
allowManualSave;
566 if (version.
IsBelow(0, 23, 93))
569 Debug.Log(
"â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– feafefaeffaeaffeaaeaefseasfaefaef");
570 while (TryAddRecipe())
574 if (version.
IsBelow(0, 23, 72))
580 value2.c_wasInPcParty =
false;
584 if (version.
IsBelow(0, 23, 59))
594 if (version.
IsBelow(0, 23, 195))
596 Zone zone2 = spatials.
Find(
"startVillage2");
602 if (version.
IsBelow(0, 23, 52))
604 player.flags.toggleHotbarHighlightActivated =
true;
606 if (version.
IsBelow(0, 23, 51))
612 value3.idSkin = value3.uid % (value3.source._tiles.Length - 4) / 2 * 2 + ((!value3.
IsMale) ? 1 : 0);
616 if (version.
IsBelow(0, 22, 91))
618 TryAddQuestIfActive(
"demitas_spellwriter",
"into_darkness");
620 if (version.
IsBelow(0, 22, 86))
623 if (chara !=
null && chara.
_works !=
null && chara.
_works.Count > 0)
628 if (version.
IsBelow(0, 22, 86))
630 TryAddQuest(
"farris_tulip",
"greatDebt");
632 if (version.
IsBelow(0, 22, 86))
634 TryAddQuest(
"exile_whisper",
"exile_kettle");
636 if (version.
IsBelow(0, 22, 85))
638 TryAddQuest(
"exile_meet",
"pre_debt");
653 quests.
Add(
"pre_debt",
"farris");
659 if (q.
id ==
"farris_tulip")
661 quests.globalList.Remove(q);
665 quests.
list.ForeachReverse(delegate(
Quest q)
669 quests.list.Remove(q);
672 if (version.
IsBelow(0, 22, 20))
676 value4.
SetBool(18, enable:
false);
679 if (version.
IsBelow(0, 22, 22))
691 if (version.
IsBelow(0, 22, 45))
693 player.debt = 20000000;
695 static void FixElement(
Chara c,
int idEle)
697 int num2 =
ClassExtension.TryGetValue<int,
int>((IDictionary<int, int>)c.
race.elementMap, idEle, 0) +
ClassExtension.TryGetValue<int,
int>((IDictionary<int, int>)c.job.elementMap, idEle, 0);
698 if (c.c_genes !=
null)
700 num2 += c.c_genes.CountDNA(idEle);
702 foreach (
BodySlot slot
in c.body.slots)
709 Element orCreateElement = c.elements.GetOrCreateElement(idEle);
712 Debug.Log(
"FixElement: " + orCreateElement.
Name +
"/" + orCreateElement.
vBase +
"/" + orCreateElement.
vSource +
"/" + num2);
713 orCreateElement.vBase = num2 - orCreateElement.
vSource;
717 Debug.Log(
"FixElement(Ability): " + orCreateElement.
Name +
"/" + orCreateElement.
Value +
"/" + orCreateElement.
vPotential +
"/" + num2);
718 orCreateElement.vPotential = 0;
721 void TryAddQuest(
string idQuest,
string idReqQuest)
728 void TryAddQuestIfActive(
string idQuest,
string idReqQuest)
730 if (quests.
Get(idReqQuest) !=
null && !quests.
completedIDs.Contains(idQuest) && quests.
GetGlobal(idQuest) ==
null && quests.
Get(idQuest) ==
null)
739 if (key.Length > 1 && key[0] ==
'b')
759 static bool TryDestroy()
768 if (i != j && chara3.
uid == chara4.
uid)
773 Debug.Log(
"Destroyed");
782 public static void Create(
string _id =
null,
bool cloud =
false)
785 OnBeforeInstantiate();
786 EClass.core.game = (Instance =
new Game());
787 EClass.core.game.isCloud = cloud;
795 Player.seedHallucination = 0;
800 HotItemHeld.taskBuild =
null;
801 InvOwner.Trader = (InvOwner.Main =
null);
802 LayerDrama.currentQuest =
null;
803 ContentGallery.lastPage = 0;
804 ContentGallery.listMode =
false;
813 player.chara = value;
818 EClass.
ui.widgets.OnGameInstantiated();
827 config.snapFreePos = (config.slope = (config.autoWall =
true));
828 config.autoCombat.abortOnAllyDead =
true;
829 config.autoCombat.abortOnHalfHP =
true;
830 config.autoCombat.bUseHotBar =
true;
831 config.autoCombat.bUseInventory =
true;
832 config.autoCombat.bDontChangeTarget =
true;
833 config.autoCombat.abortOnKill =
true;
834 config.autoCombat.abortOnItemLoss =
true;
836 Debug.Log(
"creating game: " +
id +
" seed:" +
seed);
843 foreach (
Spatial value
in spatials.
map.Values)
857 EClass.pc.homeZone = StartZone;
877 Zone zone3 = (chara.currentZone = zone);
883 z = EClass.game.Prologue.startZ
896 state = ZoneTransition.EnterState.Auto
907 z = EClass.game.Prologue.startZ
917 z = EClass.game.Prologue.startZ
921 EClass.game.idPrologue = 3;
927 z = EClass.game.Prologue.startZ
931 EClass.game.idPrologue = 2;
937 z = EClass.game.Prologue.startZ
962 z = EClass.game.Prologue.startZ
988 Zone zone = (EClass.pc.homeZone = zone5);
989 Zone zone3 = (chara2.currentZone = zone);
991 EClass.pc.global.transition = transition;
1000 state = ZoneTransition.EnterState.Return
1004 EClass.pc.homeZone.isKnown =
true;
1014 List<Zone> source =
world.region.ListTowns();
1015 string[] array =
new string[8] {
"adv_kiria",
"adv_gaki",
"adv_wini",
"adv_verna",
"adv_ivory",
"adv_mesherada",
"adv_yukiimo",
"adv_schwert" };
1018 Zone zone = source.RandomItem();
1024 if (i >= array.Length && i < array.Length + 2)
1032 state = ZoneTransition.EnterState.RandomVisit
1043 List<Zone> source =
world.region.ListTowns();
1046 z = source.RandomItem();
1054 state = ZoneTransition.EnterState.RandomVisit
1068 EClass.scene.Init(Scene.Mode.Title);
1089 public bool Save(
bool isAutoSave =
false,
bool silent =
false)
1105 countLoadedMaps = 0;
1124 catch (Exception ex)
1157 item.DeleteMapRecursive();
1172 EClass.core.game = (Instance =
null);
1173 EClass.Sound.currentPlaylist =
null;
1175 foreach (Texture2D loadedTexture
in loadedTextures)
1177 if (loadedTexture !=
null)
1179 UnityEngine.Object.Destroy(loadedTexture);
1184 public void Pause(Action onUnpause =
null)
1189 if (onUnpause ==
null)
1205 Debug.Log(
"#io game OnSerializing");
1211 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)
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
Element GetElement(int id)
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)