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