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