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