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