Elin Decompiled Documentation EA 23.200 Stable
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 bool killedDuponne
554 {
555 get
556 {
557 return bits[32];
558 }
559 set
560 {
561 bits[32] = value;
562 }
563 }
564
565 public int start
566 {
567 get
568 {
569 return ints[10];
570 }
571 set
572 {
573 ints[10] = value;
574 }
575 }
576
577 public int build
578 {
579 get
580 {
581 return ints[11];
582 }
583 set
584 {
585 ints[11] = value;
586 }
587 }
588
589 public int main
590 {
591 get
592 {
593 return ints[13];
594 }
595 set
596 {
597 ints[13] = value;
598 }
599 }
600
601 public int storyFiama
602 {
603 get
604 {
605 return ints[14];
606 }
607 set
608 {
609 ints[14] = value;
610 }
611 }
612
613 public int lutz
614 {
615 get
616 {
617 return ints[15];
618 }
619 set
620 {
621 ints[15] = value;
622 }
623 }
624
626 {
627 get
628 {
629 return ints[16];
630 }
631 set
632 {
633 ints[16] = value;
634 }
635 }
636
637 public int landDeedBought
638 {
639 get
640 {
641 return ints[17];
642 }
643 set
644 {
645 ints[17] = value;
646 }
647 }
648
649 public int loytelMartLv
650 {
651 get
652 {
653 return ints[18];
654 }
655 set
656 {
657 ints[18] = value;
658 }
659 }
660
661 public int reward_gould
662 {
663 get
664 {
665 return ints[19];
666 }
667 set
668 {
669 ints[19] = value;
670 }
671 }
672
674 {
675 get
676 {
677 return ints[20];
678 }
679 set
680 {
681 ints[20] = value;
682 }
683 }
684
685 [OnSerializing]
686 private void _OnSerializing(StreamingContext context)
687 {
688 ints[0] = (int)bits.Bits;
689 }
690
691 [OnDeserialized]
692 private void _OnDeserialized(StreamingContext context)
693 {
694 bits.Bits = (uint)ints[0];
695 }
696
697 public void OnCreateGame()
698 {
699 }
700
701 public void OnEnableDebug()
702 {
703 }
704
705 public void OnBuild(Recipe r)
706 {
707 if (build == 0 && r.id == "workbench")
708 {
709 build = 1;
710 }
711 }
712
713 public bool IsStoryPlayed(int flag)
714 {
715 return playedStories.Contains(flag);
716 }
717
718 public int GetStoryRowID(string idBook, string idStep)
719 {
720 foreach (Dictionary<string, string> item in GetStoryExcelData(idBook).sheets["index"].list)
721 {
722 if (item["step"] == idStep)
723 {
724 return item["id"].ToInt();
725 }
726 }
727 return 0;
728 }
729
730 public Dictionary<string, string> GetStoryRow(string idBook, int id)
731 {
732 foreach (Dictionary<string, string> item in GetStoryExcelData(idBook).sheets["index"].list)
733 {
734 if (item["id"].ToInt() == id)
735 {
736 return item;
737 }
738 }
739 return null;
740 }
741
742 public ExcelData GetStoryExcelData(string idBook)
743 {
744 ExcelData excelData = storyExcel.TryGetValue(idBook);
745 if (excelData == null)
746 {
747 excelData = new ExcelData();
748 excelData.path = CorePath.DramaData + idBook + ".xlsx";
749 excelData.BuildList("index");
750 storyExcel.Add(idBook, excelData);
751 }
752 return excelData;
753 }
754
755 public bool PlayStory(string idBook, int id, bool fromBook = false)
756 {
757 if (!fromBook && playedStories.Contains(id))
758 {
759 return false;
760 }
761 Dictionary<string, string> storyRow = GetStoryRow(idBook, id);
762 SoundManager.ForceBGM();
763 LayerDrama.fromBook = fromBook;
764 LayerDrama.Activate(idBook, storyRow["sheet"], storyRow["step"]);
765 if (!fromBook && !playedStories.Contains(id))
766 {
767 playedStories.Add(id);
768 }
769 return true;
770 }
771
772 public bool PlayStory(int id, bool fromBook = false)
773 {
774 return PlayStory("_main", id, fromBook);
775 }
776
777 public void AddStory(int id)
778 {
779 if (!playedStories.Contains(id) && !availableStories.Contains(id))
780 {
781 availableStories.Add(id);
782 Msg.Say("story_added");
783 SE.WriteJournal();
784 }
785 }
786
787 public void OnEnterZone()
788 {
789 if (EClass._zone.id == "nymelle")
790 {
791 if (EClass._zone.lv == -1)
792 {
793 AddStory(10);
794 }
795 if (EClass._zone.lv == -2)
796 {
797 AddStory(20);
798 }
799 if (EClass._zone.lv == -3)
800 {
801 AddStory(30);
802 }
803 }
804 if (QuestMain.Phase == 700 && EClass._zone.id == "lothria")
805 {
806 PlayStory(50);
807 }
809 {
811 availableStories.RemoveAt(0);
812 }
813 }
814
815 public void OnLeaveZone()
816 {
817 if (QuestMain.Phase == 700)
818 {
819 PlayStory(40);
820 }
821 }
822 }
823
824 [JsonProperty]
826
827 [JsonProperty]
828 public int uidChara;
829
830 [JsonProperty]
831 public int uidSpawnZone;
832
833 [JsonProperty]
834 public int tutorialStep;
835
836 [JsonProperty]
837 public int karma;
838
839 [JsonProperty]
840 public int fame;
841
842 [JsonProperty]
843 public int expKnowledge;
844
845 [JsonProperty]
846 public int expInfluence;
847
848 [JsonProperty]
849 public int dateTravel;
850
851 [JsonProperty]
852 public int distanceTravel;
853
854 [JsonProperty]
856
857 [JsonProperty]
858 public int uidLastZone;
859
860 [JsonProperty]
862
863 [JsonProperty]
864 public int totalFeat;
865
866 [JsonProperty]
867 public int taxBills;
868
869 [JsonProperty]
870 public int unpaidBill;
871
872 [JsonProperty]
873 public int bankMoney;
874
875 [JsonProperty]
876 public int holyWell;
877
878 [JsonProperty]
879 public int safeTravel;
880
881 [JsonProperty]
882 public int hotbarPage;
883
884 [JsonProperty]
885 public int little_dead;
886
887 [JsonProperty]
888 public int little_saved;
889
890 [JsonProperty]
891 public int extraTax;
892
893 [JsonProperty]
895
896 [JsonProperty]
897 public int uidLastTown;
898
899 [JsonProperty]
900 public int seedShrine;
901
902 [JsonProperty]
903 public int seedChest;
904
905 [JsonProperty]
906 public int debt;
907
908 [JsonProperty]
909 public int seedFortune;
910
911 [JsonProperty]
912 public int giftJure;
913
914 [JsonProperty]
915 public int luckycoin;
916
917 [JsonProperty]
918 public int customLightMod = 3;
919
920 [JsonProperty]
921 public int questRerollCost;
922
923 [JsonProperty]
924 public int fished;
925
926 [JsonProperty]
927 public float angle;
928
929 [JsonProperty]
930 public bool hasNewQuest;
931
932 [JsonProperty]
933 public bool dailyGacha;
934
935 [JsonProperty]
936 public bool useSubWidgetTheme;
937
938 [JsonProperty]
939 public bool wellWished;
940
941 [JsonProperty]
942 public bool prayed;
943
944 [JsonProperty]
945 public bool questTracker;
946
947 [JsonProperty]
949
950 [JsonProperty]
951 public bool isEditor;
952
953 [JsonProperty]
955
956 [JsonProperty]
957 public bool showWorkaround;
958
959 [JsonProperty]
960 public string title;
961
962 [JsonProperty]
963 public string memo = "";
964
965 [JsonProperty]
966 public string memo2 = "";
967
968 [JsonProperty]
969 public Pref pref = new Pref();
970
971 [JsonProperty]
972 public Stats stats = new Stats();
973
974 [JsonProperty]
976
977 [JsonProperty]
979
980 [JsonProperty]
982
983 [JsonProperty]
985
986 [JsonProperty]
988
989 [JsonProperty]
991
992 [JsonProperty]
994
995 [JsonProperty]
996 public Dictionary<string, int> dialogFlags = new Dictionary<string, int>();
997
998 [JsonProperty]
999 public Dictionary<string, string> hangIcons = new Dictionary<string, string>();
1000
1001 [JsonProperty]
1002 public Dictionary<string, KnownSong> knownSongs = new Dictionary<string, KnownSong>();
1003
1004 [JsonProperty]
1005 public Dictionary<string, string> lastRecipes = new Dictionary<string, string>();
1006
1007 [JsonProperty]
1008 public Dictionary<string, List<string>> priorityActions = new Dictionary<string, List<string>>();
1009
1010 [JsonProperty]
1011 public HashSet<string> trackedCategories = new HashSet<string>();
1012
1013 [JsonProperty]
1014 public HashSet<string> trackedCards = new HashSet<string>();
1015
1016 [JsonProperty]
1017 public HashSet<int> trackedElements = new HashSet<int>();
1018
1019 [JsonProperty]
1020 public HashSet<int> knownBGMs = new HashSet<int>();
1021
1022 [JsonProperty]
1023 public HashSet<int> favAbility = new HashSet<int>();
1024
1025 [JsonProperty]
1026 public HashSet<int> sketches = new HashSet<int>();
1027
1028 [JsonProperty]
1029 public HashSet<int> doneBackers = new HashSet<int>();
1030
1031 [JsonProperty]
1032 public HashSet<int> knownCraft = new HashSet<int>();
1033
1034 [JsonProperty]
1035 public List<int> domains = new List<int>();
1036
1037 [JsonProperty]
1038 public Zone zone;
1039
1040 [JsonProperty]
1042
1043 [JsonProperty]
1045
1046 [JsonProperty]
1047 public Hoard hoard = new Hoard();
1048
1049 [JsonProperty]
1050 public Flags flags = new Flags();
1051
1052 [JsonProperty]
1054
1055 [JsonProperty]
1057
1058 [JsonProperty]
1060
1061 [JsonProperty]
1063
1064 [JsonProperty]
1065 public Dictionary<string, Window.SaveData> dataWindow;
1066
1067 [JsonProperty]
1069
1070 [JsonProperty]
1072
1073 [JsonProperty]
1074 public Dictionary<int, int> keyItems = new Dictionary<int, int>();
1075
1076 [JsonProperty]
1077 public List<int> uidPickOnLoad = new List<int>();
1078
1079 [JsonProperty]
1080 public List<ShippingResult> shippingResults = new List<ShippingResult>();
1081
1082 [JsonProperty]
1083 public Dictionary<string, HashSet<string>> noRestocks = new Dictionary<string, HashSet<string>>();
1084
1085 [JsonProperty]
1087
1088 [JsonProperty]
1089 public List<string> favMoongate = new List<string>();
1090
1091 public static int seedHallucination;
1092
1093 public static int realHour;
1094
1096
1097 public string windowDataName;
1098
1100
1101 public List<Cell> lastMarkedHighlights = new List<Cell>();
1102
1104
1106
1107 public bool forceTalk;
1108
1109 public bool altHeldPos;
1110
1111 public bool instaComplete = true;
1112
1113 public bool regionMoveWarned;
1114
1115 public bool waitingInput;
1116
1117 public bool willEndTurn;
1118
1119 public bool wasDirtyWeight;
1120
1121 public bool deathDialog;
1122
1124
1125 public bool deathZoneMove;
1126
1127 public bool haltMove;
1128
1129 public bool invlunerable;
1130
1131 public bool willAutoSave;
1132
1133 public bool resetPrincipal;
1134
1135 public bool simulatingZone;
1136
1137 public bool isAutoFarming;
1138
1139 public bool enemySpotted;
1140
1141 public string deathMsg;
1142
1143 public int countNewline;
1144
1145 public int lightRadius;
1146
1147 public int lastTurn;
1148
1149 public int lastEmptyAlly;
1150
1151 public int ignoreFallOver;
1152
1153 public float lightPower;
1154
1155 public float baseActTime;
1156
1157 public float pickupDelay = 2f;
1158
1159 public Chara chara;
1160
1162
1164
1166
1167 public Act lastAct;
1168
1169 public Vector2 nextMove;
1170
1171 public Vector3 position;
1172
1173 public Action onStartZone;
1174
1176
1177 public List<Chara> listSummon = new List<Chara>();
1178
1180
1182
1184
1186
1188
1190 {
1191 get
1192 {
1193 if (!useSubWidgetTheme)
1194 {
1195 return mainWidgets;
1196 }
1197 return subWidgets;
1198 }
1199 set
1200 {
1202 {
1203 subWidgets = value;
1204 }
1205 else
1206 {
1207 mainWidgets = value;
1208 }
1209 }
1210 }
1211
1213 {
1214 get
1215 {
1216 return RefZone.Get(uidSpawnZone);
1217 }
1218 set
1219 {
1220 uidSpawnZone = RefZone.Set(value);
1221 }
1222 }
1223
1224 public bool EnableDreamStory => false;
1225
1227
1229
1230 public Chara Agent => _agent;
1231
1233
1234 public int MaxAlly => Mathf.Min(Mathf.Max(EClass.pc.CHA / 10, 1), 5) + EClass.pc.Evalue(1645);
1235
1236 public int MaxExpKnowledge => 1000;
1237
1238 public int MaxExpInfluence => 1000;
1239
1241 {
1242 get
1243 {
1244 Quest quest = EClass.game.quests.Get("guild_mage");
1245 if (quest == null)
1246 {
1247 return false;
1248 }
1249 return quest.phase >= 10;
1250 }
1251 }
1252
1254 {
1255 get
1256 {
1257 Quest quest = EClass.game.quests.Get("guild_fighter");
1258 if (quest == null)
1259 {
1260 return false;
1261 }
1262 return quest.phase >= 10;
1263 }
1264 }
1265
1267 {
1268 get
1269 {
1270 Quest quest = EClass.game.quests.Get("guild_thief");
1271 if (quest == null)
1272 {
1273 return false;
1274 }
1275 return quest.phase >= 10;
1276 }
1277 }
1278
1280 {
1281 get
1282 {
1283 Quest quest = EClass.game.quests.Get("guild_merchant");
1284 if (quest == null)
1285 {
1286 return false;
1287 }
1288 return quest.phase >= 10;
1289 }
1290 }
1291
1292 public bool IsCriminal
1293 {
1294 get
1295 {
1296 if (karma < 0)
1297 {
1299 }
1300 return false;
1301 }
1302 }
1303
1304 public void OnCreateGame()
1305 {
1306 karma = 30;
1307 debt = 20000000;
1308 chara = CharaGen.Create("chara");
1310 chara.things.SetSize(7, 5);
1311 chara.c_idTone = "default";
1312 chara.SetInt(56, 1);
1314 chara.faith = EClass.game.religions.Eyth;
1316 uidChara = chara.uid;
1317 Fav fav = IO.LoadFile<Fav>(CorePath.user + "PCC/fav" + EClass.rnd(3));
1318 chara.pccData = IO.Duplicate(fav.data);
1320 RefreshDomain();
1321 _agent = CharaGen.Create("chara");
1322 _agent.c_altName = "stash".lang();
1323 EClass.player.title = "master".lang();
1328 sketches.Add(115);
1329 pref.sort_ascending_shop = true;
1330 EClass.game.config.preference.autoEat = true;
1331 flags.toggleHotbarHighlightDisabled = true;
1332 layerAbilityConfig.hideDepletedSpell = true;
1333 layerAbilityConfig.bgAlpha = 70;
1334 memo = (memo2 = "memo_blank".lang());
1335 }
1336
1337 public void OnStartNewGame()
1338 {
1339 ModKeyItem("old_charm", 1, msg: false);
1340 ModKeyItem("backpack", 1, msg: false);
1341 EClass.player.knownBGMs.Add(1);
1342 EClass.player.knownBGMs.Add(3);
1343 EClass.player.questTracker = true;
1344 trackedCategories.Add("food");
1345 trackedCategories.Add("drink");
1346 trackedCategories.Add("resource");
1347 EClass.game.quests.Start("main");
1348 chara.hp = chara.MaxHP;
1350 chara.elements.SetBase(135, 1);
1351 chara.elements.SetBase(6003, 1);
1352 chara.elements.SetBase(6012, 1);
1353 chara.elements.SetBase(6015, 1);
1354 chara.elements.SetBase(6050, 1);
1355 List<Element> list = new List<Element>();
1356 foreach (Element value in EClass.pc.elements.dict.Values)
1357 {
1358 list.Add(value);
1359 }
1360 foreach (Element item in list)
1361 {
1362 if (item.Value == 0)
1363 {
1365 }
1366 else if (item.HasTag("primary"))
1367 {
1368 item.vTempPotential = Mathf.Max(30, (item.ValueWithoutLink - 8) * 7);
1369 }
1370 }
1371 foreach (BodySlot slot in chara.body.slots)
1372 {
1373 chara.body.Unequip(slot);
1374 }
1376 CreateEquip();
1381 EClass.pc.hunger.value = 30;
1383 EClass.pc.stamina.Set(EClass.pc.stamina.max / 2);
1384 EClass.pc.Refresh();
1385 isEditor = Application.isEditor;
1386 }
1387
1388 public void OnLoad()
1389 {
1390 nums.OnLoad();
1391 codex.OnLoad();
1392 if (dataWindow != null)
1393 {
1394 Window.dictData = dataWindow;
1395 }
1396 EClass.pc.Refresh();
1397 if (Application.isEditor && EClass.debug.resetPlayerConfig && !isEditor)
1398 {
1399 EClass.game.config = new Game.Config();
1400 if (dataWindow != null)
1401 {
1402 dataWindow.Clear();
1403 }
1404 EClass.pc.things.Foreach(delegate(Thing t)
1405 {
1406 t.c_windowSaveData = null;
1407 }, onlyAccessible: false);
1408 }
1409 isEditor = Application.isEditor;
1410 }
1411
1412 public void OnBeforeSave()
1413 {
1414 foreach (Layer layer in EClass.ui.layerFloat.layers)
1415 {
1416 foreach (Window componentsInDirectChild in layer.GetComponentsInDirectChildren<Window>())
1417 {
1418 componentsInDirectChild.UpdateSaveData();
1419 }
1420 }
1422 }
1423
1424 public void SetPriorityAction(string id, Thing t)
1425 {
1426 if (t == null)
1427 {
1428 return;
1429 }
1430 if (id.IsEmpty())
1431 {
1432 foreach (List<string> p in priorityActions.Values)
1433 {
1434 p.ForeachReverse(delegate(string i)
1435 {
1436 if (i == t.id)
1437 {
1438 p.Remove(i);
1439 }
1440 });
1441 }
1442 return;
1443 }
1444 if (!priorityActions.ContainsKey(id))
1445 {
1446 priorityActions[id] = new List<string>();
1447 }
1448 if (!priorityActions[id].Contains(t.id))
1449 {
1450 priorityActions[id].Add(t.id);
1451 }
1452 }
1453
1454 public bool IsPriorityAction(string id, Thing t)
1455 {
1456 if (!id.IsEmpty() && t != null)
1457 {
1458 List<string> list = priorityActions.TryGetValue(id);
1459 if (list != null && list.Contains(t.id))
1460 {
1461 return true;
1462 }
1463 }
1464 return false;
1465 }
1466
1467 public void OnAdvanceRealHour()
1468 {
1469 realHour++;
1470 Msg.Say("time_warn", realHour.ToString() ?? "");
1471 string text = "time_warn_" + realHour;
1472 if (LangGame.Has(text))
1473 {
1474 Msg.Say(text);
1475 }
1476 }
1477
1478 public void RefreshDomain()
1479 {
1480 domains.Clear();
1481 for (int i = 0; i < EClass.pc.job.domain.Length; i += 2)
1482 {
1483 domains.Add(EClass.pc.job.domain[i]);
1484 }
1485 }
1486
1488 {
1489 ElementContainer elementContainer = new ElementContainer();
1490 foreach (int domain in domains)
1491 {
1492 elementContainer.GetOrCreateElement(domain).vSource = 1;
1493 }
1494 return elementContainer;
1495 }
1496
1497 public Layer SelectDomain(Action onKill = null)
1498 {
1499 List<SourceElement.Row> list2 = new List<SourceElement.Row>();
1500 foreach (SourceElement.Row row2 in EClass.sources.elements.rows)
1501 {
1502 if (row2.categorySub == "eleAttack" && !row2.tag.Contains("hidden") && (!row2.tag.Contains("high") || EClass.pc.job.domain.Contains(row2.id)))
1503 {
1504 list2.Add(row2);
1505 }
1506 }
1507 return EClass.ui.AddLayer<LayerList>().SetListCheck(list2, (SourceElement.Row a) => a.GetName(), delegate(SourceElement.Row s, ItemGeneral b)
1508 {
1509 bool flag4 = false;
1510 foreach (int domain in EClass.player.domains)
1511 {
1512 if (s.id == domain)
1513 {
1514 flag4 = true;
1515 }
1516 }
1517 if (flag4)
1518 {
1519 EClass.player.domains.Remove(s.id);
1520 }
1521 else
1522 {
1523 EClass.player.domains.Add(s.id);
1524 }
1525 }, delegate(List<UIList.ButtonPair> list)
1526 {
1527 bool flag = EClass.player.domains.Count >= 3 + EClass.pc.Evalue(1402);
1528 foreach (UIList.ButtonPair item in list)
1529 {
1530 UIButton button = (item.component as ItemGeneral).button1;
1531 SourceElement.Row row = item.obj as SourceElement.Row;
1532 bool flag2 = false;
1533 bool flag3 = false;
1534 foreach (int domain2 in EClass.player.domains)
1535 {
1536 if (row.id == domain2)
1537 {
1538 flag3 = true;
1539 }
1540 }
1541 button.SetCheck(flag3);
1542 for (int i = 0; i < ((EClass.pc.job.id == "swordsage") ? 5 : 3); i++)
1543 {
1544 if (EClass.pc.job.domain[i * 2] == row.id)
1545 {
1546 flag2 = true;
1547 }
1548 }
1549 button.interactable = !flag2 && (!flag || flag3);
1550 button.GetComponent<CanvasGroup>().enabled = !button.interactable;
1551 }
1552 }).SetOnKill(delegate
1553 {
1554 onKill?.Invoke();
1555 });
1556 }
1557
1558 public void RefreshEmptyAlly()
1559 {
1560 int num = MaxAlly - EClass.pc.party.members.Count + 1;
1561 if (num == lastEmptyAlly)
1562 {
1563 return;
1564 }
1565 lastEmptyAlly = num;
1566 foreach (Chara member in EClass.pc.party.members)
1567 {
1568 member.RefreshSpeed();
1569 }
1570 }
1571
1573 {
1574 string text = IO.LoadText(new DirectoryInfo(CorePath.CorePackage.Background).GetFiles("*.txt").RandomItem().FullName);
1575 IO.SaveText(GameIO.pathCurrentSave + "background.txt", text);
1576 }
1577
1578 public string GetBackgroundText()
1579 {
1580 StringBuilder stringBuilder = new StringBuilder(IO.LoadText(GameIO.pathCurrentSave + "background.txt"));
1581 stringBuilder.Replace("#name", EClass.pc.NameSimple);
1582 stringBuilder.Replace("#aka", EClass.pc.Aka);
1583 stringBuilder.Replace("#father", EClass.pc.bio.nameDad);
1584 stringBuilder.Replace("#mother", EClass.pc.bio.nameMom);
1585 stringBuilder.Replace("#birthloc2", EClass.pc.bio.nameHome);
1586 stringBuilder.Replace("#birthloc", EClass.pc.bio.nameLoc);
1587 stringBuilder.Replace("#job", EClass.pc.job.GetName().AddArticle());
1588 stringBuilder.Replace("#year", EClass.pc.bio.birthYear.ToString() ?? "");
1589 stringBuilder.Replace("#month", EClass.pc.bio.birthMonth.ToString() ?? "");
1590 stringBuilder.Replace("#day", EClass.pc.bio.birthDay.ToString() ?? "");
1591 stringBuilder.Replace("#he", (EClass.pc.IsMale ? "he" : "she").lang());
1592 stringBuilder.Replace("#his", (EClass.pc.IsMale ? "his" : "her").lang());
1593 stringBuilder.Replace("#him", (EClass.pc.IsMale ? "him" : "her").lang());
1594 string separator = "_period".lang();
1595 stringBuilder.ToString().Split(separator);
1596 return stringBuilder.ToString().TrimEnd(Environment.NewLine.ToCharArray());
1597 }
1598
1600 {
1601 Util.Run(GameIO.pathCurrentSave + "background.txt");
1602 }
1603
1604 public void CreateEquip()
1605 {
1606 Chara c = EClass.pc;
1607 c.body.AddBodyPart(45);
1608 if (EClass.debug.enable)
1609 {
1610 EClass.pc.EQ_ID("lantern_old");
1611 }
1612 c.body.AddBodyPart(44);
1613 c.EQ_ID("toolbelt").c_IDTState = 0;
1614 c.EQ_ID("shirt").c_IDTState = 0;
1616 bool firstSpellbook = true;
1617 switch (EClass.pc.job.id)
1618 {
1619 case "paladin":
1620 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8400), 2));
1621 break;
1622 case "inquisitor":
1623 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8706), 4));
1624 break;
1625 case "witch":
1626 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8790), 4));
1627 break;
1628 case "swordsage":
1629 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(50300), 4));
1630 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(50301), 4));
1631 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(50802), 2));
1632 c.AddCard(ThingGen.Create("tool_talisman"));
1633 break;
1634 }
1635 switch (EClass.pc.job.id)
1636 {
1637 case "wizard":
1638 case "warmage":
1639 case "priest":
1640 case "witch":
1641 {
1642 int num = 0;
1643 foreach (int domain in EClass.player.domains)
1644 {
1645 Element element = Element.Create(domain);
1646 string text = "";
1647 string[] tag = element.source.tag;
1648 foreach (string text2 in tag)
1649 {
1650 if (text != "")
1651 {
1652 break;
1653 }
1654 switch (text2)
1655 {
1656 case "hand":
1657 case "arrow":
1658 case "bolt":
1659 text = text2 + "_";
1660 break;
1661 }
1662 }
1663 if (text != "")
1664 {
1665 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(text + element.source.alias.Replace("ele", "")), 4));
1666 num++;
1667 if (num >= 2)
1668 {
1669 break;
1670 }
1671 }
1672 }
1673 if (EClass.pc.job.id == "priest")
1674 {
1675 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8400), 2));
1676 }
1677 else
1678 {
1679 c.AddCard(SetSpellbook(ThingGen.CreateSpellbook(8200), 2));
1680 }
1681 break;
1682 }
1683 default:
1684 c.AddCard(ThingGen.Create("bandage").SetNum(6 + EClass.rnd(3)));
1685 break;
1686 }
1687 Thing SetSpellbook(Thing t, int charge)
1688 {
1689 if (firstSpellbook)
1690 {
1691 c.AddCard(ThingGen.CreateRedBook("guide_magic"));
1692 firstSpellbook = false;
1693 }
1694 t.AddEditorTag(EditorTag.NoReadFail);
1695 t.c_charges = charge;
1696 t.SetBlessedState(BlessedState.Normal);
1697 return t;
1698 }
1699 }
1700
1701 public void DreamSpell()
1702 {
1703 int num = EClass.pc.Evalue(1653);
1704 if (num == 0 && EClass.pc.Evalue(1402) == 0 && EClass.rnd(4) != 0)
1705 {
1706 return;
1707 }
1708 List<SourceElement.Row> list = new List<SourceElement.Row>();
1709 foreach (int domain in EClass.player.domains)
1710 {
1711 Element element = Element.Create(domain);
1712 string text = "";
1713 string[] tag = element.source.tag;
1714 foreach (string text2 in tag)
1715 {
1716 if (text != "")
1717 {
1718 break;
1719 }
1720 bool flag = false;
1721 switch (text2)
1722 {
1723 case "hand":
1724 case "arrow":
1725 case "bolt":
1726 flag = true;
1727 break;
1728 }
1729 if (num >= 3)
1730 {
1731 switch (text2)
1732 {
1733 case "ball":
1734 case "weapon":
1735 case "funnel":
1736 case "miasma":
1737 case "sword":
1738 flag = true;
1739 break;
1740 }
1741 }
1742 if (flag)
1743 {
1744 list.Add(EClass.sources.elements.alias[text2 + "_" + element.source.alias.Replace("ele", "")]);
1745 }
1746 }
1747 }
1748 if (list.Count != 0)
1749 {
1750 SourceElement.Row row = list.RandomItemWeighted((SourceElement.Row a) => a.chance);
1751 Element element2 = EClass.pc.elements.GetElement(row.id);
1752 int mtp = ((num == 0) ? 100 : (75 + num * 25));
1753 if (num > 0 || element2 == null || element2.vPotential == 0)
1754 {
1755 Msg.Say("dream_spell", EClass.sources.elements.alias[row.aliasRef].GetText("altname").Split(',')[0].ToLowerInvariant());
1756 EClass.pc.GainAbility(row.id, mtp);
1757 }
1758 }
1759 }
1760
1761 public void SimulateFaction()
1762 {
1763 simulatingZone = true;
1764 Zone currentZone = EClass.pc.currentZone;
1765 Point point = EClass.pc.pos.Copy();
1766 foreach (FactionBranch child in EClass.pc.faction.GetChildren())
1767 {
1768 if (child.owner != currentZone)
1769 {
1770 EClass.pc.MoveZone(child.owner);
1771 zone = child.owner;
1772 EClass.scene.Init(Scene.Mode.Zone);
1773 }
1774 }
1775 EClass.pc.MoveZone(currentZone, new ZoneTransition
1776 {
1777 state = ZoneTransition.EnterState.Exact,
1778 x = point.x,
1779 z = point.z
1780 });
1781 zone = currentZone;
1782 EClass.scene.Init(Scene.Mode.Zone);
1783 simulatingZone = false;
1784 }
1785
1786 public void ExitBorder(ActPlan p = null)
1787 {
1788 bool flag = EClass.game.quests.HasFarAwayEscort();
1789 string textDialog = (flag ? "ExitZoneEscort" : "ExitZone").lang(EClass._zone.Name);
1790 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;
1792 {
1793 if (p == null)
1794 {
1795 Dialog.YesNo(textDialog, delegate
1796 {
1797 EClass.game.quests.HasFarAwayEscort(execute: true);
1799 }, delegate
1800 {
1801 });
1802 return;
1803 }
1804 p.TrySetAct("actNewZone", delegate
1805 {
1806 Dialog.YesNo(textDialog, delegate
1807 {
1808 EClass.game.quests.HasFarAwayEscort(execute: true);
1810 });
1811 return false;
1812 }, CursorSystem.MoveZone, (!flag2) ? 1 : 999);
1813 }
1814 else if (p == null)
1815 {
1817 }
1818 else
1819 {
1820 p.TrySetAct("actNewZone", delegate
1821 {
1823 return false;
1824 }, CursorSystem.MoveZone, (!flag2) ? 1 : 999);
1825 }
1826 }
1827
1828 public bool CanExitBorder(Point p)
1829 {
1830 if (EClass._zone == EClass.game.StartZone && EClass.pc.homeBranch == null)
1831 {
1832 return false;
1833 }
1835 {
1836 return false;
1837 }
1838 if (EClass.pc.held != null && EClass.pc.held.trait.CanOnlyCarry)
1839 {
1840 return false;
1841 }
1842 return true;
1843 }
1844
1845 public void OnExitBorder(Point p)
1846 {
1848 {
1849 int num = 0;
1850 int num2 = 0;
1851 MapBounds bounds = EClass._map.bounds;
1852 if (p.x < bounds.x)
1853 {
1854 num = -1;
1855 }
1856 else if (p.x <= bounds.maxX)
1857 {
1858 num2 = ((p.z >= bounds.z) ? 1 : (-1));
1859 }
1860 else
1861 {
1862 num = 1;
1863 }
1864 ZoneTransition.EnterState state = num switch
1865 {
1866 -1 => ZoneTransition.EnterState.Right,
1867 1 => ZoneTransition.EnterState.Left,
1868 _ => (num2 == 1) ? ZoneTransition.EnterState.Bottom : ZoneTransition.EnterState.Top,
1869 };
1870 float ratePos = ((num == 1 || num == -1) ? ((float)(p.z - bounds.z) / (float)bounds.Height) : ((float)(p.x - bounds.x) / (float)bounds.Width));
1871 ZoneTransition trans = new ZoneTransition
1872 {
1873 state = state,
1874 ratePos = ratePos
1875 };
1876 Point p2 = new Point(EClass._zone.x + num, EClass._zone.y + num2);
1877 EnterLocalZone(p2, trans);
1878 }
1879 else
1880 {
1882 }
1883 }
1884
1885 public void EnterLocalZone(bool encounter = false, Chara mob = null)
1886 {
1887 EnterLocalZone(EClass.pc.pos.Copy(), null, encounter, mob);
1888 }
1889
1890 public void EnterLocalZone(Point p, ZoneTransition trans = null, bool encounter = false, Chara mob = null)
1891 {
1892 if (EClass._zone.IsRegion)
1893 {
1895 }
1897 int enemies = 1;
1898 int roadDist = EClass.scene.elomap.GetRoadDist(p.x, p.z);
1899 int num = ((EClass.pc.homeBranch != null) ? EClass.pc.pos.Distance(EClass.game.StartZone.mapX, EClass.game.StartZone.mapY) : 0);
1900 if (zone == null)
1901 {
1903 {
1904 Msg.Say("zoneBlocked");
1905 return;
1906 }
1907 int num2 = Mathf.Clamp(roadDist - 4, 0, 200) + Mathf.Clamp(num / 4, 0, 10);
1908 if (roadDist > 20)
1909 {
1910 num2 += roadDist - 20;
1911 }
1912 if (num2 >= 100)
1913 {
1914 num2 = 100;
1915 }
1916 Debug.Log("encounter roadiDist:" + roadDist + " homeDist:" + num + " lv:" + num2);
1918 zone._dangerLv = num2;
1919 enemies = 2 + Mathf.Min(num2 / 10, 4) + EClass.rnd(3 + Mathf.Min(num2 / 10, 4));
1920 if (num < 5)
1921 {
1922 enemies = 2;
1923 }
1924 }
1925 else
1926 {
1927 if (zone is Zone_Void && EClass.player.CountKeyItem("license_void") == 0)
1928 {
1929 Msg.Say("voidClosed");
1930 return;
1931 }
1932 if (zone is Zone_Exile && EClass.player.CountKeyItem("key_exile") == 0 && !EClass.debug.enable)
1933 {
1934 Msg.Say("exileClosed");
1935 return;
1936 }
1937 if (zone.IsClosed)
1938 {
1939 Msg.Say("zoneClosed");
1940 return;
1941 }
1942 if (zone is Zone_Casino)
1943 {
1944 Msg.Say("zoneNoEntrance");
1945 return;
1946 }
1947 }
1948 if (trans == null)
1949 {
1950 ZoneTransition.EnterState state = (encounter ? ZoneTransition.EnterState.Encounter : ((zone.RegionEnterState == ZoneTransition.EnterState.Dir) ? ZoneTransition.DirToState(EClass.pc.GetCurrentDir()) : zone.RegionEnterState));
1951 trans = new ZoneTransition
1952 {
1953 state = state
1954 };
1955 }
1956 EClass.pc.MoveZone(zone, trans);
1957 if (encounter)
1958 {
1960 {
1961 enemies = enemies,
1962 roadDist = roadDist,
1963 mob = mob
1964 });
1965 }
1966 }
1967
1968 public void MoveZone(Zone z)
1969 {
1970 CursorSystem.ignoreCount = 15;
1971 EClass.ui.hud.transRight.SetActive(enable: false);
1972 zone = z;
1973 if (zone.IsRegion)
1974 {
1976 }
1977 EClass.scene.Init(Scene.Mode.Zone);
1978 if ((bool)WidgetRoster.Instance)
1979 {
1981 }
1982 if ((bool)UIResourceTrack.Instance)
1983 {
1985 }
1986 if ((bool)WidgetMinimap.Instance)
1987 {
1989 }
1991 {
1992 if (LastTravelZone != null)
1993 {
1994 int elapsedHour = EClass.world.date.GetElapsedHour(dateTravel);
1995 int num = elapsedHour / 24;
1996 if (distanceTravel > 2)
1997 {
1998 elapsedHour %= 24;
1999 Msg.Say("travel", LastTravelZone.Name, Date.GetText(dateTravel, Date.TextFormat.Travel), num.ToString() ?? "", elapsedHour.ToString() ?? "");
2000 Msg.Say("travel2", distanceTravel.ToString() ?? "", ((EClass.pc.party.members.Count == 1) ? "you" : "youAndCompanion").lang());
2001 foreach (Chara member in EClass.pc.party.members)
2002 {
2003 member.AddExp(distanceTravel / 3);
2004 member.elements.ModExp(240, 30 + distanceTravel * 5);
2005 }
2006 }
2007 }
2008 distanceTravel = 0;
2011 }
2012 regionMoveWarned = false;
2013 }
2014
2015 public void AddInventory(Card c)
2016 {
2017 EClass.pc.AddCard(c);
2018 }
2019
2020 public void EndTurn(bool consume = true)
2021 {
2022 if (!EClass.pc.isDead)
2023 {
2024 if (consume)
2025 {
2026 EInput.Consume();
2027 }
2028 EClass.pc.SetAI(new GoalEndTurn());
2029 EClass.player.baseActTime = EClass.setting.defaultActPace;
2030 }
2031 }
2032
2033 public void ModFame(int a)
2034 {
2035 if (a == 0)
2036 {
2037 return;
2038 }
2039 if (a >= 0 && fame + a >= 5000 && EClass.player.CountKeyItem("license_adv") == 0)
2040 {
2041 a = 5000 - fame;
2042 if (a <= 0)
2043 {
2044 a = 0;
2045 Msg.Say("gainFameLimit");
2046 return;
2047 }
2048 }
2049 fame += a;
2050 if (fame < 0)
2051 {
2052 fame = 0;
2053 }
2054 if (a > 0)
2055 {
2056 Msg.Say("gainFame", a.ToString() ?? "");
2057 }
2058 else
2059 {
2060 Msg.Say("looseFame", (-a).ToString() ?? "");
2061 }
2062 if (a > 0)
2063 {
2064 Tutorial.Reserve("fame");
2065 }
2066 }
2067
2068 public void ModKeyItem(string alias, int num = 1, bool msg = true)
2069 {
2070 ModKeyItem(EClass.sources.keyItems.alias[alias].id, num, msg);
2071 }
2072
2073 public void ModKeyItem(int id, int num = 1, bool msg = true)
2074 {
2075 if (!keyItems.ContainsKey(id))
2076 {
2077 keyItems.Add(id, 0);
2078 }
2079 keyItems[id] += num;
2080 if (msg)
2081 {
2082 if (num > 0)
2083 {
2084 SE.Play("keyitem");
2085 Msg.Say("get_keyItem", EClass.sources.keyItems.map[id].GetName());
2086 }
2087 else
2088 {
2089 SE.Play("keyitem_lose");
2090 Msg.Say("lose_keyItem", EClass.sources.keyItems.map[id].GetName());
2091 }
2092 }
2093 }
2094
2095 public bool HasKeyItem(string alias)
2096 {
2097 return CountKeyItem(EClass.sources.keyItems.alias[alias].id) > 0;
2098 }
2099
2100 public int CountKeyItem(string alias)
2101 {
2102 return CountKeyItem(EClass.sources.keyItems.alias[alias].id);
2103 }
2104
2105 public int CountKeyItem(int id)
2106 {
2107 if (!keyItems.ContainsKey(id))
2108 {
2109 return 0;
2110 }
2111 return keyItems[id];
2112 }
2113
2114 public void EquipTool(Thing a, bool setHotItem = true)
2115 {
2116 if (a.GetRootCard() != EClass.pc)
2117 {
2118 if (a.parent is Thing)
2119 {
2120 Msg.Say("movedToEquip", a, a.parent as Thing);
2121 }
2122 a = EClass.pc.AddThing(a);
2123 }
2124 if (setHotItem)
2125 {
2127 SE.SelectHotitem();
2128 }
2129 }
2130
2132 {
2134 if (!instance)
2135 {
2136 return;
2137 }
2138 if (currentHotItem != null)
2139 {
2140 if ((bool)instance)
2141 {
2142 instance.buttonHotItem.Refresh();
2143 }
2145 {
2146 currentHotItem = null;
2147 }
2149 {
2150 currentHotItem = null;
2151 }
2152 }
2153 if (EClass.pc.held != null)
2154 {
2156 }
2157 if (currentHotItem == null)
2158 {
2159 if ((bool)instance && instance.selected != -1 && instance.selectedButton.card != null && instance.selectedButton.card.GetRootCard() == EClass.pc && !instance.selectedButton.card.GetRootCard().isDestroyed)
2160 {
2162 }
2163 else
2164 {
2166 }
2167 }
2169 {
2170 if (lastHotItem != null)
2171 {
2173 }
2176 }
2178 WidgetHotbar.dirtyCurrentItem = false;
2180 EClass.core.actionsNextFrame.Add(delegate
2181 {
2182 EClass.core.actionsNextFrame.Add(delegate
2183 {
2185 {
2186 item.invs[0].RefreshHighlight();
2187 }
2188 });
2189 });
2191 }
2192
2194 {
2195 EClass.pc.PickHeld();
2197 SE.SelectHotitem();
2198 }
2199
2201 {
2202 EClass.pc.PickHeld();
2203 if (currentHotItem != item)
2204 {
2206 if (currentHotItem is HotItemHeld hotItemHeld)
2207 {
2208 EClass.pc.HoldCard(hotItemHeld.Thing);
2209 }
2210 }
2212 }
2213
2214 public void TryEquipBait()
2215 {
2216 if (eqBait != null && eqBait.GetRootCard() != EClass.pc)
2217 {
2218 eqBait = null;
2219 }
2220 if (eqBait == null)
2221 {
2223 }
2224 }
2225
2227 {
2229 {
2230 return false;
2231 }
2232 return true;
2233 }
2234
2235 public bool TargetRanged()
2236 {
2238 int num = 999999999;
2239 Chara chara = null;
2241 List<Chara> list = new List<Chara>();
2242 bool flag = false;
2243 if (EInput.isShiftDown && pos.IsValid && pos.HasChara)
2244 {
2245 foreach (Chara chara2 in EClass._map.charas)
2246 {
2247 if (chara2.isSynced && chara2.IsAliveInCurrentZone && !chara2.IsPC && chara2.pos.Equals(pos) && EClass.pc.CanSeeLos(chara2.pos))
2248 {
2249 list.Add(chara2);
2250 }
2251 }
2252 if (list.Count > 0)
2253 {
2254 chara = list.NextItem(EClass.player.target);
2255 flag = true;
2256 }
2257 list.Clear();
2258 }
2259 if (!flag)
2260 {
2261 foreach (Chara chara3 in EClass._map.charas)
2262 {
2263 int num2 = 0;
2264 if (chara3.isSynced && chara3.IsAliveInCurrentZone && !chara3.IsPC && EClass.pc.CanSeeLos(chara3.pos) && EClass.pc.CanSee(chara3) && !chara3.IsFriendOrAbove())
2265 {
2266 if (chara3.IsNeutralOrAbove())
2267 {
2268 num2 += 10000;
2269 }
2270 num2 += EClass.pc.Dist(chara3);
2271 if (num2 < num)
2272 {
2273 chara = chara3;
2274 num = num2;
2275 }
2276 list.Add(chara3);
2277 }
2278 }
2279 if (EInput.isShiftDown)
2280 {
2281 chara = list.NextItem(EClass.player.target);
2282 }
2283 }
2284 if (chara == null)
2285 {
2286 if (target != null)
2287 {
2288 Msg.Say("noTargetFound");
2289 }
2290 target = null;
2291 return false;
2292 }
2293 if (target != chara)
2294 {
2295 Msg.Say("targetSet", chara);
2296 }
2297 target = chara;
2298 return true;
2299 }
2300
2301 public void OnAdvanceHour()
2302 {
2304 if (EClass.pc.Evalue(289) > 0)
2305 {
2306 foreach (Thing item in EClass.pc.things.List((Thing t) => t.c_IDTState == 5, onlyAccessible: true))
2307 {
2309 }
2310 }
2312 {
2313 return;
2314 }
2315 foreach (Chara member in EClass.pc.party.members)
2316 {
2317 member.AddExp(1);
2318 }
2319 }
2320
2321 public void OnAdvanceDay()
2322 {
2325 if (EClass.pc.Evalue(85) > 0)
2326 {
2327 EClass.pc.ModExp(85, 10);
2328 }
2330 prayed = false;
2331 fished = 0;
2332 if (karma < 0 && EClass.rnd(4) == 0)
2333 {
2334 ModKarma(1);
2335 }
2336 }
2337
2338 public bool TryAbortAutoCombat(bool immediate = true)
2339 {
2340 if (!(EClass.pc.ai is GoalAutoCombat))
2341 {
2342 return false;
2343 }
2344 EClass.pc.ai.Cancel();
2345 if (immediate)
2346 {
2348 }
2349 return true;
2350 }
2351
2353 {
2354 foreach (Cell lastMarkedHighlight in lastMarkedHighlights)
2355 {
2356 lastMarkedHighlight.highlight = 0;
2357 }
2358 lastMarkedHighlights.Clear();
2359 }
2360
2361 public void MarkMapHighlights()
2362 {
2365 }
2366
2367 public bool CanAcceptInput()
2368 {
2369 if (EClass.pc.HasNoGoal)
2370 {
2371 return !EClass.pc.WillConsumeTurn();
2372 }
2373 return false;
2374 }
2375
2376 public bool CanSee(Chara c)
2377 {
2379 {
2380 return true;
2381 }
2382 if (!c.IsPC && (EClass.pc.fov == null || EClass.pc.isBlind))
2383 {
2384 return false;
2385 }
2386 if (c.IsPCParty || c.isDead)
2387 {
2388 return true;
2389 }
2390 if (c.IsMultisize)
2391 {
2392 bool canSee = false;
2393 int dist = EClass.pc.Dist(c);
2394 c.ForeachPoint(delegate(Point p, bool main)
2395 {
2396 if (!canSee && (p.cell.light > 0 || dist < 2) && p.cell.pcSync)
2397 {
2398 canSee = true;
2399 }
2400 });
2401 return canSee;
2402 }
2403 if (c.pos.cell.light > 0 || EClass.pc.Dist(c) < 2)
2404 {
2405 return c.pos.cell.pcSync;
2406 }
2407 return false;
2408 }
2409
2410 public void AddExpKnowledge(int a)
2411 {
2412 expKnowledge += a;
2414 {
2415 for (int i = 0; i < expKnowledge / MaxExpKnowledge; i++)
2416 {
2417 LvUp();
2418 }
2420 }
2421 static void LvUp()
2422 {
2423 Msg.Say("DingKnowledge");
2424 }
2425 }
2426
2427 public void AddExpInfluence(int a)
2428 {
2429 expInfluence += a;
2431 {
2432 for (int i = 0; i < expInfluence / MaxExpInfluence; i++)
2433 {
2434 LvUp();
2435 }
2437 }
2438 static void LvUp()
2439 {
2440 Msg.Say("DingInfluence");
2441 }
2442 }
2443
2444 public void ModKarma(int a)
2445 {
2446 if (a != 0)
2447 {
2448 if (a < 0)
2449 {
2450 Tutorial.Reserve("karma");
2451 }
2452 bool flag = karma < 0;
2453 karma += a;
2454 Msg.Say((a > 0) ? "karmaUp" : "karmaDown", a.ToString() ?? "");
2455 if (karma < 0 && !flag)
2456 {
2457 Msg.Say("becomeCriminal");
2460 Tutorial.Reserve("criminal");
2461 }
2462 if (karma >= 0 && flag)
2463 {
2464 Msg.Say("becomeNonCriminal");
2466 }
2467 EClass.game.quests.list.ForeachReverse(delegate(Quest q)
2468 {
2469 q.OnModKarma(a);
2470 });
2471 karma = Mathf.Clamp(karma, -100, 100);
2472 }
2473 }
2474
2475 public Thing DropReward(Thing t, bool silent = false)
2476 {
2477 t.things.DestroyAll();
2479 if (!silent)
2480 {
2481 Msg.Say("dropReward");
2482 }
2483 return t;
2484 }
2485
2486 public bool TooHeavyToMove()
2487 {
2488 if (!EClass.debug.ignoreWeight && EClass.pc.burden.GetPhase() == 4)
2489 {
2490 Msg.Say("tooHeavyToMove");
2492 EInput.Consume(consumeAxis: true);
2493 return true;
2494 }
2495 return false;
2496 }
2497
2498 public void ToggleFavMoongate(string id)
2499 {
2500 if (favMoongate.Contains(id))
2501 {
2502 favMoongate.Remove(id);
2503 }
2504 else
2505 {
2506 favMoongate.Add(id);
2507 }
2508 }
2509}
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:73
ElementContainerCard elements
Definition: Card.cs:39
string id
Definition: Card.cs:33
Fov fov
Definition: Card.cs:55
Card AddCard(Card c)
Definition: Card.cs:3043
bool IsMale
Definition: Card.cs:2346
Biography bio
Definition: Card.cs:42
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:3057
int CHA
Definition: Card.cs:2309
ICardParent parent
Definition: Card.cs:53
void AddEditorTag(EditorTag tag)
Definition: Card.cs:2567
Thing SetNum(int a)
Definition: Card.cs:3393
void ForeachPoint(Action< Point, bool > action)
Definition: Card.cs:7571
int c_IDTState
Definition: Card.cs:1231
int c_daysWithGod
Definition: Card.cs:1447
virtual void SetBlessedState(BlessedState s)
Definition: Card.cs:3793
void RecalculateFOV()
Definition: Card.cs:6151
Point pos
Definition: Card.cs:57
int uid
Definition: Card.cs:120
Trait trait
Definition: Card.cs:51
ThingContainer things
Definition: Card.cs:36
string NameSimple
Definition: Card.cs:2101
Card GetRootCard()
Definition: Card.cs:3324
int Evalue(int ele)
Definition: Card.cs:2533
int Dist(Card c)
Definition: Card.cs:7406
void ModExp(string alias, int a)
Definition: Card.cs:2610
Thing Add(string id, int num=1, int lv=1)
Definition: Card.cs:3034
void AddExp(int a)
Definition: Card.cs:2903
CardRenderer renderer
Definition: Card.cs:59
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:1708
override bool IsAliveInCurrentZone
Definition: Chara.cs:559
CharaBody body
Definition: Chara.cs:94
Card held
Definition: Chara.cs:70
AIAct ai
Definition: Chara.cs:200
Faction faction
Definition: Chara.cs:425
override bool IsPC
Definition: Chara.cs:610
SourceJob.Row job
Definition: Chara.cs:464
bool CanSeeLos(Card c, int dist=-1)
Definition: Chara.cs:1232
AIAct SetNoGoal()
Definition: Chara.cs:8522
override bool IsPCParty
Definition: Chara.cs:613
Party party
Definition: Chara.cs:43
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4368
void PickHeld(bool msg=false)
Definition: Chara.cs:4420
bool HasCondition(string alias)
Definition: Chara.cs:9054
AIAct SetAI(AIAct g)
Definition: Chara.cs:8527
Chara SetFaction(Faction f)
Definition: Chara.cs:1401
bool IsNeutralOrAbove()
Definition: Chara.cs:6342
int GetCurrentDir()
Definition: Chara.cs:3560
override bool isSynced
Definition: Chara.cs:689
override CardRenderer _CreateRenderer()
Definition: Chara.cs:6407
void CalculateMaxStamina()
Definition: Chara.cs:1963
bool CanSee(Card c)
Definition: Chara.cs:1200
bool IsFriendOrAbove()
Definition: Chara.cs:6386
override int MaxHP
Definition: Chara.cs:706
Zone currentZone
Definition: Chara.cs:253
string Aka
Definition: Chara.cs:214
override bool IsDeadOrSleeping
Definition: Chara.cs:571
void GainAbility(int ele, int mtp=100, Thing origin=null)
Definition: Chara.cs:9668
Stats stamina
Definition: Chara.cs:1128
Stats burden
Definition: Chara.cs:1126
bool visibleWithTelepathy
Definition: Chara.cs:150
void RefreshFaithElement()
Definition: Chara.cs:9782
void RefreshSpeed(Element.BonusInfo info=null)
Definition: Chara.cs:1824
Religion faith
Definition: Chara.cs:437
bool HasNoGoal
Definition: Chara.cs:986
override bool IsMultisize
Definition: Chara.cs:704
bool isBlind
Definition: Chara.cs:130
Thing EQ_ID(string s, int mat=-1, Rarity r=Rarity.Random)
Definition: Chara.cs:4901
FactionBranch homeBranch
Definition: Chara.cs:1052
bool isDead
Definition: Chara.cs:387
bool TryIdentify(Thing t, int count=1, bool show=true)
Definition: Chara.cs:7690
void SetFaith(string id)
Definition: Chara.cs:1688
bool hasTelepathy
Definition: Chara.cs:140
bool WillConsumeTurn()
Definition: Chara.cs:3598
void MoveZone(string alias)
Definition: Chara.cs:3265
void OnLoad()
Definition: CodexManager.cs:23
new GameConfig game
Definition: CoreConfig.cs:604
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: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 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 int rnd(long a)
Definition: EClass.cs:58
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
void ModExp(int ele, float a, bool chain=false)
Dictionary< int, Element > dict
int GetFeatRef(int ele, int idx=0)
Element SetBase(string alias, int v, int potential=0)
void Remove(int id)
Element GetElement(string alias)
SourceElement.Row source
Definition: ELEMENT.cs:273
int vPotential
Definition: ELEMENT.cs:256
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1100
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: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:260
QuestManager quests
Definition: Game.cs:179
Zone StartZone
Definition: Game.cs:274
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:705
bool KilledBossInVoid
Definition: Player.cs:410
bool IsStoryPlayed(int flag)
Definition: Player.cs:713
int lutz
Definition: Player.cs:614
void _OnSerializing(StreamingContext context)
Definition: Player.cs:686
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:718
bool toggleHotbarHighlightDisabled
Definition: Player.cs:482
bool loytelEscaped
Definition: Player.cs:470
bool killedDuponne
Definition: Player.cs:554
bool PlayStory(int id, bool fromBook=false)
Definition: Player.cs:772
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:692
bool gotClickReward
Definition: Player.cs:266
int main
Definition: Player.cs:590
Dictionary< string, string > GetStoryRow(string idBook, int id)
Definition: Player.cs:730
ExcelData GetStoryExcelData(string idBook)
Definition: Player.cs:742
int start
Definition: Player.cs:566
bool abilityHighlightDisabled
Definition: Player.cs:362
bool PlayStory(string idBook, int id, bool fromBook=false)
Definition: Player.cs:755
List< int > availableStories
Definition: Player.cs:253
bool helpHighlightDisabled
Definition: Player.cs:314
int build
Definition: Player.cs:578
int storyFiama
Definition: Player.cs:602
void OnEnableDebug()
Definition: Player.cs:701
int reward_killkill
Definition: Player.cs:674
bool gotLoytelMart
Definition: Player.cs:542
int landDeedBought
Definition: Player.cs:638
void AddStory(int id)
Definition: Player.cs:777
int reward_gould
Definition: Player.cs:662
Dictionary< string, ExcelData > storyExcel
Definition: Player.cs:263
bool toggleHotbarHighlightActivated
Definition: Player.cs:518
void OnCreateGame()
Definition: Player.cs:697
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:815
bool fiamaStoryBookGiven
Definition: Player.cs:290
bool fiamaFirstDream
Definition: Player.cs:302
int daysAfterQuestExploration
Definition: Player.cs:626
bool backpackHighlightDisabled
Definition: Player.cs:350
bool welcome
Definition: Player.cs:278
int loytelMartLv
Definition: Player.cs:650
bool little_killed
Definition: Player.cs:446
bool pickedMelilithTreasure
Definition: Player.cs:326
void OnEnterZone()
Definition: Player.cs:787
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:1761
int distanceTravel
Definition: Player.cs:852
int debt
Definition: Player.cs:906
int uidLastTown
Definition: Player.cs:897
void DreamSpell()
Definition: Player.cs:1701
bool IsCriminal
Definition: Player.cs:1293
int CountKeyItem(int id)
Definition: Player.cs:2105
ZoneTransition lastTransition
Definition: Player.cs:1099
Flags flags
Definition: Player.cs:1050
bool TooHeavyToMove()
Definition: Player.cs:2486
void CreateEquip()
Definition: Player.cs:1604
void OnAdvanceDay()
Definition: Player.cs:2321
Dictionary< string, string > lastRecipes
Definition: Player.cs:1005
CodexManager codex
Definition: Player.cs:1071
Layer SelectDomain(Action onKill=null)
Definition: Player.cs:1497
int lastFelmeraReward
Definition: Player.cs:894
HotItem lastHotItem
Definition: Player.cs:1103
HashSet< int > sketches
Definition: Player.cs:1026
Zone LastZone
Definition: Player.cs:1228
Action onStartZone
Definition: Player.cs:1173
List< int > uidPickOnLoad
Definition: Player.cs:1077
bool showShippingResult
Definition: Player.cs:948
bool hasNewQuest
Definition: Player.cs:930
bool IsMageGuildMember
Definition: Player.cs:1241
void OnStartNewGame()
Definition: Player.cs:1337
bool IsFighterGuildMember
Definition: Player.cs:1254
bool useSubWidgetTheme
Definition: Player.cs:936
bool IsPriorityAction(string id, Thing t)
Definition: Player.cs:1454
bool CanSee(Chara c)
Definition: Player.cs:2376
Dictionary< string, KnownSong > knownSongs
Definition: Player.cs:1002
void SetPriorityAction(string id, Thing t)
Definition: Player.cs:1424
RecipeManager recipes
Definition: Player.cs:1053
NoticeManager notices
Definition: Player.cs:1163
bool preventDeathPenalty
Definition: Player.cs:1123
float angle
Definition: Player.cs:927
WidgetManager.SaveData widgets
Definition: Player.cs:1190
bool deathZoneMove
Definition: Player.cs:1125
Window.SaveData windowAllyInv
Definition: Player.cs:1086
int uidSpawnZone
Definition: Player.cs:831
void OnAdvanceRealHour()
Definition: Player.cs:1467
void ModFame(int a)
Definition: Player.cs:2033
void ModKarma(int a)
Definition: Player.cs:2444
CinemaConfig cinemaConfig
Definition: Player.cs:1068
void RefreshDomain()
Definition: Player.cs:1478
bool CanExitBorder(Point p)
Definition: Player.cs:1828
Pref pref
Definition: Player.cs:969
int karma
Definition: Player.cs:837
void ResetCurrentHotItem()
Definition: Player.cs:2193
Vector2 nextMove
Definition: Player.cs:1169
bool questTracker
Definition: Player.cs:945
void ToggleFavMoongate(string id)
Definition: Player.cs:2498
float lightPower
Definition: Player.cs:1153
Stats stats
Definition: Player.cs:972
void OnExitBorder(Point p)
Definition: Player.cs:1845
int lightRadius
Definition: Player.cs:1145
bool resetPrincipal
Definition: Player.cs:1133
bool isAutoFarming
Definition: Player.cs:1137
void EquipTool(Thing a, bool setHotItem=true)
Definition: Player.cs:2114
bool haltMove
Definition: Player.cs:1127
List< Cell > lastMarkedHighlights
Definition: Player.cs:1101
Chara _agent
Definition: Player.cs:1044
bool HasKeyItem(string alias)
Definition: Player.cs:2095
bool EnableDreamStory
Definition: Player.cs:1224
bool HasValidRangedTarget()
Definition: Player.cs:2226
void AddInventory(Card c)
Definition: Player.cs:2015
bool invlunerable
Definition: Player.cs:1129
int uidLastTravelZone
Definition: Player.cs:855
Zone zone
Definition: Player.cs:1038
Chara focusedchara
Definition: Player.cs:1161
int countNewline
Definition: Player.cs:1143
bool wellWished
Definition: Player.cs:939
int seedChest
Definition: Player.cs:903
bool willAutoSave
Definition: Player.cs:1131
Zone spawnZone
Definition: Player.cs:1213
int MaxExpInfluence
Definition: Player.cs:1238
float baseActTime
Definition: Player.cs:1155
HashSet< int > knownBGMs
Definition: Player.cs:1020
Dictionary< string, int > dialogFlags
Definition: Player.cs:996
int tutorialStep
Definition: Player.cs:834
int customLightMod
Definition: Player.cs:918
string memo
Definition: Player.cs:963
int extraTax
Definition: Player.cs:891
int fished
Definition: Player.cs:924
void EndTurn(bool consume=true)
Definition: Player.cs:2020
ElementContainer GetDomains()
Definition: Player.cs:1487
void EnterLocalZone(bool encounter=false, Chara mob=null)
Definition: Player.cs:1885
bool enemySpotted
Definition: Player.cs:1139
int autoCombatStartHP
Definition: Player.cs:1179
int little_dead
Definition: Player.cs:885
HashSet< int > doneBackers
Definition: Player.cs:1029
float pickupDelay
Definition: Player.cs:1157
int totalFeat
Definition: Player.cs:864
void OnBeforeSave()
Definition: Player.cs:1412
int ContainerSearchDistance
Definition: Player.cs:1232
Zone LastTravelZone
Definition: Player.cs:1226
bool TargetRanged()
Definition: Player.cs:2235
int uidLastZone
Definition: Player.cs:858
bool dailyGacha
Definition: Player.cs:933
int holyWell
Definition: Player.cs:876
void AddExpKnowledge(int a)
Definition: Player.cs:2410
HashSet< string > trackedCategories
Definition: Player.cs:1011
static int realHour
Definition: Player.cs:1093
int MaxAlly
Definition: Player.cs:1234
int CountKeyItem(string alias)
Definition: Player.cs:2100
void TryEquipBait()
Definition: Player.cs:2214
HashSet< int > knownCraft
Definition: Player.cs:1032
WidgetManager.SaveData subWidgets
Definition: Player.cs:987
bool wasDirtyWeight
Definition: Player.cs:1119
Dictionary< string, HashSet< string > > noRestocks
Definition: Player.cs:1083
Zone nextZone
Definition: Player.cs:1181
Dictionary< string, Window.SaveData > dataWindow
Definition: Player.cs:1065
int luckycoin
Definition: Player.cs:915
void OnAdvanceHour()
Definition: Player.cs:2301
List< int > domains
Definition: Player.cs:1035
bool forceTalk
Definition: Player.cs:1107
Point lastZonePos
Definition: Player.cs:1059
bool prayed
Definition: Player.cs:942
HashSet< int > favAbility
Definition: Player.cs:1023
Window.SaveData dataPick
Definition: Player.cs:990
int ignoreFallOver
Definition: Player.cs:1151
void GenerateBackgroundText()
Definition: Player.cs:1572
void ModKeyItem(string alias, int num=1, bool msg=true)
Definition: Player.cs:2068
int MaxExpKnowledge
Definition: Player.cs:1236
int expInfluence
Definition: Player.cs:846
int seedShrine
Definition: Player.cs:900
int dateTravel
Definition: Player.cs:849
Chara target
Definition: Player.cs:1187
List< ShippingResult > shippingResults
Definition: Player.cs:1080
void ModKeyItem(int id, int num=1, bool msg=true)
Definition: Player.cs:2073
bool instaComplete
Definition: Player.cs:1111
bool IsThiefGuildMember
Definition: Player.cs:1267
void ExitBorder(ActPlan p=null)
Definition: Player.cs:1786
HotItem currentHotItem
Definition: Player.cs:1056
Dictionary< string, string > hangIcons
Definition: Player.cs:999
string title
Definition: Player.cs:960
List< Chara > listSummon
Definition: Player.cs:1177
int unpaidBill
Definition: Player.cs:870
int safeTravel
Definition: Player.cs:879
PopupManager popups
Definition: Player.cs:981
Chara Agent
Definition: Player.cs:1230
Thing eqBait
Definition: Player.cs:1062
bool showWorkaround
Definition: Player.cs:957
bool waitingInput
Definition: Player.cs:1115
int uidChara
Definition: Player.cs:828
Dictionary< string, List< string > > priorityActions
Definition: Player.cs:1008
KnowledgeManager knowledges
Definition: Player.cs:978
void MoveZone(Zone z)
Definition: Player.cs:1968
Thing DropReward(Thing t, bool silent=false)
Definition: Player.cs:2475
Thing renderThing
Definition: Player.cs:1183
ReturnInfo returnInfo
Definition: Player.cs:825
HashSet< string > trackedCards
Definition: Player.cs:1014
bool regionMoveWarned
Definition: Player.cs:1113
string memo2
Definition: Player.cs:966
int questRerollCost
Definition: Player.cs:921
int lastTurn
Definition: Player.cs:1147
WidgetManager.SaveData mainWidgets
Definition: Player.cs:984
Window.SaveData windowDataCopy
Definition: Player.cs:1095
void OnLoad()
Definition: Player.cs:1388
Chara chara
Definition: Player.cs:1159
HotItem hotItemToRestore
Definition: Player.cs:1105
static int seedHallucination
Definition: Player.cs:1091
int fame
Definition: Player.cs:840
void EnterLocalZone(Point p, ZoneTransition trans=null, bool encounter=false, Chara mob=null)
Definition: Player.cs:1890
void MarkMapHighlights()
Definition: Player.cs:2361
bool isEditor
Definition: Player.cs:951
PlayingSong playingSong
Definition: Player.cs:1175
bool willEndTurn
Definition: Player.cs:1117
int bankMoney
Definition: Player.cs:873
HotItemNoItem hotItemNoItem
Definition: Player.cs:1185
void AddExpInfluence(int a)
Definition: Player.cs:2427
bool TryAbortAutoCombat(bool immediate=true)
Definition: Player.cs:2338
void ClearMapHighlights()
Definition: Player.cs:2352
int uidLastShippedZone
Definition: Player.cs:861
Act lastAct
Definition: Player.cs:1167
bool simulatingZone
Definition: Player.cs:1135
LayerAbility.Config layerAbilityConfig
Definition: Player.cs:993
int expKnowledge
Definition: Player.cs:843
List< string > favMoongate
Definition: Player.cs:1089
bool deathDialog
Definition: Player.cs:1121
int little_saved
Definition: Player.cs:888
int lastEmptyAlly
Definition: Player.cs:1149
void OnCreateGame()
Definition: Player.cs:1304
bool CanAcceptInput()
Definition: Player.cs:2367
HashSet< int > trackedElements
Definition: Player.cs:1017
int hotbarPage
Definition: Player.cs:882
void RefreshEmptyAlly()
Definition: Player.cs:1558
NumLogManager nums
Definition: Player.cs:975
string GetBackgroundText()
Definition: Player.cs:1578
void RefreshCurrentHotItem()
Definition: Player.cs:2131
void EditBackgroundText()
Definition: Player.cs:1599
bool altHeldPos
Definition: Player.cs:1109
QueueManager queues
Definition: Player.cs:1165
Dictionary< int, int > keyItems
Definition: Player.cs:1074
string deathMsg
Definition: Player.cs:1141
bool openContainerCenter
Definition: Player.cs:954
int giftJure
Definition: Player.cs:912
Hoard hoard
Definition: Player.cs:1047
bool IsMerchantGuildMember
Definition: Player.cs:1280
string windowDataName
Definition: Player.cs:1097
Vector3 position
Definition: Player.cs:1171
HotbarManager hotbars
Definition: Player.cs:1041
int seedFortune
Definition: Player.cs:909
void SetCurrentHotItem(HotItem item)
Definition: Player.cs:2200
int taxBills
Definition: Player.cs:867
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:944
bool TryWitnessCrime(Chara criminal, Chara target=null, int radius=4, Func< Chara, bool > funcWitness=null)
Definition: Point.cs:861
bool IsValid
Definition: Point.cs:88
int Distance(Point p)
Definition: Point.cs:973
Cell cell
Definition: Point.cs:51
bool HasChara
Definition: Point.cs:226
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:555
Definition: Recipe.cs:7
string id
Definition: Recipe.cs:179
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:252
Zone CreateZone(Point pos)
Definition: Region.cs:263
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:503
virtual string Name
Definition: Spatial.cs:497
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:167
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:959
virtual bool CanOnlyCarry
Definition: Trait.cs:292
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:3429
virtual ZoneTransition.EnterState RegionEnterState
Definition: Zone.cs:170
Zone ParentZone
Definition: Zone.cs:162
bool IsPCFaction
Definition: Zone.cs:468
ZoneInstance instance
Definition: Zone.cs:52
Region Region
Definition: Zone.cs:160
Zone GetZoneAt(int _x, int _y)
Definition: Zone.cs:3398
Card AddCard(Card t, Point point)
Definition: Zone.cs:1943
uint Bits
Definition: BitArray32.cs:6