/
carbon_defines.dm
126 lines (101 loc) · 5.14 KB
/
carbon_defines.dm
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
/mob/living/carbon
blood_volume = BLOOD_VOLUME_NORMAL
gender = MALE
pressure_resistance = 15
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD)
has_limbs = TRUE
held_items = list(null, null)
num_legs = 0 //Populated on init through list/bodyparts
usable_legs = 0 //Populated on init through list/bodyparts
num_hands = 0 //Populated on init through list/bodyparts
usable_hands = 0 //Populated on init through list/bodyparts
mobility_flags = MOBILITY_FLAGS_CARBON_DEFAULT
blocks_emissive = EMISSIVE_BLOCK_NONE
///List of [/obj/item/organ]s in the mob. They don't go in the contents for some reason I don't want to know.
var/list/obj/item/organ/organs = list()
///Same as [above][/mob/living/carbon/var/organs], but stores "slot ID" - "organ" pairs for easy access.
var/list/organs_slot = list()
///Whether or not the mob is handcuffed
var/obj/item/handcuffed = null
///Same as handcuffs but for legs. Bear traps use this.
var/obj/item/legcuffed = null
/// Measure of how disgusted we are. See DISGUST_LEVEL_GROSS and friends
var/disgust = 0
/// How disgusted we were LAST time we processed disgust. Helps prevent unneeded work
var/old_disgust = 0
//inventory slots
var/obj/item/back = null
var/obj/item/clothing/mask/wear_mask = null
var/obj/item/clothing/neck/wear_neck = null
/// Equipped air tank. Never set this manually.
var/obj/item/tank/internal = null
/// "External" air tank. Never set this manually. Not required to stay directly equipped on the mob (i.e. could be a machine or MOD suit module).
var/obj/item/tank/external = null
var/obj/item/clothing/head = null
///only used by humans
var/obj/item/clothing/gloves = null
///only used by humans.
var/obj/item/clothing/shoes/shoes = null
///only used by humans.
var/obj/item/clothing/glasses/glasses = null
///only used by humans.
var/obj/item/clothing/ears = null
/// Carbon, you should really only be accessing this through has_dna() but it's your life
var/datum/dna/dna = null
///last mind to control this mob, for blood-based cloning
var/datum/mind/last_mind = null
///This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
var/failed_last_breath = FALSE
/// Used in [carbon/proc/check_breath] and [lungs/proc/check_breath]]
var/co2overloadtime = null
var/obj/item/food/meat/slab/type_of_meat = /obj/item/food/meat/slab
var/gib_type = /obj/effect/decal/cleanable/blood/gibs
rotate_on_lying = TRUE
/// Gets filled up in [/datum/species/proc/replace_body].
/// Will either contain a list of typepaths if nothing has been created yet,
/// or a list of the body part objects.
var/list/bodyparts = list(
/obj/item/bodypart/chest,
/obj/item/bodypart/head,
/obj/item/bodypart/arm/left,
/obj/item/bodypart/arm/right,
/obj/item/bodypart/leg/right,
/obj/item/bodypart/leg/left,
)
/// A collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
var/list/hand_bodyparts = list()
///A cache of bodypart = icon to prevent excessive icon creation.
var/list/icon_render_keys = list()
var/static/list/limb_icon_cache = list()
/// Used to temporarily increase severity of / apply a new damage overlay (the red ring around the ui / screen).
/// This number will translate to equivalent brute or burn damage taken. Handled in [mob/living/proc/update_damage_hud].
/// (For example, setting damageoverlaytemp = 20 will add 20 "damage" to the overlay the next time it updates.)
/// This number is also reset to 0 every tick of carbon Life(). Pain.
var/damageoverlaytemp = 0
///used to halt stamina regen temporarily
var/stam_regen_start_time = 0
/// Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
var/heat_protection = 0 // No heat protection
/// Protection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection
var/cold_protection = 0 // No cold protection
/// Timer id of any transformation
var/transformation_timer
/// All of the wounds a carbon has afflicted throughout their limbs
var/list/all_wounds
/// All of the scars a carbon has afflicted throughout their limbs
var/list/all_scars
/// Assoc list of BODY_ZONE -> wounding_type. Set when a limb is dismembered, unset when one is attached. Used for determining what scar to add when it comes time to generate them.
var/list/body_zone_dismembered_by
/// Simple modifier for whether this mob can handle greater or lesser skillchip complexity. See /datum/mutation/human/biotechcompat/ for example.
var/skillchip_complexity_modifier = 0
/// Can other carbons be shoved into this one to make it fall?
var/can_be_shoved_into = FALSE
/// Only load in visual organs
var/visual_only_organs = FALSE
/// Stores the result of our last known top_offset generation for optimisation purposes when drawing limb icons.
var/last_top_offset
/// A bitfield of "bodytypes", updated by /obj/item/bodypart/proc/synchronize_bodytypes()
var/bodytype = BODYTYPE_ORGANIC
/// A bitfield of "bodyshapes", updated by /obj/item/bodypart/proc/synchronize_bodyshapes()
var/bodyshape = BODYSHAPE_HUMANOID
COOLDOWN_DECLARE(bleeding_message_cd)