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