Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
Player.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.IO;
4using System.Linq;
5using System.Runtime.Serialization;
6using System.Text;
7using Newtonsoft.Json;
8using UnityEngine;
9
10public class Player : EClass
11{
12 public class ReturnInfo
13 {
14 public int turns;
15
16 public int uidDest;
17
18 public bool isEvac;
19
20 public bool askDest;
21 }
22
23 public class Pref
24 {
25 [JsonIgnore]
26 public string lastBuildCategory;
27
28 [JsonIgnore]
29 public string lastBuildRecipe;
30
31 public int lastIdTabAbility;
32
33 public bool layerInventory;
34
35 public bool layerAbility;
36
37 public bool layerCraft;
38
39 public bool sort_ascending;
40
42
44
46
48
50
52
54
56
58 }
59
60 public class Stats
61 {
62 public double timeElapsed;
63
64 public int kumi;
65
66 public int mins;
67
68 public int days;
69
70 public int months;
71
72 public int sieges;
73
74 public int turns;
75
76 public int kills;
77
78 public int taxBills;
79
80 public int taxBillsPaid;
81
82 public int digs;
83
84 public int shipNum;
85
86 public int slept;
87
88 public int death;
89
90 public int allyDeath;
91
92 public int deepest;
93
94 public int gambleChest;
95
96 public int gambleChestOpen;
97
98 public long shipMoney;
99
100 [JsonIgnore]
101 public int lastShippingExp;
102
103 [JsonIgnore]
105
106 public int GetShippingBonus(long _a)
107 {
108 long p = 0L;
109 bool first = true;
110 SetBonus(1000000000, 50000);
111 SetBonus(100000000, 20000);
112 SetBonus(10000000, 10000);
113 SetBonus(500000, 5000);
114 SetBonus(250000, 3000);
115 SetBonus(100000, 2000);
116 SetBonus(20000, 1000);
117 SetBonus(6000, 500);
118 SetBonus(2000, 200);
119 SetBonus(0, 100);
120 return (int)p;
121 void SetBonus(int threshold, int div)
122 {
123 if (_a >= threshold)
124 {
125 p += (_a - threshold) / div;
126 if (first)
127 {
128 lastShippingExp = (int)((_a - threshold) % div);
129 lastShippingExpMax = div;
130 first = false;
131 }
132 _a = threshold;
133 }
134 }
135 }
136 }
137
138 public class Flags : EClass
139 {
140 public const int MonoDeparture = 100;
141
142 [JsonProperty]
143 public int[] ints = new int[50];
144
145 [JsonProperty]
146 public List<int> playedStories = new List<int>();
147
148 [JsonProperty]
149 public List<int> availableStories = new List<int>();
150
151 [JsonProperty]
152 public HashSet<int> pleaseDontTouch = new HashSet<int>();
153
154 [JsonProperty]
155 public List<string> reservedTutorial = new List<string>();
156
158
159 public Dictionary<string, ExcelData> storyExcel = new Dictionary<string, ExcelData>();
160
161 public bool gotClickReward
162 {
163 get
164 {
165 return bits[1];
166 }
167 set
168 {
169 bits[1] = value;
170 }
171 }
172
173 public bool welcome
174 {
175 get
176 {
177 return bits[2];
178 }
179 set
180 {
181 bits[2] = value;
182 }
183 }
184
186 {
187 get
188 {
189 return bits[3];
190 }
191 set
192 {
193 bits[3] = value;
194 }
195 }
196
197 public bool fiamaFirstDream
198 {
199 get
200 {
201 return bits[4];
202 }
203 set
204 {
205 bits[4] = value;
206 }
207 }
208
210 {
211 get
212 {
213 return bits[5];
214 }
215 set
216 {
217 bits[5] = value;
218 }
219 }
220
222 {
223 get
224 {
225 return bits[6];
226 }
227 set
228 {
229 bits[6] = value;
230 }
231 }
232
233 public bool isShoesOff
234 {
235 get
236 {
237 return bits[7];
238 }
239 set
240 {
241 bits[7] = value;
242 }
243 }
244
246 {
247 get
248 {
249 return bits[8];
250 }
251 set
252 {
253 bits[8] = value;
254 }
255 }
256
258 {
259 get
260 {
261 return bits[9];
262 }
263 set
264 {
265 bits[9] = value;
266 }
267 }
268
269 public bool elinGift
270 {
271 get
272 {
273 return bits[10];
274 }
275 set
276 {
277 bits[10] = value;
278 }
279 }
280
282 {
283 get
284 {
285 return bits[11];
286 }
287 set
288 {
289 bits[11] = value;
290 }
291 }
292
294 {
295 get
296 {
297 return bits[12];
298 }
299 set
300 {
301 bits[12] = value;
302 }
303 }
304
306 {
307 get
308 {
309 return bits[13];
310 }
311 set
312 {
313 bits[13] = value;
314 }
315 }
316
317 public bool statueShipped
318 {
319 get
320 {
321 return bits[14];
322 }
323 set
324 {
325 bits[14] = value;
326 }
327 }
328
329 public bool little_saved
330 {
331 get
332 {
333 return bits[15];
334 }
335 set
336 {
337 bits[15] = value;
338 }
339 }
340
341 public bool little_killed
342 {
343 get
344 {
345 return bits[16];
346 }
347 set
348 {
349 bits[16] = value;
350 }
351 }
352
353 public bool gotEtherDisease
354 {
355 get
356 {
357 return bits[17];
358 }
359 set
360 {
361 bits[17] = value;
362 }
363 }
364
365 public bool loytelEscaped
366 {
367 get
368 {
369 return bits[18];
370 }
371 set
372 {
373 bits[18] = value;
374 }
375 }
376
378 {
379 get
380 {
381 return bits[19];
382 }
383 set
384 {
385 bits[19] = value;
386 }
387 }
388
389 public bool debugEnabled
390 {
391 get
392 {
393 return bits[20];
394 }
395 set
396 {
397 bits[20] = value;
398 }
399 }
400
401 public bool magicChestSent
402 {
403 get
404 {
405 return bits[21];
406 }
407 set
408 {
409 bits[21] = value;
410 }
411 }
412
414 {
415 get
416 {
417 return bits[22];
418 }
419 set
420 {
421 bits[22] = value;
422 }
423 }
424
425 public bool gotJurePillow
426 {
427 get
428 {
429 return bits[30];
430 }
431 set
432 {
433 bits[30] = value;
434 }
435 }
436
437 public int start
438 {
439 get
440 {
441 return ints[10];
442 }
443 set
444 {
445 ints[10] = value;
446 }
447 }
448
449 public int build
450 {
451 get
452 {
453 return ints[11];
454 }
455 set
456 {
457 ints[11] = value;
458 }
459 }
460
461 public int main
462 {
463 get
464 {
465 return ints[13];
466 }
467 set
468 {
469 ints[13] = value;
470 }
471 }
472
473 public int storyFiama
474 {
475 get
476 {
477 return ints[14];
478 }
479 set
480 {
481 ints[14] = value;
482 }
483 }
484
485 public int lutz
486 {
487 get
488 {
489 return ints[15];
490 }
491 set
492 {
493 ints[15] = value;
494 }
495 }
496
498 {
499 get
500 {
501 return ints[16];
502 }
503 set
504 {
505 ints[16] = value;
506 }
507 }
508
509 public int landDeedBought
510 {
511 get
512 {
513 return ints[17];
514 }
515 set
516 {
517 ints[17] = value;
518 }
519 }
520
521 public int loytelMartLv
522 {
523 get
524 {
525 return ints[18];
526 }
527 set
528 {
529 ints[18] = value;
530 }
531 }
532
533 [OnSerializing]
534 private void _OnSerializing(StreamingContext context)
535 {
536 ints[0] = (int)bits.Bits;
537 }
538
539 [OnDeserialized]
540 private void _OnDeserialized(StreamingContext context)
541 {
542 bits.Bits = (uint)ints[0];
543 }
544
545 public void OnCreateGame()
546 {
547 }
548
549 public void OnEnableDebug()
550 {
551 }
552
553 public void OnBuild(Recipe r)
554 {
555 if (build == 0 && r.id == "workbench")
556 {
557 build = 1;
558 }
559 }
560
561 public bool IsStoryPlayed(int flag)
562 {
563 return playedStories.Contains(flag);
564 }
565
566 public int GetStoryRowID(string idBook, string idStep)
567 {
568 foreach (Dictionary<string, string> item in GetStoryExcelData(idBook).sheets["index"].list)
569 {
570 if (item["step"] == idStep)
571 {
572 return item["id"].ToInt();
573 }
574 }
575 return 0;
576 }
577
578 public Dictionary<string, string> GetStoryRow(string idBook, int id)
579 {
580 foreach (Dictionary<string, string> item in GetStoryExcelData(idBook).sheets["index"].list)
581 {
582 if (item["id"].ToInt() == id)
583 {
584 return item;
585 }
586 }
587 return null;
588 }
589
590 public ExcelData GetStoryExcelData(string idBook)
591 {
592 ExcelData excelData = storyExcel.TryGetValue(idBook);
593 if (excelData == null)
594 {
595 excelData = new ExcelData();
596 excelData.path = CorePath.DramaData + idBook + ".xlsx";
597 excelData.BuildList("index");
598 storyExcel.Add(idBook, excelData);
599 }
600 return excelData;
601 }
602
603 public bool PlayStory(string idBook, int id, bool fromBook = false)
604 {
605 if (!fromBook && playedStories.Contains(id))
606 {
607 return false;
608 }
609 Dictionary<string, string> storyRow = GetStoryRow(idBook, id);
610 SoundManager.ForceBGM();
611 LayerDrama.fromBook = fromBook;
612 LayerDrama.Activate(idBook, storyRow["sheet"], storyRow["step"]);
613 if (!fromBook && !playedStories.Contains(id))
614 {
615 playedStories.Add(id);
616 }
617 return true;
618 }
619
620 public bool PlayStory(int id, bool fromBook = false)
621 {
622 return PlayStory("_main", id, fromBook);
623 }
624
625 public void AddStory(int id)
626 {
627 if (!playedStories.Contains(id) && !availableStories.Contains(id))
628 {
629 availableStories.Add(id);
630 Msg.Say("story_added");
631 SE.WriteJournal();
632 }
633 }
634
635 public void OnEnterZone()
636 {
637 if (EClass._zone.id == "nymelle")
638 {
639 if (EClass._zone.lv == -1)
640 {
641 AddStory(10);
642 }
643 if (EClass._zone.lv == -2)
644 {
645 AddStory(20);
646 }
647 if (EClass._zone.lv == -3)
648 {
649 AddStory(30);
650 }
651 }
652 if (QuestMain.Phase == 700 && EClass._zone.id == "lothria")
653 {
654 PlayStory(50);
655 }
657 {
659 availableStories.RemoveAt(0);
660 }
661 }
662
663 public void OnLeaveZone()
664 {
665 if (QuestMain.Phase == 700)
666 {
667 PlayStory(40);
668 }
669 }
670 }
671
672 [JsonProperty]
674
675 [JsonProperty]
676 public int uidChara;
677
678 [JsonProperty]
679 public int uidSpawnZone;
680
681 [JsonProperty]
682 public int tutorialStep;
683
684 [JsonProperty]
685 public int karma;
686
687 [JsonProperty]
688 public int fame;
689
690 [JsonProperty]
691 public int expKnowledge;
692
693 [JsonProperty]
694 public int expInfluence;
695
696 [JsonProperty]
697 public int dateTravel;
698
699 [JsonProperty]
700 public int distanceTravel;
701
702 [JsonProperty]
704
705 [JsonProperty]
706 public int uidLastZone;
707
708 [JsonProperty]
710
711 [JsonProperty]
712 public int totalFeat;
713
714 [JsonProperty]
715 public int taxBills;
716
717 [JsonProperty]
718 public int unpaidBill;
719
720 [JsonProperty]
721 public int bankMoney;
722
723 [JsonProperty]
724 public int holyWell;
725
726 [JsonProperty]
727 public int safeTravel;
728
729 [JsonProperty]
730 public int hotbarPage;
731
732 [JsonProperty]
733 public int little_dead;
734
735 [JsonProperty]
736 public int little_saved;
737
738 [JsonProperty]
739 public int extraTax;
740
741 [JsonProperty]
743
744 [JsonProperty]
745 public int uidLastTown;
746
747 [JsonProperty]
748 public int seedShrine;
749
750 [JsonProperty]
751 public int seedChest;
752
753 [JsonProperty]
754 public int debt;
755
756 [JsonProperty]
757 public int seedFortune;
758
759 [JsonProperty]
760 public int giftJure;
761
762 [JsonProperty]
763 public int luckycoin;
764
765 [JsonProperty]
766 public int customLightMod = 3;
767
768 [JsonProperty]
769 public int questRerollCost;
770
771 [JsonProperty]
772 public float angle;
773
774 [JsonProperty]
775 public bool hasNewQuest;
776
777 [JsonProperty]
778 public bool dailyGacha;
779
780 [JsonProperty]
781 public bool useSubWidgetTheme;
782
783 [JsonProperty]
784 public bool wellWished;
785
786 [JsonProperty]
787 public bool prayed;
788
789 [JsonProperty]
790 public bool questTracker;
791
792 [JsonProperty]
794
795 [JsonProperty]
796 public bool isEditor;
797
798 [JsonProperty]
800
801 [JsonProperty]
802 public bool showWorkaround;
803
804 [JsonProperty]
805 public string title;
806
807 [JsonProperty]
808 public string memo = "";
809
810 [JsonProperty]
811 public string memo2 = "";
812
813 [JsonProperty]
814 public Pref pref = new Pref();
815
816 [JsonProperty]
817 public Stats stats = new Stats();
818
819 [JsonProperty]
821
822 [JsonProperty]
824
825 [JsonProperty]
827
828 [JsonProperty]
830
831 [JsonProperty]
833
834 [JsonProperty]
836
837 [JsonProperty]
839
840 [JsonProperty]
841 public Dictionary<string, int> dialogFlags = new Dictionary<string, int>();
842
843 [JsonProperty]
844 public Dictionary<string, string> hangIcons = new Dictionary<string, string>();
845
846 [JsonProperty]
847 public Dictionary<string, KnownSong> knownSongs = new Dictionary<string, KnownSong>();
848
849 [JsonProperty]
850 public Dictionary<string, string> lastRecipes = new Dictionary<string, string>();
851
852 [JsonProperty]
853 public Dictionary<string, List<string>> priorityActions = new Dictionary<string, List<string>>();
854
855 [JsonProperty]
856 public HashSet<string> trackedCategories = new HashSet<string>();
857
858 [JsonProperty]
859 public HashSet<string> trackedCards = new HashSet<string>();
860
861 [JsonProperty]
862 public HashSet<int> trackedElements = new HashSet<int>();
863
864 [JsonProperty]
865 public HashSet<int> knownBGMs = new HashSet<int>();
866
867 [JsonProperty]
868 public HashSet<int> favAbility = new HashSet<int>();
869
870 [JsonProperty]
871 public HashSet<int> sketches = new HashSet<int>();
872
873 [JsonProperty]
874 public HashSet<int> doneBackers = new HashSet<int>();
875
876 [JsonProperty]
877 public HashSet<int> knownCraft = new HashSet<int>();
878
879 [JsonProperty]
880 public List<int> domains = new List<int>();
881
882 [JsonProperty]
883 public Zone zone;
884
885 [JsonProperty]
887
888 [JsonProperty]
889 public Chara _agent;
890
891 [JsonProperty]
892 public Hoard hoard = new Hoard();
893
894 [JsonProperty]
895 public Flags flags = new Flags();
896
897 [JsonProperty]
899
900 [JsonProperty]
902
903 [JsonProperty]
905
906 [JsonProperty]
907 public Thing eqBait;
908
909 [JsonProperty]
910 public Dictionary<string, Window.SaveData> dataWindow;
911
912 [JsonProperty]
914
915 [JsonProperty]
917
918 [JsonProperty]
919 public Dictionary<int, int> keyItems = new Dictionary<int, int>();
920
921 [JsonProperty]
922 public List<int> uidPickOnLoad = new List<int>();
923
924 [JsonProperty]
925 public List<ShippingResult> shippingResults = new List<ShippingResult>();
926
927 [JsonProperty]
928 public Dictionary<string, HashSet<string>> noRestocks = new Dictionary<string, HashSet<string>>();
929
930 [JsonProperty]
932
933 [JsonProperty]
934 public List<string> favMoongate = new List<string>();
935
936 public static int seedHallucination;
937
938 public static int realHour;
939
941
942 public string windowDataName;
943
945
946 public List<Cell> lastMarkedHighlights = new List<Cell>();
947
949
951
952 public bool forceTalk;
953
954 public bool altHeldPos;
955
956 public bool instaComplete = true;
957
958 public bool regionMoveWarned;
959
960 public bool waitingInput;
961
962 public bool willEndTurn;
963
964 public bool wasDirtyWeight;
965
966 public bool deathDialog;
967
969
970 public bool deathZoneMove;
971
972 public bool haltMove;
973
974 public bool invlunerable;
975
976 public bool willAutoSave;
977
978 public bool resetPrincipal;
979
980 public bool simulatingZone;
981
982 public bool isAutoFarming;
983
984 public bool enemySpotted;
985
986 public string deathMsg;
987
988 public int countNewline;
989
990 public int lightRadius;
991
992 public int lastTurn;
993
994 public int lastEmptyAlly;
995
996 public int ignoreFallOver;
997
998 public float lightPower;
999
1000 public float baseActTime;
1001
1002 public float pickupDelay = 2f;
1003
1004 public Chara chara;
1005
1007
1009
1011
1012 public Act lastAct;
1013
1014 public Vector2 nextMove;
1015
1016 public Vector3 position;
1017
1018 public Action onStartZone;
1019
1021
1022 public List<Chara> listSummon = new List<Chara>();
1023
1025
1027
1029
1031
1033
1035 {
1036 get
1037 {
1038 if (!useSubWidgetTheme)
1039 {
1040 return mainWidgets;
1041 }
1042 return subWidgets;
1043 }
1044 set
1045 {
1047 {
1048 subWidgets = value;
1049 }
1050 else
1051 {
1052 mainWidgets = value;
1053 }
1054 }
1055 }
1056
1058 {
1059 get
1060 {
1061 return RefZone.Get(uidSpawnZone);
1062 }
1063 set
1064 {
1065 uidSpawnZone = RefZone.Set(value);
1066 }
1067 }
1068
1069 public bool EnableDreamStory => false;
1070
1072
1074
1075 public Chara Agent => _agent;
1076
1078
1079 public int MaxAlly => Mathf.Min(Mathf.Max(EClass.pc.CHA / 10, 1), 5) + EClass.pc.Evalue(1645);
1080
1081 public int MaxExpKnowledge => 1000;
1082
1083 public int MaxExpInfluence => 1000;
1084
1086 {
1087 get
1088 {
1089 Quest quest = EClass.game.quests.Get("guild_mage");
1090 if (quest == null)
1091 {
1092 return false;
1093 }
1094 return quest.phase >= 10;
1095 }
1096 }
1097
1099 {
1100 get
1101 {
1102 Quest quest = EClass.game.quests.Get("guild_fighter");
1103 if (quest == null)
1104 {
1105 return false;
1106 }
1107 return quest.phase >= 10;
1108 }
1109 }
1110
1112 {
1113 get
1114 {
1115 Quest quest = EClass.game.quests.Get("guild_thief");
1116 if (quest == null)
1117 {
1118 return false;
1119 }
1120 return quest.phase >= 10;
1121 }
1122 }
1123
1125 {
1126 get
1127 {
1128 Quest quest = EClass.game.quests.Get("guild_merchant");
1129 if (quest == null)
1130 {
1131 return false;
1132 }
1133 return quest.phase >= 10;
1134 }
1135 }
1136
1137 public bool IsCriminal
1138 {
1139 get
1140 {
1141 if (karma < 0)
1142 {
1144 }
1145 return false;
1146 }
1147 }
1148
1149 public void OnCreateGame()
1150 {
1151 karma = 30;
1152 debt = 20000000;
1153 chara = CharaGen.Create("chara");
1155 chara.things.SetSize(7, 5);
1156 chara.c_idTone = "default";
1157 chara.SetInt(56, 1);
1159 chara.faith = EClass.game.religions.Eyth;
1161 uidChara = chara.uid;
1162 Fav fav = IO.LoadFile<Fav>(CorePath.user + "PCC/fav" + EClass.rnd(3));
1163 chara.pccData = IO.Duplicate(fav.data);
1165 RefreshDomain();
1166 _agent = CharaGen.Create("chara");
1167 _agent.c_altName = "stash".lang();
1168 EClass.player.title = "master".lang();
1173 sketches.Add(115);
1174 pref.sort_ascending_shop = true;
1175 EClass.game.config.preference.autoEat = true;
1176 flags.toggleHotbarHighlightDisabled = true;
1177 layerAbilityConfig.hideDepletedSpell = true;
1178 layerAbilityConfig.bgAlpha = 70;
1179 memo = (memo2 = "memo_blank".lang());
1180 }
1181
1182 public void OnStartNewGame()
1183 {
1184 ModKeyItem("old_charm", 1, msg: false);
1185 ModKeyItem("backpack", 1, msg: false);
1186 EClass.player.knownBGMs.Add(1);
1187 EClass.player.knownBGMs.Add(3);
1188 EClass.player.questTracker = true;
1189 trackedCategories.Add("food");
1190 trackedCategories.Add("drink");
1191 trackedCategories.Add("resource");
1192 EClass.game.quests.Start("main");
1193 chara.hp = chara.MaxHP;
1195 chara.elements.SetBase(135, 1);
1196 chara.elements.SetBase(6003, 1);
1197 chara.elements.SetBase(6012, 1);
1198 chara.elements.SetBase(6015, 1);
1199 chara.elements.SetBase(6050, 1);
1200 List<Element> list = new List<Element>();
1201 foreach (Element value in EClass.pc.elements.dict.Values)
1202 {
1203 list.Add(value);
1204 }
1205 foreach (Element item in list)
1206 {
1207 if (item.Value == 0)
1208 {
1210 }
1211 else if (item.HasTag("primary"))
1212 {
1213 item.vTempPotential = Mathf.Max(30, (item.ValueWithoutLink - 8) * 7);
1214 }
1215 }
1216 foreach (BodySlot slot in chara.body.slots)
1217 {
1218 chara.body.Unequip(slot);
1219 }
1221 CreateEquip();
1226 EClass.pc.hunger.value = 30;
1228 EClass.pc.stamina.Set(EClass.pc.stamina.max / 2);
1229 EClass.pc.Refresh();
1230 isEditor = Application.isEditor;
1231 }
1232
1233 public void OnLoad()
1234 {
1235 nums.OnLoad();
1236 codex.OnLoad();
1237 if (dataWindow != null)
1238 {
1239 Window.dictData = dataWindow;
1240 }
1241 EClass.pc.Refresh();
1242 if (Application.isEditor && EClass.debug.resetPlayerConfig && !isEditor)
1243 {
1244 EClass.game.config = new Game.Config();
1245 if (dataWindow != null)
1246 {
1247 dataWindow.Clear();
1248 }
1249 EClass.pc.things.Foreach(delegate(Thing t)
1250 {
1251 t.c_windowSaveData = null;
1252 }, onlyAccessible: false);
1253 }
1254 isEditor = Application.isEditor;
1255 }
1256
1257 public void OnBeforeSave()
1258 {
1259 foreach (Layer layer in EClass.ui.layerFloat.layers)
1260 {
1261 foreach (Window componentsInDirectChild in layer.GetComponentsInDirectChildren<Window>())
1262 {
1263 componentsInDirectChild.UpdateSaveData();
1264 }
1265 }
1267 }
1268
1269 public void SetPriorityAction(string id, Thing t)
1270 {
1271 if (t == null)
1272 {
1273 return;
1274 }
1275 if (id.IsEmpty())
1276 {
1277 foreach (List<string> p in priorityActions.Values)
1278 {
1279 p.ForeachReverse(delegate(string i)
1280 {
1281 if (i == t.id)
1282 {
1283 p.Remove(i);
1284 }
1285 });
1286 }
1287 return;
1288 }
1289 if (!priorityActions.ContainsKey(id))
1290 {
1291 priorityActions[id] = new List<string>();
1292 }
1293 if (!priorityActions[id].Contains(t.id))
1294 {
1295 priorityActions[id].Add(t.id);
1296 }
1297 }
1298
1299 public bool IsPriorityAction(string id, Thing t)
1300 {
1301 if (!id.IsEmpty() && t != null)
1302 {
1303 List<string> list = priorityActions.TryGetValue(id);
1304 if (list != null && list.Contains(t.id))
1305 {
1306 return true;
1307 }
1308 }
1309 return false;
1310 }
1311
1312 public void OnAdvanceRealHour()
1313 {
1314 realHour++;
1315 Msg.Say("time_warn", realHour.ToString() ?? "");
1316 string text = "time_warn_" + realHour;
1317 if (LangGame.Has(text))
1318 {
1319 Msg.Say(text);
1320 }
1321 }
1322
1323 public void RefreshDomain()
1324 {
1325 domains.Clear();
1326 for (int i = 0; i < EClass.pc.job.domain.Length; i += 2)
1327 {
1328 domains.Add(EClass.pc.job.domain[i]);
1329 }
1330 }
1331
1333 {
1334 ElementContainer elementContainer = new ElementContainer();
1335 foreach (int domain in domains)
1336 {
1337 elementContainer.GetOrCreateElement(domain).vSource = 1;
1338 }
1339 return elementContainer;
1340 }
1341
1342 public Layer SelectDomain(Action onKill = null)
1343 {
1344 List<SourceElement.Row> list2 = new List<SourceElement.Row>();
1345 foreach (SourceElement.Row row2 in EClass.sources.elements.rows)
1346 {
1347 if (row2.categorySub == "eleAttack" && !row2.tag.Contains("hidden") && (!row2.tag.Contains("high") || EClass.pc.job.domain.Contains(row2.id)))
1348 {
1349 list2.Add(row2);
1350 }
1351 }
1352 return EClass.ui.AddLayer<LayerList>().SetListCheck(list2, (SourceElement.Row a) => a.GetName(), delegate(SourceElement.Row s, ItemGeneral b)
1353 {
1354 bool flag4 = false;
1355 foreach (int domain in EClass.player.domains)
1356 {
1357 if (s.id == domain)
1358 {
1359 flag4 = true;
1360 }
1361 }
1362 if (flag4)
1363 {
1364 EClass.player.domains.Remove(s.id);
1365 }
1366 else
1367 {
1368 EClass.player.domains.Add(s.id);
1369 }
1370 }, delegate(List<UIList.ButtonPair> list)
1371 {
1372 bool flag = EClass.player.domains.Count >= 3 + EClass.pc.Evalue(1402);
1373 foreach (UIList.ButtonPair item in list)
1374 {
1375 UIButton button = (item.component as ItemGeneral).button1;
1376 SourceElement.Row row = item.obj as SourceElement.Row;
1377 bool flag2 = false;
1378 bool flag3 = false;
1379 foreach (int domain2 in EClass.player.domains)
1380 {
1381 if (row.id == domain2)
1382 {
1383 flag3 = true;
1384 }
1385 }
1386 button.SetCheck(flag3);
1387 for (int i = 0; i < ((EClass.pc.job.id == "swordsage") ? 5 : 3); i++)
1388 {
1389 if (EClass.pc.job.domain[i * 2] == row.id)
1390 {
1391 flag2 = true;
1392 }
1393 }
1394 button.interactable = !flag2 && (!flag || flag3);
1395 button.GetComponent<CanvasGroup>().enabled = !button.interactable;
1396 }
1397 }).SetOnKill(delegate
1398 {
1399 onKill?.Invoke();
1400 });
1401 }
1402
1403 public void RefreshEmptyAlly()
1404 {
1405 int num = MaxAlly - EClass.pc.party.members.Count + 1;
1406 if (num == lastEmptyAlly)
1407 {
1408 return;
1409 }
1410 lastEmptyAlly = num;
1411 foreach (Chara member in EClass.pc.party.members)
1412 {
1413 member.RefreshSpeed();
1414 }
1415 }
1416
1418 {
1419 string text = IO.LoadText(new DirectoryInfo(CorePath.CorePackage.Background).GetFiles("*.txt").RandomItem().FullName);
1420 IO.SaveText(GameIO.pathCurrentSave + "background.txt", text);
1421 }
1422
1423 public string GetBackgroundText()
1424 {
1425 StringBuilder stringBuilder = new StringBuilder(IO.LoadText(GameIO.pathCurrentSave + "background.txt"));
1426 stringBuilder.Replace("#name", EClass.pc.NameSimple);
1427 stringBuilder.Replace("#aka", EClass.pc.Aka);
1428 stringBuilder.Replace("#father", EClass.pc.bio.nameDad);
1429 stringBuilder.Replace("#mother", EClass.pc.bio.nameMom);
1430 stringBuilder.Replace("#birthloc2", EClass.pc.bio.nameHome);
1431 stringBuilder.Replace("#birthloc", EClass.pc.bio.nameLoc);
1432 stringBuilder.Replace("#job", EClass.pc.job.GetName().AddArticle());
1433 stringBuilder.Replace("#year", EClass.pc.bio.birthYear.ToString() ?? "");
1434 stringBuilder.Replace("#month", EClass.pc.bio.birthMonth.ToString() ?? "");
1435 stringBuilder.Replace("#day", EClass.pc.bio.birthDay.ToString() ?? "");
1436 stringBuilder.Replace("#he", (EClass.pc.IsMale ? "he" : "she").lang());
1437 stringBuilder.Replace("#his", (EClass.pc.IsMale ? "his" : "her").lang());
1438 stringBuilder.Replace("#him", (EClass.pc.IsMale ? "him" : "her").lang());
1439 string text = "_period".lang();
1440 string[] array = stringBuilder.ToString().Split(text);
1441 string text2 = "";
1442 if (array.Length != 0)
1443 {
1444 string[] array2 = array;
1445 foreach (string text3 in array2)
1446 {
1447 text2 += text3.ToTitleCase();
1448 if (text3 != text && text3 != Environment.NewLine && text3.Length > 2 && text3 != array[^1])
1449 {
1450 text2 += text;
1451 }
1452 }
1453 }
1454 return text2.TrimEnd(Environment.NewLine.ToCharArray());
1455 }
1456
1458 {
1459 Util.Run(GameIO.pathCurrentSave + "background.txt");
1460 }
1461
1462 public void CreateEquip()
1463 {
1464 Chara chara = EClass.pc;
1466 if (EClass.debug.enable)
1467 {
1468 EClass.pc.EQ_ID("lantern_old");
1469 }
1471 chara.EQ_ID("toolbelt").c_IDTState = 0;
1472 chara.EQ_ID("shirt").c_IDTState = 0;
1474 switch (EClass.pc.job.id)
1475 {
1476 case "paladin":
1477 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8400), 2));
1478 break;
1479 case "inquisitor":
1480 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8706), 4));
1481 break;
1482 case "witch":
1483 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8790), 4));
1484 break;
1485 case "swordsage":
1486 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(50300), 4));
1487 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(50301), 4));
1488 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(50802), 2));
1489 chara.AddCard(ThingGen.Create("tool_talisman"));
1490 break;
1491 }
1492 switch (EClass.pc.job.id)
1493 {
1494 case "wizard":
1495 case "warmage":
1496 case "priest":
1497 case "witch":
1498 {
1499 int num = 0;
1500 foreach (int domain in EClass.player.domains)
1501 {
1502 Element element = Element.Create(domain);
1503 string text = "";
1504 string[] tag = element.source.tag;
1505 foreach (string text2 in tag)
1506 {
1507 if (text != "")
1508 {
1509 break;
1510 }
1511 switch (text2)
1512 {
1513 case "hand":
1514 case "arrow":
1515 case "bolt":
1516 text = text2 + "_";
1517 break;
1518 }
1519 }
1520 if (text != "")
1521 {
1522 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(text + element.source.alias.Replace("ele", "")), 4));
1523 num++;
1524 if (num >= 2)
1525 {
1526 break;
1527 }
1528 }
1529 }
1530 if (EClass.pc.job.id == "priest")
1531 {
1532 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8400), 2));
1533 }
1534 else
1535 {
1536 chara.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8200), 2));
1537 }
1538 break;
1539 }
1540 default:
1541 chara.AddCard(ThingGen.Create("bandage").SetNum(6 + EClass.rnd(3)));
1542 break;
1543 }
1544 static Thing SetSpellbook(Thing t, int charge)
1545 {
1546 t.AddEditorTag(EditorTag.NoReadFail);
1547 t.c_charges = charge;
1548 t.SetBlessedState(BlessedState.Normal);
1549 return t;
1550 }
1551 }
1552
1553 public void DreamSpell()
1554 {
1555 int num = EClass.pc.Evalue(1653);
1556 if (num == 0 && EClass.pc.Evalue(1402) == 0 && EClass.rnd(4) != 0)
1557 {
1558 return;
1559 }
1560 List<SourceElement.Row> list = new List<SourceElement.Row>();
1561 foreach (int domain in EClass.player.domains)
1562 {
1563 Element element = Element.Create(domain);
1564 string text = "";
1565 string[] tag = element.source.tag;
1566 foreach (string text2 in tag)
1567 {
1568 if (text != "")
1569 {
1570 break;
1571 }
1572 bool flag = false;
1573 switch (text2)
1574 {
1575 case "hand":
1576 case "arrow":
1577 case "bolt":
1578 flag = true;
1579 break;
1580 }
1581 if (num >= 3)
1582 {
1583 switch (text2)
1584 {
1585 case "ball":
1586 case "weapon":
1587 case "funnel":
1588 case "miasma":
1589 flag = true;
1590 break;
1591 }
1592 }
1593 if (flag)
1594 {
1595 list.Add(EClass.sources.elements.alias[text2 + "_" + element.source.alias.Replace("ele", "")]);
1596 }
1597 }
1598 }
1599 if (list.Count != 0)
1600 {
1601 SourceElement.Row row = list.RandomItemWeighted((SourceElement.Row a) => a.chance);
1602 Element element2 = EClass.pc.elements.GetElement(row.id);
1603 int mtp = ((num == 0) ? 100 : (75 + num * 25));
1604 if (num > 0 || element2 == null || element2.vPotential == 0)
1605 {
1606 Msg.Say("dream_spell", EClass.sources.elements.alias[row.aliasRef].GetText("altname").Split(',')[0].ToLower());
1607 EClass.pc.GainAbility(row.id, mtp);
1608 }
1609 }
1610 }
1611
1612 public void SimulateFaction()
1613 {
1614 simulatingZone = true;
1615 Zone currentZone = EClass.pc.currentZone;
1616 Point point = EClass.pc.pos.Copy();
1617 foreach (FactionBranch child in EClass.pc.faction.GetChildren())
1618 {
1619 if (child.owner != currentZone)
1620 {
1621 EClass.pc.MoveZone(child.owner);
1622 zone = child.owner;
1623 EClass.scene.Init(Scene.Mode.Zone);
1624 }
1625 }
1626 EClass.pc.MoveZone(currentZone, new ZoneTransition
1627 {
1628 state = ZoneTransition.EnterState.Exact,
1629 x = point.x,
1630 z = point.z
1631 });
1632 zone = currentZone;
1633 EClass.scene.Init(Scene.Mode.Zone);
1634 simulatingZone = false;
1635 }
1636
1637 public void ExitBorder(ActPlan p = null)
1638 {
1639 bool flag = EClass.game.quests.HasFarAwayEscort();
1640 string textDialog = (flag ? "ExitZoneEscort" : "ExitZone").lang(EClass._zone.Name);
1641 bool flag2 = EClass.pc.pos.x == EClass._map.bounds.x || EClass.pc.pos.x == EClass._map.bounds.x + EClass._map.bounds.Width - 1 || EClass.pc.pos.z == EClass._map.bounds.z || EClass.pc.pos.z == EClass._map.bounds.z + EClass._map.bounds.Height - 1;
1643 {
1644 if (p == null)
1645 {
1646 Dialog.YesNo(textDialog, delegate
1647 {
1648 EClass.game.quests.HasFarAwayEscort(execute: true);
1650 }, delegate
1651 {
1652 });
1653 return;
1654 }
1655 p.TrySetAct("actNewZone", delegate
1656 {
1657 Dialog.YesNo(textDialog, delegate
1658 {
1659 EClass.game.quests.HasFarAwayEscort(execute: true);
1661 });
1662 return false;
1663 }, CursorSystem.MoveZone, (!flag2) ? 1 : 999);
1664 }
1665 else if (p == null)
1666 {
1668 }
1669 else
1670 {
1671 p.TrySetAct("actNewZone", delegate
1672 {
1674 return false;
1675 }, CursorSystem.MoveZone, (!flag2) ? 1 : 999);
1676 }
1677 }
1678
1679 public bool CanExitBorder(Point p)
1680 {
1681 if (EClass._zone == EClass.game.StartZone && EClass.pc.homeBranch == null)
1682 {
1683 return false;
1684 }
1686 {
1687 return false;
1688 }
1689 if (EClass.pc.held != null && EClass.pc.held.trait.CanOnlyCarry)
1690 {
1691 return false;
1692 }
1693 return true;
1694 }
1695
1696 public void OnExitBorder(Point p)
1697 {
1699 {
1700 int num = 0;
1701 int num2 = 0;
1702 MapBounds bounds = EClass._map.bounds;
1703 if (p.x < bounds.x)
1704 {
1705 num = -1;
1706 }
1707 else if (p.x <= bounds.maxX)
1708 {
1709 num2 = ((p.z >= bounds.z) ? 1 : (-1));
1710 }
1711 else
1712 {
1713 num = 1;
1714 }
1715 ZoneTransition.EnterState state = num switch
1716 {
1717 -1 => ZoneTransition.EnterState.Right,
1718 1 => ZoneTransition.EnterState.Left,
1719 _ => (num2 == 1) ? ZoneTransition.EnterState.Bottom : ZoneTransition.EnterState.Top,
1720 };
1721 float ratePos = ((num == 1 || num == -1) ? ((float)(p.z - bounds.z) / (float)bounds.Height) : ((float)(p.x - bounds.x) / (float)bounds.Width));
1722 ZoneTransition trans = new ZoneTransition
1723 {
1724 state = state,
1725 ratePos = ratePos
1726 };
1727 Point p2 = new Point(EClass._zone.x + num, EClass._zone.y + num2);
1728 EnterLocalZone(p2, trans);
1729 }
1730 else
1731 {
1733 }
1734 }
1735
1736 public void EnterLocalZone(bool encounter = false, Chara mob = null)
1737 {
1738 EnterLocalZone(EClass.pc.pos.Copy(), null, encounter, mob);
1739 }
1740
1741 public void EnterLocalZone(Point p, ZoneTransition trans = null, bool encounter = false, Chara mob = null)
1742 {
1743 if (EClass._zone.IsRegion)
1744 {
1746 }
1748 int enemies = 1;
1749 int roadDist = EClass.scene.elomap.GetRoadDist(p.x, p.z);
1750 int num = ((EClass.pc.homeBranch != null) ? EClass.pc.pos.Distance(EClass.game.StartZone.mapX, EClass.game.StartZone.mapY) : 0);
1751 if (zone == null)
1752 {
1754 {
1755 Msg.Say("zoneBlocked");
1756 return;
1757 }
1758 int num2 = Mathf.Clamp(roadDist - 4, 0, 200) + Mathf.Clamp(num / 4, 0, 10);
1759 if (roadDist > 20)
1760 {
1761 num2 += roadDist - 20;
1762 }
1763 if (num2 >= 100)
1764 {
1765 num2 = 100;
1766 }
1767 Debug.Log("encounter roadiDist:" + roadDist + " homeDist:" + num + " lv:" + num2);
1769 zone._dangerLv = num2;
1770 enemies = 2 + Mathf.Min(num2 / 10, 4) + EClass.rnd(3 + Mathf.Min(num2 / 10, 4));
1771 if (num < 5)
1772 {
1773 enemies = 2;
1774 }
1775 }
1776 else
1777 {
1778 if (zone is Zone_Void && EClass.player.CountKeyItem("license_void") == 0)
1779 {
1780 Msg.Say("voidClosed");
1781 return;
1782 }
1783 if (zone.IsClosed)
1784 {
1785 Msg.Say("zoneClosed");
1786 return;
1787 }
1788 if (zone is Zone_Casino)
1789 {
1790 Msg.Say("zoneNoEntrance");
1791 return;
1792 }
1793 }
1794 if (trans == null)
1795 {
1796 ZoneTransition.EnterState state = (encounter ? ZoneTransition.EnterState.Encounter : ((zone.RegionEnterState == ZoneTransition.EnterState.Dir) ? ZoneTransition.DirToState(EClass.pc.GetCurrentDir()) : zone.RegionEnterState));
1797 trans = new ZoneTransition
1798 {
1799 state = state
1800 };
1801 }
1802 EClass.pc.MoveZone(zone, trans);
1803 if (encounter)
1804 {
1806 {
1807 enemies = enemies,
1808 roadDist = roadDist,
1809 mob = mob
1810 });
1811 }
1812 }
1813
1814 public void MoveZone(Zone z)
1815 {
1816 CursorSystem.ignoreCount = 15;
1817 EClass.ui.hud.transRight.SetActive(enable: false);
1818 zone = z;
1819 if (zone.IsRegion)
1820 {
1822 }
1823 EClass.scene.Init(Scene.Mode.Zone);
1824 if ((bool)WidgetRoster.Instance)
1825 {
1827 }
1828 if ((bool)UIResourceTrack.Instance)
1829 {
1831 }
1832 if ((bool)WidgetMinimap.Instance)
1833 {
1835 }
1837 {
1838 if (LastTravelZone != null)
1839 {
1840 int elapsedHour = EClass.world.date.GetElapsedHour(dateTravel);
1841 int num = elapsedHour / 24;
1842 if (distanceTravel > 2)
1843 {
1844 elapsedHour %= 24;
1845 Msg.Say("travel", LastTravelZone.Name, Date.GetText(dateTravel, Date.TextFormat.Travel), num.ToString() ?? "", elapsedHour.ToString() ?? "");
1846 Msg.Say("travel2", distanceTravel.ToString() ?? "", ((EClass.pc.party.members.Count == 1) ? "you" : "youAndCompanion").lang());
1847 foreach (Chara member in EClass.pc.party.members)
1848 {
1849 member.AddExp(distanceTravel / 3);
1850 member.elements.ModExp(240, 30 + distanceTravel * 5);
1851 }
1852 }
1853 }
1854 distanceTravel = 0;
1857 }
1858 regionMoveWarned = false;
1859 }
1860
1861 public void AddInventory(Card c)
1862 {
1863 EClass.pc.AddCard(c);
1864 }
1865
1866 public void EndTurn(bool consume = true)
1867 {
1868 if (!EClass.pc.isDead)
1869 {
1870 if (consume)
1871 {
1872 EInput.Consume();
1873 }
1874 EClass.pc.SetAI(new GoalEndTurn());
1875 EClass.player.baseActTime = EClass.setting.defaultActPace;
1876 }
1877 }
1878
1879 public void ModFame(int a)
1880 {
1881 if (a == 0)
1882 {
1883 return;
1884 }
1885 if (a >= 0 && fame + a >= 5000 && EClass.player.CountKeyItem("license_adv") == 0)
1886 {
1887 a = 5000 - fame;
1888 if (a <= 0)
1889 {
1890 a = 0;
1891 Msg.Say("gainFameLimit");
1892 return;
1893 }
1894 }
1895 fame += a;
1896 if (fame < 0)
1897 {
1898 fame = 0;
1899 }
1900 if (a > 0)
1901 {
1902 Msg.Say("gainFame", a.ToString() ?? "");
1903 }
1904 else
1905 {
1906 Msg.Say("looseFame", (-a).ToString() ?? "");
1907 }
1908 if (a > 0)
1909 {
1910 Tutorial.Reserve("fame");
1911 }
1912 }
1913
1914 public void ModKeyItem(string alias, int num = 1, bool msg = true)
1915 {
1916 ModKeyItem(EClass.sources.keyItems.alias[alias].id, num, msg);
1917 }
1918
1919 public void ModKeyItem(int id, int num = 1, bool msg = true)
1920 {
1921 if (!keyItems.ContainsKey(id))
1922 {
1923 keyItems.Add(id, 0);
1924 }
1925 keyItems[id] += num;
1926 if (msg)
1927 {
1928 if (num > 0)
1929 {
1930 SE.Play("keyitem");
1931 Msg.Say("get_keyItem", EClass.sources.keyItems.map[id].GetName());
1932 }
1933 else
1934 {
1935 SE.Play("keyitem_lose");
1936 Msg.Say("lose_keyItem", EClass.sources.keyItems.map[id].GetName());
1937 }
1938 }
1939 }
1940
1941 public bool HasKeyItem(string alias)
1942 {
1943 return CountKeyItem(EClass.sources.keyItems.alias[alias].id) > 0;
1944 }
1945
1946 public int CountKeyItem(string alias)
1947 {
1948 return CountKeyItem(EClass.sources.keyItems.alias[alias].id);
1949 }
1950
1951 public int CountKeyItem(int id)
1952 {
1953 if (!keyItems.ContainsKey(id))
1954 {
1955 return 0;
1956 }
1957 return keyItems[id];
1958 }
1959
1960 public void EquipTool(Thing a, bool setHotItem = true)
1961 {
1962 if (a.GetRootCard() != EClass.pc)
1963 {
1964 if (a.parent is Thing)
1965 {
1966 Msg.Say("movedToEquip", a, a.parent as Thing);
1967 }
1968 a = EClass.pc.AddThing(a);
1969 }
1970 if (setHotItem)
1971 {
1973 SE.SelectHotitem();
1974 }
1975 }
1976
1978 {
1980 if (!instance)
1981 {
1982 return;
1983 }
1984 if (currentHotItem != null)
1985 {
1986 if ((bool)instance)
1987 {
1988 instance.buttonHotItem.Refresh();
1989 }
1991 {
1992 currentHotItem = null;
1993 }
1995 {
1996 currentHotItem = null;
1997 }
1998 }
1999 if (EClass.pc.held != null)
2000 {
2002 }
2003 if (currentHotItem == null)
2004 {
2005 if ((bool)instance && instance.selected != -1 && instance.selectedButton.card != null && instance.selectedButton.card.GetRootCard() == EClass.pc && !instance.selectedButton.card.GetRootCard().isDestroyed)
2006 {
2008 }
2009 else
2010 {
2012 }
2013 }
2015 {
2016 if (lastHotItem != null)
2017 {
2019 }
2022 }
2024 WidgetHotbar.dirtyCurrentItem = false;
2026 EClass.core.actionsNextFrame.Add(delegate
2027 {
2028 EClass.core.actionsNextFrame.Add(delegate
2029 {
2031 {
2032 item.invs[0].RefreshHighlight();
2033 }
2034 });
2035 });
2037 }
2038
2040 {
2041 EClass.pc.PickHeld();
2043 SE.SelectHotitem();
2044 }
2045
2047 {
2048 EClass.pc.PickHeld();
2049 if (currentHotItem != item)
2050 {
2052 if (currentHotItem is HotItemHeld hotItemHeld)
2053 {
2054 EClass.pc.HoldCard(hotItemHeld.Thing);
2055 }
2056 }
2058 }
2059
2060 public void TryEquipBait()
2061 {
2062 if (eqBait != null && eqBait.GetRootCard() != EClass.pc)
2063 {
2064 eqBait = null;
2065 }
2066 if (eqBait == null)
2067 {
2069 }
2070 }
2071
2073 {
2075 {
2076 return false;
2077 }
2078 return true;
2079 }
2080
2081 public bool TargetRanged()
2082 {
2084 int num = 999999999;
2085 Chara chara = null;
2087 List<Chara> list = new List<Chara>();
2088 bool flag = false;
2089 if (EInput.isShiftDown && pos.IsValid && pos.HasChara)
2090 {
2091 foreach (Chara chara2 in EClass._map.charas)
2092 {
2093 if (chara2.isSynced && chara2.IsAliveInCurrentZone && !chara2.IsPC && chara2.pos.Equals(pos) && EClass.pc.CanSeeLos(chara2.pos))
2094 {
2095 list.Add(chara2);
2096 }
2097 }
2098 if (list.Count > 0)
2099 {
2100 chara = list.NextItem(EClass.player.target);
2101 flag = true;
2102 }
2103 list.Clear();
2104 }
2105 if (!flag)
2106 {
2107 foreach (Chara chara3 in EClass._map.charas)
2108 {
2109 int num2 = 0;
2110 if (chara3.isSynced && chara3.IsAliveInCurrentZone && !chara3.IsPC && EClass.pc.CanSeeLos(chara3.pos) && EClass.pc.CanSee(chara3) && !chara3.IsFriendOrAbove())
2111 {
2112 if (chara3.IsNeutralOrAbove())
2113 {
2114 num2 += 10000;
2115 }
2116 num2 += EClass.pc.Dist(chara3);
2117 if (num2 < num)
2118 {
2119 chara = chara3;
2120 num = num2;
2121 }
2122 list.Add(chara3);
2123 }
2124 }
2125 if (EInput.isShiftDown)
2126 {
2127 chara = list.NextItem(EClass.player.target);
2128 }
2129 }
2130 if (chara == null)
2131 {
2132 if (target != null)
2133 {
2134 Msg.Say("noTargetFound");
2135 }
2136 target = null;
2137 return false;
2138 }
2139 if (target != chara)
2140 {
2141 Msg.Say("targetSet", chara);
2142 }
2143 target = chara;
2144 return true;
2145 }
2146
2147 public void OnAdvanceHour()
2148 {
2150 if (EClass.pc.Evalue(289) > 0)
2151 {
2152 foreach (Thing item in EClass.pc.things.List((Thing t) => t.c_IDTState == 5, onlyAccessible: true))
2153 {
2155 }
2156 }
2158 {
2159 return;
2160 }
2161 foreach (Chara member in EClass.pc.party.members)
2162 {
2163 member.AddExp(1);
2164 }
2165 }
2166
2167 public void OnAdvanceDay()
2168 {
2171 if (EClass.pc.Evalue(85) > 0)
2172 {
2173 EClass.pc.ModExp(85, 10);
2174 }
2176 prayed = false;
2177 if (karma < 0 && EClass.rnd(4) == 0)
2178 {
2179 ModKarma(1);
2180 }
2181 }
2182
2183 public bool TryAbortAutoCombat(bool immediate = true)
2184 {
2185 if (!(EClass.pc.ai is GoalAutoCombat))
2186 {
2187 return false;
2188 }
2189 EClass.pc.ai.Cancel();
2190 if (immediate)
2191 {
2193 }
2194 return true;
2195 }
2196
2198 {
2199 foreach (Cell lastMarkedHighlight in lastMarkedHighlights)
2200 {
2201 lastMarkedHighlight.highlight = 0;
2202 }
2203 lastMarkedHighlights.Clear();
2204 }
2205
2206 public void MarkMapHighlights()
2207 {
2210 }
2211
2212 public bool CanAcceptInput()
2213 {
2214 if (EClass.pc.HasNoGoal)
2215 {
2216 return !EClass.pc.WillConsumeTurn();
2217 }
2218 return false;
2219 }
2220
2221 public bool CanSee(Chara c)
2222 {
2223 if (EClass.pc.hasTelepathy && c.race.visibleWithTelepathy)
2224 {
2225 return true;
2226 }
2227 if (!c.IsPC && (EClass.pc.fov == null || EClass.pc.isBlind))
2228 {
2229 return false;
2230 }
2231 if (c.IsPCParty || c.isDead)
2232 {
2233 return true;
2234 }
2235 if (c.IsMultisize)
2236 {
2237 bool canSee = false;
2238 int dist = EClass.pc.Dist(c);
2239 c.ForeachPoint(delegate(Point p, bool main)
2240 {
2241 if (!canSee && (p.cell.light > 0 || dist < 2) && p.cell.pcSync)
2242 {
2243 canSee = true;
2244 }
2245 });
2246 return canSee;
2247 }
2248 if (c.pos.cell.light > 0 || EClass.pc.Dist(c) < 2)
2249 {
2250 return c.pos.cell.pcSync;
2251 }
2252 return false;
2253 }
2254
2255 public void AddExpKnowledge(int a)
2256 {
2257 expKnowledge += a;
2259 {
2260 for (int i = 0; i < expKnowledge / MaxExpKnowledge; i++)
2261 {
2262 LvUp();
2263 }
2265 }
2266 static void LvUp()
2267 {
2268 Msg.Say("DingKnowledge");
2269 }
2270 }
2271
2272 public void AddExpInfluence(int a)
2273 {
2274 expInfluence += a;
2276 {
2277 for (int i = 0; i < expInfluence / MaxExpInfluence; i++)
2278 {
2279 LvUp();
2280 }
2282 }
2283 static void LvUp()
2284 {
2285 Msg.Say("DingInfluence");
2286 }
2287 }
2288
2289 public void ModKarma(int a)
2290 {
2291 if (a != 0)
2292 {
2293 if (a < 0)
2294 {
2295 Tutorial.Reserve("karma");
2296 }
2297 bool flag = karma < 0;
2298 karma += a;
2299 Msg.Say((a > 0) ? "karmaUp" : "karmaDown", a.ToString() ?? "");
2300 if (karma < 0 && !flag)
2301 {
2302 Msg.Say("becomeCriminal");
2305 Tutorial.Reserve("criminal");
2306 }
2307 if (karma >= 0 && flag)
2308 {
2309 Msg.Say("becomeNonCriminal");
2311 }
2312 EClass.game.quests.list.ForeachReverse(delegate(Quest q)
2313 {
2314 q.OnModKarma(a);
2315 });
2316 karma = Mathf.Clamp(karma, -100, 100);
2317 }
2318 }
2319
2320 public Thing DropReward(Thing t, bool silent = false)
2321 {
2322 t.things.DestroyAll();
2324 if (!silent)
2325 {
2326 Msg.Say("dropReward");
2327 }
2328 return t;
2329 }
2330
2331 public bool TooHeavyToMove()
2332 {
2333 if (!EClass.debug.ignoreWeight && EClass.pc.burden.GetPhase() == 4)
2334 {
2335 Msg.Say("tooHeavyToMove");
2337 EInput.Consume(consumeAxis: true);
2338 return true;
2339 }
2340 return false;
2341 }
2342
2343 public void ToggleFavMoongate(string id)
2344 {
2345 if (favMoongate.Contains(id))
2346 {
2347 favMoongate.Remove(id);
2348 }
2349 else
2350 {
2351 favMoongate.Add(id);
2352 }
2353 }
2354}
BlessedState
Definition: BlessedState.cs:2
EditorTag
Definition: EditorTag.cs:2
virtual Status Cancel()
Definition: AIAct.cs:291
Definition: ACT.cs:62
void SetInt(int id, int value=0)
Definition: BaseCard.cs:39
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
int birthYear
Definition: Biography.cs:89
int birthDay
Definition: Biography.cs:65
string nameDad
Definition: Biography.cs:260
string nameHome
Definition: Biography.cs:256
string nameLoc
Definition: Biography.cs:258
string nameMom
Definition: Biography.cs:262
int birthMonth
Definition: Biography.cs:77
Card card
Definition: ButtonGrid.cs:24
virtual void NextFrame()
Definition: Card.cs:11
bool isDestroyed
Definition: Card.cs:71
ElementContainerCard elements
Definition: Card.cs:37
string id
Definition: Card.cs:31
Fov fov
Definition: Card.cs:53
Card AddCard(Card c)
Definition: Card.cs:2887
bool IsMale
Definition: Card.cs:2244
Biography bio
Definition: Card.cs:40
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:2901
int CHA
Definition: Card.cs:2207
ICardParent parent
Definition: Card.cs:51
void AddEditorTag(EditorTag tag)
Definition: Card.cs:2465
Thing SetNum(int a)
Definition: Card.cs:3242
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:6942
int c_IDTState
Definition: Card.cs:1193
int c_daysWithGod
Definition: Card.cs:1397
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3572
void RecalculateFOV()
Definition: Card.cs:5616
Point pos
Definition: Card.cs:55
int uid
Definition: Card.cs:118
Trait trait
Definition: Card.cs:49
ThingContainer things
Definition: Card.cs:34
string NameSimple
Definition: Card.cs:2015
Card GetRootCard()
Definition: Card.cs:3173
int Evalue(int ele)
Definition: Card.cs:2431
int Dist(Card c)
Definition: Card.cs:6777
void ModExp(string alias, int a)
Definition: Card.cs:2508
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:2878
void AddExp(int a)
Definition: Card.cs:2767
CardRenderer renderer
Definition: Card.cs:57
Definition: Cell.cs:7
bool pcSync
Definition: Cell.cs:104
byte light
Definition: Cell.cs:60
void AddBodyPart(int ele, Thing thing=null)
Definition: CharaBody.cs:261
void Unequip(Thing thing, bool refresh=true)
Definition: CharaBody.cs:49
List< BodySlot > slots
Definition: CharaBody.cs:8
static Chara Create(string id, int lv=-1)
Definition: CharaGen.cs:17
Definition: Chara.cs:10
void Refresh(bool calledRecursive=false)
Definition: Chara.cs:1504
override bool IsAliveInCurrentZone
Definition: Chara.cs:546
CharaBody body
Definition: Chara.cs:91
Card held
Definition: Chara.cs:67
AIAct ai
Definition: Chara.cs:187
void SetFaction(Faction f)
Definition: Chara.cs:1227
Faction faction
Definition: Chara.cs:412
override bool IsPC
Definition: Chara.cs:597
SourceJob.Row job
Definition: Chara.cs:451
bool CanSeeLos(Card c, int dist=-1)
Definition: Chara.cs:1059
AIAct SetNoGoal()
Definition: Chara.cs:8040
override bool IsPCParty
Definition: Chara.cs:600
Party party
Definition: Chara.cs:43
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4084
void PickHeld(bool msg=false)
Definition: Chara.cs:4136
bool HasCondition(string alias)
Definition: Chara.cs:8568
AIAct SetAI(AIAct g)
Definition: Chara.cs:8045
bool IsNeutralOrAbove()
Definition: Chara.cs:5928
int GetCurrentDir()
Definition: Chara.cs:3305
override bool isSynced
Definition: Chara.cs:676
override CardRenderer _CreateRenderer()
Definition: Chara.cs:5993
void CalculateMaxStamina()
Definition: Chara.cs:1736
bool CanSee(Card c)
Definition: Chara.cs:1027
bool IsFriendOrAbove()
Definition: Chara.cs:5972
override int MaxHP
Definition: Chara.cs:693
Zone currentZone
Definition: Chara.cs:240
string Aka
Definition: Chara.cs:201
override bool IsDeadOrSleeping
Definition: Chara.cs:558
Stats stamina
Definition: Chara.cs:955
Stats burden
Definition: Chara.cs:953
void GainAbility(int ele, int mtp=100)
Definition: Chara.cs:9111
void RefreshFaithElement()
Definition: Chara.cs:9166
void RefreshSpeed(Element.BonusInfo info=null)
Definition: Chara.cs:1614
Religion faith
Definition: Chara.cs:424
bool HasNoGoal
Definition: Chara.cs:821
override bool IsMultisize
Definition: Chara.cs:691
bool isBlind
Definition: Chara.cs:125
Thing EQ_ID(string s, int mat=-1, Rarity r=Rarity.Random)
Definition: Chara.cs:4569
FactionBranch homeBranch
Definition: Chara.cs:889
bool isDead
Definition: Chara.cs:374
bool TryIdentify(Thing t, int count=1, bool show=true)
Definition: Chara.cs:7211
void SetFaith(string id)
Definition: Chara.cs:1484
bool hasTelepathy
Definition: Chara.cs:135
bool WillConsumeTurn()
Definition: Chara.cs:3343
void MoveZone(string alias)
Definition: Chara.cs:3010
SourceRace.Row race
Definition: Chara.cs:449
void OnLoad()
Definition: CodexManager.cs:23
new GameConfig game
Definition: CoreConfig.cs:596
bool ignoreWeight
Definition: CoreDebug.cs:186
bool enable
Definition: CoreDebug.cs:285
bool resetPlayerConfig
Definition: CoreDebug.cs:119
static string Background
Definition: CorePath.cs:81
CoreConfig config
Definition: Core.cs:70
static CursorInfo MoveZone
Definition: CursorSystem.cs:86
Definition: Date.cs:4
int GetElapsedHour(int rawDate)
Definition: Date.cs:352
int GetRaw(int offsetHours=0)
Definition: Date.cs:322
string GetText(TextFormat format)
Definition: Date.cs:245
TextFormat
Definition: Date.cs:6
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:244
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Scene scene
Definition: EClass.cs:30
static Faction Home
Definition: EClass.cs:26
static int rnd(int a)
Definition: EClass.cs:50
static Core core
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:20
static World world
Definition: EClass.cs:40
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
static UI ui
Definition: EClass.cs:16
static GameSetting setting
Definition: EClass.cs:34
Definition: EInput.cs:8
static void Consume(int _skipFrame)
Definition: EInput.cs:656
static bool isShiftDown
Definition: EInput.cs:261
Dictionary< int, Element > dict
void ModExp(int ele, int a, bool chain=false)
int GetFeatRef(int ele, int idx=0)
Element SetBase(string alias, int v, int potential=0)
void Remove(int id)
Element GetElement(string alias)
SourceElement.Row source
Definition: ELEMENT.cs:263
int vPotential
Definition: ELEMENT.cs:246
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:913
int minX
Definition: EloMap.cs:112
int minY
Definition: EloMap.cs:114
int GetRoadDist(int gx, int gy)
Definition: EloMap.cs:438
List< Dictionary< string, string > > BuildList(string sheetName="_default")
Definition: ExcelData.cs:92
List< FactionBranch > GetChildren()
Definition: FACTION.cs:200
Definition: GameIO.cs:10
static string pathCurrentSave
Definition: GameIO.cs:33
float defaultActPace
Definition: GameSetting.cs:327
Definition: Game.cs:8
ReligionManager religions
Definition: Game.cs:158
Prologue Prologue
Definition: Game.cs:257
QuestManager quests
Definition: Game.cs:179
Zone StartZone
Definition: Game.cs:269
Definition: Hoard.cs:8
virtual void OnUnsetCurrentItem()
Definition: HotItem.cs:83
virtual void OnMarkMapHighlights()
Definition: HotItem.cs:112
virtual void OnSetCurrentItem()
Definition: HotItem.cs:79
virtual Thing Thing
Definition: HotItem.cs:38
void OnCreateGame()
static bool Has(string id)
Definition: LangGame.cs:46
static LayerDrama Activate(string book, string idSheet, string idStep, Chara target=null, Card ref1=null, string tag="")
Definition: LayerDrama.cs:66
static List< LayerInventory > listInv
Definition: Layer.cs:9
int maxX
Definition: MapBounds.cs:14
int Width
Definition: MapBounds.cs:26
int x
Definition: MapBounds.cs:8
int Height
Definition: MapBounds.cs:28
List< Chara > charas
Definition: Map.cs:81
MapBounds bounds
Definition: Map.cs:52
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
void OnAdvanceDay()
void OnCreateGame()
List< Chara > members
Definition: Party.cs:18
void OnBuild(Recipe r)
Definition: Player.cs:553
bool KilledBossInVoid
Definition: Player.cs:306
bool IsStoryPlayed(int flag)
Definition: Player.cs:561
int lutz
Definition: Player.cs:486
void _OnSerializing(StreamingContext context)
Definition: Player.cs:534
bool gotEtherDisease
Definition: Player.cs:354
bool canComupWithFoodRecipe
Definition: Player.cs:294
bool magicChestSent
Definition: Player.cs:402
bool gotJurePillow
Definition: Player.cs:426
int GetStoryRowID(string idBook, string idStep)
Definition: Player.cs:566
bool toggleHotbarHighlightDisabled
Definition: Player.cs:378
bool loytelEscaped
Definition: Player.cs:366
bool PlayStory(int id, bool fromBook=false)
Definition: Player.cs:620
const int MonoDeparture
Definition: Player.cs:140
BitArray32 bits
Definition: Player.cs:157
int[] ints
Definition: Player.cs:143
void _OnDeserialized(StreamingContext context)
Definition: Player.cs:540
bool gotClickReward
Definition: Player.cs:162
int main
Definition: Player.cs:462
Dictionary< string, string > GetStoryRow(string idBook, int id)
Definition: Player.cs:578
ExcelData GetStoryExcelData(string idBook)
Definition: Player.cs:590
int start
Definition: Player.cs:438
bool abilityHighlightDisabled
Definition: Player.cs:258
bool PlayStory(string idBook, int id, bool fromBook=false)
Definition: Player.cs:603
List< int > availableStories
Definition: Player.cs:149
bool helpHighlightDisabled
Definition: Player.cs:210
int build
Definition: Player.cs:450
int storyFiama
Definition: Player.cs:474
void OnEnableDebug()
Definition: Player.cs:549
int landDeedBought
Definition: Player.cs:510
void AddStory(int id)
Definition: Player.cs:625
Dictionary< string, ExcelData > storyExcel
Definition: Player.cs:159
bool toggleHotbarHighlightActivated
Definition: Player.cs:414
void OnCreateGame()
Definition: Player.cs:545
bool gotMelilithCurse
Definition: Player.cs:282
List< string > reservedTutorial
Definition: Player.cs:155
List< int > playedStories
Definition: Player.cs:146
HashSet< int > pleaseDontTouch
Definition: Player.cs:152
bool elinGift
Definition: Player.cs:270
bool statueShipped
Definition: Player.cs:318
bool little_saved
Definition: Player.cs:330
bool debugEnabled
Definition: Player.cs:390
void OnLeaveZone()
Definition: Player.cs:663
bool fiamaStoryBookGiven
Definition: Player.cs:186
bool fiamaFirstDream
Definition: Player.cs:198
int daysAfterQuestExploration
Definition: Player.cs:498
bool backpackHighlightDisabled
Definition: Player.cs:246
bool welcome
Definition: Player.cs:174
int loytelMartLv
Definition: Player.cs:522
bool little_killed
Definition: Player.cs:342
bool pickedMelilithTreasure
Definition: Player.cs:222
void OnEnterZone()
Definition: Player.cs:635
bool isShoesOff
Definition: Player.cs:234
UIList.SortMode sortResearch
Definition: Player.cs:47
bool layerCraft
Definition: Player.cs:37
int lastIdTabAbility
Definition: Player.cs:31
LayerPeople.ShowMode modePoeple
Definition: Player.cs:55
UIList.SortMode sortInvShop
Definition: Player.cs:51
UIList.SortMode sortAbility
Definition: Player.cs:53
string lastBuildRecipe
Definition: Player.cs:29
bool sort_ascending
Definition: Player.cs:39
bool layerAbility
Definition: Player.cs:35
string lastBuildCategory
Definition: Player.cs:26
bool layerInventory
Definition: Player.cs:33
bool sort_ascending_shop
Definition: Player.cs:41
UIList.SortMode sortInv
Definition: Player.cs:49
UIList.SortMode sortResources
Definition: Player.cs:43
UIList.SortMode sortPeople
Definition: Player.cs:45
UIInventory.InteractMode interactMode
Definition: Player.cs:57
int digs
Definition: Player.cs:82
int taxBills
Definition: Player.cs:78
int deepest
Definition: Player.cs:92
int sieges
Definition: Player.cs:72
double timeElapsed
Definition: Player.cs:62
int shipNum
Definition: Player.cs:84
int mins
Definition: Player.cs:66
int kills
Definition: Player.cs:76
int turns
Definition: Player.cs:74
int taxBillsPaid
Definition: Player.cs:80
long shipMoney
Definition: Player.cs:98
int GetShippingBonus(long _a)
Definition: Player.cs:106
int lastShippingExp
Definition: Player.cs:101
int gambleChestOpen
Definition: Player.cs:96
int lastShippingExpMax
Definition: Player.cs:104
int allyDeath
Definition: Player.cs:90
int death
Definition: Player.cs:88
int days
Definition: Player.cs:68
int slept
Definition: Player.cs:86
int months
Definition: Player.cs:70
int kumi
Definition: Player.cs:64
int gambleChest
Definition: Player.cs:94
Definition: Player.cs:11
void SimulateFaction()
Definition: Player.cs:1612
int distanceTravel
Definition: Player.cs:700
int debt
Definition: Player.cs:754
int uidLastTown
Definition: Player.cs:745
void DreamSpell()
Definition: Player.cs:1553
bool IsCriminal
Definition: Player.cs:1138
int CountKeyItem(int id)
Definition: Player.cs:1951
ZoneTransition lastTransition
Definition: Player.cs:944
Flags flags
Definition: Player.cs:895
bool TooHeavyToMove()
Definition: Player.cs:2331
void CreateEquip()
Definition: Player.cs:1462
void OnAdvanceDay()
Definition: Player.cs:2167
Dictionary< string, string > lastRecipes
Definition: Player.cs:850
CodexManager codex
Definition: Player.cs:916
Layer SelectDomain(Action onKill=null)
Definition: Player.cs:1342
int lastFelmeraReward
Definition: Player.cs:742
HotItem lastHotItem
Definition: Player.cs:948
HashSet< int > sketches
Definition: Player.cs:871
Zone LastZone
Definition: Player.cs:1073
Action onStartZone
Definition: Player.cs:1018
List< int > uidPickOnLoad
Definition: Player.cs:922
bool showShippingResult
Definition: Player.cs:793
bool hasNewQuest
Definition: Player.cs:775
bool IsMageGuildMember
Definition: Player.cs:1086
void OnStartNewGame()
Definition: Player.cs:1182
bool IsFighterGuildMember
Definition: Player.cs:1099
bool useSubWidgetTheme
Definition: Player.cs:781
bool IsPriorityAction(string id, Thing t)
Definition: Player.cs:1299
bool CanSee(Chara c)
Definition: Player.cs:2221
Dictionary< string, KnownSong > knownSongs
Definition: Player.cs:847
void SetPriorityAction(string id, Thing t)
Definition: Player.cs:1269
RecipeManager recipes
Definition: Player.cs:898
NoticeManager notices
Definition: Player.cs:1008
bool preventDeathPenalty
Definition: Player.cs:968
float angle
Definition: Player.cs:772
WidgetManager.SaveData widgets
Definition: Player.cs:1035
bool deathZoneMove
Definition: Player.cs:970
Window.SaveData windowAllyInv
Definition: Player.cs:931
int uidSpawnZone
Definition: Player.cs:679
void OnAdvanceRealHour()
Definition: Player.cs:1312
void ModFame(int a)
Definition: Player.cs:1879
void ModKarma(int a)
Definition: Player.cs:2289
CinemaConfig cinemaConfig
Definition: Player.cs:913
void RefreshDomain()
Definition: Player.cs:1323
bool CanExitBorder(Point p)
Definition: Player.cs:1679
Pref pref
Definition: Player.cs:814
int karma
Definition: Player.cs:685
void ResetCurrentHotItem()
Definition: Player.cs:2039
Vector2 nextMove
Definition: Player.cs:1014
bool questTracker
Definition: Player.cs:790
void ToggleFavMoongate(string id)
Definition: Player.cs:2343
float lightPower
Definition: Player.cs:998
Stats stats
Definition: Player.cs:817
void OnExitBorder(Point p)
Definition: Player.cs:1696
int lightRadius
Definition: Player.cs:990
bool resetPrincipal
Definition: Player.cs:978
bool isAutoFarming
Definition: Player.cs:982
void EquipTool(Thing a, bool setHotItem=true)
Definition: Player.cs:1960
bool haltMove
Definition: Player.cs:972
List< Cell > lastMarkedHighlights
Definition: Player.cs:946
Chara _agent
Definition: Player.cs:889
bool HasKeyItem(string alias)
Definition: Player.cs:1941
bool EnableDreamStory
Definition: Player.cs:1069
bool HasValidRangedTarget()
Definition: Player.cs:2072
void AddInventory(Card c)
Definition: Player.cs:1861
bool invlunerable
Definition: Player.cs:974
int uidLastTravelZone
Definition: Player.cs:703
Zone zone
Definition: Player.cs:883
Chara focusedchara
Definition: Player.cs:1006
int countNewline
Definition: Player.cs:988
bool wellWished
Definition: Player.cs:784
int seedChest
Definition: Player.cs:751
bool willAutoSave
Definition: Player.cs:976
Zone spawnZone
Definition: Player.cs:1058
int MaxExpInfluence
Definition: Player.cs:1083
float baseActTime
Definition: Player.cs:1000
HashSet< int > knownBGMs
Definition: Player.cs:865
Dictionary< string, int > dialogFlags
Definition: Player.cs:841
int tutorialStep
Definition: Player.cs:682
int customLightMod
Definition: Player.cs:766
string memo
Definition: Player.cs:808
int extraTax
Definition: Player.cs:739
void EndTurn(bool consume=true)
Definition: Player.cs:1866
ElementContainer GetDomains()
Definition: Player.cs:1332
void EnterLocalZone(bool encounter=false, Chara mob=null)
Definition: Player.cs:1736
bool enemySpotted
Definition: Player.cs:984
int autoCombatStartHP
Definition: Player.cs:1024
int little_dead
Definition: Player.cs:733
HashSet< int > doneBackers
Definition: Player.cs:874
float pickupDelay
Definition: Player.cs:1002
int totalFeat
Definition: Player.cs:712
void OnBeforeSave()
Definition: Player.cs:1257
int ContainerSearchDistance
Definition: Player.cs:1077
Zone LastTravelZone
Definition: Player.cs:1071
bool TargetRanged()
Definition: Player.cs:2081
int uidLastZone
Definition: Player.cs:706
bool dailyGacha
Definition: Player.cs:778
int holyWell
Definition: Player.cs:724
void AddExpKnowledge(int a)
Definition: Player.cs:2255
HashSet< string > trackedCategories
Definition: Player.cs:856
static int realHour
Definition: Player.cs:938
int MaxAlly
Definition: Player.cs:1079
int CountKeyItem(string alias)
Definition: Player.cs:1946
void TryEquipBait()
Definition: Player.cs:2060
HashSet< int > knownCraft
Definition: Player.cs:877
WidgetManager.SaveData subWidgets
Definition: Player.cs:832
bool wasDirtyWeight
Definition: Player.cs:964
Dictionary< string, HashSet< string > > noRestocks
Definition: Player.cs:928
Zone nextZone
Definition: Player.cs:1026
Dictionary< string, Window.SaveData > dataWindow
Definition: Player.cs:910
int luckycoin
Definition: Player.cs:763
void OnAdvanceHour()
Definition: Player.cs:2147
List< int > domains
Definition: Player.cs:880
bool forceTalk
Definition: Player.cs:952
Point lastZonePos
Definition: Player.cs:904
bool prayed
Definition: Player.cs:787
HashSet< int > favAbility
Definition: Player.cs:868
Window.SaveData dataPick
Definition: Player.cs:835
int ignoreFallOver
Definition: Player.cs:996
void GenerateBackgroundText()
Definition: Player.cs:1417
void ModKeyItem(string alias, int num=1, bool msg=true)
Definition: Player.cs:1914
int MaxExpKnowledge
Definition: Player.cs:1081
int expInfluence
Definition: Player.cs:694
int seedShrine
Definition: Player.cs:748
int dateTravel
Definition: Player.cs:697
Chara target
Definition: Player.cs:1032
List< ShippingResult > shippingResults
Definition: Player.cs:925
void ModKeyItem(int id, int num=1, bool msg=true)
Definition: Player.cs:1919
bool instaComplete
Definition: Player.cs:956
bool IsThiefGuildMember
Definition: Player.cs:1112
void ExitBorder(ActPlan p=null)
Definition: Player.cs:1637
HotItem currentHotItem
Definition: Player.cs:901
Dictionary< string, string > hangIcons
Definition: Player.cs:844
string title
Definition: Player.cs:805
List< Chara > listSummon
Definition: Player.cs:1022
int unpaidBill
Definition: Player.cs:718
int safeTravel
Definition: Player.cs:727
PopupManager popups
Definition: Player.cs:826
Chara Agent
Definition: Player.cs:1075
Thing eqBait
Definition: Player.cs:907
bool showWorkaround
Definition: Player.cs:802
bool waitingInput
Definition: Player.cs:960
int uidChara
Definition: Player.cs:676
Dictionary< string, List< string > > priorityActions
Definition: Player.cs:853
KnowledgeManager knowledges
Definition: Player.cs:823
void MoveZone(Zone z)
Definition: Player.cs:1814
Thing DropReward(Thing t, bool silent=false)
Definition: Player.cs:2320
Thing renderThing
Definition: Player.cs:1028
ReturnInfo returnInfo
Definition: Player.cs:673
HashSet< string > trackedCards
Definition: Player.cs:859
bool regionMoveWarned
Definition: Player.cs:958
string memo2
Definition: Player.cs:811
int questRerollCost
Definition: Player.cs:769
int lastTurn
Definition: Player.cs:992
WidgetManager.SaveData mainWidgets
Definition: Player.cs:829
Window.SaveData windowDataCopy
Definition: Player.cs:940
void OnLoad()
Definition: Player.cs:1233
Chara chara
Definition: Player.cs:1004
HotItem hotItemToRestore
Definition: Player.cs:950
static int seedHallucination
Definition: Player.cs:936
int fame
Definition: Player.cs:688
void EnterLocalZone(Point p, ZoneTransition trans=null, bool encounter=false, Chara mob=null)
Definition: Player.cs:1741
void MarkMapHighlights()
Definition: Player.cs:2206
bool isEditor
Definition: Player.cs:796
PlayingSong playingSong
Definition: Player.cs:1020
bool willEndTurn
Definition: Player.cs:962
int bankMoney
Definition: Player.cs:721
HotItemNoItem hotItemNoItem
Definition: Player.cs:1030
void AddExpInfluence(int a)
Definition: Player.cs:2272
bool TryAbortAutoCombat(bool immediate=true)
Definition: Player.cs:2183
void ClearMapHighlights()
Definition: Player.cs:2197
int uidLastShippedZone
Definition: Player.cs:709
Act lastAct
Definition: Player.cs:1012
bool simulatingZone
Definition: Player.cs:980
LayerAbility.Config layerAbilityConfig
Definition: Player.cs:838
int expKnowledge
Definition: Player.cs:691
List< string > favMoongate
Definition: Player.cs:934
bool deathDialog
Definition: Player.cs:966
int little_saved
Definition: Player.cs:736
int lastEmptyAlly
Definition: Player.cs:994
void OnCreateGame()
Definition: Player.cs:1149
bool CanAcceptInput()
Definition: Player.cs:2212
HashSet< int > trackedElements
Definition: Player.cs:862
int hotbarPage
Definition: Player.cs:730
void RefreshEmptyAlly()
Definition: Player.cs:1403
NumLogManager nums
Definition: Player.cs:820
string GetBackgroundText()
Definition: Player.cs:1423
void RefreshCurrentHotItem()
Definition: Player.cs:1977
void EditBackgroundText()
Definition: Player.cs:1457
bool altHeldPos
Definition: Player.cs:954
QueueManager queues
Definition: Player.cs:1010
Dictionary< int, int > keyItems
Definition: Player.cs:919
string deathMsg
Definition: Player.cs:986
bool openContainerCenter
Definition: Player.cs:799
int giftJure
Definition: Player.cs:760
Hoard hoard
Definition: Player.cs:892
bool IsMerchantGuildMember
Definition: Player.cs:1125
string windowDataName
Definition: Player.cs:942
Vector3 position
Definition: Player.cs:1016
HotbarManager hotbars
Definition: Player.cs:886
int seedFortune
Definition: Player.cs:757
void SetCurrentHotItem(HotItem item)
Definition: Player.cs:2046
int taxBills
Definition: Player.cs:715
Definition: Point.cs:9
Point Copy()
Definition: Point.cs:467
Point Set(int _x, int _z)
Definition: Point.cs:479
int x
Definition: Point.cs:36
int z
Definition: Point.cs:39
bool Equals(int _x, int _z)
Definition: Point.cs:924
bool TryWitnessCrime(Chara criminal, Chara target=null, int radius=4, Func< Chara, bool > funcWitness=null)
Definition: Point.cs:845
bool IsValid
Definition: Point.cs:88
int Distance(Point p)
Definition: Point.cs:953
Cell cell
Definition: Point.cs:51
bool HasChara
Definition: Point.cs:226
string idStartZone
Definition: Prologue.cs:7
static int Phase
Definition: QuestMain.cs:23
List< Quest > list
Definition: QuestManager.cs:11
Quest Start(string id, string idGlobalChara)
Definition: QuestManager.cs:41
bool HasFarAwayEscort(bool execute=false)
Quest Get(string id)
Definition: Quest.cs:7
virtual void OnModKarma(int a)
Definition: Quest.cs:555
Definition: Recipe.cs:7
string id
Definition: Recipe.cs:161
static int Set(Zone zone)
Definition: RefZone.cs:12
static Zone Get(int uid)
Definition: RefZone.cs:3
bool CanCreateZone(Point pos)
Definition: Region.cs:215
Zone CreateZone(Point pos)
Definition: Region.cs:226
ReligionEyth Eyth
List< Religion > list
void OnChangeHour()
Definition: Religion.cs:537
Definition: Scene.cs:8
EloMap elomap
Definition: Scene.cs:143
PointTarget mouseTarget
Definition: Scene.cs:129
void Init(Mode newMode)
Definition: Scene.cs:172
Mode
Definition: Scene.cs:10
SourceKeyItem keyItems
SourceElement elements
int mapX
Definition: Spatial.cs:448
int lv
Definition: Spatial.cs:142
int uid
Definition: Spatial.cs:70
bool IsClosed
Definition: Spatial.cs:445
virtual bool IsRegion
Definition: Spatial.cs:501
virtual string Name
Definition: Spatial.cs:495
string id
Definition: Spatial.cs:13
int y
Definition: Spatial.cs:106
int mapY
Definition: Spatial.cs:460
int x
Definition: Spatial.cs:94
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
void DestroyAll(Func< Thing, bool > funcExclude=null)
Thing Find(int uid)
void SetSize(int w, int h)
void Foreach(Action< Thing > action, bool onlyAccessible=true)
static Thing CreateSpellbook(string alias, int num=1)
Definition: ThingGen.cs:151
static Thing CreateCurrency(int a, string id="money")
Definition: ThingGen.cs:37
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
override bool OnUse(Chara c)
virtual HotItem GetHotItem()
Definition: Trait.cs:914
virtual bool CanOnlyCarry
Definition: Trait.cs:283
static void Reserve(string idStep, Action onBeforePlay=null)
Definition: Tutorial.cs:55
Definition: UIList.cs:9
SortMode
Definition: UIList.cs:27
static UIResourceTrack Instance
static WidgetCurrentTool Instance
static void RefreshCurrentHotItem()
ButtonHotItem buttonHotItem
ButtonGrid selectedButton
static WidgetMinimap Instance
static WidgetRoster Instance
Definition: WidgetRoster.cs:36
void OnMoveZone()
Definition: WidgetRoster.cs:91
Definition: Window.cs:13
static Dictionary< string, SaveData > dictData
Definition: Window.cs:594
void UpdateSaveData()
Definition: Window.cs:1093
GameDate date
Definition: World.cs:6
void AddPreEnter(ZonePreEnterEvent e, bool executeIfActiveZone=true)
virtual bool WarnExit
Definition: ZoneInstance.cs:28
static EnterState DirToState(int dir)
Definition: Zone.cs:12
virtual bool BlockBorderExit
Definition: Zone.cs:166
ZoneEventManager events
Definition: Zone.cs:40
void RefreshCriminal()
Definition: Zone.cs:3268
virtual ZoneTransition.EnterState RegionEnterState
Definition: Zone.cs:170
Zone ParentZone
Definition: Zone.cs:162
bool IsPCFaction
Definition: Zone.cs:464
ZoneInstance instance
Definition: Zone.cs:52
Region Region
Definition: Zone.cs:160
Zone GetZoneAt(int _x, int _y)
Definition: Zone.cs:3237
Card AddCard(Card t, Point point)
Definition: Zone.cs:1893
uint Bits
Definition: BitArray32.cs:6