-
Notifications
You must be signed in to change notification settings - Fork 555
/
objects.dm
185 lines (148 loc) · 6.04 KB
/
objects.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
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
// Doors!
#define DOOR_CRUSH_DAMAGE 10
/*
Atmos Machinery
*/
#define MAX_SIPHON_FLOWRATE 2500 //L/s This can be used to balance how fast a room is siphoned. Anything higher than CELL_VOLUME has no effect.
#define MAX_SCRUBBER_FLOWRATE 200 //L/s Max flow rate when scrubbing from a turf.
//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences.
//Has no effect on pumping gasses from high pressure to low, only from low to high. Must be between 0 and 1.
#define ATMOS_PUMP_EFFICIENCY 2.5
#define ATMOS_FILTER_EFFICIENCY 2.5
//will not bother pumping or filtering if the gas source as fewer than this amount of moles, to help with performance.
#define MINUMUM_MOLES_TO_PUMP 0.01
#define MINUMUM_MOLES_TO_FILTER 0.1
//The flow rate/effectiveness of various atmos devices is limited by their internal volume, so for many atmos devices these will control maximum flow rates in L/s
#define ATMOS_DEFAULT_VOLUME_PUMP 200 //L
#define ATMOS_DEFAULT_VOLUME_FILTER 200 //L
#define ATMOS_DEFAULT_VOLUME_MIXER 200 //L
#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L
// channel numbers for power
#define POWER_CHANNEL_EQUIP 1
#define POWER_CHANNEL_LIGHT 2
#define POWER_CHANNEL_ENVIRON 3
#define POWER_CHANNEL_ONEOFF 4 //One-off power usage
#define POWER_CHANNEL_TOTAL 5 //for total power used only
// bitflags for machine stat variable
#define FULLY_REPAIRED 0
#define WORKING 0
#define REPAIR_STEP_FOUR 1 // Generic step names to allow for less than four repair steps
#define REPAIR_STEP_THREE 2
#define REPAIR_STEP_TWO 4
#define REPAIR_STEP_ONE 8
#define BROKEN 16
#define NOPOWER 32
#define POWEROFF 64 // tbd
#define MAINT 128 // under maintaince
#define EMPED 256 // temporary broken by EMP pulse
#define TIPPED_OVER 512 // for tipped over vendors
#define IN_USE 1024 // to show that it's actively used right now. Vending an object, for example.
#define MACHINE_DO_NOT_PROCESS 32768 //Do not added these to processing queue.
#define IN_REPAIR (REPAIR_STEP_FOUR|REPAIR_STEP_THREE|REPAIR_STEP_TWO|REPAIR_STEP_ONE)
//bitflags for door switches.
#define OPEN 1
#define IDSCAN 2
#define BOLTS 4
#define SHOCK 8
#define SAFE 16
#define CLOSED 2
//metal, glass, rod stacks
#define MAX_STACK_AMOUNT_METAL 50
#define MAX_STACK_AMOUNT_GLASS 50
#define MAX_STACK_AMOUNT_RODS 60
#define GAS_O2 (1 << 0)
#define GAS_N2 (1 << 1)
#define GAS_PL (1 << 2)
#define GAS_CO2 (1 << 3)
#define GAS_N2O (1 << 4)
//Pulse levels, very simplified
#define PULSE_NONE 0 //so !M.pulse checks would be possible
#define PULSE_SLOW 1 //<60 bpm
#define PULSE_NORM 2 //60-90 bpm
#define PULSE_FAST 3 //90-120 bpm
#define PULSE_2FAST 4 //>120 bpm
#define PULSE_THREADY 5 //occurs during hypovolemic shock
//proc/get_pulse methods
#define GETPULSE_HAND 0 //less accurate (hand)
#define GETPULSE_TOOL 1 //more accurate (med scanner, sleeper, etc)
GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them.)
"thunder",
"ERT",
"NUKE",
CAMERA_NET_LADDER,
CAMERA_NET_COLONY,
CAMERA_NET_OVERWATCH,
CAMERA_NET_ARES,
))
#define STASIS_IN_BAG 1
#define STASIS_IN_CRYO_CELL 2
// Shuttle defines
#define SHUTTLE_OPTIMIZE_FACTOR_RECHARGE 0.75
#define SHUTTLE_OPTIMIZE_FACTOR_TRAVEL 0.5
#define SHUTTLE_COOLING_FACTOR_RECHARGE 0.5
#define SHUTTLE_FUEL_ENHANCE_FACTOR_TRAVEL 0.75
//sharp item defines
#define IS_SHARP_ITEM_SIMPLE 1 //not easily usable to cut or slice. e.g. shard, wirecutters, spear
#define IS_SHARP_ITEM_ACCURATE 2 //knife, scalpel
#define IS_SHARP_ITEM_BIG 3 //fireaxe, hatchet, energy sword
//pry capable item defines
#define IS_PRY_CAPABLE_SIMPLE 1
#define IS_PRY_CAPABLE_CROWBAR 2 //actual crowbar
#define IS_PRY_CAPABLE_FORCE 3 //can force open even powered airlocks
#define SELF_DESTRUCT_MACHINE_INACTIVE 0
#define SELF_DESTRUCT_MACHINE_ACTIVE 1
#define SELF_DESTRUCT_MACHINE_ARMED 2
#define SELF_DESTRUCT_ROD_STARTUP_TIME 12000
// Flamer fire shapes
#define FLAMESHAPE_NONE "none"
#define FLAMESHAPE_DEFAULT "default"
#define FLAMESHAPE_STAR "star"
#define FLAMESHAPE_MINORSTAR "minorstar"
#define FLAMESHAPE_IRREGULAR "irregular"
#define FLAMESHAPE_TRIANGLE "triangle"
#define FLAMESHAPE_LINE "line"
#define FLAME_REAGENT_USE_AMOUNT 1
#define CLEANABLE_SPLATTER "splatter" // Vomit, oil
#define CLEANABLE_BLOOD "blood"
#define CLEANABLE_BLOOD_SPLATTER "blood splatter"
#define CLEANABLE_BLOOD_DRIP "blood drip"
#define CLEANABLE_BLOOD_GIBS "blood gibs"
#define CLEANABLE_TRACKS "tracks"
#define CLEANABLE_JUNK "junk" //Gibs, Robot debris, etcetera
#define CLEANABLE_MISC "misc" //Anything else
//For nuke announcements
#define NUKE_SHOW_TIMER_TEN_SEC (1<<0)
#define NUKE_SHOW_TIMER_MINUTE (1<<1)
#define NUKE_SHOW_TIMER_HALF (1<<2)
#define NUKE_SHOW_TIMER_ALL (NUKE_SHOW_TIMER_TEN_SEC|NUKE_SHOW_TIMER_MINUTE|NUKE_SHOW_TIMER_HALF)
#define NUKE_DECRYPT_SHOW_TIMER_COMPLETE (1<<3)
#define NUKE_DECRYPT_SHOW_TIMER_MINUTE (1<<4)
#define NUKE_DECRYPT_SHOW_TIMER_HALF (1<<5)
#define NUKE_DECRYPT_SHOW_TIMER_ALL (NUKE_SHOW_TIMER_TEN_SEC|NUKE_SHOW_TIMER_HALF|NUKE_DECRYPT_SHOW_TIMER_COMPLETE|NUKE_DECRYPT_SHOW_TIMER_MINUTE|NUKE_DECRYPT_SHOW_TIMER_HALF)
//For recipes
#define ONE_TYPE_PER_TURF 1
#define ONE_TYPE_PER_BORDER 2
#define RESULT_REQUIRES_SNOW (1<<0)
/// Reaction type from touching it
#define TOUCH 1
/// Reaction type from eating it
#define INGEST 2
/// Marks an object as organic. Used for alien structures and any other organic material
#define OBJ_ORGANIC (1<<0)
/// Makes the item not spawn a band around the helmet if it's used as a helmet garb
#define OBJ_NO_HELMET_BAND (1<<1)
/// Marks the object as helmet garb
#define OBJ_IS_HELMET_GARB (1<<2)
/// can you customize the description/name of the thing?
#define OBJ_UNIQUE_RENAME (1<<3)
// For reinforced table status
#define RTABLE_WEAKENED 1
#define RTABLE_NORMAL 2
//Lights define
#define CHECKS_PASSED 1
#define STILL_ON_COOLDOWN 2
#define NO_LIGHT_STATE_CHANGE 3
//tool capabilities or something i don't know
#define REMOVE_CROWBAR (1<<0)
#define BREAK_CROWBAR (1<<1)
#define REMOVE_SCREWDRIVER (1<<2)