-
-
Notifications
You must be signed in to change notification settings - Fork 452
/
game_options.dm
454 lines (328 loc) · 15.1 KB
/
game_options.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
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
/datum/config_entry/number_list/repeated_mode_adjust
/datum/config_entry/keyed_list/probability
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/keyed_list/probability/ValidateListEntry(key_name)
return key_name in config.modes
/datum/config_entry/keyed_list/max_pop
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/keyed_list/job_species_whitelist // Assigns species-based exceptions to Command roles
key_mode = KEY_MODE_TYPE
value_mode = VALUE_MODE_TEXT
/datum/config_entry/keyed_list/max_pop/ValidateListEntry(key_name)
return key_name in config.modes
/datum/config_entry/keyed_list/min_pop
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/keyed_list/min_pop/ValidateListEntry(key_name, key_value)
return key_name in config.modes
/datum/config_entry/keyed_list/continuous // which roundtypes continue if all antagonists die
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
/datum/config_entry/keyed_list/continuous/ValidateListEntry(key_name, key_value)
return key_name in config.modes
/datum/config_entry/keyed_list/midround_antag // which roundtypes use the midround antagonist system
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
/datum/config_entry/keyed_list/midround_antag/ValidateListEntry(key_name, key_value)
return key_name in config.modes
/datum/config_entry/number/damage_multiplier
config_entry_value = 1
integer = FALSE
/datum/config_entry/number/minimal_access_threshold //If the number of players is larger than this threshold, minimal access will be turned on.
min_val = 0
/datum/config_entry/flag/jobs_have_minimal_access //determines whether jobs use minimal access or expanded access.
/datum/config_entry/flag/assistants_have_maint_access
/datum/config_entry/flag/security_has_maint_access
/datum/config_entry/flag/everyone_has_maint_access
/datum/config_entry/flag/auto_blue_alert
/datum/config_entry/flag/sec_start_brig //makes sec start in brig instead of dept sec posts
/datum/config_entry/flag/force_random_names
/datum/config_entry/flag/humans_need_surnames
/datum/config_entry/flag/allow_ai // allow ai job
/datum/config_entry/flag/allow_ai_multicam // allow ai multicamera mode
/datum/config_entry/flag/disable_human_mood
/datum/config_entry/flag/force_human_mood // force every human to have mood enabled, this overwrites disabling it.
/datum/config_entry/flag/disable_secborg // disallow secborg module to be chosen.
/datum/config_entry/flag/disable_peaceborg
/datum/config_entry/flag/economy //money money money money money money money money money money money money
/datum/config_entry/number/traitor_scaling_coeff //how much does the amount of players get divided by to determine traitors
config_entry_value = 6
integer = FALSE
min_val = 1
/datum/config_entry/number/brother_scaling_coeff //how many players per brother team
config_entry_value = 25
integer = FALSE
min_val = 1
/datum/config_entry/number/changeling_scaling_coeff //how much does the amount of players get divided by to determine changelings
config_entry_value = 6
integer = FALSE
min_val = 1
/datum/config_entry/number/ecult_scaling_coeff //how much does the amount of players get divided by to determine e_cult
config_entry_value = 6
integer = FALSE
min_val = 1
/datum/config_entry/number/security_scaling_coeff //how much does the amount of players get divided by to determine open security officer positions
config_entry_value = 8
integer = FALSE
min_val = 1
/datum/config_entry/number/min_security_scaling_coeff //how much does the amount of players get divided by to determine forced security positions
/datum/config_entry/number/abductor_scaling_coeff //how many players per abductor team
config_entry_value = 15
integer = FALSE
min_val = 1
/datum/config_entry/number/traitor_objectives_amount
config_entry_value = 2
min_val = 0
/datum/config_entry/number/brother_objectives_amount
config_entry_value = 2
min_val = 0
/datum/config_entry/flag/reactionary_explosions //If we use reactionary explosions, explosions that react to walls and doors
/datum/config_entry/flag/protect_roles_from_antagonist //If security and such can be traitor/cult/other
/datum/config_entry/flag/protect_assistant_from_antagonist //If assistants can be traitor/cult/other
/datum/config_entry/flag/protect_heads_from_antagonist //If heads can be traitor/cult/other
/datum/config_entry/flag/enforce_human_authority //If non-human species are barred from joining as a head of staff
/datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling
/datum/config_entry/flag/use_antag_rep // see game_options.txt for details
/datum/config_entry/number/antag_rep_maximum
config_entry_value = 200
integer = FALSE
min_val = 0
/datum/config_entry/number/default_antag_tickets
config_entry_value = 100
integer = FALSE
min_val = 0
/datum/config_entry/number/max_tickets_per_roll
config_entry_value = 100
integer = FALSE
min_val = 0
/datum/config_entry/number/escaped_alive_bonus
config_entry_value = 1.5
integer = FALSE
min_val = 1
/datum/config_entry/number/stayed_alive_bonus
config_entry_value = 1.5
integer = FALSE
min_val = 1
/datum/config_entry/number/midround_antag_time_check // How late (in minutes you want the midround antag system to stay on, setting this to 0 will disable the system)
config_entry_value = 60
integer = FALSE
min_val = 0
/datum/config_entry/number/midround_antag_life_check // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist
config_entry_value = 0.7
integer = FALSE
min_val = 0
max_val = 1
/datum/config_entry/number/shuttle_refuel_delay
config_entry_value = 12000
integer = FALSE
min_val = 0
/datum/config_entry/flag/show_game_type_odds //if set this allows players to see the odds of each roundtype on the get revision screen
/datum/config_entry/keyed_list/roundstart_races //races you can play as from the get go.
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
/datum/config_entry/keyed_list/mentor_races //races for gamers only
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
/datum/config_entry/keyed_list/roundstart_no_hard_check // Species contained in this list will not cause existing characters with no-longer-roundstart species set to be resetted to the human race.
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
/datum/config_entry/flag/no_summon_guns //No
/datum/config_entry/flag/no_summon_magic //Fun
/datum/config_entry/flag/no_summon_events //Allowed
/datum/config_entry/flag/no_intercept_report //Whether or not to send a communications intercept report roundstart. This may be overridden by gamemodes.
/datum/config_entry/number/arrivals_shuttle_dock_window //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station
config_entry_value = 55
integer = FALSE
min_val = 30
/datum/config_entry/flag/arrivals_shuttle_require_undocked //Require the arrivals shuttle to be undocked before latejoiners can join
/datum/config_entry/flag/arrivals_shuttle_require_safe_latejoin //Require the arrivals shuttle to be operational in order for latejoiners to join
/datum/config_entry/string/alert_green
config_entry_value = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced."
/datum/config_entry/string/alert_blue_upto
config_entry_value = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted."
/datum/config_entry/string/alert_blue_downto
config_entry_value = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed."
/datum/config_entry/string/alert_red_upto
config_entry_value = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised."
/datum/config_entry/string/alert_red_downto
config_entry_value = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised."
/datum/config_entry/string/alert_gamma
config_entry_value = "Central Command has ordered the Gamma security level on the station. Security is to have weapons equipped at all times, and all civilians are to immediately seek their nearest head for transportation to a secure location. Violating orders is punishable by death."
/datum/config_entry/string/alert_epsilon
config_entry_value = "Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated."
/datum/config_entry/string/alert_delta
config_entry_value = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill."
/datum/config_entry/flag/revival_pod_plants
/datum/config_entry/flag/revival_cloning
/datum/config_entry/number/revival_brain_life
config_entry_value = -1
integer = FALSE
min_val = -1
/datum/config_entry/flag/ooc_during_round
/datum/config_entry/flag/emojis
/datum/config_entry/keyed_list/multiplicative_movespeed
key_mode = KEY_MODE_TYPE
value_mode = VALUE_MODE_NUM
config_entry_value = list( //DEFAULTS
/mob/living/simple_animal = 1,
/mob/living/silicon/pai = 1,
/mob/living/carbon/alien/humanoid/hunter = -1,
/mob/living/carbon/alien/humanoid/royal/praetorian = 1,
/mob/living/carbon/alien/humanoid/royal/queen = 3
)
/datum/config_entry/keyed_list/multiplicative_movespeed/ValidateAndSet()
. = ..()
if(.)
update_config_movespeed_type_lookup(TRUE)
/datum/config_entry/keyed_list/multiplicative_movespeed/vv_edit_var(var_name, var_value)
. = ..()
if(. && (var_name == NAMEOF(src, config_entry_value)))
update_config_movespeed_type_lookup(TRUE)
/datum/config_entry/number/movedelay //Used for modifying movement speed for mobs.
abstract_type = /datum/config_entry/number/movedelay
/datum/config_entry/number/movedelay/ValidateAndSet()
. = ..()
if(.)
update_mob_config_movespeeds()
/datum/config_entry/number/movedelay/vv_edit_var(var_name, var_value)
. = ..()
if(. && (var_name == NAMEOF(src, config_entry_value)))
update_mob_config_movespeeds()
/datum/config_entry/number/movedelay/run_delay
integer = FALSE
/datum/config_entry/number/movedelay/walk_delay
integer = FALSE
/////////////////////////////////////////////////Outdated move delay
/datum/config_entry/number/outdated_movedelay
deprecated_by = /datum/config_entry/keyed_list/multiplicative_movespeed
abstract_type = /datum/config_entry/number/outdated_movedelay
integer = FALSE
var/movedelay_type
/datum/config_entry/number/outdated_movedelay/DeprecationUpdate(value)
return "[movedelay_type] [value]"
/datum/config_entry/number/outdated_movedelay/human_delay
movedelay_type = /mob/living/carbon/human
/datum/config_entry/number/outdated_movedelay/robot_delay
movedelay_type = /mob/living/silicon/robot
/datum/config_entry/number/outdated_movedelay/monkey_delay
movedelay_type = /mob/living/carbon/monkey
/datum/config_entry/number/outdated_movedelay/alien_delay
movedelay_type = /mob/living/carbon/alien
/datum/config_entry/number/outdated_movedelay/slime_delay
movedelay_type = /mob/living/simple_animal/slime
/datum/config_entry/number/outdated_movedelay/animal_delay
movedelay_type = /mob/living/simple_animal
/////////////////////////////////////////////////
/datum/config_entry/flag/virtual_reality //Will virtual reality be loaded
/datum/config_entry/flag/roundstart_away //Will random away mission be loaded.
/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled.
config_entry_value = 18000
integer = FALSE
min_val = 0
/datum/config_entry/number/config_gateway_chance
integer = FALSE
min_val = 0
max_val = 100
/datum/config_entry/flag/ghost_interaction
/datum/config_entry/flag/near_death_experience //If carbons can hear ghosts when unconscious and very close to death
/datum/config_entry/flag/silent_ai
/datum/config_entry/flag/silent_borg
/datum/config_entry/number/default_laws //Controls what laws the AI spawns with.
config_entry_value = 0
min_val = 0
max_val = 3
/datum/config_entry/number/silicon_max_law_amount
config_entry_value = 12
min_val = 0
/datum/config_entry/keyed_list/random_laws
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_FLAG
/datum/config_entry/keyed_list/law_weight
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
splitter = ","
/datum/config_entry/keyed_list/ion_law_weight
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
splitter = ","
/datum/config_entry/number/max_law_len
config_entry_value = 1024
/datum/config_entry/number/overflow_cap
config_entry_value = -1
min_val = -1
/datum/config_entry/string/overflow_job
config_entry_value = "Assistant"
/datum/config_entry/flag/starlight
/datum/config_entry/flag/grey_assistants
/datum/config_entry/number/lavaland_budget
config_entry_value = 60
integer = FALSE
min_val = 0
/datum/config_entry/number/icemoon_budget
config_entry_value = 90
integer = FALSE
min_val = 0
/datum/config_entry/number/space_budget
config_entry_value = 16
integer = FALSE
min_val = 0
//Yogs edit
/datum/config_entry/number/jungleland_budget
config_entry_value = 40
integer = FALSE
min_val = 0
//Yogs end
/datum/config_entry/flag/allow_random_events // Enables random events mid-round when set
/datum/config_entry/number/events_min_time_mul // Multipliers for random events minimal starting time and minimal players amounts
config_entry_value = 1
min_val = 0
integer = FALSE
/datum/config_entry/number/events_min_players_mul
config_entry_value = 1
min_val = 0
integer = FALSE
/datum/config_entry/number/mice_roundstart
config_entry_value = 10
min_val = 0
/datum/config_entry/number/bombcap
config_entry_value = 14
min_val = 4
/datum/config_entry/number/bombcap/ValidateAndSet(str_val)
. = ..()
if(.)
GLOB.MAX_EX_DEVESTATION_RANGE = round(config_entry_value / 4)
GLOB.MAX_EX_HEAVY_RANGE = round(config_entry_value / 2)
GLOB.MAX_EX_LIGHT_RANGE = config_entry_value
GLOB.MAX_EX_FLASH_RANGE = config_entry_value
GLOB.MAX_EX_FLAME_RANGE = config_entry_value
/datum/config_entry/number/emergency_shuttle_autocall_threshold
min_val = 0
max_val = 1
integer = FALSE
/datum/config_entry/flag/ic_printing
/datum/config_entry/flag/roundstart_traits
/datum/config_entry/flag/enable_night_shifts
/datum/config_entry/flag/randomize_shift_time
/datum/config_entry/flag/shift_time_realtime
/datum/config_entry/keyed_list/antag_rep
key_mode = KEY_MODE_TEXT
value_mode = VALUE_MODE_NUM
/datum/config_entry/number/monkeycap
config_entry_value = 64
min_val = 0
/datum/config_entry/number/slimecap
config_entry_value = 256
min_val = 0
/datum/config_entry/number/ratcap
default = 64
min_val = 0
/datum/config_entry/flag/dynamic_config_enabled
/datum/config_entry/number/engine_type
config_entry_value = 3
//Shuttle size limiter
/datum/config_entry/number/max_shuttle_count
config_entry_value = 6
/datum/config_entry/number/max_shuttle_size
config_entry_value = 250