forked from cataclysmbn/Cataclysm-BN
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlua_annotations.lua
More file actions
2101 lines (2006 loc) · 89.3 KB
/
lua_annotations.lua
File metadata and controls
2101 lines (2006 loc) · 89.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---@meta
-- Generated by generate_types.lua - DO NOT EDIT MANUALLY
---@class game
---@field active_mods string[]
---@field mod_runtime table<string, any>
---@field mod_storage table<string, any>
---@field on_every_x_hooks table
---@field iuse_functions table
---@field hooks hooks
---@field current_mod string
---@field cata_internal table
game = {}
--================---- Classes ----================
---@class ActivityTypeId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: ActivityTypeId): boolean
---@field is_valid fun(arg1: ActivityTypeId): boolean
---@field NULL_ID fun(): ActivityTypeId
---@field obj fun(arg1: ActivityTypeId): ActivityTypeRaw
---@field str fun(arg1: ActivityTypeId): string
---@field serialize fun(arg1: ActivityTypeId)
---@field deserialize fun(arg1: ActivityTypeId)
---@field __tostring fun(arg1: ActivityTypeId): string
ActivityTypeId = {}
---@return ActivityTypeId
---@overload fun(arg1: ActivityTypeId): ActivityTypeId
---@overload fun(arg1: string): ActivityTypeId
function ActivityTypeId.new() end
---@class Angle
---@field from_arcmin fun(arg1: number): Angle
---@field from_degrees fun(arg1: number): Angle
---@field from_radians fun(arg1: number): Angle
---@field to_arcmin fun(arg1: Angle): number
---@field to_degrees fun(arg1: Angle): number
---@field to_radians fun(arg1: Angle): number
---@field __eq fun(arg1: Angle, arg2: Angle): boolean
---@field __le fun(arg1: Angle, arg2: Angle): boolean
---@field __lt fun(arg1: Angle, arg2: Angle): boolean
Angle = {}
---@return Angle
function Angle.new() end
---@class Avatar : Player, Character, Creature
Avatar = {}
---@return Avatar
function Avatar.new() end
---@class BionicDataId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: BionicDataId): boolean
---@field is_valid fun(arg1: BionicDataId): boolean
---@field NULL_ID fun(): BionicDataId
---@field obj fun(arg1: BionicDataId): BionicDataRaw
---@field str fun(arg1: BionicDataId): string
---@field serialize fun(arg1: BionicDataId)
---@field deserialize fun(arg1: BionicDataId)
---@field __tostring fun(arg1: BionicDataId): string
BionicDataId = {}
---@return BionicDataId
---@overload fun(arg1: BionicDataId): BionicDataId
---@overload fun(arg1: string): BionicDataId
function BionicDataId.new() end
---@class BodyPartTypeId
---@field implements_int_id fun(): boolean
---@field int_id fun(arg1: BodyPartTypeId): BodyPartTypeIntId
---@field is_null fun(arg1: BodyPartTypeId): boolean
---@field is_valid fun(arg1: BodyPartTypeId): boolean
---@field NULL_ID fun(): BodyPartTypeId
---@field obj fun(arg1: BodyPartTypeId): BodyPartTypeRaw
---@field str fun(arg1: BodyPartTypeId): string
---@field serialize fun(arg1: BodyPartTypeId)
---@field deserialize fun(arg1: BodyPartTypeId)
---@field __tostring fun(arg1: BodyPartTypeId): string
BodyPartTypeId = {}
---@return BodyPartTypeId
---@overload fun(arg1: BodyPartTypeId): BodyPartTypeId
---@overload fun(arg1: BodyPartTypeIntId): BodyPartTypeId
---@overload fun(arg1: string): BodyPartTypeId
function BodyPartTypeId.new() end
---@class BodyPartTypeIntId
---@field is_valid fun(arg1: BodyPartTypeIntId): boolean
---@field obj fun(arg1: BodyPartTypeIntId): BodyPartTypeRaw
---@field str_id fun(arg1: BodyPartTypeIntId): BodyPartTypeId
---@field __tostring fun(arg1: BodyPartTypeIntId): string
BodyPartTypeIntId = {}
---@return BodyPartTypeIntId
---@overload fun(arg1: BodyPartTypeIntId): BodyPartTypeIntId
---@overload fun(arg1: BodyPartTypeId): BodyPartTypeIntId
function BodyPartTypeIntId.new() end
---@class Character : Creature
---@field cash integer
---@field focus_pool integer
---@field follower_ids any
---@field male boolean
---@field mutation_category_level any
---@field name string
---@field activate_mutation fun(arg1: Character, arg2: MutationBranchId)
---@field add_addiction fun(arg1: Character, arg2: AddictionType, arg3: integer)
---@field add_bionic fun(arg1: Character, arg2: BionicDataId)
---@field addiction_level fun(arg1: Character, arg2: AddictionType): integer
---@field add_item_with_id fun(arg1: Character, arg2: ItypeId, arg3: integer) @Adds an item with the given id and amount
---@field add_morale fun(arg1: Character, arg2: MoraleTypeDataId, arg3: integer, arg4: integer, arg5: TimeDuration, arg6: TimeDuration, arg7: boolean, arg8: ItypeRaw)
---@field age fun(arg1: Character): integer
---@field all_items fun(arg1: Character, arg2: boolean): any @Gets all items
---@field all_items_with_flag fun(arg1: Character, arg2: JsonFlagId, arg3: boolean): any @Gets all items with the given flag
---@field assign_activity fun(arg1: Character, arg2: ActivityTypeId, arg3: integer, arg4: integer, arg5: integer, arg6: string)
---@field base_age fun(arg1: Character): integer
---@field base_height fun(arg1: Character): integer
---@field bionic_armor_bonus fun(arg1: Character, arg2: BodyPartTypeIntId, arg3: DamageType): number
---@field bionics_weight fun(arg1: Character): Mass
---@field blood_loss fun(arg1: Character, arg2: BodyPartTypeIntId): integer
---@field blossoms fun(arg1: Character)
---@field bodypart_exposure fun(arg1: Character): any
---@field bodyweight fun(arg1: Character): Mass
---@field cancel_activity fun(arg1: Character)
---@field can_hear fun(arg1: Character, arg2: Tripoint, arg3: integer): boolean
---@field can_mount fun(arg1: Character, arg2: Monster): boolean
---@field can_pick_volume fun(arg1: Character, arg2: Volume): boolean
---@field can_pick_weight fun(arg1: Character, arg2: Mass, arg3: boolean): boolean
---@field can_run fun(arg1: Character): boolean
---@field can_unwield fun(arg1: Character, arg2: Item): boolean
---@field can_wield fun(arg1: Character, arg2: Item): boolean
---@field check_mount_is_spooked fun(arg1: Character): boolean
---@field check_mount_will_move fun(arg1: Character, arg2: Tripoint): boolean
---@field clear_bionics fun(arg1: Character)
---@field clear_morale fun(arg1: Character)
---@field clear_mutations fun(arg1: Character)
---@field clear_skills fun(arg1: Character)
---@field cough fun(arg1: Character, arg2: boolean, arg3: integer)
---@field crossed_threshold fun(arg1: Character): boolean
---@field deactivate_mutation fun(arg1: Character, arg2: MutationBranchId)
---@field dismount fun(arg1: Character)
---@field expose_to_disease fun(arg1: Character, arg2: DiseaseTypeId)
---@field fall_asleep fun(arg1: Character) | fun(arg1: Character, arg2: TimeDuration)
---@field forced_dismount fun(arg1: Character)
---@field get_all_skills fun(arg1: Character): SkillLevelMap
---@field get_armor_acid fun(arg1: Character, arg2: BodyPartTypeIntId): integer
---@field get_base_traits fun(arg1: Character): any
---@field get_bionics fun(arg1: Character): any
---@field get_dex fun(arg1: Character): integer
---@field get_dex_base fun(arg1: Character): integer
---@field get_dex_bonus fun(arg1: Character): integer
---@field get_faction_id fun(arg1: Character): FactionId
---@field get_fatigue fun(arg1: Character): integer
---@field get_free_bionics_slots fun(arg1: Character, arg2: BodyPartTypeIntId): integer
---@field get_healthy fun(arg1: Character): integer
---@field get_healthy_mod fun(arg1: Character): integer
---@field get_highest_category fun(arg1: Character): MutationCategoryTraitId
---@field get_hostile_creatures fun(arg1: Character, arg2: integer): any
---@field getID fun(arg1: Character): CharacterId
---@field get_int fun(arg1: Character): integer
---@field get_int_base fun(arg1: Character): integer
---@field get_int_bonus fun(arg1: Character): integer
---@field get_item_with_id fun(arg1: Character, arg2: ItypeId, arg3: boolean): Item @Gets the first occurrence of an item with the given id
---@field get_kcal_percent fun(arg1: Character): number
---@field get_lowest_hp fun(arg1: Character): integer
---@field get_max_power_level fun(arg1: Character): Energy
---@field get_morale fun(arg1: Character, arg2: MoraleTypeDataId): integer
---@field get_morale_level fun(arg1: Character): integer
---@field get_movement_mode fun(arg1: Character): CharacterMoveMode
---@field get_mutations fun(arg1: Character, arg2: boolean): any
---@field get_painkiller fun(arg1: Character): integer
---@field get_part_encumbrance fun(arg1: Character, arg2: BodyPartTypeId): integer
---@field get_part_temp_btu fun(arg1: Character, arg2: BodyPartTypeIntId): integer @Gets the current temperature of a specific body part (in Body Temperature Units).
---@field get_per fun(arg1: Character): integer
---@field get_per_base fun(arg1: Character): integer
---@field get_per_bonus fun(arg1: Character): integer
---@field get_power_level fun(arg1: Character): Energy
---@field get_rad fun(arg1: Character): integer
---@field get_shout_volume fun(arg1: Character): integer
---@field get_skill_level fun(arg1: Character, arg2: SkillId): integer
---@field get_skill_level_object fun(arg1: Character, arg2: SkillId): SkillLevel
---@field get_sleep_deprivation fun(arg1: Character): integer
---@field get_stamina fun(arg1: Character): integer
---@field get_stamina_max fun(arg1: Character): integer
---@field get_stim fun(arg1: Character): integer
---@field get_stored_kcal fun(arg1: Character): integer
---@field get_str fun(arg1: Character): integer
---@field get_str_base fun(arg1: Character): integer
---@field get_str_bonus fun(arg1: Character): integer
---@field get_temp_btu fun(arg1: Character): any @Gets all bodyparts and their associated temperatures (in Body Temperature Units).
---@field get_thirst fun(arg1: Character): integer
---@field get_time_died fun(arg1: Character): TimePoint
---@field get_total_bionics_slots fun(arg1: Character, arg2: BodyPartTypeIntId): integer
---@field get_used_bionics_slots fun(arg1: Character, arg2: BodyPartTypeIntId): integer
---@field get_visible_creatures fun(arg1: Character, arg2: integer): any
---@field get_working_arm_count fun(arg1: Character): integer
---@field get_working_leg_count fun(arg1: Character): integer
---@field global_sm_location fun(arg1: Character): Tripoint
---@field global_square_location fun(arg1: Character): Tripoint
---@field has_active_bionic fun(arg1: Character, arg2: BionicDataId): boolean
---@field has_active_mutation fun(arg1: Character, arg2: MutationBranchId): boolean
---@field has_activity fun(arg1: Character, arg2: ActivityTypeId): boolean
---@field has_addiction fun(arg1: Character, arg2: AddictionType): boolean
---@field has_alarm_clock fun(arg1: Character): boolean
---@field has_any_bionic fun(arg1: Character): boolean
---@field has_base_trait fun(arg1: Character, arg2: MutationBranchId): boolean
---@field has_bionic fun(arg1: Character, arg2: BionicDataId): boolean
---@field has_bionics fun(arg1: Character): boolean
---@field has_child_flag fun(arg1: Character, arg2: MutationBranchId): boolean
---@field has_item_with_flag fun(arg1: Character, arg2: JsonFlagId, arg3: boolean): boolean @Checks for an item with the given flag
---@field has_item_with_id fun(arg1: Character, arg2: ItypeId, arg3: boolean): boolean @Checks for an item with the given id
---@field has_mabuff fun(arg1: Character, arg2: MartialArtsBuffId): boolean
---@field has_max_power fun(arg1: Character): boolean
---@field has_morale fun(arg1: Character, arg2: MoraleTypeDataId): boolean
---@field has_morale_to_craft fun(arg1: Character): boolean
---@field has_morale_to_read fun(arg1: Character): boolean
---@field has_opposite_trait fun(arg1: Character, arg2: MutationBranchId): boolean
---@field has_power fun(arg1: Character): boolean
---@field has_trait_flag fun(arg1: Character, arg2: JsonTraitFlagId): boolean
---@field has_two_arms fun(arg1: Character): boolean
---@field has_watch fun(arg1: Character): boolean
---@field heal fun(arg1: Character, arg2: BodyPartTypeIntId, arg3: integer)
---@field healall fun(arg1: Character, arg2: integer)
---@field healing_rate fun(arg1: Character, arg2: number): number
---@field healing_rate_medicine fun(arg1: Character, arg2: number, arg3: BodyPartTypeIntId): number
---@field hearing_ability fun(arg1: Character): number
---@field height fun(arg1: Character): integer
---@field hitall fun(arg1: Character, arg2: integer, arg3: integer, arg4: Creature): integer
---@field hurtall fun(arg1: Character, arg2: integer, arg3: Creature, arg4: boolean)
---@field in_climate_control fun(arg1: Character): boolean
---@field inv_remove_item fun(arg1: Character, arg2: Item) @Removes given `Item` from character's inventory. The `Item` must be in the inventory, neither wielded nor worn.
---@field irradiate fun(arg1: Character, arg2: number, arg3: boolean): boolean
---@field is_armed fun(arg1: Character): boolean
---@field is_blind fun(arg1: Character): boolean
---@field is_deaf fun(arg1: Character): boolean
---@field is_hauling fun(arg1: Character): boolean
---@field is_invisible fun(arg1: Character): boolean
---@field is_limb_broken fun(arg1: Character, arg2: BodyPartTypeIntId): boolean
---@field is_limb_disabled fun(arg1: Character, arg2: BodyPartTypeIntId): boolean
---@field is_max_power fun(arg1: Character): boolean
---@field is_mounted fun(arg1: Character): boolean
---@field is_quiet fun(arg1: Character): boolean
---@field is_rad_immune fun(arg1: Character): boolean
---@field is_stealthy fun(arg1: Character): boolean
---@field is_throw_immune fun(arg1: Character): boolean
---@field is_weak_to_water fun(arg1: Character): boolean
---@field is_wearing fun(arg1: Character, arg2: Item): boolean
---@field is_wearing_active_optcloak fun(arg1: Character): boolean
---@field is_wearing_active_power_armor fun(arg1: Character): boolean
---@field is_wearing_helmet fun(arg1: Character): boolean
---@field is_wearing_on_bp fun(arg1: Character, arg2: ItypeId, arg3: BodyPartTypeIntId): boolean
---@field is_wearing_power_armor fun(arg1: Character, arg2: boolean): boolean
---@field is_wielding fun(arg1: Character, arg2: Item): boolean
---@field is_worn fun(arg1: Character, arg2: Item): boolean
---@field item_worn_with_flag fun(arg1: Character, arg2: JsonFlagId, arg3: BodyPartTypeIntId): Item
---@field item_worn_with_id fun(arg1: Character, arg2: ItypeId, arg3: BodyPartTypeIntId): Item
---@field knows_recipe fun(arg1: Character, arg2: RecipeId): boolean
---@field learn_recipe fun(arg1: Character, arg2: RecipeId)
---@field mabuff_armor_bonus fun(arg1: Character, arg2: DamageType): integer
---@field mabuff_arpen_bonus fun(arg1: Character, arg2: DamageType): integer
---@field mabuff_attack_cost_mult fun(arg1: Character): number
---@field mabuff_attack_cost_penalty fun(arg1: Character): integer
---@field mabuff_block_bonus fun(arg1: Character): integer
---@field mabuff_damage_bonus fun(arg1: Character, arg2: DamageType): integer
---@field mabuff_damage_mult fun(arg1: Character, arg2: DamageType): number
---@field mabuff_dodge_bonus fun(arg1: Character): number
---@field mabuff_speed_bonus fun(arg1: Character): integer
---@field mabuff_tohit_bonus fun(arg1: Character): number
---@field max_stored_kcal fun(arg1: Character): integer
---@field metabolic_rate fun(arg1: Character): number
---@field mod_base_age fun(arg1: Character, arg2: integer)
---@field mod_base_height fun(arg1: Character, arg2: integer)
---@field mod_dex_bonus fun(arg1: Character, arg2: integer)
---@field mod_fatigue fun(arg1: Character, arg2: integer)
---@field mod_healthy fun(arg1: Character, arg2: integer)
---@field mod_healthy_mod fun(arg1: Character, arg2: integer, arg3: integer)
---@field mod_int_bonus fun(arg1: Character, arg2: integer)
---@field mod_max_power_level fun(arg1: Character, arg2: Energy)
---@field mod_painkiller fun(arg1: Character, arg2: integer)
---@field mod_per_bonus fun(arg1: Character, arg2: integer)
---@field mod_power_level fun(arg1: Character, arg2: Energy)
---@field mod_rad fun(arg1: Character, arg2: integer)
---@field mod_skill_level fun(arg1: Character, arg2: SkillId, arg3: integer)
---@field mod_sleep_deprivation fun(arg1: Character, arg2: integer)
---@field mod_stamina fun(arg1: Character, arg2: integer)
---@field mod_stim fun(arg1: Character, arg2: integer)
---@field mod_stored_kcal fun(arg1: Character, arg2: integer)
---@field mod_str_bonus fun(arg1: Character, arg2: integer)
---@field mod_thirst fun(arg1: Character, arg2: integer)
---@field mount_creature fun(arg1: Character, arg2: Monster)
---@field mutate fun(arg1: Character)
---@field mutate_category fun(arg1: Character, arg2: MutationCategoryTraitId)
---@field mutate_towards fun(arg1: Character, arg2: any, arg3: integer): boolean
---@field mutate_towards fun(arg1: Character, arg2: MutationBranchId): boolean
---@field mutate_towards fun(arg1: Character, arg2: any, arg3: integer): boolean | fun(arg1: Character, arg2: MutationBranchId): boolean
---@field mutation_armor fun(arg1: Character, arg2: BodyPartTypeIntId, arg3: DamageType): number
---@field mutation_effect fun(arg1: Character, arg2: MutationBranchId)
---@field mutation_loss_effect fun(arg1: Character, arg2: MutationBranchId)
---@field mutation_ok fun(arg1: Character, arg2: MutationBranchId, arg3: boolean, arg4: boolean): boolean
---@field mutation_value fun(arg1: Character, arg2: string): number
---@field practice fun(arg1: Character, arg2: SkillId, arg3: integer, arg4: integer, arg5: boolean)
---@field read_speed fun(arg1: Character, arg2: boolean): integer
---@field rem_addiction fun(arg1: Character, arg2: AddictionType)
---@field rem_morale fun(arg1: Character, arg2: MoraleTypeDataId)
---@field remove_bionic fun(arg1: Character, arg2: BionicDataId)
---@field remove_child_flag fun(arg1: Character, arg2: MutationBranchId)
---@field remove_mutation fun(arg1: Character, arg2: MutationBranchId, arg3: boolean)
---@field restore_scent fun(arg1: Character)
---@field rest_quality fun(arg1: Character): number
---@field rooted fun(arg1: Character)
---@field rust_rate fun(arg1: Character): integer
---@field set_base_age fun(arg1: Character, arg2: integer)
---@field set_base_height fun(arg1: Character, arg2: integer)
---@field set_dex_bonus fun(arg1: Character, arg2: integer)
---@field set_faction_id fun(arg1: Character, arg2: FactionId)
---@field set_fatigue fun(arg1: Character, arg2: integer)
---@field set_healthy fun(arg1: Character, arg2: integer)
---@field set_healthy_mod fun(arg1: Character, arg2: integer)
---@field setID fun(arg1: Character, arg2: CharacterId, arg3: boolean)
---@field set_int_bonus fun(arg1: Character, arg2: integer)
---@field set_max_power_level fun(arg1: Character, arg2: Energy)
---@field set_movement_mode fun(arg1: Character, arg2: CharacterMoveMode)
---@field set_mutation fun(arg1: Character, arg2: MutationBranchId)
---@field set_painkiller fun(arg1: Character, arg2: integer)
---@field set_part_temp_btu fun(arg1: Character, arg2: BodyPartTypeIntId, arg3: integer) @Sets a specific body part to a given temperature (in Body Temperature Units).
---@field set_per_bonus fun(arg1: Character, arg2: integer)
---@field set_power_level fun(arg1: Character, arg2: Energy)
---@field set_rad fun(arg1: Character, arg2: integer)
---@field set_skill_level fun(arg1: Character, arg2: SkillId, arg3: integer)
---@field set_sleep_deprivation fun(arg1: Character, arg2: integer)
---@field set_stamina fun(arg1: Character, arg2: integer)
---@field set_stim fun(arg1: Character, arg2: integer)
---@field set_stored_kcal fun(arg1: Character, arg2: integer)
---@field set_str_bonus fun(arg1: Character, arg2: integer)
---@field set_temp_btu fun(arg1: Character, arg2: integer) @Sets ALL body parts on a creature to the given temperature (in Body Temperature Units).
---@field set_thirst fun(arg1: Character, arg2: integer)
---@field shout fun(arg1: Character, arg2: string, arg3: boolean)
---@field sight_impaired fun(arg1: Character): boolean
---@field spores fun(arg1: Character)
---@field suffer fun(arg1: Character)
---@field unset_mutation fun(arg1: Character, arg2: MutationBranchId)
---@field unwield fun(arg1: Character): boolean
---@field volume_capacity fun(arg1: Character): Volume
---@field volume_carried fun(arg1: Character): Volume
---@field vomit fun(arg1: Character)
---@field wake_up fun(arg1: Character)
---@field wearing_something_on fun(arg1: Character, arg2: BodyPartTypeIntId): boolean
---@field weight_carried fun(arg1: Character): Mass
---@field wield fun(arg1: Character, arg2: Item): boolean
---@field worn_with_flag fun(arg1: Character, arg2: JsonFlagId, arg3: BodyPartTypeIntId): boolean
---@field worn_with_id fun(arg1: Character, arg2: ItypeId, arg3: BodyPartTypeIntId): boolean
Character = {}
---@return Character
function Character.new() end
---@class CharacterId
---@field get_value fun(arg1: CharacterId): integer
---@field is_valid fun(arg1: CharacterId): boolean
CharacterId = {}
---@return CharacterId
---@overload fun(arg1: integer): CharacterId
function CharacterId.new() end
---@class Creature
---@field add_effect fun(arg1: Creature, arg2: EffectTypeId, arg3: TimeDuration, arg4: any, arg5: any) @Effect type, duration, bodypart and intensity
---@field apply_damage fun(arg1: Creature, arg2: Creature, arg3: BodyPartTypeIntId, arg4: integer, arg5: boolean)
---@field as_avatar fun(arg1: Creature): Avatar
---@field as_character fun(arg1: Creature): Character
---@field as_monster fun(arg1: Creature): Monster
---@field as_npc fun(arg1: Creature): Npc
---@field attitude_to fun(arg1: Creature, arg2: Creature): Attitude
---@field clear_effects fun(arg1: Creature)
---@field deal_damage fun(arg1: Creature, arg2: Creature, arg3: BodyPartTypeIntId, arg4: DamageInstance): DealtDamageInstance
---@field digging fun(arg1: Creature): boolean
---@field disp_name fun(arg1: Creature, arg2: boolean, arg3: boolean): string
---@field dodge_roll fun(arg1: Creature): number
---@field get_armor_bash fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_armor_bash_base fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_armor_bash_bonus fun(arg1: Creature): integer
---@field get_armor_bullet fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_armor_bullet_base fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_armor_bullet_bonus fun(arg1: Creature): integer
---@field get_armor_cut fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_armor_cut_base fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_armor_cut_bonus fun(arg1: Creature): integer
---@field get_armor_type fun(arg1: Creature, arg2: DamageType, arg3: BodyPartTypeIntId): integer
---@field get_block_bonus fun(arg1: Creature): integer
---@field get_dodge fun(arg1: Creature): number
---@field get_dodge_base fun(arg1: Creature): number
---@field get_dodge_bonus fun(arg1: Creature): number
---@field get_effect_dur fun(arg1: Creature, arg2: EffectTypeId, arg3: any): TimeDuration
---@field get_effect_int fun(arg1: Creature, arg2: EffectTypeId, arg3: any): integer
---@field get_env_resist fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_grammatical_genders fun(arg1: Creature): any
---@field get_hit fun(arg1: Creature): number
---@field get_hit_base fun(arg1: Creature): number
---@field get_hit_bonus fun(arg1: Creature): number
---@field get_hp fun(arg1: Creature, arg2: any): integer
---@field get_hp_max fun(arg1: Creature, arg2: any): integer
---@field get_melee fun(arg1: Creature): number
---@field get_moves fun(arg1: Creature): integer
---@field get_name fun(arg1: Creature): string
---@field get_num_blocks fun(arg1: Creature): integer
---@field get_num_dodges fun(arg1: Creature): integer
---@field get_pain fun(arg1: Creature): integer
---@field get_part_healed_total fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_part_hp_cur fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_part_hp_max fun(arg1: Creature, arg2: BodyPartTypeIntId): integer
---@field get_perceived_pain fun(arg1: Creature): integer
---@field get_pos_ms fun(arg1: Creature): Tripoint
---@field get_size fun(arg1: Creature): MonsterSize
---@field get_speed fun(arg1: Creature): integer
---@field get_speed_base fun(arg1: Creature): integer
---@field get_speed_bonus fun(arg1: Creature): integer
---@field get_speed_mult fun(arg1: Creature): number
---@field get_value fun(arg1: Creature, arg2: string): string
---@field get_weight fun(arg1: Creature): Mass
---@field get_weight_capacity fun(arg1: Creature): integer
---@field has_effect fun(arg1: Creature, arg2: EffectTypeId, arg3: any): boolean
---@field has_effect_with_flag fun(arg1: Creature, arg2: JsonFlagId, arg3: any): boolean
---@field has_flag fun(arg1: Creature, arg2: MonsterFlag): boolean
---@field has_grab_break_tec fun(arg1: Creature): boolean
---@field has_trait fun(arg1: Creature, arg2: MutationBranchId): boolean
---@field has_weapon fun(arg1: Creature): boolean
---@field hp_percentage fun(arg1: Creature): integer
---@field in_species fun(arg1: Creature, arg2: SpeciesTypeId): boolean
---@field is_avatar fun(arg1: Creature): boolean
---@field is_dead fun(arg1: Creature): boolean
---@field is_elec_immune fun(arg1: Creature): boolean
---@field is_hallucination fun(arg1: Creature): boolean
---@field is_immune_damage fun(arg1: Creature, arg2: DamageType): boolean
---@field is_immune_effect fun(arg1: Creature, arg2: EffectTypeId): boolean
---@field is_monster fun(arg1: Creature): boolean
---@field is_npc fun(arg1: Creature): boolean
---@field is_on_ground fun(arg1: Creature): boolean
---@field is_underwater fun(arg1: Creature): boolean
---@field is_warm fun(arg1: Creature): boolean
---@field knock_back_to fun(arg1: Creature, arg2: Tripoint)
---@field mod_moves fun(arg1: Creature, arg2: integer)
---@field mod_pain fun(arg1: Creature, arg2: integer)
---@field mod_pain_noresist fun(arg1: Creature, arg2: integer)
---@field mod_part_hp_cur fun(arg1: Creature, arg2: BodyPartTypeIntId, arg3: integer)
---@field mod_part_hp_max fun(arg1: Creature, arg2: BodyPartTypeIntId, arg3: integer)
---@field power_rating fun(arg1: Creature): number
---@field ranged_target_size fun(arg1: Creature): number
---@field remove_effect fun(arg1: Creature, arg2: EffectTypeId, arg3: any): boolean
---@field remove_value fun(arg1: Creature, arg2: string)
---@field sees fun(arg1: Creature, arg2: Creature): boolean
---@field set_all_parts_hp_cur fun(arg1: Creature, arg2: integer)
---@field set_all_parts_hp_to_max fun(arg1: Creature)
---@field set_moves fun(arg1: Creature, arg2: integer)
---@field set_pain fun(arg1: Creature, arg2: integer)
---@field set_part_hp_cur fun(arg1: Creature, arg2: BodyPartTypeIntId, arg3: integer)
---@field set_part_hp_max fun(arg1: Creature, arg2: BodyPartTypeIntId, arg3: integer)
---@field set_pos_ms fun(arg1: Creature, arg2: Tripoint)
---@field set_underwater fun(arg1: Creature, arg2: boolean)
---@field set_value fun(arg1: Creature, arg2: string, arg3: string)
---@field sight_range fun(arg1: Creature, arg2: integer): integer
---@field size_melee_penalty fun(arg1: Creature): integer
---@field skin_name fun(arg1: Creature): string
---@field speed_rating fun(arg1: Creature): number
---@field stability_roll fun(arg1: Creature): number
Creature = {}
---@return Creature
function Creature.new() end
--- new(damageType, amount, armorPen, remainingArmorMultiplier, damageMultiplier)
---@class DamageInstance
---@field damage_units any
---@field add fun(arg1: DamageInstance, arg2: DamageUnit)
---@field add_damage fun(arg1: DamageInstance, arg2: DamageType, arg3: number, arg4: number, arg5: number, arg6: number)
---@field clear fun(arg1: DamageInstance)
---@field empty fun(arg1: DamageInstance): boolean
---@field mult_damage fun(arg1: DamageInstance, arg2: number, arg3: boolean)
---@field total_damage fun(arg1: DamageInstance): number
---@field type_damage fun(arg1: DamageInstance, arg2: DamageType): number
---@field __eq fun(arg1: DamageInstance, arg2: DamageInstance): boolean
DamageInstance = {}
---@return DamageInstance
---@overload fun(arg1: DamageType, arg2: number, arg3: number, arg4: number, arg5: number): DamageInstance
function DamageInstance.new() end
--- new(damageType, amount, armorPen, remainingArmorMultiplier, damageMultiplier)
---@class DamageUnit
---@field amount number
---@field damage_multiplier number
---@field res_mult number
---@field res_pen number
---@field type DamageType
---@field __eq fun(arg1: DamageUnit, arg2: DamageUnit): boolean
DamageUnit = {}
---@return DamageUnit
---@overload fun(arg1: DamageType, arg2: number, arg3: number, arg4: number, arg5: number): DamageUnit
function DamageUnit.new() end
--- Represents the final dealt damage
---@class DealtDamageInstance
---@field bp_hit BodyPartTypeId
---@field dealt_dams any
---@field total_damage fun(arg1: DealtDamageInstance): integer
---@field type_damage fun(arg1: DealtDamageInstance, arg2: DamageType): integer
DealtDamageInstance = {}
---@return DealtDamageInstance
function DealtDamageInstance.new() end
---@class DiseaseTypeId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: DiseaseTypeId): boolean
---@field is_valid fun(arg1: DiseaseTypeId): boolean
---@field NULL_ID fun(): DiseaseTypeId
---@field obj fun(arg1: DiseaseTypeId): DiseaseTypeRaw
---@field str fun(arg1: DiseaseTypeId): string
---@field serialize fun(arg1: DiseaseTypeId)
---@field deserialize fun(arg1: DiseaseTypeId)
---@field __tostring fun(arg1: DiseaseTypeId): string
DiseaseTypeId = {}
---@return DiseaseTypeId
---@overload fun(arg1: DiseaseTypeId): DiseaseTypeId
---@overload fun(arg1: string): DiseaseTypeId
function DiseaseTypeId.new() end
---@class DistributionGrid
---@field get_resource fun(arg1: DistributionGrid, arg2: boolean): integer @Boolean argument controls recursive behavior
---@field mod_resource fun(arg1: DistributionGrid, arg2: integer, arg3: boolean): integer @Boolean argument controls recursive behavior
DistributionGrid = {}
---@return DistributionGrid
function DistributionGrid.new() end
---@class DistributionGridTracker
---@field get_grid_at_abs_ms fun(arg1: DistributionGridTracker, arg2: Tripoint): DistributionGrid
DistributionGridTracker = {}
---@return DistributionGridTracker
function DistributionGridTracker.new() end
---@class EffectTypeId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: EffectTypeId): boolean
---@field is_valid fun(arg1: EffectTypeId): boolean
---@field NULL_ID fun(): EffectTypeId
---@field obj fun(arg1: EffectTypeId): EffectTypeRaw
---@field str fun(arg1: EffectTypeId): string
---@field serialize fun(arg1: EffectTypeId)
---@field deserialize fun(arg1: EffectTypeId)
---@field __tostring fun(arg1: EffectTypeId): string
EffectTypeId = {}
---@return EffectTypeId
---@overload fun(arg1: EffectTypeId): EffectTypeId
---@overload fun(arg1: string): EffectTypeId
function EffectTypeId.new() end
---@class Energy
---@field from_joule fun(arg1: integer): Energy
---@field from_kilojoule fun(arg1: integer): Energy
---@field to_joule fun(arg1: Energy): integer
---@field to_kilojoule fun(arg1: Energy): integer
---@field __eq fun(arg1: Energy, arg2: Energy): boolean
---@field __le fun(arg1: Energy, arg2: Energy): boolean
---@field __lt fun(arg1: Energy, arg2: Energy): boolean
Energy = {}
---@return Energy
function Energy.new() end
---@class FactionId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: FactionId): boolean
---@field is_valid fun(arg1: FactionId): boolean
---@field NULL_ID fun(): FactionId
---@field obj fun(arg1: FactionId): FactionRaw
---@field str fun(arg1: FactionId): string
---@field serialize fun(arg1: FactionId)
---@field deserialize fun(arg1: FactionId)
---@field __tostring fun(arg1: FactionId): string
FactionId = {}
---@return FactionId
---@overload fun(arg1: FactionId): FactionId
---@overload fun(arg1: string): FactionId
function FactionId.new() end
---@class FactionRaw
---@field str_id fun(arg1: FactionRaw): FactionId
FactionRaw = {}
---@return FactionRaw
function FactionRaw.new() end
---@class FieldTypeId
---@field implements_int_id fun(): boolean
---@field int_id fun(arg1: FieldTypeId): FieldTypeIntId
---@field is_null fun(arg1: FieldTypeId): boolean
---@field is_valid fun(arg1: FieldTypeId): boolean
---@field NULL_ID fun(): FieldTypeId
---@field obj fun(arg1: FieldTypeId): FieldTypeRaw
---@field str fun(arg1: FieldTypeId): string
---@field serialize fun(arg1: FieldTypeId)
---@field deserialize fun(arg1: FieldTypeId)
---@field __tostring fun(arg1: FieldTypeId): string
FieldTypeId = {}
---@return FieldTypeId
---@overload fun(arg1: FieldTypeId): FieldTypeId
---@overload fun(arg1: FieldTypeIntId): FieldTypeId
---@overload fun(arg1: string): FieldTypeId
function FieldTypeId.new() end
---@class FieldTypeIntId
---@field is_valid fun(arg1: FieldTypeIntId): boolean
---@field obj fun(arg1: FieldTypeIntId): FieldTypeRaw
---@field str_id fun(arg1: FieldTypeIntId): FieldTypeId
---@field __tostring fun(arg1: FieldTypeIntId): string
FieldTypeIntId = {}
---@return FieldTypeIntId
---@overload fun(arg1: FieldTypeIntId): FieldTypeIntId
---@overload fun(arg1: FieldTypeId): FieldTypeIntId
function FieldTypeIntId.new() end
---@class FurnId
---@field implements_int_id fun(): boolean
---@field int_id fun(arg1: FurnId): FurnIntId
---@field is_null fun(arg1: FurnId): boolean
---@field is_valid fun(arg1: FurnId): boolean
---@field NULL_ID fun(): FurnId
---@field obj fun(arg1: FurnId): FurnRaw
---@field str fun(arg1: FurnId): string
---@field serialize fun(arg1: FurnId)
---@field deserialize fun(arg1: FurnId)
---@field __tostring fun(arg1: FurnId): string
FurnId = {}
---@return FurnId
---@overload fun(arg1: FurnId): FurnId
---@overload fun(arg1: FurnIntId): FurnId
---@overload fun(arg1: string): FurnId
function FurnId.new() end
---@class FurnIntId
---@field is_valid fun(arg1: FurnIntId): boolean
---@field obj fun(arg1: FurnIntId): FurnRaw
---@field str_id fun(arg1: FurnIntId): FurnId
---@field __tostring fun(arg1: FurnIntId): string
FurnIntId = {}
---@return FurnIntId
---@overload fun(arg1: FurnIntId): FurnIntId
---@overload fun(arg1: FurnId): FurnIntId
function FurnIntId.new() end
---@class FurnRaw
---@field close FurnId
---@field open FurnId
---@field transforms_into FurnId
---@field int_id fun(arg1: FurnRaw): FurnIntId
---@field str_id fun(arg1: FurnRaw): FurnId
FurnRaw = {}
---@return FurnRaw
function FurnRaw.new() end
---@class Item
---@field charges integer
---@field add_item_with_id fun(arg1: Item, arg2: ItypeId, arg3: integer) @Adds an item(s) to contents
---@field add_technique fun(arg1: Item, arg2: MartialArtsTechniqueId) @Adds the technique. It isn't treated original, but additional.
---@field ammo_capacity fun(arg1: Item, arg2: boolean): integer @Gets the maximum capacity of a magazine
---@field ammo_consume fun(arg1: Item, arg2: integer, arg3: Tripoint): integer
---@field ammo_current fun(arg1: Item): ItypeId
---@field ammo_data fun(arg1: Item): ItypeRaw
---@field ammo_remaining fun(arg1: Item): integer @Get remaining ammo, works with batteries & stuff too
---@field ammo_required fun(arg1: Item): integer
---@field ammo_set fun(arg1: Item, arg2: ItypeId, arg3: integer)
---@field ammo_unset fun(arg1: Item)
---@field can_contain fun(arg1: Item, arg2: Item): boolean @Checks if this item can contain another
---@field clear_vars fun(arg1: Item) @Erase all variables
---@field conductive fun(arg1: Item): boolean
---@field convert fun(arg1: Item, arg2: ItypeId) @Converts the item as given `ItypeId`.
---@field covers fun(arg1: Item, arg2: BodyPartTypeIntId): boolean @Checks if the item covers a bodypart
---@field current_magazine fun(arg1: Item): Item @Gets the current magazine
---@field display_name fun(arg1: Item, arg2: integer): string @Display name with all bells and whistles like ammo and prefixes
---@field energy_remaining fun(arg1: Item): Energy
---@field erase_var fun(arg1: Item, arg2: string) @Erase variable
---@field get_category_id fun(arg1: Item): string @Gets the category id this item is in
---@field get_mtype fun(arg1: Item): MtypeId @Almost for a corpse.
---@field get_owner fun(arg1: Item): FactionId @Gets the faction id that owns this item
---@field get_owner_name fun(arg1: Item): string
---@field get_reload_time fun(arg1: Item): integer
---@field get_rot fun(arg1: Item): TimeDuration @Gets the TimeDuration until this item rots
---@field get_techniques fun(arg1: Item): any @Gets all techniques. Including original techniques.
---@field get_type fun(arg1: Item): ItypeId
---@field get_var_num fun(arg1: Item, arg2: string, arg3: number): number @Get variable as float number
---@field get_var_str fun(arg1: Item, arg2: string, arg3: string): string @Get variable as string
---@field get_var_tri fun(arg1: Item, arg2: string, arg3: Tripoint): Tripoint @Get variable as tripoint
---@field has_flag fun(arg1: Item, arg2: JsonFlagId): boolean
---@field has_infinite_charges fun(arg1: Item): boolean
---@field has_item_with_id fun(arg1: Item, arg2: ItypeId): boolean @Checks item contents for a given item id
---@field has_own_flag fun(arg1: Item, arg2: JsonFlagId): boolean
---@field has_technique fun(arg1: Item, arg2: MartialArtsTechniqueId): boolean @Checks if this item has the technique as an addition. Doesn't check original techniques.
---@field has_var fun(arg1: Item, arg2: string): boolean @Check for variable of any type
---@field is_active fun(arg1: Item): boolean
---@field is_ammo fun(arg1: Item): boolean
---@field is_ammo_belt fun(arg1: Item): boolean
---@field is_ammo_container fun(arg1: Item): boolean
---@field is_armor fun(arg1: Item): boolean
---@field is_artifact fun(arg1: Item): boolean
---@field is_bandolier fun(arg1: Item): boolean
---@field is_battery fun(arg1: Item): boolean @DEPRECATED: Is this a battery? (spoiler: it isn't)
---@field is_bionic fun(arg1: Item): boolean
---@field is_book fun(arg1: Item): boolean
---@field is_brewable fun(arg1: Item): boolean
---@field is_bucket fun(arg1: Item): boolean
---@field is_bucket_nonempty fun(arg1: Item): boolean
---@field is_comestible fun(arg1: Item): boolean
---@field is_container fun(arg1: Item): boolean
---@field is_container_empty fun(arg1: Item): boolean
---@field is_corpse fun(arg1: Item): boolean
---@field is_craft fun(arg1: Item): boolean
---@field is_dangerous fun(arg1: Item): boolean
---@field is_deployable fun(arg1: Item): boolean
---@field is_emissive fun(arg1: Item): boolean
---@field is_engine fun(arg1: Item): boolean
---@field is_faulty fun(arg1: Item): boolean
---@field is_filthy fun(): boolean @DEPRECATED: Items are no longer filthy
---@field is_firearm fun(arg1: Item): boolean
---@field is_food fun(arg1: Item): boolean
---@field is_food_container fun(arg1: Item): boolean
---@field is_fuel fun(arg1: Item): boolean
---@field is_gun fun(arg1: Item): boolean
---@field is_gunmod fun(arg1: Item): boolean
---@field is_holster fun(arg1: Item): boolean
---@field is_irremovable fun(arg1: Item): boolean
---@field is_magazine fun(arg1: Item): boolean @Is this a magazine? (batteries are magazines)
---@field is_map fun(arg1: Item): boolean
---@field is_med_container fun(arg1: Item): boolean
---@field is_medication fun(arg1: Item): boolean
---@field is_melee fun(arg1: Item, arg2: DamageType): boolean @Is this item an effective melee weapon for the given damage type?
---@field is_money fun(arg1: Item): boolean
---@field is_non_resealable_container fun(arg1: Item): boolean
---@field is_null fun(arg1: Item): boolean
---@field is_owned_by fun(arg1: Item, arg2: Character, arg3: boolean): boolean @Checks if this item owned by a character
---@field is_power_armor fun(arg1: Item): boolean
---@field is_relic fun(arg1: Item): boolean
---@field is_reloadable fun(arg1: Item): boolean
---@field is_salvageable fun(arg1: Item, arg2: boolean): boolean
---@field is_seed fun(arg1: Item): boolean
---@field is_sided fun(arg1: Item): boolean
---@field is_silent fun(arg1: Item): boolean
---@field is_soft fun(arg1: Item): boolean
---@field is_tainted fun(arg1: Item): boolean
---@field is_tool fun(arg1: Item): boolean
---@field is_toolmod fun(arg1: Item): boolean
---@field is_transformable fun(arg1: Item): boolean
---@field is_unarmed_weapon fun(arg1: Item): boolean
---@field is_upgrade fun(arg1: Item): boolean
---@field is_watertight_container fun(arg1: Item): boolean
---@field is_wheel fun(arg1: Item): boolean
---@field mod_charges fun(arg1: Item, arg2: integer)
---@field remaining_capacity_for_id fun(arg1: Item, arg2: ItypeId, arg3: boolean): integer @Gets the remaining space available for a type of liquid
---@field remove_technique fun(arg1: Item, arg2: MartialArtsTechniqueId) @Removes the additional technique. Doesn't affect originial techniques.
---@field set_flag fun(arg1: Item, arg2: JsonFlagId)
---@field set_flag_recursive fun(arg1: Item, arg2: JsonFlagId)
---@field set_owner fun(arg1: Item, arg2: FactionId) @Sets the ownership of this item to a faction
---@field set_owner fun(arg1: Item, arg2: Character) @Sets the ownership of this item to a character
---@field set_var_num fun(arg1: Item, arg2: string, arg3: number)
---@field set_var_str fun(arg1: Item, arg2: string, arg3: string)
---@field set_var_tri fun(arg1: Item, arg2: string, arg3: Tripoint)
---@field tname fun(arg1: Item, arg2: integer, arg3: boolean, arg4: integer): string @Translated item name with prefixes
---@field total_capacity fun(arg1: Item): Volume @Gets maximum volume this item can hold (liquids, ammo, etc)
---@field unset_flag fun(arg1: Item, arg2: JsonFlagId)
---@field unset_flags fun(arg1: Item)
Item = {}
---@return Item
function Item.new() end
--- Iterate over this using pairs()
---@class ItemStack
---@field __pairs fun(arg1: ItemStack): any
ItemStack = {}
---@return ItemStack
function ItemStack.new() end
---@class ItypeId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: ItypeId): boolean
---@field is_valid fun(arg1: ItypeId): boolean
---@field NULL_ID fun(): ItypeId
---@field obj fun(arg1: ItypeId): ItypeRaw
---@field str fun(arg1: ItypeId): string
---@field serialize fun(arg1: ItypeId)
---@field deserialize fun(arg1: ItypeId)
---@field __tostring fun(arg1: ItypeId): string
ItypeId = {}
---@return ItypeId
---@overload fun(arg1: ItypeId): ItypeId
---@overload fun(arg1: string): ItypeId
function ItypeId.new() end
---@class JsonFlagId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: JsonFlagId): boolean
---@field is_valid fun(arg1: JsonFlagId): boolean
---@field NULL_ID fun(): JsonFlagId
---@field obj fun(arg1: JsonFlagId): JsonFlagRaw
---@field str fun(arg1: JsonFlagId): string
---@field serialize fun(arg1: JsonFlagId)
---@field deserialize fun(arg1: JsonFlagId)
---@field __tostring fun(arg1: JsonFlagId): string
JsonFlagId = {}
---@return JsonFlagId
---@overload fun(arg1: JsonFlagId): JsonFlagId
---@overload fun(arg1: string): JsonFlagId
function JsonFlagId.new() end
---@class JsonTraitFlagId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: JsonTraitFlagId): boolean
---@field is_valid fun(arg1: JsonTraitFlagId): boolean
---@field NULL_ID fun(): JsonTraitFlagId
---@field obj fun(arg1: JsonTraitFlagId): JsonTraitFlagRaw
---@field str fun(arg1: JsonTraitFlagId): string
---@field serialize fun(arg1: JsonTraitFlagId)
---@field deserialize fun(arg1: JsonTraitFlagId)
---@field __tostring fun(arg1: JsonTraitFlagId): string
JsonTraitFlagId = {}
---@return JsonTraitFlagId
---@overload fun(arg1: JsonTraitFlagId): JsonTraitFlagId
---@overload fun(arg1: string): JsonTraitFlagId
function JsonTraitFlagId.new() end
---@class Map
---@field add_field_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId, arg4: integer, arg5: TimeDuration): boolean
---@field clear_items_at fun(arg1: Map, arg2: Tripoint)
---@field create_corpse_at fun(arg1: Map, arg2: Tripoint, arg3: any, arg4: any, arg5: any, arg6: any) @Creates a new corpse at a position on the map. You can skip `Opt` ones by omitting them or passing `nil`. `MtypeId` specifies which monster's body it is, `TimePoint` indicates when it died, `string` gives it a custom name, and `int` determines the revival time if the monster has the `REVIVES` flag.
---@field create_item_at fun(arg1: Map, arg2: Tripoint, arg3: ItypeId, arg4: integer) @Creates a new item(s) at a position on the map.
---@field disarm_trap_at fun(arg1: Map, arg2: Tripoint) @Disarms a trap using your skills and stats, with consequences depending on success or failure.
---@field get_abs_ms fun(arg1: Map, arg2: Tripoint): Tripoint @Convert local ms -> absolute ms
---@field get_field_age_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId): TimeDuration
---@field get_field_int_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId): integer
---@field get_furn_at fun(arg1: Map, arg2: Tripoint): FurnIntId
---@field get_items_at fun(arg1: Map, arg2: Tripoint): any
---@field get_local_ms fun(arg1: Map, arg2: Tripoint): Tripoint @Convert absolute ms -> local ms
---@field get_map_size fun(arg1: Map): integer @In map squares
---@field get_map_size_in_submaps fun(arg1: Map): integer
---@field get_ter_at fun(arg1: Map, arg2: Tripoint): TerIntId
---@field get_trap_at fun(arg1: Map, arg2: Tripoint): TrapIntId
---@field has_field_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId): boolean
---@field has_items_at fun(arg1: Map, arg2: Tripoint): boolean
---@field mod_field_age_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId, arg4: TimeDuration): TimeDuration
---@field mod_field_int_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId, arg4: integer): integer
---@field remove_field_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId)
---@field remove_item_at fun(arg1: Map, arg2: Tripoint, arg3: Item)
---@field remove_trap_at fun(arg1: Map, arg2: Tripoint) @Simpler version of `set_trap_at` with `trap_null`.
---@field set_field_age_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId, arg4: TimeDuration, arg5: boolean): TimeDuration
---@field set_field_int_at fun(arg1: Map, arg2: Tripoint, arg3: FieldTypeIntId, arg4: integer, arg5: boolean): integer
---@field set_furn_at fun(arg1: Map, arg2: Tripoint, arg3: FurnIntId)
---@field set_ter_at fun(arg1: Map, arg2: Tripoint, arg3: TerIntId): boolean
---@field set_trap_at fun(arg1: Map, arg2: Tripoint, arg3: TrapIntId) @Set a trap at a position on the map. It can also replace existing trap, even with `trap_null`.
Map = {}
---@return Map
function Map.new() end
---@class MapStack : ItemStack
---@field as_item_stack fun(arg1: MapStack): ItemStack
MapStack = {}
---@return MapStack
function MapStack.new() end
---@class MartialArtsBuffId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: MartialArtsBuffId): boolean
---@field is_valid fun(arg1: MartialArtsBuffId): boolean
---@field NULL_ID fun(): MartialArtsBuffId
---@field obj fun(arg1: MartialArtsBuffId): MartialArtsBuffRaw
---@field str fun(arg1: MartialArtsBuffId): string
---@field serialize fun(arg1: MartialArtsBuffId)
---@field deserialize fun(arg1: MartialArtsBuffId)
---@field __tostring fun(arg1: MartialArtsBuffId): string
MartialArtsBuffId = {}
---@return MartialArtsBuffId
---@overload fun(arg1: MartialArtsBuffId): MartialArtsBuffId
---@overload fun(arg1: string): MartialArtsBuffId
function MartialArtsBuffId.new() end
---@class MartialArtsTechniqueId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: MartialArtsTechniqueId): boolean
---@field is_valid fun(arg1: MartialArtsTechniqueId): boolean
---@field NULL_ID fun(): MartialArtsTechniqueId
---@field obj fun(arg1: MartialArtsTechniqueId): MartialArtsTechniqueRaw
---@field str fun(arg1: MartialArtsTechniqueId): string
---@field serialize fun(arg1: MartialArtsTechniqueId)
---@field deserialize fun(arg1: MartialArtsTechniqueId)
---@field __tostring fun(arg1: MartialArtsTechniqueId): string
MartialArtsTechniqueId = {}
---@return MartialArtsTechniqueId
---@overload fun(arg1: MartialArtsTechniqueId): MartialArtsTechniqueId
---@overload fun(arg1: string): MartialArtsTechniqueId
function MartialArtsTechniqueId.new() end
---@class Mass
---@field from_gram fun(arg1: integer): Mass
---@field from_kilogram fun(arg1: integer): Mass
---@field from_milligram fun(arg1: integer): Mass
---@field from_newton fun(arg1: integer): Mass
---@field to_gram fun(arg1: Mass): integer
---@field to_kilogram fun(arg1: Mass): integer
---@field to_milligram fun(arg1: Mass): integer
---@field to_newton fun(arg1: Mass): integer
---@field __eq fun(arg1: Mass, arg2: Mass): boolean
---@field __le fun(arg1: Mass, arg2: Mass): boolean
---@field __lt fun(arg1: Mass, arg2: Mass): boolean
Mass = {}
---@return Mass
function Mass.new() end
---@class Monster : Creature
---@field anger integer
---@field death_drops boolean
---@field faction MonsterFactionIntId
---@field friendly integer
---@field morale integer
---@field unique_name string
---@field attitude fun(arg1: Monster, arg2: Character): MonsterAttitude
---@field can_climb fun(arg1: Monster): boolean
---@field can_dig fun(arg1: Monster): boolean
---@field can_drown fun(arg1: Monster): boolean
---@field can_hear fun(arg1: Monster): boolean
---@field can_see fun(arg1: Monster): boolean
---@field can_submerge fun(arg1: Monster): boolean
---@field can_upgrade fun(arg1: Monster): boolean
---@field climbs fun(arg1: Monster): boolean
---@field digs fun(arg1: Monster): boolean
---@field flies fun(arg1: Monster): boolean
---@field get_type fun(arg1: Monster): MtypeId
---@field get_upgrade_time fun(arg1: Monster): integer
---@field hasten_upgrade fun(arg1: Monster)
---@field heal fun(arg1: Monster, arg2: integer, arg3: boolean): integer
---@field is_wandering fun(arg1: Monster): boolean
---@field make_ally fun(arg1: Monster, arg2: Monster)
---@field make_friendly fun(arg1: Monster)
---@field make_fungus fun(arg1: Monster): boolean
---@field move_target fun(arg1: Monster): Tripoint
---@field move_to fun(arg1: Monster, arg2: Tripoint, arg3: boolean, arg4: boolean, arg5: number): boolean
---@field name fun(arg1: Monster, arg2: integer): string
---@field name_with_armor fun(arg1: Monster): string
---@field refill_udders fun(arg1: Monster)
---@field set_hp fun(arg1: Monster, arg2: integer)
---@field spawn fun(arg1: Monster, arg2: Tripoint)
---@field swims fun(arg1: Monster): boolean
---@field try_reproduce fun(arg1: Monster)
---@field try_upgrade fun(arg1: Monster, arg2: boolean)
---@field wander_to fun(arg1: Monster, arg2: Tripoint, arg3: integer)
Monster = {}
---@return Monster
function Monster.new() end
---@class MonsterFactionId
---@field implements_int_id fun(): boolean
---@field int_id fun(arg1: MonsterFactionId): MonsterFactionIntId
---@field is_null fun(arg1: MonsterFactionId): boolean
---@field is_valid fun(arg1: MonsterFactionId): boolean
---@field NULL_ID fun(): MonsterFactionId
---@field obj fun(arg1: MonsterFactionId): MonsterFactionRaw
---@field str fun(arg1: MonsterFactionId): string
---@field serialize fun(arg1: MonsterFactionId)
---@field deserialize fun(arg1: MonsterFactionId)
---@field __tostring fun(arg1: MonsterFactionId): string
MonsterFactionId = {}
---@return MonsterFactionId
---@overload fun(arg1: MonsterFactionId): MonsterFactionId
---@overload fun(arg1: MonsterFactionIntId): MonsterFactionId
---@overload fun(arg1: string): MonsterFactionId
function MonsterFactionId.new() end
---@class MonsterFactionIntId
---@field is_valid fun(arg1: MonsterFactionIntId): boolean
---@field obj fun(arg1: MonsterFactionIntId): MonsterFactionRaw
---@field str_id fun(arg1: MonsterFactionIntId): MonsterFactionId
---@field __tostring fun(arg1: MonsterFactionIntId): string
MonsterFactionIntId = {}
---@return MonsterFactionIntId
---@overload fun(arg1: MonsterFactionIntId): MonsterFactionIntId
---@overload fun(arg1: MonsterFactionId): MonsterFactionIntId
function MonsterFactionIntId.new() end
---@class MoraleTypeDataId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: MoraleTypeDataId): boolean
---@field is_valid fun(arg1: MoraleTypeDataId): boolean
---@field NULL_ID fun(): MoraleTypeDataId
---@field obj fun(arg1: MoraleTypeDataId): MoraleTypeDataRaw
---@field str fun(arg1: MoraleTypeDataId): string
---@field serialize fun(arg1: MoraleTypeDataId)
---@field deserialize fun(arg1: MoraleTypeDataId)
---@field __tostring fun(arg1: MoraleTypeDataId): string
MoraleTypeDataId = {}
---@return MoraleTypeDataId
---@overload fun(arg1: MoraleTypeDataId): MoraleTypeDataId
---@overload fun(arg1: string): MoraleTypeDataId
function MoraleTypeDataId.new() end
---@class MtypeId
---@field implements_int_id fun(): boolean
---@field is_null fun(arg1: MtypeId): boolean
---@field is_valid fun(arg1: MtypeId): boolean
---@field NULL_ID fun(): MtypeId
---@field obj fun(arg1: MtypeId): MtypeRaw
---@field str fun(arg1: MtypeId): string
---@field serialize fun(arg1: MtypeId)
---@field deserialize fun(arg1: MtypeId)
---@field __tostring fun(arg1: MtypeId): string
MtypeId = {}