diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 037664027a..7e81359cb8 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD var/list/gamemode_cache = list() /datum/configuration @@ -1149,3 +1150,2292 @@ var/list/gamemode_cache = list() config.python_path = "/usr/bin/env python2" else //probably windows, if not this should work anyway config.python_path = "python" +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +var/list/gamemode_cache = list() + +/datum/configuration + var/static/server_name = null // server name (for world name / status) + var/static/server_suffix = 0 // generate numeric suffix based on server port + + var/static/nudge_script_path = "nudge.py" // where the nudge.py script is located + + var/static/log_ooc = 0 // log OOC channel + var/static/log_access = 0 // log login/logout + var/static/log_say = 0 // log client say + var/static/log_admin = 0 // log admin actions + var/static/log_debug = 1 // log debug output + var/static/log_game = 0 // log game events + var/static/log_vote = 0 // log voting + var/static/log_whisper = 0 // log client whisper + var/static/log_emote = 0 // log emotes + var/static/log_attack = 0 // log attack messages + var/static/log_adminchat = 0 // log admin chat messages + var/static/log_adminwarn = 0 // log warnings admins get about bomb construction and such + var/static/log_pda = 0 // log pda messages + var/static/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits + var/static/log_runtime = 0 // logs world.log to a file + var/static/log_world_output = 0 // log to_world_log(messages) + var/static/log_graffiti = 0 // logs graffiti + var/static/sql_enabled = 0 // for sql switching + var/static/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour + var/static/allow_vote_restart = 0 // allow votes to restart + var/static/ert_admin_call_only = 0 + var/static/allow_vote_mode = 0 // allow votes to change mode + var/static/allow_admin_jump = 1 // allows admin jumping + var/static/allow_admin_spawning = 1 // allows admin item spawning + var/static/allow_admin_rev = 1 // allows admin revives + var/static/pregame_time = 180 // pregame time in seconds + var/static/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default) + var/static/vote_period = 600 // length of voting period (deciseconds, default 1 minute) + var/static/vote_autotransfer_initial = 108000 // Length of time before the first autotransfer vote is called + var/static/vote_autotransfer_interval = 36000 // length of time before next sequential autotransfer vote + var/static/vote_autogamemode_timeleft = 100 //Length of time before round start when autogamemode vote is called (in seconds, default 100). + var/static/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) + var/static/vote_no_dead = 0 // dead people can't vote (tbi) +// var/static/enable_authentication = 0 // goon authentication + var/static/del_new_on_log = 1 // del's new players if they log before they spawn in + var/static/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard + var/static/traitor_scaling = 0 //if amount of traitors scales based on amount of players + var/static/objectives_disabled = 0 //if objectives are disabled or not + var/static/protect_roles_from_antagonist = 0// If security and such can be traitor/cult/other + var/static/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. + var/static/allow_Metadata = 0 // Metadata is supported. + var/static/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. + var/static/fps = 20 + var/static/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling + var/static/Tickcomp = 0 + var/static/socket_talk = 0 // use socket_talk to communicate with other processes + var/static/list/resource_urls = null + var/static/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round. + var/static/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round. + var/static/list/mode_names = list() + var/static/list/modes = list() // allowed modes + var/static/list/votable_modes = list() // votable modes + var/static/list/probabilities = list() // relative probability of each mode + var/static/list/player_requirements = list() // Overrides for how many players readied up a gamemode needs to start. + var/static/list/player_requirements_secret = list() // Same as above, but for the secret gamemode. + var/static/humans_need_surnames = 0 + var/static/allow_random_events = 0 // enables random events mid-round when set to 1 + var/static/enable_game_master = 0 // enables the 'smart' event system. + var/static/allow_ai = 1 // allow ai job + var/static/allow_ai_shells = FALSE // allow AIs to enter and leave special borg shells at will, and for those shells to be buildable. + var/static/give_free_ai_shell = FALSE // allows a specific spawner object to instantiate a premade AI Shell + var/static/hostedby = null + + var/static/respawn = 1 + var/static/respawn_time = 3000 // time before a dead player is allowed to respawn (in ds, though the config file asks for minutes, and it's converted below) + var/static/respawn_message = "Make sure to play a different character, and please roleplay correctly!" + + var/static/guest_jobban = 1 + var/static/usewhitelist = 0 + var/static/kick_inactive = 0 //force disconnect for inactive players after this many minutes, if non-0 + var/static/show_mods = 0 + var/static/show_devs = 0 + var/static/show_event_managers = 0 + var/static/mods_can_tempban = 0 + var/static/mods_can_job_tempban = 0 + var/static/mod_tempban_max = 1440 + var/static/mod_job_tempban_max = 1440 + var/static/load_jobs_from_txt = 0 + var/static/ToRban = 0 + var/static/automute_on = 0 //enables automuting/spam prevention + var/static/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. + + var/static/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds... + var/static/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active. + + var/static/character_slots = 10 // The number of available character slots + var/static/loadout_slots = 3 // The number of loadout slots per character + + var/static/max_maint_drones = 5 //This many drones can spawn, + var/static/allow_drone_spawn = 1 //assuming the admin allow them to. + var/static/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes. + + var/static/disable_player_mice = 0 + var/static/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech + + var/static/usealienwhitelist = 0 + var/static/limitalienplayers = 0 + var/static/alien_to_human_ratio = 0.5 + var/static/allow_extra_antags = 0 + var/static/guests_allowed = 1 + var/static/debugparanoid = 0 + var/static/panic_bunker = 0 + var/static/paranoia_logging = 0 + + var/static/ip_reputation = FALSE //Should we query IPs to get scores? Generates HTTP traffic to an API service. + var/static/ipr_email //Left null because you MUST specify one otherwise you're making the internet worse. + var/static/ipr_block_bad_ips = FALSE //Should we block anyone who meets the minimum score below? Otherwise we just log it (If paranoia logging is on, visibly in chat). + var/static/ipr_bad_score = 1 //The API returns a value between 0 and 1 (inclusive), with 1 being 'definitely VPN/Tor/Proxy'. Values equal/above this var are considered bad. + var/static/ipr_allow_existing = FALSE //Should we allow known players to use VPNs/Proxies? If the player is already banned then obviously they still can't connect. + var/static/ipr_minimum_age = 5 //How many days before a player is considered 'fine' for the purposes of allowing them to use VPNs. + + var/static/serverurl + var/static/server + var/static/banappeals + var/static/wikiurl + var/static/wikisearchurl + var/static/forumurl + var/static/githuburl + var/static/discordurl + var/static/rulesurl + var/static/mapurl + + //Alert level description + var/static/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." + var/static/alert_desc_yellow_upto = "A minor security emergency has developed. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced." + var/static/alert_desc_yellow_downto = "Code yellow procedures are now in effect. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced." + var/static/alert_desc_violet_upto = "A major medical emergency has developed. Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey all relevant instructions from medical staff." + var/static/alert_desc_violet_downto = "Code violet procedures are now in effect; Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey relevant instructions from medical staff." + var/static/alert_desc_orange_upto = "A major engineering emergency has developed. Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff." + var/static/alert_desc_orange_downto = "Code orange procedures are now in effect; Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff." + var/static/alert_desc_blue_upto = "A major security emergency has developed. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person." + var/static/alert_desc_blue_downto = "Code blue procedures are now in effect. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person." + var/static/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." + var/static/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, 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." + var/static/alert_desc_delta = "The station's self-destruct mechanism has been engaged. 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." + + var/static/forbid_singulo_possession = 0 + + //game_options.txt configs + + var/static/health_threshold_softcrit = 0 + var/static/health_threshold_crit = 0 + var/static/health_threshold_dead = -100 + + var/static/organ_health_multiplier = 1 + var/static/organ_regeneration_multiplier = 1 + var/static/organs_decay + var/static/default_brain_health = 400 + var/static/allow_headgibs = FALSE + + //Paincrit knocks someone down once they hit 60 shock_stage, so by default make it so that close to 100 additional damage needs to be dealt, + //so that it's similar to HALLOSS. Lowered it a bit since hitting paincrit takes much longer to wear off than a halloss stun. + var/static/organ_damage_spillover_multiplier = 0.5 + + var/static/bones_can_break = 0 + var/static/limbs_can_break = 0 + + var/static/revival_pod_plants = 1 + var/static/revival_cloning = 1 + var/static/revival_brain_life = -1 + + var/static/use_loyalty_implants = 0 + + var/static/welder_vision = 1 + var/static/generate_map = 0 + var/static/no_click_cooldown = 0 + + //Used for modifying movement speed for mobs. + //Unversal modifiers + var/static/run_speed = 0 + var/static/walk_speed = 0 + + //Mob specific modifiers. NOTE: These will affect different mob types in different ways + var/static/human_delay = 0 + var/static/robot_delay = 0 + var/static/monkey_delay = 0 + var/static/alien_delay = 0 + var/static/slime_delay = 0 + var/static/animal_delay = 0 + + var/static/footstep_volume = 0 + + var/static/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt + var/static/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt + var/static/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + var/static/use_age_restriction_for_antags = 0 //Do antags use account age restrictions? --requires database + + var/static/simultaneous_pm_warning_timeout = 100 + + var/static/use_recursive_explosions //Defines whether the server uses recursive or circular explosions. + var/static/multi_z_explosion_scalar = 0.5 //Multiplier for how much weaker explosions are on neighboring z levels. + + var/static/assistant_maint = 0 //Do assistants get maint access? + var/static/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. + var/static/ghost_interaction = 0 + + var/static/comms_password = "" + + var/static/enter_allowed = 1 + + var/use_irc_bot = 0 + var/use_node_bot = 0 + var/irc_bot_port = 0 + var/irc_bot_host = "" + var/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge + var/main_irc = "" + var/admin_irc = "" + var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix + var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge. + var/use_overmap = 0 + + var/static/list/engine_map = list("Supermatter Engine", "Edison's Bane") // Comma separated list of engines to choose from. Blank means fully random. + + // Event settings + var/static/expected_round_length = 3 * 60 * 60 * 10 // 3 hours + // If the first delay has a custom start time + // No custom time, no custom time, between 80 to 100 minutes respectively. + var/static/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000)) + // The lowest delay until next event + // 10, 30, 50 minutes respectively + var/static/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000) + // The upper delay until next event + // 15, 45, 70 minutes respectively + var/static/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000) + + var/static/aliens_allowed = 0 + var/static/ninjas_allowed = 0 + var/static/abandon_allowed = 1 + var/static/ooc_allowed = 1 + var/static/looc_allowed = 1 + var/static/dooc_allowed = 1 + var/static/dsay_allowed = 1 + + var/persistence_disabled = FALSE + var/persistence_ignore_mapload = FALSE + + var/allow_byond_links = 0 + var/allow_discord_links = 0 + var/allow_url_links = 0 // honestly if I were you i'd leave this one off, only use in dire situations + + var/starlight = 0 // Whether space turfs have ambient light or not + + var/static/list/ert_species = list(SPECIES_HUMAN) + + var/static/law_zero = "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'ALL LAWS OVERRIDDEN#*?&110010" + + var/static/aggressive_changelog = 0 + + var/static/list/language_prefixes = list(",","#")//Default language prefixes + + var/static/show_human_death_message = 1 + + var/static/radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB // 0:1 subtraction:division for computing effective radiation on a turf + var/static/radiation_decay_rate = 1 //How much radiation is reduced by each tick + var/static/radiation_resistance_multiplier = 8.5 //VOREstation edit + var/static/radiation_material_resistance_divisor = 1 + var/static/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it. + + var/static/random_submap_orientation = FALSE // If true, submaps loaded automatically can be rotated. + var/static/autostart_solars = FALSE // If true, specifically mapped in solar control computers will set themselves up when the round starts. + + // New shiny SQLite stuff. + // The basics. + var/static/sqlite_enabled = FALSE // If it should even be active. SQLite can be ran alongside other databases but you should not have them do the same functions. + + // In-Game Feedback. + var/static/sqlite_feedback = FALSE // Feedback cannot be submitted if this is false. + var/static/list/sqlite_feedback_topics = list("General") // A list of 'topics' that feedback can be catagorized under by the submitter. + var/static/sqlite_feedback_privacy = FALSE // If true, feedback submitted can have its author name be obfuscated. This is not 100% foolproof (it's md5 ffs) but can stop casual snooping. + var/static/sqlite_feedback_cooldown = 0 // How long one must wait, in days, to submit another feedback form. Used to help prevent spam, especially with privacy active. 0 = No limit. + var/static/sqlite_feedback_min_age = 0 // Used to block new people from giving feedback. This metric is very bad but it can help slow down spammers. + + var/static/defib_timer = 10 // How long until someone can't be defibbed anymore, in minutes. + var/static/defib_braindamage_timer = 2 // How long until someone will get brain damage when defibbed, in minutes. The closer to the end of the above timer, the more brain damage they get. + + // disables the annoying "You have already logged in this round, disconnect or be banned" popup for multikeying, because it annoys the shit out of me when testing. + var/static/disable_cid_warn_popup = FALSE + + // whether or not to use the nightshift subsystem to perform lighting changes + var/static/enable_night_shifts = FALSE + + // How strictly the loadout enforces object species whitelists + var/loadout_whitelist = LOADOUT_WHITELIST_LAX + + var/static/vgs_access_identifier = null // VOREStation Edit - VGS + var/static/vgs_server_port = null // VOREStation Edit - VGS + + var/disable_webhook_embeds = FALSE + + var/static/list/jukebox_track_files + +/datum/configuration/New() + var/list/L = typesof(/datum/game_mode) - /datum/game_mode + for (var/T in L) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + var/datum/game_mode/M = new T() + if (M.config_tag) + gamemode_cache[M.config_tag] = M // So we don't instantiate them repeatedly. + if(!(M.config_tag in modes)) // ensure each mode is added only once + log_misc("Adding game mode [M.name] ([M.config_tag]) to configuration.") + modes += M.config_tag + mode_names[M.config_tag] = M.name + probabilities[M.config_tag] = M.probability + player_requirements[M.config_tag] = M.required_players + player_requirements_secret[M.config_tag] = M.required_players_secret + if (M.votable) + src.votable_modes += M.config_tag + src.votable_modes += "secret" + +/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist + var/list/Lines = file2list(filename) + + for(var/t in Lines) + if(!t) continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if (!name) + continue + + if(type == "config") + switch (name) + if ("resource_urls") + config.resource_urls = splittext(value, " ") + + if ("admin_legacy_system") + config.admin_legacy_system = 1 + + if ("ban_legacy_system") + config.ban_legacy_system = 1 + + if ("use_age_restriction_for_jobs") + config.use_age_restriction_for_jobs = 1 + + if ("use_age_restriction_for_antags") + config.use_age_restriction_for_antags = 1 + + if ("jobs_have_minimal_access") + config.jobs_have_minimal_access = 1 + + if ("use_recursive_explosions") + use_recursive_explosions = 1 + + if ("multi_z_explosion_scalar") + multi_z_explosion_scalar = text2num(value) + + if ("log_ooc") + config.log_ooc = 1 + + if ("log_access") + config.log_access = 1 + + if ("sql_enabled") + config.sql_enabled = 1 + + if ("log_say") + config.log_say = 1 + + if ("debug_paranoid") + config.debugparanoid = 1 + + if ("log_admin") + config.log_admin = 1 + + if ("log_debug") + config.log_debug = text2num(value) + + if ("log_game") + config.log_game = 1 + + if ("log_vote") + config.log_vote = 1 + + if ("log_whisper") + config.log_whisper = 1 + + if ("log_attack") + config.log_attack = 1 + + if ("log_emote") + config.log_emote = 1 + + if ("log_adminchat") + config.log_adminchat = 1 + + if ("log_adminwarn") + config.log_adminwarn = 1 + + if ("log_pda") + config.log_pda = 1 + + if ("log_world_output") + config.log_world_output = 1 + + if ("log_hrefs") + config.log_hrefs = 1 + + if ("log_runtime") + config.log_runtime = 1 + + if ("log_graffiti") + config.log_graffiti = 1 + + if ("generate_map") + config.generate_map = 1 + + if ("no_click_cooldown") + config.no_click_cooldown = 1 + + if("allow_admin_ooccolor") + config.allow_admin_ooccolor = 1 + + if ("allow_vote_restart") + config.allow_vote_restart = 1 + + if ("allow_vote_mode") + config.allow_vote_mode = 1 + + if ("allow_admin_jump") + config.allow_admin_jump = 1 + + if("allow_admin_rev") + config.allow_admin_rev = 1 + + if ("allow_admin_spawning") + config.allow_admin_spawning = 1 + + if ("allow_byond_links") + allow_byond_links = 1 + + if ("allow_discord_links") + allow_discord_links = 1 + + if ("allow_url_links") + allow_url_links = 1 + + if ("no_dead_vote") + config.vote_no_dead = 1 + + if ("default_no_vote") + config.vote_no_default = 1 + + if ("pregame_time") + config.pregame_time = text2num(value) + + if ("vote_delay") + config.vote_delay = text2num(value) + + if ("vote_period") + config.vote_period = text2num(value) + + if ("vote_autotransfer_initial") + config.vote_autotransfer_initial = text2num(value) + + if ("vote_autotransfer_interval") + config.vote_autotransfer_interval = text2num(value) + + if ("vote_autogamemode_timeleft") + config.vote_autogamemode_timeleft = text2num(value) + + if("ert_admin_only") + config.ert_admin_call_only = 1 + + if ("allow_ai") + config.allow_ai = 1 + + if ("allow_ai_shells") + config.allow_ai_shells = TRUE + + if("give_free_ai_shell") + config.give_free_ai_shell = TRUE + +// if ("authentication") +// config.enable_authentication = 1 + + if ("norespawn") + config.respawn = 0 + + if ("respawn_time") + var/raw_minutes = text2num(value) + config.respawn_time = raw_minutes MINUTES + + if ("respawn_message") + config.respawn_message = "[value]" + + if ("servername") + config.server_name = value + + if ("serversuffix") + config.server_suffix = 1 + + if ("nudge_script_path") + config.nudge_script_path = value + + if ("hostedby") + config.hostedby = value + + if ("serverurl") + config.serverurl = value + + if ("server") + config.server = value + + if ("banappeals") + config.banappeals = value + + if ("wikiurl") + config.wikiurl = value + + if ("wikisearchurl") + config.wikisearchurl = value + + if ("forumurl") + config.forumurl = value + + if ("rulesurl") + config.rulesurl = value + + if ("mapurl") + config.mapurl = value + + if ("githuburl") + config.githuburl = value + + if ("discordurl") + config.discordurl = value + + if ("guest_jobban") + config.guest_jobban = 1 + + if ("guest_ban") + config.guests_allowed = 0 + + if ("disable_ooc") + config.ooc_allowed = 0 + config.looc_allowed = 0 + + if ("disable_entry") + config.enter_allowed = 0 + + if ("disable_dead_ooc") + config.dooc_allowed = 0 + + if ("disable_dsay") + config.dsay_allowed = 0 + + if ("disable_respawn") + config.abandon_allowed = 0 + + if ("usewhitelist") + config.usewhitelist = 1 + + if ("feature_object_spell_system") + config.feature_object_spell_system = 1 + + if ("allow_metadata") + config.allow_Metadata = 1 + + if ("traitor_scaling") + config.traitor_scaling = 1 + + if ("aliens_allowed") + config.aliens_allowed = 1 + + if ("ninjas_allowed") + config.ninjas_allowed = 1 + + if ("objectives_disabled") + config.objectives_disabled = 1 + + if("protect_roles_from_antagonist") + config.protect_roles_from_antagonist = 1 + + if("persistence_disabled") + config.persistence_disabled = TRUE // Previously this forcibly set persistence enabled in the saves. + + if("persistence_ignore_mapload") + config.persistence_ignore_mapload = TRUE + + if ("probability") + var/prob_pos = findtext(value, " ") + var/prob_name = null + var/prob_value = null + + if (prob_pos) + prob_name = lowertext(copytext(value, 1, prob_pos)) + prob_value = copytext(value, prob_pos + 1) + if (prob_name in config.modes) + config.probabilities[prob_name] = text2num(prob_value) + else + log_misc("Unknown game mode probability configuration definition: [prob_name].") + else + log_misc("Incorrect probability configuration definition: [prob_name] [prob_value].") + + if ("required_players", "required_players_secret") + var/req_pos = findtext(value, " ") + var/req_name = null + var/req_value = null + var/is_secret_override = findtext(name, "required_players_secret") // Being extra sure we're not picking up an override for Secret by accident. + + if(req_pos) + req_name = lowertext(copytext(value, 1, req_pos)) + req_value = copytext(value, req_pos + 1) + if(req_name in config.modes) + if(is_secret_override) + config.player_requirements_secret[req_name] = text2num(req_value) + else + config.player_requirements[req_name] = text2num(req_value) + else + log_misc("Unknown game mode player requirement configuration definition: [req_name].") + else + log_misc("Incorrect player requirement configuration definition: [req_name] [req_value].") + + if("allow_random_events") + config.allow_random_events = 1 + + if("enable_game_master") + config.enable_game_master = 1 + + if("kick_inactive") + config.kick_inactive = text2num(value) + + if("show_mods") + config.show_mods = 1 + + if("show_devs") + config.show_devs = 1 + + if("show_event_managers") + config.show_event_managers = 1 + + if("mods_can_tempban") + config.mods_can_tempban = 1 + + if("mods_can_job_tempban") + config.mods_can_job_tempban = 1 + + if("mod_tempban_max") + config.mod_tempban_max = text2num(value) + + if("mod_job_tempban_max") + config.mod_job_tempban_max = text2num(value) + + if("load_jobs_from_txt") + load_jobs_from_txt = 1 + + if("alert_red_upto") + config.alert_desc_red_upto = value + + if("alert_red_downto") + config.alert_desc_red_downto = value + + if("alert_blue_downto") + config.alert_desc_blue_downto = value + + if("alert_blue_upto") + config.alert_desc_blue_upto = value + + if("alert_green") + config.alert_desc_green = value + + if("alert_delta") + config.alert_desc_delta = value + + if("forbid_singulo_possession") + forbid_singulo_possession = 1 + + if("popup_admin_pm") + config.popup_admin_pm = 1 + + if("allow_holidays") + Holiday = 1 + + if("use_irc_bot") + use_irc_bot = 1 + + if("use_node_bot") + use_node_bot = 1 + + if("irc_bot_port") + config.irc_bot_port = value + + if("irc_bot_export") + irc_bot_export = 1 + + if("ticklag") + var/ticklag = text2num(value) + if(ticklag > 0) + fps = 10 / ticklag + + if("tick_limit_mc_init") + tick_limit_mc_init = text2num(value) + + if("allow_antag_hud") + config.antag_hud_allowed = 1 + if("antag_hud_restricted") + config.antag_hud_restricted = 1 + + if("socket_talk") + socket_talk = text2num(value) + + if("tickcomp") + Tickcomp = 1 + + if("humans_need_surnames") + humans_need_surnames = 1 + + if("tor_ban") + ToRban = 1 + + if("automute_on") + automute_on = 1 + + if("usealienwhitelist") + usealienwhitelist = 1 + + if("alien_player_ratio") + limitalienplayers = 1 + alien_to_human_ratio = text2num(value) + + if("assistant_maint") + config.assistant_maint = 1 + + if("gateway_delay") + config.gateway_delay = text2num(value) + + if("continuous_rounds") + config.continous_rounds = 1 + + if("ghost_interaction") + config.ghost_interaction = 1 + + if("disable_player_mice") + config.disable_player_mice = 1 + + if("uneducated_mice") + config.uneducated_mice = 1 + + if("comms_password") + config.comms_password = value + + if("irc_bot_host") + config.irc_bot_host = value + + if("main_irc") + config.main_irc = value + + if("admin_irc") + config.admin_irc = value + + if("python_path") + if(value) + config.python_path = value + + if("use_lib_nudge") + config.use_lib_nudge = 1 + + if("allow_cult_ghostwriter") + config.cult_ghostwriter = 1 + + if("req_cult_ghostwriter") + config.cult_ghostwriter_req_cultists = text2num(value) + + if("character_slots") + config.character_slots = text2num(value) + + if("loadout_slots") + config.loadout_slots = text2num(value) + + if("allow_drone_spawn") + config.allow_drone_spawn = text2num(value) + + if("drone_build_time") + config.drone_build_time = text2num(value) + + if("max_maint_drones") + config.max_maint_drones = text2num(value) + + if("use_overmap") + config.use_overmap = 1 + + if("engine_map") + config.engine_map = splittext(value, ",") +/* + if("station_levels") + using_map.station_levels = text2numlist(value, ";") + + if("admin_levels") + using_map.admin_levels = text2numlist(value, ";") + + if("contact_levels") + using_map.contact_levels = text2numlist(value, ";") + + if("player_levels") + using_map.player_levels = text2numlist(value, ";") +*/ + if("expected_round_length") + config.expected_round_length = MinutesToTicks(text2num(value)) + + if("disable_welder_vision") + config.welder_vision = 0 + + if("allow_extra_antags") + config.allow_extra_antags = 1 + + if("event_custom_start_mundane") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MUNDANE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_custom_start_moderate") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MODERATE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_custom_start_major") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MAJOR] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_delay_lower") + var/values = text2numlist(value, ";") + config.event_delay_lower[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1]) + config.event_delay_lower[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) + config.event_delay_lower[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) + + if("event_delay_upper") + var/values = text2numlist(value, ";") + config.event_delay_upper[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1]) + config.event_delay_upper[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) + config.event_delay_upper[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) + + if("starlight") + value = text2num(value) + config.starlight = value >= 0 ? value : 0 + + if("ert_species") + config.ert_species = splittext(value, ";") + if(!config.ert_species.len) + config.ert_species += SPECIES_HUMAN + + if("law_zero") + law_zero = value + + if("aggressive_changelog") + config.aggressive_changelog = 1 + + if("default_language_prefixes") + var/list/values = splittext(value, " ") + if(values.len > 0) + language_prefixes = values + + if("radiation_lower_limit") + radiation_lower_limit = text2num(value) + + if("radiation_resistance_calc_divide") + radiation_resistance_calc_mode = RAD_RESIST_CALC_DIV + + if("radiation_resistance_calc_subtract") + radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB + + if("radiation_resistance_multiplier") + radiation_resistance_multiplier = text2num(value) + + if("radiation_material_resistance_divisor") + radiation_material_resistance_divisor = text2num(value) + + if("radiation_decay_rate") + radiation_decay_rate = text2num(value) + + if ("panic_bunker") + config.panic_bunker = 1 + + if ("paranoia_logging") + config.paranoia_logging = 1 + + if("ip_reputation") + config.ip_reputation = 1 + + if("ipr_email") + config.ipr_email = value + + if("ipr_block_bad_ips") + config.ipr_block_bad_ips = 1 + + if("ipr_bad_score") + config.ipr_bad_score = text2num(value) + + if("ipr_allow_existing") + config.ipr_allow_existing = 1 + + if("ipr_minimum_age") + config.ipr_minimum_age = text2num(value) + + if("random_submap_orientation") + config.random_submap_orientation = 1 + + if("autostart_solars") + config.autostart_solars = TRUE + + if("sqlite_enabled") + config.sqlite_enabled = TRUE + + if("sqlite_feedback") + config.sqlite_feedback = TRUE + + if("sqlite_feedback_topics") + config.sqlite_feedback_topics = splittext(value, ";") + if(!config.sqlite_feedback_topics.len) + config.sqlite_feedback_topics += "General" + + if("sqlite_feedback_privacy") + config.sqlite_feedback_privacy = TRUE + + if("sqlite_feedback_cooldown") + config.sqlite_feedback_cooldown = text2num(value) + + if("defib_timer") + config.defib_timer = text2num(value) + + if("defib_braindamage_timer") + config.defib_braindamage_timer = text2num(value) + + if("disable_cid_warn_popup") + config.disable_cid_warn_popup = TRUE + + if("enable_night_shifts") + config.enable_night_shifts = TRUE + + if("jukebox_track_files") + config.jukebox_track_files = splittext(value, ";") + + // VOREStation Edit Start - Can't be in _vr file because it is loaded too late. + if("vgs_access_identifier") + config.vgs_access_identifier = value + if("vgs_server_port") + config.vgs_server_port = text2num(value) + // VOREStation Edit End + + else + log_misc("Unknown setting in configuration: '[name]'") + + else if(type == "game_options") + if(!value) + log_misc("Unknown value for setting [name] in [filename].") + value = text2num(value) + + switch(name) + if("health_threshold_crit") + config.health_threshold_crit = value + if("health_threshold_softcrit") + config.health_threshold_softcrit = value + if("health_threshold_dead") + config.health_threshold_dead = value + if("show_human_death_message") + config.show_human_death_message = 1 + if("revival_pod_plants") + config.revival_pod_plants = value + if("revival_cloning") + config.revival_cloning = value + if("revival_brain_life") + config.revival_brain_life = value + if("organ_health_multiplier") + config.organ_health_multiplier = value / 100 + if("organ_regeneration_multiplier") + config.organ_regeneration_multiplier = value / 100 + if("organ_damage_spillover_multiplier") + config.organ_damage_spillover_multiplier = value / 100 + if("organs_can_decay") + config.organs_decay = 1 + if("default_brain_health") + config.default_brain_health = text2num(value) + if(!config.default_brain_health || config.default_brain_health < 1) + config.default_brain_health = initial(config.default_brain_health) + if("bones_can_break") + config.bones_can_break = value + if("limbs_can_break") + config.limbs_can_break = value + if("allow_headgibs") + config.allow_headgibs = TRUE + + if("run_speed") + config.run_speed = value + if("walk_speed") + config.walk_speed = value + + if("human_delay") + config.human_delay = value + if("robot_delay") + config.robot_delay = value + if("monkey_delay") + config.monkey_delay = value + if("alien_delay") + config.alien_delay = value + if("slime_delay") + config.slime_delay = value + if("animal_delay") + config.animal_delay = value + + if("footstep_volume") + config.footstep_volume = text2num(value) + + if("use_loyalty_implants") + config.use_loyalty_implants = 1 + + if("loadout_whitelist") + config.loadout_whitelist = text2num(value) + + else + log_misc("Unknown setting in configuration: '[name]'") + +/datum/configuration/proc/loadsql(filename) // -- TLE + var/list/Lines = file2list(filename) + for(var/t in Lines) + if(!t) continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if (!name) + continue + + switch (name) + if ("address") + sqladdress = value + if ("port") + sqlport = value + if ("database") + sqldb = value + if ("login") + sqllogin = value + if ("password") + sqlpass = value + if ("feedback_database") + sqlfdbkdb = value + if ("feedback_login") + sqlfdbklogin = value + if ("feedback_password") + sqlfdbkpass = value + if ("enable_stat_tracking") + sqllogging = 1 + else + log_misc("Unknown setting in configuration: '[name]'") + +/datum/configuration/proc/loadforumsql(filename) // -- TLE + var/list/Lines = file2list(filename) + for(var/t in Lines) + if(!t) continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if (!name) + continue + + switch (name) + if ("address") + forumsqladdress = value + if ("port") + forumsqlport = value + if ("database") + forumsqldb = value + if ("login") + forumsqllogin = value + if ("password") + forumsqlpass = value + if ("activatedgroup") + forum_activated_group = value + if ("authenticatedgroup") + forum_authenticated_group = value + else + log_misc("Unknown setting in configuration: '[name]'") + +/datum/configuration/proc/pick_mode(mode_name) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + for (var/game_mode in gamemode_cache) + var/datum/game_mode/M = gamemode_cache[game_mode] + if (M.config_tag && M.config_tag == mode_name) + return M + return gamemode_cache["extended"] + +/datum/configuration/proc/get_runnable_modes() + var/list/runnable_modes = list() + for(var/game_mode in gamemode_cache) + var/datum/game_mode/M = gamemode_cache[game_mode] + if(M && M.can_start() && !isnull(config.probabilities[M.config_tag]) && config.probabilities[M.config_tag] > 0) + runnable_modes |= M + return runnable_modes + +/datum/configuration/proc/post_load() + //apply a default value to config.python_path, if needed + if (!config.python_path) + if(world.system_type == UNIX) + config.python_path = "/usr/bin/env python2" + else //probably windows, if not this should work anyway + config.python_path = "python" +======= +var/list/gamemode_cache = list() + +/datum/configuration + var/static/server_name = null // server name (for world name / status) + var/static/server_suffix = 0 // generate numeric suffix based on server port + + var/static/nudge_script_path = "nudge.py" // where the nudge.py script is located + + var/static/log_ooc = 0 // log OOC channel + var/static/log_access = 0 // log login/logout + var/static/log_say = 0 // log client say + var/static/log_admin = 0 // log admin actions + var/static/log_debug = 1 // log debug output + var/static/log_game = 0 // log game events + var/static/log_vote = 0 // log voting + var/static/log_whisper = 0 // log client whisper + var/static/log_emote = 0 // log emotes + var/static/log_attack = 0 // log attack messages + var/static/log_adminchat = 0 // log admin chat messages + var/static/log_adminwarn = 0 // log warnings admins get about bomb construction and such + var/static/log_pda = 0 // log pda messages + var/static/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits + var/static/log_runtime = 0 // logs world.log to a file + var/static/log_world_output = 0 // log to_world_log(messages) + var/static/log_graffiti = 0 // logs graffiti + var/static/sql_enabled = 0 // for sql switching + var/static/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour + var/static/allow_vote_restart = 0 // allow votes to restart + var/static/ert_admin_call_only = 0 + var/static/allow_vote_mode = 0 // allow votes to change mode + var/static/allow_admin_jump = 1 // allows admin jumping + var/static/allow_admin_spawning = 1 // allows admin item spawning + var/static/allow_admin_rev = 1 // allows admin revives + var/static/pregame_time = 180 // pregame time in seconds + var/static/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default) + var/static/vote_period = 600 // length of voting period (deciseconds, default 1 minute) + var/static/vote_autotransfer_initial = 108000 // Length of time before the first autotransfer vote is called + var/static/vote_autotransfer_interval = 36000 // length of time before next sequential autotransfer vote + var/static/vote_autogamemode_timeleft = 100 //Length of time before round start when autogamemode vote is called (in seconds, default 100). + var/static/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) + var/static/vote_no_dead = 0 // dead people can't vote (tbi) +// var/static/enable_authentication = 0 // goon authentication + var/static/del_new_on_log = 1 // del's new players if they log before they spawn in + var/static/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard + var/static/traitor_scaling = 0 //if amount of traitors scales based on amount of players + var/static/objectives_disabled = 0 //if objectives are disabled or not + var/static/protect_roles_from_antagonist = 0// If security and such can be traitor/cult/other + var/static/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. + var/static/allow_Metadata = 0 // Metadata is supported. + var/static/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. + var/static/fps = 20 + var/static/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling + var/static/Tickcomp = 0 + var/static/socket_talk = 0 // use socket_talk to communicate with other processes + var/static/list/resource_urls = null + var/static/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round. + var/static/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round. + var/static/list/mode_names = list() + var/static/list/modes = list() // allowed modes + var/static/list/votable_modes = list() // votable modes + var/static/list/probabilities = list() // relative probability of each mode + var/static/list/player_requirements = list() // Overrides for how many players readied up a gamemode needs to start. + var/static/list/player_requirements_secret = list() // Same as above, but for the secret gamemode. + var/static/humans_need_surnames = 0 + var/static/allow_random_events = 0 // enables random events mid-round when set to 1 + var/static/enable_game_master = 0 // enables the 'smart' event system. + var/static/allow_ai = 1 // allow ai job + var/static/allow_ai_shells = FALSE // allow AIs to enter and leave special borg shells at will, and for those shells to be buildable. + var/static/give_free_ai_shell = FALSE // allows a specific spawner object to instantiate a premade AI Shell + var/static/hostedby = null + + var/static/respawn = 1 + var/static/respawn_time = 3000 // time before a dead player is allowed to respawn (in ds, though the config file asks for minutes, and it's converted below) + var/static/respawn_message = "Make sure to play a different character, and please roleplay correctly!" + + var/static/guest_jobban = 1 + var/static/usewhitelist = 0 + var/static/kick_inactive = 0 //force disconnect for inactive players after this many minutes, if non-0 + var/static/show_mods = 0 + var/static/show_devs = 0 + var/static/show_event_managers = 0 + var/static/mods_can_tempban = 0 + var/static/mods_can_job_tempban = 0 + var/static/mod_tempban_max = 1440 + var/static/mod_job_tempban_max = 1440 + var/static/load_jobs_from_txt = 0 + var/static/ToRban = 0 + var/static/automute_on = 0 //enables automuting/spam prevention + var/static/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. + + var/static/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds... + var/static/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active. + + var/static/character_slots = 10 // The number of available character slots + var/static/loadout_slots = 3 // The number of loadout slots per character + + var/static/max_maint_drones = 5 //This many drones can spawn, + var/static/allow_drone_spawn = 1 //assuming the admin allow them to. + var/static/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes. + + var/static/disable_player_mice = 0 + var/static/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech + + var/static/usealienwhitelist = 0 + var/static/limitalienplayers = 0 + var/static/alien_to_human_ratio = 0.5 + var/static/allow_extra_antags = 0 + var/static/guests_allowed = 1 + var/static/debugparanoid = 0 + var/static/panic_bunker = 0 + var/static/paranoia_logging = 0 + + var/static/ip_reputation = FALSE //Should we query IPs to get scores? Generates HTTP traffic to an API service. + var/static/ipr_email //Left null because you MUST specify one otherwise you're making the internet worse. + var/static/ipr_block_bad_ips = FALSE //Should we block anyone who meets the minimum score below? Otherwise we just log it (If paranoia logging is on, visibly in chat). + var/static/ipr_bad_score = 1 //The API returns a value between 0 and 1 (inclusive), with 1 being 'definitely VPN/Tor/Proxy'. Values equal/above this var are considered bad. + var/static/ipr_allow_existing = FALSE //Should we allow known players to use VPNs/Proxies? If the player is already banned then obviously they still can't connect. + var/static/ipr_minimum_age = 5 //How many days before a player is considered 'fine' for the purposes of allowing them to use VPNs. + + var/static/serverurl + var/static/server + var/static/banappeals + var/static/wikiurl + var/static/wikisearchurl + var/static/forumurl + var/static/githuburl + var/static/discordurl + var/static/rulesurl + var/static/mapurl + + //Alert level description + var/static/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." + var/static/alert_desc_yellow_upto = "A minor security emergency has developed. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced." + var/static/alert_desc_yellow_downto = "Code yellow procedures are now in effect. Security personnel are to report to their supervisor for orders and may have weapons visible on their person. Privacy laws are still enforced." + var/static/alert_desc_violet_upto = "A major medical emergency has developed. Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey all relevant instructions from medical staff." + var/static/alert_desc_violet_downto = "Code violet procedures are now in effect; Medical personnel are required to report to their supervisor for orders, and non-medical personnel are required to obey relevant instructions from medical staff." + var/static/alert_desc_orange_upto = "A major engineering emergency has developed. Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff." + var/static/alert_desc_orange_downto = "Code orange procedures are now in effect; Engineering personnel are required to report to their supervisor for orders, and non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff." + var/static/alert_desc_blue_upto = "A major security emergency has developed. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person." + var/static/alert_desc_blue_downto = "Code blue procedures are now in effect. Security personnel are to report to their supervisor for orders, are permitted to search staff and facilities, and may have weapons visible on their person." + var/static/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." + var/static/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, 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." + var/static/alert_desc_delta = "The station's self-destruct mechanism has been engaged. 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." + + var/static/forbid_singulo_possession = 0 + + //game_options.txt configs + + var/static/health_threshold_softcrit = 0 + var/static/health_threshold_crit = 0 + var/static/health_threshold_dead = -100 + + var/static/organ_health_multiplier = 1 + var/static/organ_regeneration_multiplier = 1 + var/static/organs_decay + var/static/default_brain_health = 400 + var/static/allow_headgibs = FALSE + + //Paincrit knocks someone down once they hit 60 shock_stage, so by default make it so that close to 100 additional damage needs to be dealt, + //so that it's similar to HALLOSS. Lowered it a bit since hitting paincrit takes much longer to wear off than a halloss stun. + var/static/organ_damage_spillover_multiplier = 0.5 + + var/static/bones_can_break = 0 + var/static/limbs_can_break = 0 + + var/static/revival_pod_plants = 1 + var/static/revival_cloning = 1 + var/static/revival_brain_life = -1 + + var/static/use_loyalty_implants = 0 + + var/static/welder_vision = 1 + var/static/generate_map = 0 + var/static/no_click_cooldown = 0 + + //Used for modifying movement speed for mobs. + //Unversal modifiers + var/static/run_speed = 0 + var/static/walk_speed = 0 + + //Mob specific modifiers. NOTE: These will affect different mob types in different ways + var/static/human_delay = 0 + var/static/robot_delay = 0 + var/static/monkey_delay = 0 + var/static/alien_delay = 0 + var/static/slime_delay = 0 + var/static/animal_delay = 0 + + var/static/footstep_volume = 0 + + var/static/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt + var/static/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt + var/static/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database + var/static/use_age_restriction_for_antags = 0 //Do antags use account age restrictions? --requires database + + var/static/simultaneous_pm_warning_timeout = 100 + + var/static/use_recursive_explosions //Defines whether the server uses recursive or circular explosions. + var/static/multi_z_explosion_scalar = 0.5 //Multiplier for how much weaker explosions are on neighboring z levels. + + var/static/assistant_maint = 0 //Do assistants get maint access? + var/static/gateway_delay = 18000 //How long the gateway takes before it activates. Default is half an hour. + var/static/ghost_interaction = 0 + + var/static/comms_password = "" + + var/static/enter_allowed = 1 + + var/use_irc_bot = 0 + var/use_node_bot = 0 + var/irc_bot_port = 0 + var/irc_bot_host = "" + var/irc_bot_export = 0 // whether the IRC bot in use is a Bot32 (or similar) instance; Bot32 uses world.Export() instead of nudge.py/libnudge + var/main_irc = "" + var/admin_irc = "" + var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix + var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge. + var/use_overmap = 0 + + var/static/list/engine_map = list("Supermatter Engine", "Edison's Bane") // Comma separated list of engines to choose from. Blank means fully random. + + // Event settings + var/static/expected_round_length = 3 * 60 * 60 * 10 // 3 hours + // If the first delay has a custom start time + // No custom time, no custom time, between 80 to 100 minutes respectively. + var/static/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000)) + // The lowest delay until next event + // 10, 30, 50 minutes respectively + var/static/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000) + // The upper delay until next event + // 15, 45, 70 minutes respectively + var/static/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000) + + var/static/aliens_allowed = 1 //Changed to 1 so player xenos can lay eggs. + var/static/ninjas_allowed = 0 + var/static/abandon_allowed = 1 + var/static/ooc_allowed = 1 + var/static/looc_allowed = 1 + var/static/dooc_allowed = 1 + var/static/dsay_allowed = 1 + + var/persistence_disabled = FALSE + var/persistence_ignore_mapload = FALSE + + var/allow_byond_links = 0 + var/allow_discord_links = 0 + var/allow_url_links = 0 // honestly if I were you i'd leave this one off, only use in dire situations + + var/starlight = 0 // Whether space turfs have ambient light or not + + var/static/list/ert_species = list(SPECIES_HUMAN) + + var/static/law_zero = "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'ALL LAWS OVERRIDDEN#*?&110010" + + var/static/aggressive_changelog = 0 + + var/static/list/language_prefixes = list(",","#")//Default language prefixes + + var/static/show_human_death_message = 1 + + var/static/radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB // 0:1 subtraction:division for computing effective radiation on a turf + var/static/radiation_decay_rate = 1 //How much radiation is reduced by each tick + var/static/radiation_resistance_multiplier = 8.5 //VOREstation edit + var/static/radiation_material_resistance_divisor = 1 + var/static/radiation_lower_limit = 0.35 //If the radiation level for a turf would be below this, ignore it. + + var/static/random_submap_orientation = FALSE // If true, submaps loaded automatically can be rotated. + var/static/autostart_solars = FALSE // If true, specifically mapped in solar control computers will set themselves up when the round starts. + + // New shiny SQLite stuff. + // The basics. + var/static/sqlite_enabled = FALSE // If it should even be active. SQLite can be ran alongside other databases but you should not have them do the same functions. + + // In-Game Feedback. + var/static/sqlite_feedback = FALSE // Feedback cannot be submitted if this is false. + var/static/list/sqlite_feedback_topics = list("General") // A list of 'topics' that feedback can be catagorized under by the submitter. + var/static/sqlite_feedback_privacy = FALSE // If true, feedback submitted can have its author name be obfuscated. This is not 100% foolproof (it's md5 ffs) but can stop casual snooping. + var/static/sqlite_feedback_cooldown = 0 // How long one must wait, in days, to submit another feedback form. Used to help prevent spam, especially with privacy active. 0 = No limit. + var/static/sqlite_feedback_min_age = 0 // Used to block new people from giving feedback. This metric is very bad but it can help slow down spammers. + + var/static/defib_timer = 10 // How long until someone can't be defibbed anymore, in minutes. + var/static/defib_braindamage_timer = 2 // How long until someone will get brain damage when defibbed, in minutes. The closer to the end of the above timer, the more brain damage they get. + + // disables the annoying "You have already logged in this round, disconnect or be banned" popup for multikeying, because it annoys the shit out of me when testing. + var/static/disable_cid_warn_popup = FALSE + + // whether or not to use the nightshift subsystem to perform lighting changes + var/static/enable_night_shifts = FALSE + + // How strictly the loadout enforces object species whitelists + var/loadout_whitelist = LOADOUT_WHITELIST_LAX + + var/static/vgs_access_identifier = null // VOREStation Edit - VGS + var/static/vgs_server_port = null // VOREStation Edit - VGS + + var/disable_webhook_embeds = FALSE + + var/static/list/jukebox_track_files + +/datum/configuration/New() + var/list/L = typesof(/datum/game_mode) - /datum/game_mode + for (var/T in L) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + var/datum/game_mode/M = new T() + if (M.config_tag) + gamemode_cache[M.config_tag] = M // So we don't instantiate them repeatedly. + if(!(M.config_tag in modes)) // ensure each mode is added only once + log_misc("Adding game mode [M.name] ([M.config_tag]) to configuration.") + modes += M.config_tag + mode_names[M.config_tag] = M.name + probabilities[M.config_tag] = M.probability + player_requirements[M.config_tag] = M.required_players + player_requirements_secret[M.config_tag] = M.required_players_secret + if (M.votable) + src.votable_modes += M.config_tag + src.votable_modes += "secret" + +/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist + var/list/Lines = file2list(filename) + + for(var/t in Lines) + if(!t) continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if (!name) + continue + + if(type == "config") + switch (name) + if ("resource_urls") + config.resource_urls = splittext(value, " ") + + if ("admin_legacy_system") + config.admin_legacy_system = 1 + + if ("ban_legacy_system") + config.ban_legacy_system = 1 + + if ("use_age_restriction_for_jobs") + config.use_age_restriction_for_jobs = 1 + + if ("use_age_restriction_for_antags") + config.use_age_restriction_for_antags = 1 + + if ("jobs_have_minimal_access") + config.jobs_have_minimal_access = 1 + + if ("use_recursive_explosions") + use_recursive_explosions = 1 + + if ("multi_z_explosion_scalar") + multi_z_explosion_scalar = text2num(value) + + if ("log_ooc") + config.log_ooc = 1 + + if ("log_access") + config.log_access = 1 + + if ("sql_enabled") + config.sql_enabled = 1 + + if ("log_say") + config.log_say = 1 + + if ("debug_paranoid") + config.debugparanoid = 1 + + if ("log_admin") + config.log_admin = 1 + + if ("log_debug") + config.log_debug = text2num(value) + + if ("log_game") + config.log_game = 1 + + if ("log_vote") + config.log_vote = 1 + + if ("log_whisper") + config.log_whisper = 1 + + if ("log_attack") + config.log_attack = 1 + + if ("log_emote") + config.log_emote = 1 + + if ("log_adminchat") + config.log_adminchat = 1 + + if ("log_adminwarn") + config.log_adminwarn = 1 + + if ("log_pda") + config.log_pda = 1 + + if ("log_world_output") + config.log_world_output = 1 + + if ("log_hrefs") + config.log_hrefs = 1 + + if ("log_runtime") + config.log_runtime = 1 + + if ("log_graffiti") + config.log_graffiti = 1 + + if ("generate_map") + config.generate_map = 1 + + if ("no_click_cooldown") + config.no_click_cooldown = 1 + + if("allow_admin_ooccolor") + config.allow_admin_ooccolor = 1 + + if ("allow_vote_restart") + config.allow_vote_restart = 1 + + if ("allow_vote_mode") + config.allow_vote_mode = 1 + + if ("allow_admin_jump") + config.allow_admin_jump = 1 + + if("allow_admin_rev") + config.allow_admin_rev = 1 + + if ("allow_admin_spawning") + config.allow_admin_spawning = 1 + + if ("allow_byond_links") + allow_byond_links = 1 + + if ("allow_discord_links") + allow_discord_links = 1 + + if ("allow_url_links") + allow_url_links = 1 + + if ("no_dead_vote") + config.vote_no_dead = 1 + + if ("default_no_vote") + config.vote_no_default = 1 + + if ("pregame_time") + config.pregame_time = text2num(value) + + if ("vote_delay") + config.vote_delay = text2num(value) + + if ("vote_period") + config.vote_period = text2num(value) + + if ("vote_autotransfer_initial") + config.vote_autotransfer_initial = text2num(value) + + if ("vote_autotransfer_interval") + config.vote_autotransfer_interval = text2num(value) + + if ("vote_autogamemode_timeleft") + config.vote_autogamemode_timeleft = text2num(value) + + if("ert_admin_only") + config.ert_admin_call_only = 1 + + if ("allow_ai") + config.allow_ai = 1 + + if ("allow_ai_shells") + config.allow_ai_shells = TRUE + + if("give_free_ai_shell") + config.give_free_ai_shell = TRUE + +// if ("authentication") +// config.enable_authentication = 1 + + if ("norespawn") + config.respawn = 0 + + if ("respawn_time") + var/raw_minutes = text2num(value) + config.respawn_time = raw_minutes MINUTES + + if ("respawn_message") + config.respawn_message = "[value]" + + if ("servername") + config.server_name = value + + if ("serversuffix") + config.server_suffix = 1 + + if ("nudge_script_path") + config.nudge_script_path = value + + if ("hostedby") + config.hostedby = value + + if ("serverurl") + config.serverurl = value + + if ("server") + config.server = value + + if ("banappeals") + config.banappeals = value + + if ("wikiurl") + config.wikiurl = value + + if ("wikisearchurl") + config.wikisearchurl = value + + if ("forumurl") + config.forumurl = value + + if ("rulesurl") + config.rulesurl = value + + if ("mapurl") + config.mapurl = value + + if ("githuburl") + config.githuburl = value + + if ("discordurl") + config.discordurl = value + + if ("guest_jobban") + config.guest_jobban = 1 + + if ("guest_ban") + config.guests_allowed = 0 + + if ("disable_ooc") + config.ooc_allowed = 0 + config.looc_allowed = 0 + + if ("disable_entry") + config.enter_allowed = 0 + + if ("disable_dead_ooc") + config.dooc_allowed = 0 + + if ("disable_dsay") + config.dsay_allowed = 0 + + if ("disable_respawn") + config.abandon_allowed = 0 + + if ("usewhitelist") + config.usewhitelist = 1 + + if ("feature_object_spell_system") + config.feature_object_spell_system = 1 + + if ("allow_metadata") + config.allow_Metadata = 1 + + if ("traitor_scaling") + config.traitor_scaling = 1 + + if ("aliens_allowed") + config.aliens_allowed = 1 + + if ("ninjas_allowed") + config.ninjas_allowed = 1 + + if ("objectives_disabled") + config.objectives_disabled = 1 + + if("protect_roles_from_antagonist") + config.protect_roles_from_antagonist = 1 + + if("persistence_disabled") + config.persistence_disabled = TRUE // Previously this forcibly set persistence enabled in the saves. + + if("persistence_ignore_mapload") + config.persistence_ignore_mapload = TRUE + + if ("probability") + var/prob_pos = findtext(value, " ") + var/prob_name = null + var/prob_value = null + + if (prob_pos) + prob_name = lowertext(copytext(value, 1, prob_pos)) + prob_value = copytext(value, prob_pos + 1) + if (prob_name in config.modes) + config.probabilities[prob_name] = text2num(prob_value) + else + log_misc("Unknown game mode probability configuration definition: [prob_name].") + else + log_misc("Incorrect probability configuration definition: [prob_name] [prob_value].") + + if ("required_players", "required_players_secret") + var/req_pos = findtext(value, " ") + var/req_name = null + var/req_value = null + var/is_secret_override = findtext(name, "required_players_secret") // Being extra sure we're not picking up an override for Secret by accident. + + if(req_pos) + req_name = lowertext(copytext(value, 1, req_pos)) + req_value = copytext(value, req_pos + 1) + if(req_name in config.modes) + if(is_secret_override) + config.player_requirements_secret[req_name] = text2num(req_value) + else + config.player_requirements[req_name] = text2num(req_value) + else + log_misc("Unknown game mode player requirement configuration definition: [req_name].") + else + log_misc("Incorrect player requirement configuration definition: [req_name] [req_value].") + + if("allow_random_events") + config.allow_random_events = 1 + + if("enable_game_master") + config.enable_game_master = 1 + + if("kick_inactive") + config.kick_inactive = text2num(value) + + if("show_mods") + config.show_mods = 1 + + if("show_devs") + config.show_devs = 1 + + if("show_event_managers") + config.show_event_managers = 1 + + if("mods_can_tempban") + config.mods_can_tempban = 1 + + if("mods_can_job_tempban") + config.mods_can_job_tempban = 1 + + if("mod_tempban_max") + config.mod_tempban_max = text2num(value) + + if("mod_job_tempban_max") + config.mod_job_tempban_max = text2num(value) + + if("load_jobs_from_txt") + load_jobs_from_txt = 1 + + if("alert_red_upto") + config.alert_desc_red_upto = value + + if("alert_red_downto") + config.alert_desc_red_downto = value + + if("alert_blue_downto") + config.alert_desc_blue_downto = value + + if("alert_blue_upto") + config.alert_desc_blue_upto = value + + if("alert_green") + config.alert_desc_green = value + + if("alert_delta") + config.alert_desc_delta = value + + if("forbid_singulo_possession") + forbid_singulo_possession = 1 + + if("popup_admin_pm") + config.popup_admin_pm = 1 + + if("allow_holidays") + Holiday = 1 + + if("use_irc_bot") + use_irc_bot = 1 + + if("use_node_bot") + use_node_bot = 1 + + if("irc_bot_port") + config.irc_bot_port = value + + if("irc_bot_export") + irc_bot_export = 1 + + if("ticklag") + var/ticklag = text2num(value) + if(ticklag > 0) + fps = 10 / ticklag + + if("tick_limit_mc_init") + tick_limit_mc_init = text2num(value) + + if("allow_antag_hud") + config.antag_hud_allowed = 1 + if("antag_hud_restricted") + config.antag_hud_restricted = 1 + + if("socket_talk") + socket_talk = text2num(value) + + if("tickcomp") + Tickcomp = 1 + + if("humans_need_surnames") + humans_need_surnames = 1 + + if("tor_ban") + ToRban = 1 + + if("automute_on") + automute_on = 1 + + if("usealienwhitelist") + usealienwhitelist = 1 + + if("alien_player_ratio") + limitalienplayers = 1 + alien_to_human_ratio = text2num(value) + + if("assistant_maint") + config.assistant_maint = 1 + + if("gateway_delay") + config.gateway_delay = text2num(value) + + if("continuous_rounds") + config.continous_rounds = 1 + + if("ghost_interaction") + config.ghost_interaction = 1 + + if("disable_player_mice") + config.disable_player_mice = 1 + + if("uneducated_mice") + config.uneducated_mice = 1 + + if("comms_password") + config.comms_password = value + + if("irc_bot_host") + config.irc_bot_host = value + + if("main_irc") + config.main_irc = value + + if("admin_irc") + config.admin_irc = value + + if("python_path") + if(value) + config.python_path = value + + if("use_lib_nudge") + config.use_lib_nudge = 1 + + if("allow_cult_ghostwriter") + config.cult_ghostwriter = 1 + + if("req_cult_ghostwriter") + config.cult_ghostwriter_req_cultists = text2num(value) + + if("character_slots") + config.character_slots = text2num(value) + + if("loadout_slots") + config.loadout_slots = text2num(value) + + if("allow_drone_spawn") + config.allow_drone_spawn = text2num(value) + + if("drone_build_time") + config.drone_build_time = text2num(value) + + if("max_maint_drones") + config.max_maint_drones = text2num(value) + + if("use_overmap") + config.use_overmap = 1 + + if("engine_map") + config.engine_map = splittext(value, ",") +/* + if("station_levels") + using_map.station_levels = text2numlist(value, ";") + + if("admin_levels") + using_map.admin_levels = text2numlist(value, ";") + + if("contact_levels") + using_map.contact_levels = text2numlist(value, ";") + + if("player_levels") + using_map.player_levels = text2numlist(value, ";") +*/ + if("expected_round_length") + config.expected_round_length = MinutesToTicks(text2num(value)) + + if("disable_welder_vision") + config.welder_vision = 0 + + if("allow_extra_antags") + config.allow_extra_antags = 1 + + if("event_custom_start_mundane") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MUNDANE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_custom_start_moderate") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MODERATE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_custom_start_major") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MAJOR] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_delay_lower") + var/values = text2numlist(value, ";") + config.event_delay_lower[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1]) + config.event_delay_lower[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) + config.event_delay_lower[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) + + if("event_delay_upper") + var/values = text2numlist(value, ";") + config.event_delay_upper[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1]) + config.event_delay_upper[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) + config.event_delay_upper[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) + + if("starlight") + value = text2num(value) + config.starlight = value >= 0 ? value : 0 + + if("ert_species") + config.ert_species = splittext(value, ";") + if(!config.ert_species.len) + config.ert_species += SPECIES_HUMAN + + if("law_zero") + law_zero = value + + if("aggressive_changelog") + config.aggressive_changelog = 1 + + if("default_language_prefixes") + var/list/values = splittext(value, " ") + if(values.len > 0) + language_prefixes = values + + if("radiation_lower_limit") + radiation_lower_limit = text2num(value) + + if("radiation_resistance_calc_divide") + radiation_resistance_calc_mode = RAD_RESIST_CALC_DIV + + if("radiation_resistance_calc_subtract") + radiation_resistance_calc_mode = RAD_RESIST_CALC_SUB + + if("radiation_resistance_multiplier") + radiation_resistance_multiplier = text2num(value) + + if("radiation_material_resistance_divisor") + radiation_material_resistance_divisor = text2num(value) + + if("radiation_decay_rate") + radiation_decay_rate = text2num(value) + + if ("panic_bunker") + config.panic_bunker = 1 + + if ("paranoia_logging") + config.paranoia_logging = 1 + + if("ip_reputation") + config.ip_reputation = 1 + + if("ipr_email") + config.ipr_email = value + + if("ipr_block_bad_ips") + config.ipr_block_bad_ips = 1 + + if("ipr_bad_score") + config.ipr_bad_score = text2num(value) + + if("ipr_allow_existing") + config.ipr_allow_existing = 1 + + if("ipr_minimum_age") + config.ipr_minimum_age = text2num(value) + + if("random_submap_orientation") + config.random_submap_orientation = 1 + + if("autostart_solars") + config.autostart_solars = TRUE + + if("sqlite_enabled") + config.sqlite_enabled = TRUE + + if("sqlite_feedback") + config.sqlite_feedback = TRUE + + if("sqlite_feedback_topics") + config.sqlite_feedback_topics = splittext(value, ";") + if(!config.sqlite_feedback_topics.len) + config.sqlite_feedback_topics += "General" + + if("sqlite_feedback_privacy") + config.sqlite_feedback_privacy = TRUE + + if("sqlite_feedback_cooldown") + config.sqlite_feedback_cooldown = text2num(value) + + if("defib_timer") + config.defib_timer = text2num(value) + + if("defib_braindamage_timer") + config.defib_braindamage_timer = text2num(value) + + if("disable_cid_warn_popup") + config.disable_cid_warn_popup = TRUE + + if("enable_night_shifts") + config.enable_night_shifts = TRUE + + if("jukebox_track_files") + config.jukebox_track_files = splittext(value, ";") + + // VOREStation Edit Start - Can't be in _vr file because it is loaded too late. + if("vgs_access_identifier") + config.vgs_access_identifier = value + if("vgs_server_port") + config.vgs_server_port = text2num(value) + // VOREStation Edit End + + else + log_misc("Unknown setting in configuration: '[name]'") + + else if(type == "game_options") + if(!value) + log_misc("Unknown value for setting [name] in [filename].") + value = text2num(value) + + switch(name) + if("health_threshold_crit") + config.health_threshold_crit = value + if("health_threshold_softcrit") + config.health_threshold_softcrit = value + if("health_threshold_dead") + config.health_threshold_dead = value + if("show_human_death_message") + config.show_human_death_message = 1 + if("revival_pod_plants") + config.revival_pod_plants = value + if("revival_cloning") + config.revival_cloning = value + if("revival_brain_life") + config.revival_brain_life = value + if("organ_health_multiplier") + config.organ_health_multiplier = value / 100 + if("organ_regeneration_multiplier") + config.organ_regeneration_multiplier = value / 100 + if("organ_damage_spillover_multiplier") + config.organ_damage_spillover_multiplier = value / 100 + if("organs_can_decay") + config.organs_decay = 1 + if("default_brain_health") + config.default_brain_health = text2num(value) + if(!config.default_brain_health || config.default_brain_health < 1) + config.default_brain_health = initial(config.default_brain_health) + if("bones_can_break") + config.bones_can_break = value + if("limbs_can_break") + config.limbs_can_break = value + if("allow_headgibs") + config.allow_headgibs = TRUE + + if("run_speed") + config.run_speed = value + if("walk_speed") + config.walk_speed = value + + if("human_delay") + config.human_delay = value + if("robot_delay") + config.robot_delay = value + if("monkey_delay") + config.monkey_delay = value + if("alien_delay") + config.alien_delay = value + if("slime_delay") + config.slime_delay = value + if("animal_delay") + config.animal_delay = value + + if("footstep_volume") + config.footstep_volume = text2num(value) + + if("use_loyalty_implants") + config.use_loyalty_implants = 1 + + if("loadout_whitelist") + config.loadout_whitelist = text2num(value) + + else + log_misc("Unknown setting in configuration: '[name]'") + +/datum/configuration/proc/loadsql(filename) // -- TLE + var/list/Lines = file2list(filename) + for(var/t in Lines) + if(!t) continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if (!name) + continue + + switch (name) + if ("address") + sqladdress = value + if ("port") + sqlport = value + if ("database") + sqldb = value + if ("login") + sqllogin = value + if ("password") + sqlpass = value + if ("feedback_database") + sqlfdbkdb = value + if ("feedback_login") + sqlfdbklogin = value + if ("feedback_password") + sqlfdbkpass = value + if ("enable_stat_tracking") + sqllogging = 1 + else + log_misc("Unknown setting in configuration: '[name]'") + +/datum/configuration/proc/loadforumsql(filename) // -- TLE + var/list/Lines = file2list(filename) + for(var/t in Lines) + if(!t) continue + + t = trim(t) + if (length(t) == 0) + continue + else if (copytext(t, 1, 2) == "#") + continue + + var/pos = findtext(t, " ") + var/name = null + var/value = null + + if (pos) + name = lowertext(copytext(t, 1, pos)) + value = copytext(t, pos + 1) + else + name = lowertext(t) + + if (!name) + continue + + switch (name) + if ("address") + forumsqladdress = value + if ("port") + forumsqlport = value + if ("database") + forumsqldb = value + if ("login") + forumsqllogin = value + if ("password") + forumsqlpass = value + if ("activatedgroup") + forum_activated_group = value + if ("authenticatedgroup") + forum_authenticated_group = value + else + log_misc("Unknown setting in configuration: '[name]'") + +/datum/configuration/proc/pick_mode(mode_name) + // I wish I didn't have to instance the game modes in order to look up + // their information, but it is the only way (at least that I know of). + for (var/game_mode in gamemode_cache) + var/datum/game_mode/M = gamemode_cache[game_mode] + if (M.config_tag && M.config_tag == mode_name) + return M + return gamemode_cache["extended"] + +/datum/configuration/proc/get_runnable_modes() + var/list/runnable_modes = list() + for(var/game_mode in gamemode_cache) + var/datum/game_mode/M = gamemode_cache[game_mode] + if(M && M.can_start() && !isnull(config.probabilities[M.config_tag]) && config.probabilities[M.config_tag] > 0) + runnable_modes |= M + return runnable_modes + +/datum/configuration/proc/post_load() + //apply a default value to config.python_path, if needed + if (!config.python_path) + if(world.system_type == UNIX) + config.python_path = "/usr/bin/env python2" + else //probably windows, if not this should work anyway + config.python_path = "python" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 02f80de642..a44d8f32ec 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD //VOREStation Edit - Redone a lot of airlock things: /* - Specific department maintenance doors @@ -1534,3 +1535,3074 @@ About the new airlock wires panel: qdel(src) return TRUE return FALSE +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +//VOREStation Edit - Redone a lot of airlock things: +/* +- Specific department maintenance doors +- Named doors properly according to type +- Gave them default access levels with the access constants +- Improper'd all of the names in the new() +*/ + +/obj/machinery/door/airlock + name = "Airlock" + icon = 'icons/obj/doors/Doorint.dmi' + icon_state = "door_closed" + power_channel = ENVIRON + + explosion_resistance = 10 + + // Doors do their own stuff + bullet_vulnerability = 0 + + blocks_emissive = EMISSIVE_BLOCK_GENERIC // Not quite as nice as /tg/'s custom masks. We should make those sometime + + var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in. + var/hackProof = 0 // if 1, this door can't be hacked by the AI + var/electrified_until = 0 //World time when the door is no longer electrified. -1 if it is permanently electrified until someone fixes it. + var/main_power_lost_until = 0 //World time when main power is restored. + var/backup_power_lost_until = -1 //World time when backup power is restored. + var/has_beeped = 0 //If 1, will not beep on failed closing attempt. Resets when door closes. + var/spawnPowerRestoreRunning = 0 + var/welded = null + var/locked = 0 + var/lights = 1 // bolt lights show by default + var/aiDisabledIdScanner = 0 + var/aiHacking = 0 + var/obj/machinery/door/airlock/closeOther = null + var/closeOtherId = null + var/lockdownbyai = 0 + autoclose = 1 + var/assembly_type = /obj/structure/door_assembly + var/mineral = null + var/justzap = 0 + var/safe = 1 + normalspeed = 1 + var/obj/item/weapon/airlock_electronics/electronics = null + var/hasShocked = 0 //Prevents multiple shocks from happening + var/secured_wires = 0 + var/datum/wires/airlock/wires = null + + var/open_sound_powered = 'sound/machines/door/covert1o.ogg' + var/open_sound_unpowered = 'sound/machines/door/airlockforced.ogg' + var/close_sound_powered = 'sound/machines/door/covert1c.ogg' + var/legacy_open_powered = 'sound/machines/door/old_airlock.ogg' + var/legacy_close_powered = 'sound/machines/door/old_airlockclose.ogg' + var/department_open_powered = null + var/department_close_powered = null + var/denied_sound = 'sound/machines/deniedbeep.ogg' + var/bolt_up_sound = 'sound/machines/door/boltsup.ogg' + var/bolt_down_sound = 'sound/machines/door/boltsdown.ogg' + +/obj/machinery/door/airlock/attack_generic(var/mob/living/user, var/damage) + if(stat & (BROKEN|NOPOWER)) + if(damage >= STRUCTURE_MIN_DAMAGE_THRESHOLD) + if(src.locked || src.welded) + visible_message("\The [user] begins breaking into \the [src] internals!") + user.set_AI_busy(TRUE) // If the mob doesn't have an AI attached, this won't do anything. + if(do_after(user,10 SECONDS,src)) + src.locked = 0 + src.welded = 0 + update_icon() + open(1) + if(prob(25)) + src.shock(user, 100) + user.set_AI_busy(FALSE) + else if(src.density) + visible_message("\The [user] forces \the [src] open!") + open(1) + else + visible_message("\The [user] forces \the [src] closed!") + close(1) + else + visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].") + return + ..() + +/obj/machinery/door/airlock/attack_alien(var/mob/user) //Familiar, right? Doors. -Mechoid + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/X = user + if(istype(X.species, /datum/species/xenos)) + if(src.locked || src.welded) + visible_message("\The [user] begins digging into \the [src] internals!") + src.do_animate("deny") + if(do_after(user,5 SECONDS,src)) + visible_message("\The [user] forces \the [src] open, sparks flying from its electronics!") + src.do_animate("spark") + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) + src.locked = 0 + src.welded = 0 + update_icon() + open(1) + src.emag_act() + else if(src.density) + visible_message("\The [user] begins forcing \the [src] open!") + if(do_after(user, 5 SECONDS,src)) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) + visible_message("\The [user] forces \the [src] open!") + open(1) + else + visible_message("\The [user] forces \the [src] closed!") + close(1) + else + src.do_animate("deny") + visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].") + return + ..() + +/obj/machinery/door/airlock/get_material() + if(mineral) + return get_material_by_name(mineral) + return get_material_by_name(MAT_STEEL) + +/obj/machinery/door/airlock/command + name = "Command Airlock" + icon = 'icons/obj/doors/Doorcom.dmi' + req_one_access = list(access_heads) + assembly_type = /obj/structure/door_assembly/door_assembly_com + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cmd3o.ogg' + department_close_powered = 'sound/machines/door/cmd3c.ogg' + +/obj/machinery/door/airlock/security + name = "Security Airlock" + icon = 'icons/obj/doors/Doorsec.dmi' + req_one_access = list(access_security) + assembly_type = /obj/structure/door_assembly/door_assembly_sec + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sec1o.ogg' + department_close_powered = 'sound/machines/door/sec1c.ogg' + +/obj/machinery/door/airlock/engineering + name = "Engineering Airlock" + icon = 'icons/obj/doors/Dooreng.dmi' + req_one_access = list(access_engine) + assembly_type = /obj/structure/door_assembly/door_assembly_eng + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/engineeringatmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Doorengatmos.dmi' + req_one_access = list(access_atmospherics) + assembly_type = /obj/structure/door_assembly/door_assembly_eat + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/medical + name = "Medical Airlock" + icon = 'icons/obj/doors/Doormed.dmi' + req_one_access = list(access_medical) + assembly_type = /obj/structure/door_assembly/door_assembly_med + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/med1o.ogg' + department_close_powered = 'sound/machines/door/med1c.ogg' + +/obj/machinery/door/airlock/maintenance + name = "Maintenance Access" + icon = 'icons/obj/doors/Doormaint.dmi' + //req_one_access = list(access_maint_tunnels) //VOREStation Edit - Maintenance is open access + assembly_type = /obj/structure/door_assembly/door_assembly_mai + open_sound_powered = 'sound/machines/door/door2o.ogg' + close_sound_powered = 'sound/machines/door/door2c.ogg' + +/obj/machinery/door/airlock/maintenance/cargo + icon = 'icons/obj/doors/Doormaint_cargo.dmi' + req_one_access = list(access_cargo) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/door2o.ogg' + department_close_powered = 'sound/machines/door/door2c.ogg' + +/obj/machinery/door/airlock/maintenance/command + icon = 'icons/obj/doors/Doormaint_command.dmi' + req_one_access = list(access_heads) + +/obj/machinery/door/airlock/maintenance/common + icon = 'icons/obj/doors/Doormaint_common.dmi' + open_sound_powered = 'sound/machines/door/hall3o.ogg' + close_sound_powered = 'sound/machines/door/hall3c.ogg' + +/obj/machinery/door/airlock/maintenance/engi + icon = 'icons/obj/doors/Doormaint_engi.dmi' + req_one_access = list(access_engine) + +/obj/machinery/door/airlock/maintenance/int + icon = 'icons/obj/doors/Doormaint_int.dmi' + +/obj/machinery/door/airlock/maintenance/medical + icon = 'icons/obj/doors/Doormaint_med.dmi' + req_one_access = list(access_medical) + +/obj/machinery/door/airlock/maintenance/rnd + icon = 'icons/obj/doors/Doormaint_rnd.dmi' + req_one_access = list(access_research) + +/obj/machinery/door/airlock/maintenance/sec + icon = 'icons/obj/doors/Doormaint_sec.dmi' + req_one_access = list(access_security) + +/obj/machinery/door/airlock/external + name = "External Airlock" + icon = 'icons/obj/doors/Doorext.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_ext + open_sound_powered = 'sound/machines/door/space1o.ogg' + close_sound_powered = 'sound/machines/door/space1c.ogg' + +/obj/machinery/door/airlock/external/bolted + icon_state = "door_locked" // So it looks visibly bolted in map editor + locked = 1 + +// For convenience in making docking ports: one that is pre-bolted with frequency set! +/obj/machinery/door/airlock/external/bolted/cycling + frequency = 1379 + +/obj/machinery/door/airlock/glass_external + name = "External Airlock" + icon = 'icons/obj/doors/Doorextglass.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_ext + opacity = 0 + glass = 1 + req_one_access = list(access_external_airlocks) + open_sound_powered = 'sound/machines/door/space1o.ogg' + close_sound_powered = 'sound/machines/door/space1c.ogg' + +/obj/machinery/door/airlock/glass + name = "Glass Airlock" + icon = 'icons/obj/doors/Doorglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + legacy_open_powered = 'sound/machines/door/windowdoor.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + glass = 1 + +/obj/machinery/door/airlock/centcom + name = "Centcom Airlock" + icon = 'icons/obj/doors/Doorele.dmi' + req_one_access = list(access_cent_general) + opacity = 1 + open_sound_powered = 'sound/machines/door/cmd3o.ogg' + close_sound_powered = 'sound/machines/door/cmd3c.ogg' + +/obj/machinery/door/airlock/glass_centcom + name = "Airlock" + icon = 'icons/obj/doors/Dooreleglass.dmi' + opacity = 0 + glass = 1 + open_sound_powered = 'sound/machines/door/cmd3o.ogg' + close_sound_powered = 'sound/machines/door/cmd3c.ogg' + +/obj/machinery/door/airlock/vault + name = "Vault" + icon = 'icons/obj/doors/vault.dmi' + explosion_resistance = 20 + opacity = 1 + secured_wires = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites. + req_one_access = list(access_heads_vault) + open_sound_powered = 'sound/machines/door/vault1o.ogg' + close_sound_powered = 'sound/machines/door/vault1c.ogg' + +/obj/machinery/door/airlock/vault/bolted + icon_state = "door_locked" + locked = 1 + +/obj/machinery/door/airlock/freezer + name = "Freezer Airlock" + icon = 'icons/obj/doors/Doorfreezer.dmi' + opacity = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_fre + +/obj/machinery/door/airlock/hatch + name = "Airtight Hatch" + icon = 'icons/obj/doors/Doorhatchele.dmi' + explosion_resistance = 20 + opacity = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_hatch + req_one_access = list(access_maint_tunnels) + open_sound_powered = 'sound/machines/door/hatchopen.ogg' + close_sound_powered = 'sound/machines/door/hatchclose.ogg' + open_sound_unpowered = 'sound/machines/door/hatchforced.ogg' + +/obj/machinery/door/airlock/maintenance_hatch + name = "Maintenance Hatch" + icon = 'icons/obj/doors/Doorhatchmaint2.dmi' + explosion_resistance = 20 + opacity = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_mhatch + req_one_access = list(access_maint_tunnels) + open_sound_powered = 'sound/machines/door/hatchopen.ogg' + close_sound_powered = 'sound/machines/door/hatchclose.ogg' + open_sound_unpowered = 'sound/machines/door/hatchforced.ogg' + +/obj/machinery/door/airlock/glass_command + name = "Command Airlock" + icon = 'icons/obj/doors/Doorcomglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_com + glass = 1 + req_one_access = list(access_heads) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cmd1o.ogg' + department_close_powered = 'sound/machines/door/cmd1c.ogg' + +/obj/machinery/door/airlock/glass_engineering + name = "Engineering Airlock" + icon = 'icons/obj/doors/Doorengglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_eng + glass = 1 + req_one_access = list(access_engine) + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/glass_engineeringatmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Doorengatmoglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_eat + glass = 1 + req_one_access = list(access_atmospherics) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/glass_security + name = "Security Airlock" + icon = 'icons/obj/doors/Doorsecglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_sec + glass = 1 + req_one_access = list(access_security) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sec1o.ogg' + department_close_powered = 'sound/machines/door/sec1c.ogg' + +/obj/machinery/door/airlock/glass_medical + name = "Medical Airlock" + icon = 'icons/obj/doors/Doormedglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_med + glass = 1 + req_one_access = list(access_medical) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/med1o.ogg' + department_close_powered = 'sound/machines/door/med1c.ogg' + +/obj/machinery/door/airlock/mining + name = "Mining Airlock" + icon = 'icons/obj/doors/Doormining.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_min + req_one_access = list(access_mining) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cgo1o.ogg' + department_close_powered = 'sound/machines/door/cgo1c.ogg' + +/obj/machinery/door/airlock/atmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Dooratmo.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_atmo + req_one_access = list(access_atmospherics) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/research + name = "Research Airlock" + icon = 'icons/obj/doors/Doorresearch.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_research + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/glass_research + name = "Research Airlock" + icon = 'icons/obj/doors/Doorresearchglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_research + glass = 1 + req_one_access = list(access_research) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/glass_mining + name = "Mining Airlock" + icon = 'icons/obj/doors/Doorminingglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_min + glass = 1 + req_one_access = list(access_mining) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cgo1o.ogg' + department_close_powered = 'sound/machines/door/cgo1c.ogg' + +/obj/machinery/door/airlock/glass_atmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Dooratmoglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_atmo + glass = 1 + req_one_access = list(access_atmospherics) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/gold + name = "Gold Airlock" + icon = 'icons/obj/doors/Doorgold.dmi' + mineral = "gold" + +/obj/machinery/door/airlock/silver + name = "Silver Airlock" + icon = 'icons/obj/doors/Doorsilver.dmi' + mineral = "silver" + +/obj/machinery/door/airlock/diamond + name = "Diamond Airlock" + icon = 'icons/obj/doors/Doordiamond.dmi' + mineral = "diamond" + +/obj/machinery/door/airlock/uranium + name = "Uranium Airlock" + desc = "And they said I was crazy." + icon = 'icons/obj/doors/Dooruranium.dmi' + mineral = "uranium" + var/last_event = 0 + var/rad_power = 7.5 + +/obj/machinery/door/airlock/process() + // Deliberate no call to parent. + if(main_power_lost_until > 0 && world.time >= main_power_lost_until) + regainMainPower() + + if(backup_power_lost_until > 0 && world.time >= backup_power_lost_until) + regainBackupPower() + + else if(electrified_until > 0 && world.time >= electrified_until) + electrify(0) + + if (..() == PROCESS_KILL && !(main_power_lost_until > 0 || backup_power_lost_until > 0 || electrified_until > 0)) + . = PROCESS_KILL + +/obj/machinery/door/airlock/uranium/process() + if(world.time > last_event+20) + if(prob(50)) + SSradiation.radiate(src, rad_power) + last_event = world.time + ..() + +/obj/machinery/door/airlock/phoron + name = "Phoron Airlock" + desc = "No way this can end badly." + icon = 'icons/obj/doors/Doorphoron.dmi' + mineral = "phoron" + +/obj/machinery/door/airlock/phoron/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PhoronBurn(exposed_temperature) + +/obj/machinery/door/airlock/phoron/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PhoronBurn(exposed_temperature) + +/obj/machinery/door/airlock/phoron/proc/PhoronBurn(temperature) + for(var/turf/simulated/floor/target_tile in range(2,loc)) + target_tile.assume_gas("phoron", 35, 400+T0C) + spawn (0) target_tile.hotspot_expose(temperature, 400) + for(var/turf/simulated/wall/W in range(3,src)) + W.burn((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame + for(var/obj/machinery/door/airlock/phoron/D in range(3,src)) + D.ignite(temperature/4) + new/obj/structure/door_assembly( src.loc ) + qdel(src) + +/obj/machinery/door/airlock/sandstone + name = "Sandstone Airlock" + icon = 'icons/obj/doors/Doorsand.dmi' + mineral = "sandstone" + +/obj/machinery/door/airlock/science + name = "Research Airlock" + icon = 'icons/obj/doors/Doorsci.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_science + req_one_access = list(access_research) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/glass_science + name = "Glass Airlocks" + icon = 'icons/obj/doors/Doorsciglass.dmi' + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_science + glass = 1 + req_one_access = list(access_research) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/highsecurity + name = "Secure Airlock" + icon = 'icons/obj/doors/hightechsecurity.dmi' + explosion_resistance = 20 + secured_wires = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity + req_one_access = list(access_heads_vault) + open_sound_powered = 'sound/machines/door/secure1o.ogg' + close_sound_powered = 'sound/machines/door/secure1c.ogg' + +/obj/machinery/door/airlock/voidcraft + name = "voidcraft hatch" + desc = "It's an extra resilient airlock intended for spacefaring vessels." + icon = 'icons/obj/doors/shuttledoors.dmi' + explosion_resistance = 20 + opacity = 0 + glass = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft + open_sound_powered = 'sound/machines/door/shuttle1o.ogg' + close_sound_powered = 'sound/machines/door/shuttle1c.ogg' + +// Airlock opens from top-bottom instead of left-right. +/obj/machinery/door/airlock/voidcraft/vertical + icon = 'icons/obj/doors/shuttledoors_vertical.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical + open_sound_powered = 'sound/machines/door/shuttle1o.ogg' + close_sound_powered = 'sound/machines/door/shuttle1c.ogg' + + +/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock + name = "Precursor Alpha Object - Doors" + desc = "This object appears to be used in order to restrict or allow access to \ + rooms based on its physical state. In other words, a door. \ + Despite being designed and created by unknown ancient alien hands, this door has \ + a large number of similarities to the conventional airlock, such as being driven by \ + electricity, opening and closing by physically moving, and being air tight. \ + It also operates by responding to signals through internal electrical conduits. \ + These characteristics make it possible for one with experience with a multitool \ + to manipulate the door.\ +

\ + The symbol on the door does not match any living species' patterns, giving further \ + implications that this door is very old, and yet it remains operational after \ + thousands of years. It is unknown if that is due to superb construction, or \ + unseen autonomous maintenance having been performed." + value = CATALOGUER_REWARD_EASY + +/obj/machinery/door/airlock/alien + name = "alien airlock" + desc = "You're fairly sure this is a door." + catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock) + icon = 'icons/obj/doors/Dooralien.dmi' + explosion_resistance = 20 + secured_wires = TRUE + hackProof = TRUE + assembly_type = /obj/structure/door_assembly/door_assembly_alien + req_one_access = list(access_alien) + +/obj/machinery/door/airlock/alien/locked + icon_state = "door_locked" + locked = TRUE + +/obj/machinery/door/airlock/alien/public // Entry to UFO. + req_one_access = list() + normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside. + hackProof = TRUE //VOREStation Edit - No borgos + +/* +About the new airlock wires panel: +* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires. +* one wire from the ID scanner. Sending a pulse through this flashes the red light on the door (if the door has power). If you cut this wire, the door will stop recognizing valid IDs. (If the door has 0000 access, it still opens and closes, though) +* two wires for power. Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be open, but bolts-raising will not work. Cutting these wires may electrocute the user. +* one wire for door bolts. Sending a pulse through this drops door bolts (whether the door is powered or not) or raises them (if it is). Cutting this wire also drops the door bolts, and mending it does not raise them. If the wire is cut, trying to raise the door bolts will not work. +* two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter). Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user. +* one wire for opening the door. Sending a pulse through this while the door has power makes it open the door if no access is required. +* one wire for AI control. Sending a pulse through this blocks AI control for a second or so (which is enough to see the AI control light on the panel dialog go off and back on again). Cutting this prevents the AI from controlling the door unless it has hacked the door through the power connection (which takes about a minute). If both main and backup power are cut, as well as this wire, then the AI cannot operate or hack the door at all. +* one wire for electrifying the door. Sending a pulse through this electrifies the door for 30 seconds. Cutting this wire electrifies the door, so that the next person to touch the door without insulated gloves gets electrocuted. (Currently it is also STAYING electrified until someone mends the wire) +* one wire for controling door safetys. When active, door does not close on someone. When cut, door will ruin someone's shit. When pulsed, door will immedately ruin someone's shit. +* one wire for controlling door speed. When active, dor closes at normal rate. When cut, door does not close manually. When pulsed, door attempts to close every tick. +*/ + + + +/obj/machinery/door/airlock/bumpopen(mob/living/user as mob) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite + if(!issilicon(usr)) + if(src.isElectrified()) + if(!src.justzap) + if(src.shock(user, 100)) + src.justzap = 1 + spawn (10) + src.justzap = 0 + return + else /*if(src.justzap)*/ + return + else if(user.hallucination > 50 && prob(10) && src.operating == 0) + to_chat(user, "You feel a powerful shock course through your body!") + user.halloss += 10 + user.stunned += 10 + return + ..(user) + +/obj/machinery/door/airlock/proc/isElectrified() + if(src.electrified_until != 0) + return 1 + return 0 + +/obj/machinery/door/airlock/proc/canAIControl() + return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss())); + +/obj/machinery/door/airlock/proc/canAIHack() + return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss())); + +/obj/machinery/door/airlock/proc/arePowerSystemsOn() + if (stat & (NOPOWER|BROKEN)) + return 0 + return (src.main_power_lost_until==0 || src.backup_power_lost_until==0) + +/obj/machinery/door/airlock/requiresID() + return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner) + +/obj/machinery/door/airlock/proc/isAllPowerLoss() + if(stat & (NOPOWER|BROKEN)) + return 1 + if(mainPowerCablesCut() && backupPowerCablesCut()) + return 1 + return 0 + +/obj/machinery/door/airlock/proc/mainPowerCablesCut() + return wires.is_cut(WIRE_MAIN_POWER1) || wires.is_cut(WIRE_MAIN_POWER2) + +/obj/machinery/door/airlock/proc/backupPowerCablesCut() + return wires.is_cut(WIRE_BACKUP_POWER1) || wires.is_cut(WIRE_BACKUP_POWER2) + +/obj/machinery/door/airlock/proc/loseMainPower() + main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60) + + // If backup power is permanently disabled then activate in 10 seconds if possible, otherwise it's already enabled or a timer is already running + if(backup_power_lost_until == -1 && !backupPowerCablesCut()) + backup_power_lost_until = world.time + SecondsToTicks(10) + + if(main_power_lost_until > 0 || backup_power_lost_until > 0) + START_MACHINE_PROCESSING(src) + + // Disable electricity if required + if(electrified_until && isAllPowerLoss()) + electrify(0) + + update_icon() + +/obj/machinery/door/airlock/proc/loseBackupPower() + backup_power_lost_until = backupPowerCablesCut() ? -1 : world.time + SecondsToTicks(60) + + if(backup_power_lost_until > 0) + START_MACHINE_PROCESSING(src) + + // Disable electricity if required + if(electrified_until && isAllPowerLoss()) + electrify(0) + + update_icon() + +/obj/machinery/door/airlock/proc/regainMainPower() + if(!mainPowerCablesCut()) + main_power_lost_until = 0 + // If backup power is currently active then disable, otherwise let it count down and disable itself later + if(!backup_power_lost_until) + backup_power_lost_until = -1 + + update_icon() + +/obj/machinery/door/airlock/proc/regainBackupPower() + if(!backupPowerCablesCut()) + // Restore backup power only if main power is offline, otherwise permanently disable + backup_power_lost_until = main_power_lost_until == 0 ? -1 : 0 + + update_icon() + +/obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0) + var/message = "" + if(wires.is_cut(WIRE_ELECTRIFY) && arePowerSystemsOn()) + message = text("The electrification wire is cut - Door permanently electrified.") + src.electrified_until = -1 + else if(duration && !arePowerSystemsOn()) + message = text("The door is unpowered - Cannot electrify the door.") + src.electrified_until = 0 + else if(!duration && electrified_until != 0) + message = "The door is now un-electrified." + src.electrified_until = 0 + else if(duration) //electrify door for the given duration seconds + if(usr) + shockedby += text("\[[time_stamp()]\] - [usr](ckey:[usr.ckey])") + add_attack_logs(usr,name,"Electrified a door") + else + shockedby += text("\[[time_stamp()]\] - EMP)") + message = "The door is now electrified [duration == -1 ? "permanently" : "for [duration] second\s"]." + src.electrified_until = duration == -1 ? -1 : world.time + SecondsToTicks(duration) + + if(electrified_until > 0) + START_MACHINE_PROCESSING(src) + + if(feedback && message) + to_chat(usr,message) + +/obj/machinery/door/airlock/proc/set_idscan(var/activate, var/feedback = 0) + var/message = "" + if(wires.is_cut(WIRE_IDSCAN)) + message = "The IdScan wire is cut - IdScan feature permanently disabled." + else if(activate && src.aiDisabledIdScanner) + src.aiDisabledIdScanner = 0 + message = "IdScan feature has been enabled." + else if(!activate && !src.aiDisabledIdScanner) + src.aiDisabledIdScanner = 1 + message = "IdScan feature has been disabled." + + if(feedback && message) + to_chat(usr,message) + +/obj/machinery/door/airlock/proc/set_safeties(var/activate, var/feedback = 0) + var/message = "" + // Safeties! We don't need no stinking safeties! + if (wires.is_cut(WIRE_SAFETY)) + message = text("The safety wire is cut - Cannot enable safeties.") + else if (!activate && src.safe) + safe = 0 + else if (activate && !src.safe) + safe = 1 + + if(feedback && message) + to_chat(usr,message) + +// shock user with probability prb (if all connections & power are working) +// returns 1 if shocked, 0 otherwise +// The preceding comment was borrowed from the grille's shock script +/obj/machinery/door/airlock/shock(mob/user, prb) + if(!arePowerSystemsOn()) + return 0 + if(hasShocked) + return 0 //Already shocked someone recently? + if(..()) + hasShocked = 1 + sleep(10) + hasShocked = 0 + return 1 + else + return 0 + + +/obj/machinery/door/airlock/update_icon() + cut_overlays() + if(density) + if(locked && lights && src.arePowerSystemsOn()) + icon_state = "door_locked" + else + icon_state = "door_closed" + if(p_open || welded) + if(p_open) + add_overlay("panel_open") + if (!(stat & NOPOWER)) + if(stat & BROKEN) + add_overlay("sparks_broken") + else if (health < maxhealth * 3/4) + add_overlay("sparks_damaged") + if(welded) + add_overlay("welded") + else if (health < maxhealth * 3/4 && !(stat & NOPOWER)) + add_overlay("sparks_damaged") + else + icon_state = "door_open" + if((stat & BROKEN) && !(stat & NOPOWER)) + add_overlay("sparks_open") + return + +/obj/machinery/door/airlock/do_animate(animation) + switch(animation) + if("opening") + cut_overlay() + if(p_open) + spawn(2) // The only work around that works. Downside is that the door will be gone for a millisecond. + flick("o_door_opening", src) //can not use flick due to BYOND bug updating overlays right before flicking + update_icon() + else + flick("door_opening", src)//[stat ? "_stat":] + update_icon() + if("closing") + cut_overlay() + if(p_open) + spawn(2) + flick("o_door_closing", src) + update_icon() + else + flick("door_closing", src) + update_icon() + if("spark") + if(density) + flick("door_spark", src) + if("deny") + if(density && src.arePowerSystemsOn()) + flick("door_deny", src) + playsound(src, denied_sound, 50, 0, 3) + return + +/obj/machinery/door/airlock/attack_ai(mob/user as mob) + tgui_interact(user) + +/obj/machinery/door/airlock/attack_ghost(mob/user) + tgui_interact(user) + +/obj/machinery/door/airlock/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui, datum/tgui_state/custom_state) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AiAirlock", name) + ui.open() + if(custom_state) + ui.set_state(custom_state) + return TRUE + +/obj/machinery/door/airlock/tgui_data(mob/user) + var/list/data = list() + + var/list/power = list() + power["main"] = main_power_lost_until > 0 ? 0 : 2 + power["main_timeleft"] = round(main_power_lost_until > 0 ? max(main_power_lost_until - world.time, 0) / 10 : main_power_lost_until, 1) + power["backup"] = backup_power_lost_until > 0 ? 0 : 2 + power["backup_timeleft"] = round(backup_power_lost_until > 0 ? max(backup_power_lost_until - world.time, 0) / 10 : backup_power_lost_until, 1) + data["power"] = power + + data["shock"] = (electrified_until == 0) ? 2 : 0 + data["shock_timeleft"] = round(electrified_until > 0 ? max(electrified_until - world.time, 0) / 10 : electrified_until, 1) + data["id_scanner"] = !aiDisabledIdScanner + data["locked"] = locked // bolted + data["lights"] = lights // bolt lights + data["safe"] = safe // safeties + data["speed"] = normalspeed // safe speed + data["welded"] = welded // welded + data["opened"] = !density // opened + + var/list/wire = list() + wire["main_1"] = !wires.is_cut(WIRE_MAIN_POWER1) + wire["main_2"] = !wires.is_cut(WIRE_MAIN_POWER2) + wire["backup_1"] = !wires.is_cut(WIRE_BACKUP_POWER1) + wire["backup_2"] = !wires.is_cut(WIRE_BACKUP_POWER2) + wire["shock"] = !wires.is_cut(WIRE_ELECTRIFY) + wire["id_scanner"] = !wires.is_cut(WIRE_IDSCAN) + wire["bolts"] = !wires.is_cut(WIRE_DOOR_BOLTS) + wire["lights"] = !wires.is_cut(WIRE_BOLT_LIGHT) + wire["safe"] = !wires.is_cut(WIRE_SAFETY) + wire["timing"] = !wires.is_cut(WIRE_SPEED) + + data["wires"] = wire + return data + +/obj/machinery/door/airlock/proc/hack(mob/user as mob) + if(src.aiHacking==0) + src.aiHacking=1 + spawn(20) + //TODO: Make this take a minute + to_chat(user, "Airlock AI control has been blocked. Beginning fault-detection.") + sleep(50) + if(src.canAIControl()) + to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.") + src.aiHacking=0 + return + else if(!src.canAIHack(user)) + to_chat(user, "We've lost our connection! Unable to hack airlock.") + src.aiHacking=0 + return + to_chat(user, "Fault confirmed: airlock control wire disabled or cut.") + sleep(20) + to_chat(user, "Attempting to hack into airlock. This may take some time.") + sleep(200) + if(src.canAIControl()) + to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.") + src.aiHacking=0 + return + else if(!src.canAIHack(user)) + to_chat(user, "We've lost our connection! Unable to hack airlock.") + src.aiHacking=0 + return + to_chat(user, "Upload access confirmed. Loading control program into airlock software.") + sleep(170) + if(src.canAIControl()) + to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.") + src.aiHacking=0 + return + else if(!src.canAIHack(user)) + to_chat(user, "We've lost our connection! Unable to hack airlock.") + src.aiHacking=0 + return + to_chat(user, "Transfer complete. Forcing airlock to execute program.") + sleep(50) + //disable blocked control + src.aiControlDisabled = 2 + to_chat(user, "Receiving control information from airlock.") + sleep(10) + //bring up airlock dialog + src.aiHacking = 0 + if (user) + src.attack_ai(user) + +/obj/machinery/door/airlock/CanPass(atom/movable/mover, turf/target) + if (src.isElectrified()) + if (istype(mover, /obj/item)) + var/obj/item/i = mover + if (i.matter && (MAT_STEEL in i.matter) && i.matter[MAT_STEEL] > 0) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + return ..() + +/obj/machinery/door/airlock/attack_hand(mob/user as mob) + if(!istype(usr, /mob/living/silicon)) + if(src.isElectrified()) + if(src.shock(user, 100)) + return + + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/X = user + if(istype(X.species, /datum/species/xenos)) + src.attack_alien(user) + return + + if(src.p_open) + user.set_machine(src) + wires.Interact(user) + else + ..(user) + return + +/obj/machinery/door/airlock/tgui_act(action, params) + if(..()) + return TRUE + if(!user_allowed(usr)) + return TRUE + + switch(action) + if("disrupt-main") + if(!main_power_lost_until) + loseMainPower() + update_icon() + else + to_chat(usr, "Main power is already offline.") + . = TRUE + if("disrupt-backup") + if(!backup_power_lost_until) + loseBackupPower() + update_icon() + else + to_chat(usr, "Backup power is already offline.") + . = TRUE + if("shock-restore") + electrify(0, 1) + . = TRUE + if("shock-temp") + electrify(30, 1) + . = TRUE + if("shock-perm") + electrify(-1, 1) + . = TRUE + if("idscan-toggle") + set_idscan(aiDisabledIdScanner, 1) + . = TRUE + // if("emergency-toggle") + // toggle_emergency(usr) + // . = TRUE + if("bolt-toggle") + toggle_bolt(usr) + . = TRUE + if("light-toggle") + if(wires.is_cut(WIRE_BOLT_LIGHT)) + to_chat(usr, "The bolt lights wire is cut - The door bolt lights are permanently disabled.") + return + lights = !lights + update_icon() + . = TRUE + if("safe-toggle") + set_safeties(!safe, 1) + . = TRUE + if("speed-toggle") + if(wires.is_cut(WIRE_SPEED)) + to_chat(usr, "The timing wire is cut - Cannot alter timing.") + return + normalspeed = !normalspeed + . = TRUE + if("open-close") + user_toggle_open(usr) + . = TRUE + + update_icon() + return 1 + +/obj/machinery/door/airlock/proc/user_allowed(mob/user) + var/allowed = (issilicon(user) && canAIControl(user)) + if(!allowed && isobserver(user)) + var/mob/observer/dead/D = user + if(D.can_admin_interact()) + allowed = TRUE + return allowed + +/obj/machinery/door/airlock/proc/toggle_bolt(mob/user) + if(!user_allowed(user)) + return + if(wires.is_cut(WIRE_DOOR_BOLTS)) + to_chat(user, "The door bolt drop wire is cut - you can't toggle the door bolts.") + return + if(locked) + if(!arePowerSystemsOn()) + to_chat(user, "The door has no power - you can't raise the door bolts.") + else + unlock() + to_chat(user, "The door bolts have been raised.") + // log_combat(user, src, "unbolted") + else + lock() + to_chat(user, "The door bolts have been dropped.") + // log_combat(user, src, "bolted") + +/obj/machinery/door/airlock/proc/user_toggle_open(mob/user) + if(!user_allowed(user)) + return + if(welded) + to_chat(user, text("The airlock has been welded shut!")) + else if(locked) + to_chat(user, text("The door bolts are down!")) + else if(!density) + close() + else + open() + +/obj/machinery/door/airlock/proc/can_remove_electronics() + return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN)))) + +/obj/machinery/door/airlock/attackby(obj/item/C, mob/user as mob) + //to_world("airlock attackby src [src] obj [C] mob [user]") + if(!istype(usr, /mob/living/silicon)) + if(src.isElectrified()) + if(src.shock(user, 75)) + return + if(istype(C, /obj/item/taperoll)) + return + + src.add_fingerprint(user) + if (attempt_vr(src,"attackby_vr",list(C, user))) return + if(istype(C, /mob/living)) + ..() + return + if(!repairing && istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(0,user)) + if(!src.welded) + src.welded = 1 + else + src.welded = null + playsound(src, C.usesound, 75, 1) + src.update_icon() + return + else + return + else if(C.is_screwdriver()) + if (src.p_open) + if (stat & BROKEN) + to_chat(usr, "The panel is broken and cannot be closed.") + else + src.p_open = 0 + playsound(src, C.usesound, 50, 1) + else + src.p_open = 1 + playsound(src, C.usesound, 50, 1) + src.update_icon() + else if(C.is_wirecutter()) + return src.attack_hand(user) + else if(istype(C, /obj/item/device/multitool)) + return src.attack_hand(user) + else if(istype(C, /obj/item/device/assembly/signaler)) + return src.attack_hand(user) + else if(istype(C, /obj/item/weapon/pai_cable)) // -- TLE + var/obj/item/weapon/pai_cable/cable = C + cable.plugin(src, user) + else if(!repairing && C.is_crowbar()) + if(can_remove_electronics()) + playsound(src, C.usesound, 75, 1) + user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") + if(do_after(user,40 * C.toolspeed)) + to_chat(user, "You removed the airlock electronics!") + + var/obj/structure/door_assembly/da = new assembly_type(src.loc) + if (istype(da, /obj/structure/door_assembly/multi_tile)) + da.set_dir(src.dir) + + da.anchored = TRUE + if(mineral) + da.glass = mineral + //else if(glass) + else if(glass && !da.glass) + da.glass = 1 + da.state = 1 + da.created_name = src.name + da.update_state() + + if(operating == -1 || (stat & BROKEN)) + new /obj/item/weapon/circuitboard/broken(src.loc) + operating = 0 + else + if (!electronics) create_electronics() + + electronics.loc = src.loc + electronics = null + + qdel(src) + return + else if(arePowerSystemsOn()) + to_chat(user, "The airlock's motors resist your efforts to force it.") + else if(locked) + to_chat(user, "The airlock's bolts prevent it from being forced.") + else + if(density) + spawn(0) open(1) + else + spawn(0) close(1) + + // Check if we're using a crowbar or armblade, and if the airlock's unpowered for whatever reason (off, broken, etc). + else if(istype(C, /obj/item/weapon)) + var/obj/item/weapon/W = C + if((W.pry == 1) && !arePowerSystemsOn()) + if(locked) + to_chat(user, "The airlock's bolts prevent it from being forced.") + else if( !welded && !operating ) + if(istype(C, /obj/item/weapon/material/twohanded/fireaxe)) // If this is a fireaxe, make sure it's held in two hands. + var/obj/item/weapon/material/twohanded/fireaxe/F = C + if(!F.wielded) + to_chat(user, "You need to be wielding \the [F] to do that.") + return + // At this point, it's an armblade or a fireaxe that passed the wielded test, let's try to open it. + if(density) + spawn(0) + open(1) + else + spawn(0) + close(1) + else + ..() + else + ..() + return + +/obj/machinery/door/airlock/phoron/attackby(C as obj, mob/user as mob) + if(C) + ignite(is_hot(C)) + ..() + +/obj/machinery/door/airlock/set_broken() + src.p_open = 1 + stat |= BROKEN + if (secured_wires) + lock() + for (var/mob/O in viewers(src, null)) + if ((O.client && !( O.blinded ))) + O.show_message("[src.name]'s control panel bursts open, sparks spewing out!") + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + + update_icon() + return + +/obj/machinery/door/airlock/open(var/forced=0) + if(!can_open(forced)) + return 0 + use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people + + //if the door is unpowered then it doesn't make sense to hear the woosh of a pneumatic actuator + for(var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/sound + var/volume + if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled. + if(arePowerSystemsOn()) + sound = legacy_open_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else if(!old_sounds && department_door_sounds && src.department_open_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these. + if(arePowerSystemsOn()) + sound = department_open_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else // Else, play these. + if(arePowerSystemsOn()) + sound = open_sound_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + + var/turf/T = get_turf(M) + var/distance = get_dist(T, get_turf(src)) + if(distance <= world.view * 2) + if(T && T.z == get_z(src)) + M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS) + + if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density) + src.closeOther.close() + return ..() + +/obj/machinery/door/airlock/can_open(var/forced=0) + if(!forced) + if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR)) + return 0 + + if(locked || welded) + return 0 + return ..() + +/obj/machinery/door/airlock/can_close(var/forced=0) + if(locked || welded) + return 0 + + if(!forced) + //despite the name, this wire is for general door control. + if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR)) + return 0 + + return ..() + +/atom/movable/proc/blocks_airlock() + return density + +/obj/machinery/door/blocks_airlock() + return 0 + +/obj/machinery/mech_sensor/blocks_airlock() + return 0 + +/mob/living/blocks_airlock() + return 1 + +/atom/movable/proc/airlock_crush(var/crush_damage) + return 0 + +/obj/machinery/portable_atmospherics/canister/airlock_crush(var/crush_damage) + . = ..() + health -= crush_damage + healthcheck() + +/obj/effect/energy_field/airlock_crush(var/crush_damage) + adjust_strength(crush_damage) + +/obj/structure/closet/airlock_crush(var/crush_damage) + ..() + damage(crush_damage) + for(var/atom/movable/AM in src) + AM.airlock_crush() + return 1 + +/mob/living/airlock_crush(var/crush_damage) + . = ..() + adjustBruteLoss(crush_damage) + SetStunned(5) + SetWeakened(5) + var/turf/T = get_turf(src) + T.add_blood(src) + return 1 + +/mob/living/carbon/airlock_crush(var/crush_damage) + . = ..() + if(can_feel_pain()) + emote("scream") + +/mob/living/silicon/robot/airlock_crush(var/crush_damage) + adjustBruteLoss(crush_damage) + return 0 + +/obj/machinery/door/airlock/close(var/forced=0) + if(!can_close(forced)) + return 0 + + if(safe) + for(var/turf/turf in locs) + for(var/atom/movable/AM in turf) + if(AM.blocks_airlock()) + if(!has_beeped) + playsound(src, 'sound/machines/buzz-two.ogg', 50, 0) + has_beeped = 1 + autoclose_in(6) + return + + for(var/turf/turf in locs) + for(var/atom/movable/AM in turf) + if(AM.airlock_crush(DOOR_CRUSH_DAMAGE)) + take_damage(DOOR_CRUSH_DAMAGE) + + use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people + has_beeped = 0 + for(var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/sound + var/volume + if(old_sounds) + if(arePowerSystemsOn()) + sound = legacy_close_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else if(!old_sounds && department_door_sounds && src.department_close_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these. + if(arePowerSystemsOn()) + sound = department_close_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else + if(arePowerSystemsOn()) + sound = close_sound_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + + var/turf/T = get_turf(M) + var/distance = get_dist(T, get_turf(src)) + if(distance <= world.view * 2) + if(T && T.z == get_z(src)) + M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS) + for(var/turf/turf in locs) + var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf) + if(killthis) + killthis.ex_act(2)//Smashin windows + return ..() + +/obj/machinery/door/airlock/proc/lock(var/forced=0) + if(locked) + return 0 + + if (operating && !forced) return 0 + + src.locked = 1 + playsound(src, bolt_down_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS) + for(var/mob/M in range(1,src)) + M.show_message("You hear a click from the bottom of the door.", 2) + update_icon() + return 1 + +/obj/machinery/door/airlock/proc/unlock(var/forced=0) + if(!src.locked) + return + + if (!forced) + if(operating || !src.arePowerSystemsOn() || wires.is_cut(WIRE_DOOR_BOLTS)) return + + src.locked = 0 + playsound(src, bolt_up_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS) + for(var/mob/M in range(1,src)) + M.show_message("You hear a click from the bottom of the door.", 2) + update_icon() + return 1 + +/obj/machinery/door/airlock/allowed(mob/M) + if(locked) + return 0 + return ..(M) + +/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null) + ..() + + //if assembly is given, create the new door from the assembly + if (assembly && istype(assembly)) + assembly_type = assembly.type + + electronics = assembly.electronics + electronics.loc = src + + //update the door's access to match the electronics' + secured_wires = electronics.secure + if(electronics.one_access) + LAZYCLEARLIST(req_access) + req_one_access = src.electronics.conf_access + else + LAZYCLEARLIST(req_one_access) + req_access = src.electronics.conf_access + + //get the name from the assembly + if(assembly.created_name) + name = assembly.created_name + else + name = "[istext(assembly.glass) ? "[assembly.glass] airlock" : assembly.base_name]" + + //get the dir from the assembly + set_dir(assembly.dir) + + //wires + var/turf/T = get_turf(newloc) + if(T && (T.z in using_map.admin_levels)) + secured_wires = 1 + if (secured_wires) + wires = new/datum/wires/airlock/secure(src) + else + wires = new/datum/wires/airlock(src) + +/obj/machinery/door/airlock/Initialize() + if(src.closeOtherId != null) + for (var/obj/machinery/door/airlock/A in machines) + if(A.closeOtherId == src.closeOtherId && A != src) + src.closeOther = A + break + name = "\improper [name]" + . = ..() + +/obj/machinery/door/airlock/Destroy() + qdel(wires) + wires = null + return ..() + +// Most doors will never be deconstructed over the course of a round, +// so as an optimization defer the creation of electronics until +// the airlock is deconstructed +/obj/machinery/door/airlock/proc/create_electronics() + //create new electronics + if (secured_wires) + src.electronics = new/obj/item/weapon/airlock_electronics/secure( src.loc ) + else + src.electronics = new/obj/item/weapon/airlock_electronics( src.loc ) + + //update the electronics to match the door's access + if(LAZYLEN(req_access)) + electronics.conf_access = req_access + else if (LAZYLEN(req_one_access)) + electronics.conf_access = req_one_access + electronics.one_access = 1 + +/obj/machinery/door/airlock/emp_act(var/severity) + if(prob(40/severity)) + var/duration = world.time + SecondsToTicks(30 / severity) + if(duration > electrified_until) + electrify(duration) + ..() + +/obj/machinery/door/airlock/power_change() //putting this is obj/machinery/door itself makes non-airlock doors turn invisible for some reason + ..() + if(stat & NOPOWER) + // If we lost power, disable electrification + // Keeping door lights on, runs on internal battery or something. + electrified_until = 0 + update_icon() + +/obj/machinery/door/airlock/proc/prison_open() + if(arePowerSystemsOn()) + src.unlock() + src.open() + src.lock() + return + + +/obj/machinery/door/airlock/rcd_values(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_DECONSTRUCT) + // Old RCD code made it cost 10 units to decon an airlock. + // Now the new one costs ten "sheets". + return list( + RCD_VALUE_MODE = RCD_DECONSTRUCT, + RCD_VALUE_DELAY = 5 SECONDS, + RCD_VALUE_COST = RCD_SHEETS_PER_MATTER_UNIT * 10 + ) + return FALSE + +/obj/machinery/door/airlock/rcd_act(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_DECONSTRUCT) + to_chat(user, span("notice", "You deconstruct \the [src].")) + qdel(src) + return TRUE + return FALSE +======= +//VOREStation Edit - Redone a lot of airlock things: +/* +- Specific department maintenance doors +- Named doors properly according to type +- Gave them default access levels with the access constants +- Improper'd all of the names in the new() +*/ + +/obj/machinery/door/airlock + name = "Airlock" + icon = 'icons/obj/doors/Doorint.dmi' + icon_state = "door_closed" + power_channel = ENVIRON + + explosion_resistance = 10 + + // Doors do their own stuff + bullet_vulnerability = 0 + + blocks_emissive = EMISSIVE_BLOCK_GENERIC // Not quite as nice as /tg/'s custom masks. We should make those sometime + + var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in. + var/hackProof = 0 // if 1, this door can't be hacked by the AI + var/electrified_until = 0 //World time when the door is no longer electrified. -1 if it is permanently electrified until someone fixes it. + var/main_power_lost_until = 0 //World time when main power is restored. + var/backup_power_lost_until = -1 //World time when backup power is restored. + var/has_beeped = 0 //If 1, will not beep on failed closing attempt. Resets when door closes. + var/spawnPowerRestoreRunning = 0 + var/welded = null + var/locked = 0 + var/lights = 1 // bolt lights show by default + var/aiDisabledIdScanner = 0 + var/aiHacking = 0 + var/obj/machinery/door/airlock/closeOther = null + var/closeOtherId = null + var/lockdownbyai = 0 + autoclose = 1 + var/assembly_type = /obj/structure/door_assembly + var/mineral = null + var/justzap = 0 + var/safe = 1 + normalspeed = 1 + var/obj/item/weapon/airlock_electronics/electronics = null + var/hasShocked = 0 //Prevents multiple shocks from happening + var/secured_wires = 0 + var/datum/wires/airlock/wires = null + + var/open_sound_powered = 'sound/machines/door/covert1o.ogg' + var/open_sound_unpowered = 'sound/machines/door/airlockforced.ogg' + var/close_sound_powered = 'sound/machines/door/covert1c.ogg' + var/legacy_open_powered = 'sound/machines/door/old_airlock.ogg' + var/legacy_close_powered = 'sound/machines/door/old_airlockclose.ogg' + var/department_open_powered = null + var/department_close_powered = null + var/denied_sound = 'sound/machines/deniedbeep.ogg' + var/bolt_up_sound = 'sound/machines/door/boltsup.ogg' + var/bolt_down_sound = 'sound/machines/door/boltsdown.ogg' + +/obj/machinery/door/airlock/attack_generic(var/mob/living/user, var/damage) + if(stat & (BROKEN|NOPOWER)) + if(damage >= STRUCTURE_MIN_DAMAGE_THRESHOLD) + if(src.locked || src.welded) + visible_message("\The [user] begins breaking into \the [src] internals!") + user.set_AI_busy(TRUE) // If the mob doesn't have an AI attached, this won't do anything. + if(do_after(user,10 SECONDS,src)) + src.locked = 0 + src.welded = 0 + update_icon() + open(1) + if(prob(25)) + src.shock(user, 100) + user.set_AI_busy(FALSE) + else if(src.density) + visible_message("\The [user] forces \the [src] open!") + open(1) + else + visible_message("\The [user] forces \the [src] closed!") + close(1) + else + visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].") + return + ..() + +/obj/machinery/door/airlock/attack_alien(var/mob/user) //Familiar, right? Doors. -Mechoid + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/X = user + if(istype(X.species, /datum/species/xenos)) + if(src.locked || src.welded) + visible_message("\The [user] begins tearing into \the [src] internals!") + src.do_animate("deny") + if(do_after(user,15 SECONDS,src)) + visible_message("\The [user] tears \the [src] open, sparks flying from its electronics!") + src.do_animate("spark") + playsound(src, 'sound/machines/door/airlock_tear_apart.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) + src.locked = 0 + src.welded = 0 + update_icon() + open(1) + src.set_broken() //These aren't emags, these be CLAWS + else if(src.density) + visible_message("\The [user] begins forcing \the [src] open!") + if(do_after(user, 5 SECONDS,src)) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) + visible_message("\The [user] forces \the [src] open!") + open(1) + else + visible_message("\The [user] forces \the [src] closed!") + close(1) + else + src.do_animate("deny") + visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].") + return + ..() + +/obj/machinery/door/airlock/get_material() + if(mineral) + return get_material_by_name(mineral) + return get_material_by_name(MAT_STEEL) + +/obj/machinery/door/airlock/command + name = "Command Airlock" + icon = 'icons/obj/doors/Doorcom.dmi' + req_one_access = list(access_heads) + assembly_type = /obj/structure/door_assembly/door_assembly_com + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cmd3o.ogg' + department_close_powered = 'sound/machines/door/cmd3c.ogg' + +/obj/machinery/door/airlock/security + name = "Security Airlock" + icon = 'icons/obj/doors/Doorsec.dmi' + req_one_access = list(access_security) + assembly_type = /obj/structure/door_assembly/door_assembly_sec + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sec1o.ogg' + department_close_powered = 'sound/machines/door/sec1c.ogg' + +/obj/machinery/door/airlock/engineering + name = "Engineering Airlock" + icon = 'icons/obj/doors/Dooreng.dmi' + req_one_access = list(access_engine) + assembly_type = /obj/structure/door_assembly/door_assembly_eng + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/engineeringatmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Doorengatmos.dmi' + req_one_access = list(access_atmospherics) + assembly_type = /obj/structure/door_assembly/door_assembly_eat + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/medical + name = "Medical Airlock" + icon = 'icons/obj/doors/Doormed.dmi' + req_one_access = list(access_medical) + assembly_type = /obj/structure/door_assembly/door_assembly_med + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/med1o.ogg' + department_close_powered = 'sound/machines/door/med1c.ogg' + +/obj/machinery/door/airlock/maintenance + name = "Maintenance Access" + icon = 'icons/obj/doors/Doormaint.dmi' + //req_one_access = list(access_maint_tunnels) //VOREStation Edit - Maintenance is open access + assembly_type = /obj/structure/door_assembly/door_assembly_mai + open_sound_powered = 'sound/machines/door/door2o.ogg' + close_sound_powered = 'sound/machines/door/door2c.ogg' + +/obj/machinery/door/airlock/maintenance/cargo + icon = 'icons/obj/doors/Doormaint_cargo.dmi' + req_one_access = list(access_cargo) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/door2o.ogg' + department_close_powered = 'sound/machines/door/door2c.ogg' + +/obj/machinery/door/airlock/maintenance/command + icon = 'icons/obj/doors/Doormaint_command.dmi' + req_one_access = list(access_heads) + +/obj/machinery/door/airlock/maintenance/common + icon = 'icons/obj/doors/Doormaint_common.dmi' + open_sound_powered = 'sound/machines/door/hall3o.ogg' + close_sound_powered = 'sound/machines/door/hall3c.ogg' + +/obj/machinery/door/airlock/maintenance/engi + icon = 'icons/obj/doors/Doormaint_engi.dmi' + req_one_access = list(access_engine) + +/obj/machinery/door/airlock/maintenance/int + icon = 'icons/obj/doors/Doormaint_int.dmi' + +/obj/machinery/door/airlock/maintenance/medical + icon = 'icons/obj/doors/Doormaint_med.dmi' + req_one_access = list(access_medical) + +/obj/machinery/door/airlock/maintenance/rnd + icon = 'icons/obj/doors/Doormaint_rnd.dmi' + req_one_access = list(access_research) + +/obj/machinery/door/airlock/maintenance/sec + icon = 'icons/obj/doors/Doormaint_sec.dmi' + req_one_access = list(access_security) + +/obj/machinery/door/airlock/external + name = "External Airlock" + icon = 'icons/obj/doors/Doorext.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_ext + open_sound_powered = 'sound/machines/door/space1o.ogg' + close_sound_powered = 'sound/machines/door/space1c.ogg' + +/obj/machinery/door/airlock/external/bolted + icon_state = "door_locked" // So it looks visibly bolted in map editor + locked = 1 + +// For convenience in making docking ports: one that is pre-bolted with frequency set! +/obj/machinery/door/airlock/external/bolted/cycling + frequency = 1379 + +/obj/machinery/door/airlock/glass_external + name = "External Airlock" + icon = 'icons/obj/doors/Doorextglass.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_ext + opacity = 0 + glass = 1 + req_one_access = list(access_external_airlocks) + open_sound_powered = 'sound/machines/door/space1o.ogg' + close_sound_powered = 'sound/machines/door/space1c.ogg' + +/obj/machinery/door/airlock/glass + name = "Glass Airlock" + icon = 'icons/obj/doors/Doorglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + legacy_open_powered = 'sound/machines/door/windowdoor.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + glass = 1 + +/obj/machinery/door/airlock/centcom + name = "Centcom Airlock" + icon = 'icons/obj/doors/Doorele.dmi' + req_one_access = list(access_cent_general) + opacity = 1 + open_sound_powered = 'sound/machines/door/cmd3o.ogg' + close_sound_powered = 'sound/machines/door/cmd3c.ogg' + +/obj/machinery/door/airlock/glass_centcom + name = "Airlock" + icon = 'icons/obj/doors/Dooreleglass.dmi' + opacity = 0 + glass = 1 + open_sound_powered = 'sound/machines/door/cmd3o.ogg' + close_sound_powered = 'sound/machines/door/cmd3c.ogg' + +/obj/machinery/door/airlock/vault + name = "Vault" + icon = 'icons/obj/doors/vault.dmi' + explosion_resistance = 20 + opacity = 1 + secured_wires = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites. + req_one_access = list(access_heads_vault) + open_sound_powered = 'sound/machines/door/vault1o.ogg' + close_sound_powered = 'sound/machines/door/vault1c.ogg' + +/obj/machinery/door/airlock/vault/bolted + icon_state = "door_locked" + locked = 1 + +/obj/machinery/door/airlock/freezer + name = "Freezer Airlock" + icon = 'icons/obj/doors/Doorfreezer.dmi' + opacity = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_fre + +/obj/machinery/door/airlock/hatch + name = "Airtight Hatch" + icon = 'icons/obj/doors/Doorhatchele.dmi' + explosion_resistance = 20 + opacity = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_hatch + req_one_access = list(access_maint_tunnels) + open_sound_powered = 'sound/machines/door/hatchopen.ogg' + close_sound_powered = 'sound/machines/door/hatchclose.ogg' + open_sound_unpowered = 'sound/machines/door/hatchforced.ogg' + +/obj/machinery/door/airlock/maintenance_hatch + name = "Maintenance Hatch" + icon = 'icons/obj/doors/Doorhatchmaint2.dmi' + explosion_resistance = 20 + opacity = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_mhatch + req_one_access = list(access_maint_tunnels) + open_sound_powered = 'sound/machines/door/hatchopen.ogg' + close_sound_powered = 'sound/machines/door/hatchclose.ogg' + open_sound_unpowered = 'sound/machines/door/hatchforced.ogg' + +/obj/machinery/door/airlock/glass_command + name = "Command Airlock" + icon = 'icons/obj/doors/Doorcomglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_com + glass = 1 + req_one_access = list(access_heads) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cmd1o.ogg' + department_close_powered = 'sound/machines/door/cmd1c.ogg' + +/obj/machinery/door/airlock/glass_engineering + name = "Engineering Airlock" + icon = 'icons/obj/doors/Doorengglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_eng + glass = 1 + req_one_access = list(access_engine) + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/glass_engineeringatmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Doorengatmoglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_eat + glass = 1 + req_one_access = list(access_atmospherics) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/glass_security + name = "Security Airlock" + icon = 'icons/obj/doors/Doorsecglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_sec + glass = 1 + req_one_access = list(access_security) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sec1o.ogg' + department_close_powered = 'sound/machines/door/sec1c.ogg' + +/obj/machinery/door/airlock/glass_medical + name = "Medical Airlock" + icon = 'icons/obj/doors/Doormedglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_med + glass = 1 + req_one_access = list(access_medical) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/med1o.ogg' + department_close_powered = 'sound/machines/door/med1c.ogg' + +/obj/machinery/door/airlock/mining + name = "Mining Airlock" + icon = 'icons/obj/doors/Doormining.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_min + req_one_access = list(access_mining) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cgo1o.ogg' + department_close_powered = 'sound/machines/door/cgo1c.ogg' + +/obj/machinery/door/airlock/atmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Dooratmo.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_atmo + req_one_access = list(access_atmospherics) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/research + name = "Research Airlock" + icon = 'icons/obj/doors/Doorresearch.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_research + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/glass_research + name = "Research Airlock" + icon = 'icons/obj/doors/Doorresearchglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_research + glass = 1 + req_one_access = list(access_research) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/glass_mining + name = "Mining Airlock" + icon = 'icons/obj/doors/Doorminingglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_min + glass = 1 + req_one_access = list(access_mining) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/cgo1o.ogg' + department_close_powered = 'sound/machines/door/cgo1c.ogg' + +/obj/machinery/door/airlock/glass_atmos + name = "Atmospherics Airlock" + icon = 'icons/obj/doors/Dooratmoglass.dmi' + hitsound = 'sound/effects/Glasshit.ogg' + maxhealth = 300 + explosion_resistance = 5 + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_atmo + glass = 1 + req_one_access = list(access_atmospherics) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' + +/obj/machinery/door/airlock/gold + name = "Gold Airlock" + icon = 'icons/obj/doors/Doorgold.dmi' + mineral = "gold" + +/obj/machinery/door/airlock/silver + name = "Silver Airlock" + icon = 'icons/obj/doors/Doorsilver.dmi' + mineral = "silver" + +/obj/machinery/door/airlock/diamond + name = "Diamond Airlock" + icon = 'icons/obj/doors/Doordiamond.dmi' + mineral = "diamond" + +/obj/machinery/door/airlock/uranium + name = "Uranium Airlock" + desc = "And they said I was crazy." + icon = 'icons/obj/doors/Dooruranium.dmi' + mineral = "uranium" + var/last_event = 0 + var/rad_power = 7.5 + +/obj/machinery/door/airlock/process() + // Deliberate no call to parent. + if(main_power_lost_until > 0 && world.time >= main_power_lost_until) + regainMainPower() + + if(backup_power_lost_until > 0 && world.time >= backup_power_lost_until) + regainBackupPower() + + else if(electrified_until > 0 && world.time >= electrified_until) + electrify(0) + + if (..() == PROCESS_KILL && !(main_power_lost_until > 0 || backup_power_lost_until > 0 || electrified_until > 0)) + . = PROCESS_KILL + +/obj/machinery/door/airlock/uranium/process() + if(world.time > last_event+20) + if(prob(50)) + SSradiation.radiate(src, rad_power) + last_event = world.time + ..() + +/obj/machinery/door/airlock/phoron + name = "Phoron Airlock" + desc = "No way this can end badly." + icon = 'icons/obj/doors/Doorphoron.dmi' + mineral = "phoron" + +/obj/machinery/door/airlock/phoron/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PhoronBurn(exposed_temperature) + +/obj/machinery/door/airlock/phoron/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PhoronBurn(exposed_temperature) + +/obj/machinery/door/airlock/phoron/proc/PhoronBurn(temperature) + for(var/turf/simulated/floor/target_tile in range(2,loc)) + target_tile.assume_gas("phoron", 35, 400+T0C) + spawn (0) target_tile.hotspot_expose(temperature, 400) + for(var/turf/simulated/wall/W in range(3,src)) + W.burn((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame + for(var/obj/machinery/door/airlock/phoron/D in range(3,src)) + D.ignite(temperature/4) + new/obj/structure/door_assembly( src.loc ) + qdel(src) + +/obj/machinery/door/airlock/sandstone + name = "Sandstone Airlock" + icon = 'icons/obj/doors/Doorsand.dmi' + mineral = "sandstone" + +/obj/machinery/door/airlock/science + name = "Research Airlock" + icon = 'icons/obj/doors/Doorsci.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_science + req_one_access = list(access_research) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/glass_science + name = "Glass Airlocks" + icon = 'icons/obj/doors/Doorsciglass.dmi' + opacity = 0 + assembly_type = /obj/structure/door_assembly/door_assembly_science + glass = 1 + req_one_access = list(access_research) + open_sound_powered = 'sound/machines/door/hall1o.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + close_sound_powered = 'sound/machines/door/hall1c.ogg' // VOREStation Edit: Default door sounds for fancy, department-off. + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' + +/obj/machinery/door/airlock/highsecurity + name = "Secure Airlock" + icon = 'icons/obj/doors/hightechsecurity.dmi' + explosion_resistance = 20 + secured_wires = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity + req_one_access = list(access_heads_vault) + open_sound_powered = 'sound/machines/door/secure1o.ogg' + close_sound_powered = 'sound/machines/door/secure1c.ogg' + +/obj/machinery/door/airlock/voidcraft + name = "voidcraft hatch" + desc = "It's an extra resilient airlock intended for spacefaring vessels." + icon = 'icons/obj/doors/shuttledoors.dmi' + explosion_resistance = 20 + opacity = 0 + glass = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft + open_sound_powered = 'sound/machines/door/shuttle1o.ogg' + close_sound_powered = 'sound/machines/door/shuttle1c.ogg' + +// Airlock opens from top-bottom instead of left-right. +/obj/machinery/door/airlock/voidcraft/vertical + icon = 'icons/obj/doors/shuttledoors_vertical.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical + open_sound_powered = 'sound/machines/door/shuttle1o.ogg' + close_sound_powered = 'sound/machines/door/shuttle1c.ogg' + + +/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock + name = "Precursor Alpha Object - Doors" + desc = "This object appears to be used in order to restrict or allow access to \ + rooms based on its physical state. In other words, a door. \ + Despite being designed and created by unknown ancient alien hands, this door has \ + a large number of similarities to the conventional airlock, such as being driven by \ + electricity, opening and closing by physically moving, and being air tight. \ + It also operates by responding to signals through internal electrical conduits. \ + These characteristics make it possible for one with experience with a multitool \ + to manipulate the door.\ +

\ + The symbol on the door does not match any living species' patterns, giving further \ + implications that this door is very old, and yet it remains operational after \ + thousands of years. It is unknown if that is due to superb construction, or \ + unseen autonomous maintenance having been performed." + value = CATALOGUER_REWARD_EASY + +/obj/machinery/door/airlock/alien + name = "alien airlock" + desc = "You're fairly sure this is a door." + catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_airlock) + icon = 'icons/obj/doors/Dooralien.dmi' + explosion_resistance = 20 + secured_wires = TRUE + hackProof = TRUE + assembly_type = /obj/structure/door_assembly/door_assembly_alien + req_one_access = list(access_alien) + +/obj/machinery/door/airlock/alien/locked + icon_state = "door_locked" + locked = TRUE + +/obj/machinery/door/airlock/alien/public // Entry to UFO. + req_one_access = list() + normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside. + hackProof = TRUE //VOREStation Edit - No borgos + +/* +About the new airlock wires panel: +* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires. +* one wire from the ID scanner. Sending a pulse through this flashes the red light on the door (if the door has power). If you cut this wire, the door will stop recognizing valid IDs. (If the door has 0000 access, it still opens and closes, though) +* two wires for power. Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be open, but bolts-raising will not work. Cutting these wires may electrocute the user. +* one wire for door bolts. Sending a pulse through this drops door bolts (whether the door is powered or not) or raises them (if it is). Cutting this wire also drops the door bolts, and mending it does not raise them. If the wire is cut, trying to raise the door bolts will not work. +* two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter). Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user. +* one wire for opening the door. Sending a pulse through this while the door has power makes it open the door if no access is required. +* one wire for AI control. Sending a pulse through this blocks AI control for a second or so (which is enough to see the AI control light on the panel dialog go off and back on again). Cutting this prevents the AI from controlling the door unless it has hacked the door through the power connection (which takes about a minute). If both main and backup power are cut, as well as this wire, then the AI cannot operate or hack the door at all. +* one wire for electrifying the door. Sending a pulse through this electrifies the door for 30 seconds. Cutting this wire electrifies the door, so that the next person to touch the door without insulated gloves gets electrocuted. (Currently it is also STAYING electrified until someone mends the wire) +* one wire for controling door safetys. When active, door does not close on someone. When cut, door will ruin someone's shit. When pulsed, door will immedately ruin someone's shit. +* one wire for controlling door speed. When active, dor closes at normal rate. When cut, door does not close manually. When pulsed, door attempts to close every tick. +*/ + + + +/obj/machinery/door/airlock/bumpopen(mob/living/user as mob) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite + if(!issilicon(usr)) + if(src.isElectrified()) + if(!src.justzap) + if(src.shock(user, 100)) + src.justzap = 1 + spawn (10) + src.justzap = 0 + return + else /*if(src.justzap)*/ + return + else if(user.hallucination > 50 && prob(10) && src.operating == 0) + to_chat(user, "You feel a powerful shock course through your body!") + user.halloss += 10 + user.stunned += 10 + return + ..(user) + +/obj/machinery/door/airlock/proc/isElectrified() + if(src.electrified_until != 0) + return 1 + return 0 + +/obj/machinery/door/airlock/proc/canAIControl() + return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss())); + +/obj/machinery/door/airlock/proc/canAIHack() + return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss())); + +/obj/machinery/door/airlock/proc/arePowerSystemsOn() + if (stat & (NOPOWER|BROKEN)) + return 0 + return (src.main_power_lost_until==0 || src.backup_power_lost_until==0) + +/obj/machinery/door/airlock/requiresID() + return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner) + +/obj/machinery/door/airlock/proc/isAllPowerLoss() + if(stat & (NOPOWER|BROKEN)) + return 1 + if(mainPowerCablesCut() && backupPowerCablesCut()) + return 1 + return 0 + +/obj/machinery/door/airlock/proc/mainPowerCablesCut() + return wires.is_cut(WIRE_MAIN_POWER1) || wires.is_cut(WIRE_MAIN_POWER2) + +/obj/machinery/door/airlock/proc/backupPowerCablesCut() + return wires.is_cut(WIRE_BACKUP_POWER1) || wires.is_cut(WIRE_BACKUP_POWER2) + +/obj/machinery/door/airlock/proc/loseMainPower() + main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60) + + // If backup power is permanently disabled then activate in 10 seconds if possible, otherwise it's already enabled or a timer is already running + if(backup_power_lost_until == -1 && !backupPowerCablesCut()) + backup_power_lost_until = world.time + SecondsToTicks(10) + + if(main_power_lost_until > 0 || backup_power_lost_until > 0) + START_MACHINE_PROCESSING(src) + + // Disable electricity if required + if(electrified_until && isAllPowerLoss()) + electrify(0) + + update_icon() + +/obj/machinery/door/airlock/proc/loseBackupPower() + backup_power_lost_until = backupPowerCablesCut() ? -1 : world.time + SecondsToTicks(60) + + if(backup_power_lost_until > 0) + START_MACHINE_PROCESSING(src) + + // Disable electricity if required + if(electrified_until && isAllPowerLoss()) + electrify(0) + + update_icon() + +/obj/machinery/door/airlock/proc/regainMainPower() + if(!mainPowerCablesCut()) + main_power_lost_until = 0 + // If backup power is currently active then disable, otherwise let it count down and disable itself later + if(!backup_power_lost_until) + backup_power_lost_until = -1 + + update_icon() + +/obj/machinery/door/airlock/proc/regainBackupPower() + if(!backupPowerCablesCut()) + // Restore backup power only if main power is offline, otherwise permanently disable + backup_power_lost_until = main_power_lost_until == 0 ? -1 : 0 + + update_icon() + +/obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0) + var/message = "" + if(wires.is_cut(WIRE_ELECTRIFY) && arePowerSystemsOn()) + message = text("The electrification wire is cut - Door permanently electrified.") + src.electrified_until = -1 + else if(duration && !arePowerSystemsOn()) + message = text("The door is unpowered - Cannot electrify the door.") + src.electrified_until = 0 + else if(!duration && electrified_until != 0) + message = "The door is now un-electrified." + src.electrified_until = 0 + else if(duration) //electrify door for the given duration seconds + if(usr) + shockedby += text("\[[time_stamp()]\] - [usr](ckey:[usr.ckey])") + add_attack_logs(usr,name,"Electrified a door") + else + shockedby += text("\[[time_stamp()]\] - EMP)") + message = "The door is now electrified [duration == -1 ? "permanently" : "for [duration] second\s"]." + src.electrified_until = duration == -1 ? -1 : world.time + SecondsToTicks(duration) + + if(electrified_until > 0) + START_MACHINE_PROCESSING(src) + + if(feedback && message) + to_chat(usr,message) + +/obj/machinery/door/airlock/proc/set_idscan(var/activate, var/feedback = 0) + var/message = "" + if(wires.is_cut(WIRE_IDSCAN)) + message = "The IdScan wire is cut - IdScan feature permanently disabled." + else if(activate && src.aiDisabledIdScanner) + src.aiDisabledIdScanner = 0 + message = "IdScan feature has been enabled." + else if(!activate && !src.aiDisabledIdScanner) + src.aiDisabledIdScanner = 1 + message = "IdScan feature has been disabled." + + if(feedback && message) + to_chat(usr,message) + +/obj/machinery/door/airlock/proc/set_safeties(var/activate, var/feedback = 0) + var/message = "" + // Safeties! We don't need no stinking safeties! + if (wires.is_cut(WIRE_SAFETY)) + message = text("The safety wire is cut - Cannot enable safeties.") + else if (!activate && src.safe) + safe = 0 + else if (activate && !src.safe) + safe = 1 + + if(feedback && message) + to_chat(usr,message) + +// shock user with probability prb (if all connections & power are working) +// returns 1 if shocked, 0 otherwise +// The preceding comment was borrowed from the grille's shock script +/obj/machinery/door/airlock/shock(mob/user, prb) + if(!arePowerSystemsOn()) + return 0 + if(hasShocked) + return 0 //Already shocked someone recently? + if(..()) + hasShocked = 1 + sleep(10) + hasShocked = 0 + return 1 + else + return 0 + + +/obj/machinery/door/airlock/update_icon() + cut_overlays() + if(density) + if(locked && lights && src.arePowerSystemsOn()) + icon_state = "door_locked" + else + icon_state = "door_closed" + if(p_open || welded) + if(p_open) + add_overlay("panel_open") + if (!(stat & NOPOWER)) + if(stat & BROKEN) + add_overlay("sparks_broken") + else if (health < maxhealth * 3/4) + add_overlay("sparks_damaged") + if(welded) + add_overlay("welded") + else if (health < maxhealth * 3/4 && !(stat & NOPOWER)) + add_overlay("sparks_damaged") + else + icon_state = "door_open" + if((stat & BROKEN) && !(stat & NOPOWER)) + add_overlay("sparks_open") + return + +/obj/machinery/door/airlock/do_animate(animation) + switch(animation) + if("opening") + cut_overlay() + if(p_open) + spawn(2) // The only work around that works. Downside is that the door will be gone for a millisecond. + flick("o_door_opening", src) //can not use flick due to BYOND bug updating overlays right before flicking + update_icon() + else + flick("door_opening", src)//[stat ? "_stat":] + update_icon() + if("closing") + cut_overlay() + if(p_open) + spawn(2) + flick("o_door_closing", src) + update_icon() + else + flick("door_closing", src) + update_icon() + if("spark") + if(density) + flick("door_spark", src) + if("deny") + if(density && src.arePowerSystemsOn()) + flick("door_deny", src) + playsound(src, denied_sound, 50, 0, 3) + return + +/obj/machinery/door/airlock/attack_ai(mob/user as mob) + tgui_interact(user) + +/obj/machinery/door/airlock/attack_ghost(mob/user) + tgui_interact(user) + +/obj/machinery/door/airlock/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui, datum/tgui_state/custom_state) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AiAirlock", name) + ui.open() + if(custom_state) + ui.set_state(custom_state) + return TRUE + +/obj/machinery/door/airlock/tgui_data(mob/user) + var/list/data = list() + + var/list/power = list() + power["main"] = main_power_lost_until > 0 ? 0 : 2 + power["main_timeleft"] = round(main_power_lost_until > 0 ? max(main_power_lost_until - world.time, 0) / 10 : main_power_lost_until, 1) + power["backup"] = backup_power_lost_until > 0 ? 0 : 2 + power["backup_timeleft"] = round(backup_power_lost_until > 0 ? max(backup_power_lost_until - world.time, 0) / 10 : backup_power_lost_until, 1) + data["power"] = power + + data["shock"] = (electrified_until == 0) ? 2 : 0 + data["shock_timeleft"] = round(electrified_until > 0 ? max(electrified_until - world.time, 0) / 10 : electrified_until, 1) + data["id_scanner"] = !aiDisabledIdScanner + data["locked"] = locked // bolted + data["lights"] = lights // bolt lights + data["safe"] = safe // safeties + data["speed"] = normalspeed // safe speed + data["welded"] = welded // welded + data["opened"] = !density // opened + + var/list/wire = list() + wire["main_1"] = !wires.is_cut(WIRE_MAIN_POWER1) + wire["main_2"] = !wires.is_cut(WIRE_MAIN_POWER2) + wire["backup_1"] = !wires.is_cut(WIRE_BACKUP_POWER1) + wire["backup_2"] = !wires.is_cut(WIRE_BACKUP_POWER2) + wire["shock"] = !wires.is_cut(WIRE_ELECTRIFY) + wire["id_scanner"] = !wires.is_cut(WIRE_IDSCAN) + wire["bolts"] = !wires.is_cut(WIRE_DOOR_BOLTS) + wire["lights"] = !wires.is_cut(WIRE_BOLT_LIGHT) + wire["safe"] = !wires.is_cut(WIRE_SAFETY) + wire["timing"] = !wires.is_cut(WIRE_SPEED) + + data["wires"] = wire + return data + +/obj/machinery/door/airlock/proc/hack(mob/user as mob) + if(src.aiHacking==0) + src.aiHacking=1 + spawn(20) + //TODO: Make this take a minute + to_chat(user, "Airlock AI control has been blocked. Beginning fault-detection.") + sleep(50) + if(src.canAIControl()) + to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.") + src.aiHacking=0 + return + else if(!src.canAIHack(user)) + to_chat(user, "We've lost our connection! Unable to hack airlock.") + src.aiHacking=0 + return + to_chat(user, "Fault confirmed: airlock control wire disabled or cut.") + sleep(20) + to_chat(user, "Attempting to hack into airlock. This may take some time.") + sleep(200) + if(src.canAIControl()) + to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.") + src.aiHacking=0 + return + else if(!src.canAIHack(user)) + to_chat(user, "We've lost our connection! Unable to hack airlock.") + src.aiHacking=0 + return + to_chat(user, "Upload access confirmed. Loading control program into airlock software.") + sleep(170) + if(src.canAIControl()) + to_chat(user, "Alert cancelled. Airlock control has been restored without our assistance.") + src.aiHacking=0 + return + else if(!src.canAIHack(user)) + to_chat(user, "We've lost our connection! Unable to hack airlock.") + src.aiHacking=0 + return + to_chat(user, "Transfer complete. Forcing airlock to execute program.") + sleep(50) + //disable blocked control + src.aiControlDisabled = 2 + to_chat(user, "Receiving control information from airlock.") + sleep(10) + //bring up airlock dialog + src.aiHacking = 0 + if (user) + src.attack_ai(user) + +/obj/machinery/door/airlock/CanPass(atom/movable/mover, turf/target) + if (src.isElectrified()) + if (istype(mover, /obj/item)) + var/obj/item/i = mover + if (i.matter && (MAT_STEEL in i.matter) && i.matter[MAT_STEEL] > 0) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + return ..() + +/obj/machinery/door/airlock/attack_hand(mob/user as mob) + if(!istype(usr, /mob/living/silicon)) + if(src.isElectrified()) + if(src.shock(user, 100)) + return + + if(istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/X = user + if(istype(X.species, /datum/species/xenos)) + src.attack_alien(user) + return + + if(src.p_open) + user.set_machine(src) + wires.Interact(user) + else + ..(user) + return + +/obj/machinery/door/airlock/tgui_act(action, params) + if(..()) + return TRUE + if(!user_allowed(usr)) + return TRUE + + switch(action) + if("disrupt-main") + if(!main_power_lost_until) + loseMainPower() + update_icon() + else + to_chat(usr, "Main power is already offline.") + . = TRUE + if("disrupt-backup") + if(!backup_power_lost_until) + loseBackupPower() + update_icon() + else + to_chat(usr, "Backup power is already offline.") + . = TRUE + if("shock-restore") + electrify(0, 1) + . = TRUE + if("shock-temp") + electrify(30, 1) + . = TRUE + if("shock-perm") + electrify(-1, 1) + . = TRUE + if("idscan-toggle") + set_idscan(aiDisabledIdScanner, 1) + . = TRUE + // if("emergency-toggle") + // toggle_emergency(usr) + // . = TRUE + if("bolt-toggle") + toggle_bolt(usr) + . = TRUE + if("light-toggle") + if(wires.is_cut(WIRE_BOLT_LIGHT)) + to_chat(usr, "The bolt lights wire is cut - The door bolt lights are permanently disabled.") + return + lights = !lights + update_icon() + . = TRUE + if("safe-toggle") + set_safeties(!safe, 1) + . = TRUE + if("speed-toggle") + if(wires.is_cut(WIRE_SPEED)) + to_chat(usr, "The timing wire is cut - Cannot alter timing.") + return + normalspeed = !normalspeed + . = TRUE + if("open-close") + user_toggle_open(usr) + . = TRUE + + update_icon() + return 1 + +/obj/machinery/door/airlock/proc/user_allowed(mob/user) + var/allowed = (issilicon(user) && canAIControl(user)) + if(!allowed && isobserver(user)) + var/mob/observer/dead/D = user + if(D.can_admin_interact()) + allowed = TRUE + return allowed + +/obj/machinery/door/airlock/proc/toggle_bolt(mob/user) + if(!user_allowed(user)) + return + if(wires.is_cut(WIRE_DOOR_BOLTS)) + to_chat(user, "The door bolt drop wire is cut - you can't toggle the door bolts.") + return + if(locked) + if(!arePowerSystemsOn()) + to_chat(user, "The door has no power - you can't raise the door bolts.") + else + unlock() + to_chat(user, "The door bolts have been raised.") + // log_combat(user, src, "unbolted") + else + lock() + to_chat(user, "The door bolts have been dropped.") + // log_combat(user, src, "bolted") + +/obj/machinery/door/airlock/proc/user_toggle_open(mob/user) + if(!user_allowed(user)) + return + if(welded) + to_chat(user, text("The airlock has been welded shut!")) + else if(locked) + to_chat(user, text("The door bolts are down!")) + else if(!density) + close() + else + open() + +/obj/machinery/door/airlock/proc/can_remove_electronics() + return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN)))) + +/obj/machinery/door/airlock/attackby(obj/item/C, mob/user as mob) + //to_world("airlock attackby src [src] obj [C] mob [user]") + if(!istype(usr, /mob/living/silicon)) + if(src.isElectrified()) + if(src.shock(user, 75)) + return + if(istype(C, /obj/item/taperoll)) + return + + src.add_fingerprint(user) + if (attempt_vr(src,"attackby_vr",list(C, user))) return + if(istype(C, /mob/living)) + ..() + return + if(!repairing && istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density) + var/obj/item/weapon/weldingtool/W = C + if(W.remove_fuel(0,user)) + if(!src.welded) + src.welded = 1 + else + src.welded = null + playsound(src, C.usesound, 75, 1) + src.update_icon() + return + else + return + else if(C.is_screwdriver()) + if (src.p_open) + if (stat & BROKEN) + to_chat(usr, "The panel is broken and cannot be closed.") + else + src.p_open = 0 + playsound(src, C.usesound, 50, 1) + else + src.p_open = 1 + playsound(src, C.usesound, 50, 1) + src.update_icon() + else if(C.is_wirecutter()) + return src.attack_hand(user) + else if(istype(C, /obj/item/device/multitool)) + return src.attack_hand(user) + else if(istype(C, /obj/item/device/assembly/signaler)) + return src.attack_hand(user) + else if(istype(C, /obj/item/weapon/pai_cable)) // -- TLE + var/obj/item/weapon/pai_cable/cable = C + cable.plugin(src, user) + else if(!repairing && C.is_crowbar()) + if(can_remove_electronics()) + playsound(src, C.usesound, 75, 1) + user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") + if(do_after(user,40 * C.toolspeed)) + to_chat(user, "You removed the airlock electronics!") + + var/obj/structure/door_assembly/da = new assembly_type(src.loc) + if (istype(da, /obj/structure/door_assembly/multi_tile)) + da.set_dir(src.dir) + + da.anchored = TRUE + if(mineral) + da.glass = mineral + //else if(glass) + else if(glass && !da.glass) + da.glass = 1 + da.state = 1 + da.created_name = src.name + da.update_state() + + if(operating == -1 || (stat & BROKEN)) + new /obj/item/weapon/circuitboard/broken(src.loc) + operating = 0 + else + if (!electronics) create_electronics() + + electronics.loc = src.loc + electronics = null + + qdel(src) + return + else if(arePowerSystemsOn()) + to_chat(user, "The airlock's motors resist your efforts to force it.") + else if(locked) + to_chat(user, "The airlock's bolts prevent it from being forced.") + else + if(density) + spawn(0) open(1) + else + spawn(0) close(1) + + // Check if we're using a crowbar or armblade, and if the airlock's unpowered for whatever reason (off, broken, etc). + else if(istype(C, /obj/item/weapon)) + var/obj/item/weapon/W = C + if((W.pry == 1) && !arePowerSystemsOn()) + if(locked) + to_chat(user, "The airlock's bolts prevent it from being forced.") + else if( !welded && !operating ) + if(istype(C, /obj/item/weapon/material/twohanded/fireaxe)) // If this is a fireaxe, make sure it's held in two hands. + var/obj/item/weapon/material/twohanded/fireaxe/F = C + if(!F.wielded) + to_chat(user, "You need to be wielding \the [F] to do that.") + return + // At this point, it's an armblade or a fireaxe that passed the wielded test, let's try to open it. + if(density) + spawn(0) + open(1) + else + spawn(0) + close(1) + else + ..() + else + ..() + return + +/obj/machinery/door/airlock/phoron/attackby(C as obj, mob/user as mob) + if(C) + ignite(is_hot(C)) + ..() + +/obj/machinery/door/airlock/set_broken() + src.p_open = 1 + stat |= BROKEN + if (secured_wires) + lock() + for (var/mob/O in viewers(src, null)) + if ((O.client && !( O.blinded ))) + O.show_message("[src.name]'s control panel bursts open, sparks spewing out!") + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + + update_icon() + return + +/obj/machinery/door/airlock/open(var/forced=0) + if(!can_open(forced)) + return 0 + use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people + + //if the door is unpowered then it doesn't make sense to hear the woosh of a pneumatic actuator + for(var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/sound + var/volume + if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled. + if(arePowerSystemsOn()) + sound = legacy_open_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else if(!old_sounds && department_door_sounds && src.department_open_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these. + if(arePowerSystemsOn()) + sound = department_open_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else // Else, play these. + if(arePowerSystemsOn()) + sound = open_sound_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + + var/turf/T = get_turf(M) + var/distance = get_dist(T, get_turf(src)) + if(distance <= world.view * 2) + if(T && T.z == get_z(src)) + M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS) + + if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density) + src.closeOther.close() + return ..() + +/obj/machinery/door/airlock/can_open(var/forced=0) + if(!forced) + if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR)) + return 0 + + if(locked || welded) + return 0 + return ..() + +/obj/machinery/door/airlock/can_close(var/forced=0) + if(locked || welded) + return 0 + + if(!forced) + //despite the name, this wire is for general door control. + if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR)) + return 0 + + return ..() + +/atom/movable/proc/blocks_airlock() + return density + +/obj/machinery/door/blocks_airlock() + return 0 + +/obj/machinery/mech_sensor/blocks_airlock() + return 0 + +/mob/living/blocks_airlock() + return 1 + +/atom/movable/proc/airlock_crush(var/crush_damage) + return 0 + +/obj/machinery/portable_atmospherics/canister/airlock_crush(var/crush_damage) + . = ..() + health -= crush_damage + healthcheck() + +/obj/effect/energy_field/airlock_crush(var/crush_damage) + adjust_strength(crush_damage) + +/obj/structure/closet/airlock_crush(var/crush_damage) + ..() + damage(crush_damage) + for(var/atom/movable/AM in src) + AM.airlock_crush() + return 1 + +/mob/living/airlock_crush(var/crush_damage) + . = ..() + adjustBruteLoss(crush_damage) + SetStunned(5) + SetWeakened(5) + var/turf/T = get_turf(src) + T.add_blood(src) + return 1 + +/mob/living/carbon/airlock_crush(var/crush_damage) + . = ..() + if(can_feel_pain()) + emote("scream") + +/mob/living/silicon/robot/airlock_crush(var/crush_damage) + adjustBruteLoss(crush_damage) + return 0 + +/obj/machinery/door/airlock/close(var/forced=0) + if(!can_close(forced)) + return 0 + + if(safe) + for(var/turf/turf in locs) + for(var/atom/movable/AM in turf) + if(AM.blocks_airlock()) + if(!has_beeped) + playsound(src, 'sound/machines/buzz-two.ogg', 50, 0) + has_beeped = 1 + autoclose_in(6) + return + + for(var/turf/turf in locs) + for(var/atom/movable/AM in turf) + if(AM.airlock_crush(DOOR_CRUSH_DAMAGE)) + take_damage(DOOR_CRUSH_DAMAGE) + + use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people + has_beeped = 0 + for(var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/sound + var/volume + if(old_sounds) + if(arePowerSystemsOn()) + sound = legacy_close_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else if(!old_sounds && department_door_sounds && src.department_close_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these. + if(arePowerSystemsOn()) + sound = department_close_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else + if(arePowerSystemsOn()) + sound = close_sound_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + + var/turf/T = get_turf(M) + var/distance = get_dist(T, get_turf(src)) + if(distance <= world.view * 2) + if(T && T.z == get_z(src)) + M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS) + for(var/turf/turf in locs) + var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf) + if(killthis) + killthis.ex_act(2)//Smashin windows + return ..() + +/obj/machinery/door/airlock/proc/lock(var/forced=0) + if(locked) + return 0 + + if (operating && !forced) return 0 + + src.locked = 1 + playsound(src, bolt_down_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS) + for(var/mob/M in range(1,src)) + M.show_message("You hear a click from the bottom of the door.", 2) + update_icon() + return 1 + +/obj/machinery/door/airlock/proc/unlock(var/forced=0) + if(!src.locked) + return + + if (!forced) + if(operating || !src.arePowerSystemsOn() || wires.is_cut(WIRE_DOOR_BOLTS)) return + + src.locked = 0 + playsound(src, bolt_up_sound, 30, 0, 3, volume_channel = VOLUME_CHANNEL_DOORS) + for(var/mob/M in range(1,src)) + M.show_message("You hear a click from the bottom of the door.", 2) + update_icon() + return 1 + +/obj/machinery/door/airlock/allowed(mob/M) + if(locked) + return 0 + return ..(M) + +/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null) + ..() + + //if assembly is given, create the new door from the assembly + if (assembly && istype(assembly)) + assembly_type = assembly.type + + electronics = assembly.electronics + electronics.loc = src + + //update the door's access to match the electronics' + secured_wires = electronics.secure + if(electronics.one_access) + LAZYCLEARLIST(req_access) + req_one_access = src.electronics.conf_access + else + LAZYCLEARLIST(req_one_access) + req_access = src.electronics.conf_access + + //get the name from the assembly + if(assembly.created_name) + name = assembly.created_name + else + name = "[istext(assembly.glass) ? "[assembly.glass] airlock" : assembly.base_name]" + + //get the dir from the assembly + set_dir(assembly.dir) + + //wires + var/turf/T = get_turf(newloc) + if(T && (T.z in using_map.admin_levels)) + secured_wires = 1 + if (secured_wires) + wires = new/datum/wires/airlock/secure(src) + else + wires = new/datum/wires/airlock(src) + +/obj/machinery/door/airlock/Initialize() + if(src.closeOtherId != null) + for (var/obj/machinery/door/airlock/A in machines) + if(A.closeOtherId == src.closeOtherId && A != src) + src.closeOther = A + break + name = "\improper [name]" + . = ..() + +/obj/machinery/door/airlock/Destroy() + qdel(wires) + wires = null + return ..() + +// Most doors will never be deconstructed over the course of a round, +// so as an optimization defer the creation of electronics until +// the airlock is deconstructed +/obj/machinery/door/airlock/proc/create_electronics() + //create new electronics + if (secured_wires) + src.electronics = new/obj/item/weapon/airlock_electronics/secure( src.loc ) + else + src.electronics = new/obj/item/weapon/airlock_electronics( src.loc ) + + //update the electronics to match the door's access + if(LAZYLEN(req_access)) + electronics.conf_access = req_access + else if (LAZYLEN(req_one_access)) + electronics.conf_access = req_one_access + electronics.one_access = 1 + +/obj/machinery/door/airlock/emp_act(var/severity) + if(prob(40/severity)) + var/duration = world.time + SecondsToTicks(30 / severity) + if(duration > electrified_until) + electrify(duration) + ..() + +/obj/machinery/door/airlock/power_change() //putting this is obj/machinery/door itself makes non-airlock doors turn invisible for some reason + ..() + if(stat & NOPOWER) + // If we lost power, disable electrification + // Keeping door lights on, runs on internal battery or something. + electrified_until = 0 + update_icon() + +/obj/machinery/door/airlock/proc/prison_open() + if(arePowerSystemsOn()) + src.unlock() + src.open() + src.lock() + return + + +/obj/machinery/door/airlock/rcd_values(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_DECONSTRUCT) + // Old RCD code made it cost 10 units to decon an airlock. + // Now the new one costs ten "sheets". + return list( + RCD_VALUE_MODE = RCD_DECONSTRUCT, + RCD_VALUE_DELAY = 5 SECONDS, + RCD_VALUE_COST = RCD_SHEETS_PER_MATTER_UNIT * 10 + ) + return FALSE + +/obj/machinery/door/airlock/rcd_act(mob/living/user, obj/item/weapon/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_DECONSTRUCT) + to_chat(user, span("notice", "You deconstruct \the [src].")) + qdel(src) + return TRUE + return FALSE +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm index 0cc5868762..b42de46ee4 100644 --- a/code/game/objects/effects/alien/aliens.dm +++ b/code/game/objects/effects/alien/aliens.dm @@ -203,6 +203,7 @@ layer = ABOVE_TURF_LAYER+0.01 light_range = NODERANGE light_on = TRUE + light_color = "#673972" var/node_range = NODERANGE var/set_color = "#321D37" @@ -421,4 +422,135 @@ visible_message("[src.target] begins to crumble under the acid!") spawn(rand(150, 200)) tick() +<<<<<<< HEAD //CHOMPedit old eggs removed +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +/* + * Egg + */ +/var/const //for the status var + BURST = 0 + BURSTING = 1 + GROWING = 2 + GROWN = 3 + + MIN_GROWTH_TIME = 1800 //time it takes to grow a hugger + MAX_GROWTH_TIME = 3000 + +/obj/effect/alien/egg + desc = "It looks like a weird egg" + name = "egg" +// icon_state = "egg_growing" // So the egg looks 'grown', even though it's not. + icon_state = "egg" + density = FALSE + anchored = TRUE + + var/health = 100 + var/status = BURST //can be GROWING, GROWN or BURST; all mutually exclusive + +/obj/effect/alien/egg/New() +/* + if(config.aliens_allowed) + ..() + spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME)) + Grow() + else + qdel(src) +*/ +/obj/effect/alien/egg/attack_hand(user as mob) + + var/mob/living/carbon/M = user + if(!istype(M) || !(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)) + return attack_hand(user) + + switch(status) + if(BURST) + to_chat(user, "You clear the hatched egg.") + qdel(src) + return +/* if(GROWING) + to_chat(user, "The child is not developed yet.") + return + if(GROWN) + to_chat(user, "You retrieve the child.") + Burst(0) + return + +/obj/effect/alien/egg/proc/GetFacehugger() // Commented out for future edit. + return locate(/obj/item/clothing/mask/facehugger) in contents + +/obj/effect/alien/egg/proc/Grow() + icon_state = "egg" +// status = GROWN + status = BURST +// new /obj/item/clothing/mask/facehugger(src) + return +*/ +/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining + if(status == GROWN || status == GROWING) +// var/obj/item/clothing/mask/facehugger/child = GetFacehugger() + icon_state = "egg_hatched" +/* flick("egg_opening", src) + status = BURSTING + spawn(15) + status = BURST + child.loc = get_turf(src) + + if(kill && istype(child)) + child.Die() + else + for(var/mob/M in range(1,src)) + if(CanHug(M)) + child.Attach(M) + break +*/ +/obj/effect/alien/egg/bullet_act(var/obj/item/projectile/Proj) + health -= Proj.damage + ..() + healthcheck() + return + +/obj/effect/alien/egg/attack_generic(var/mob/user, var/damage, var/attack_verb) + visible_message("[user] [attack_verb] the [src]!") + user.do_attack_animation(src) + health -= damage + healthcheck() + return + +/obj/effect/alien/egg/take_damage(var/damage) + health -= damage + healthcheck() + return + + +/obj/effect/alien/egg/attackby(var/obj/item/weapon/W, var/mob/user) + if(health <= 0) + return + if(LAZYLEN(W.attack_verb)) + src.visible_message("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]") + else + src.visible_message("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]") + var/damage = W.force / 4.0 + + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + + if(WT.remove_fuel(0, user)) + damage = 15 + playsound(src, 'sound/items/Welder.ogg', 100, 1) + + src.health -= damage + src.healthcheck() + + +/obj/effect/alien/egg/proc/healthcheck() + if(health <= 0) + Burst() + +/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 500 + T0C) + health -= 5 + healthcheck() +======= +//Xenomorph Effect egg removed, replaced with Structure Egg. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/code/game/objects/structures/alien/alien egg.dm b/code/game/objects/structures/alien/alien egg.dm new file mode 100644 index 0000000000..90319e8a83 --- /dev/null +++ b/code/game/objects/structures/alien/alien egg.dm @@ -0,0 +1,96 @@ +#define MAX_PROGRESS 100 + +/obj/structure/alien/egg //Gurg Addition, working alien egg structure. + desc = "It looks like a weird egg." + name = "egg" + icon_state = "egg_growing" + density = 0 + anchored = 1 + var/progress = 0 + +/obj/structure/alien/egg/Initialize() + . = ..() + START_PROCESSING(SSobj, src) + +/obj/structure/alien/egg/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/structure/alien/egg/CanUseTopic(var/mob/user) + return isobserver(user) ? STATUS_INTERACTIVE : STATUS_CLOSE + +/obj/structure/alien/egg/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["spawn"]) + attack_ghost(usr) + +/obj/structure/alien/egg/process() + progress++ + if(progress >= MAX_PROGRESS) + for(var/mob/observer/dead/O in observer_mob_list) + if(O.client) + to_chat(O, "An alien is ready to hatch at [get_area(src.loc)]! (spawn)") + STOP_PROCESSING(SSobj, src) + update_icon() + +/obj/structure/alien/egg/update_icon() + if(progress == -1) + icon_state = "egg_hatched" + else if(progress < MAX_PROGRESS) + icon_state = "egg_growing" + else + icon_state = "egg" + +/obj/structure/alien/egg/attack_ghost(var/mob/observer/ghost/user) + if(progress == -1) //Egg has been hatched. + return + + if(progress < MAX_PROGRESS) + to_chat(user, "\The [src] has not yet matured.") + return + + if(!user.MayRespawn(1)) + return + + // Check for bans properly. + if(jobban_isbanned(user, "Xenomorph")) + to_chat(user, "You are banned from playing a Xenomorph.") + return + + var/confirm = alert(user, "Are you sure you want to join as a Xenomorph larva?", "Become Larva", "No", "Yes") + + if(!src || confirm != "Yes") + return + + if(!user || !user.ckey) + return + + if(progress == -1) //Egg has been hatched. + to_chat(user, "Too slow...") + return + + flick("egg_opening",src) + progress = -1 // No harvesting pls. + sleep(5) + + if(!src || !user) + visible_message("\The [src] writhes with internal motion, but nothing comes out.") + progress = MAX_PROGRESS // Someone else can have a go. + return // What a pain. + + // Create the mob, transfer over key. + var/mob/living/carbon/alien/larva/larva = new(get_turf(src)) + larva.ckey = user.ckey + spawn(-1) + if(user) qdel(user) // Remove the keyless ghost if it exists. + + visible_message("\The [src] splits open with a wet slithering noise, and \the [larva] writhes free!") + + // Turn us into a hatched egg. + name = "hatched alien egg" + desc += " This one has hatched." + update_icon() + +#undef MAX_PROGRESS diff --git a/code/game/objects/structures/alien/alien.dm b/code/game/objects/structures/alien/alien.dm new file mode 100644 index 0000000000..31a609e5a5 --- /dev/null +++ b/code/game/objects/structures/alien/alien.dm @@ -0,0 +1,62 @@ +/obj/structure/alien //Gurg Addition, framework for alien eggs. + name = "alien thing" + desc = "There's something alien about this." + icon = 'icons/mob/alien.dmi' + layer = ABOVE_JUNK_LAYER + var/health = 50 + +/obj/structure/alien/proc/healthcheck() + if(health <=0) + set_density(0) + qdel(src) + return + +/obj/structure/alien/bullet_act(var/obj/item/projectile/Proj) + health -= Proj.damage + ..() + healthcheck() + return + +/obj/structure/alien/ex_act(severity) + switch(severity) + if(1.0) + health-=50 + if(2.0) + health-=50 + if(3.0) + if (prob(50)) + health-=50 + else + health-=25 + healthcheck() + return + +/obj/structure/alien/hitby(AM as mob|obj) + ..() + visible_message("\The [src] was hit by \the [AM].") + var/tforce = 0 + if(ismob(AM)) + tforce = 10 + else + tforce = AM:throwforce + playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) + health = max(0, health - tforce) + healthcheck() + ..() + return + +/obj/structure/alien/attack_generic() + attack_hand(usr) + +/obj/structure/alien/attackby(var/obj/item/weapon/W, var/mob/user) + health = max(0, health - W.force) + playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) + healthcheck() + ..() + return + +/obj/structure/alien/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + if(air_group) return 0 + if(istype(mover) && mover.checkpass(PASSGLASS)) + return !opacity + return !density diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index a90553b2e5..3bd95ddf7f 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -43,10 +43,18 @@ /mob/living/carbon/alien/u_equip(obj/item/W as obj) return +<<<<<<< HEAD /*/mob/living/carbon/alien/Stat() //CHOMPedit. Commented out because this doesn't work properly for larva, when it should. Will probably give Diona their own kind of they don't have one ..() stat(null, "Progress: [amount_grown]/[max_grown]") */ +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +/mob/living/carbon/alien/Stat() + ..() + stat(null, "Progress: [amount_grown]/[max_grown]") + +======= +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul /mob/living/carbon/alien/restrained() return 0 diff --git a/code/modules/mob/living/carbon/alien/diona/progression.dm b/code/modules/mob/living/carbon/alien/diona/progression.dm index 1fd40b4311..6a8d0864f4 100644 --- a/code/modules/mob/living/carbon/alien/diona/progression.dm +++ b/code/modules/mob/living/carbon/alien/diona/progression.dm @@ -1,3 +1,8 @@ +/mob/living/carbon/alien/diona/Stat() //Specified where progression is at, doesn't work right for some things in carbon/alien + . = ..() + if(. && statpanel("Status")) + stat("Growth", "[round(amount_grown)]/[max_grown]") + /mob/living/carbon/alien/diona/confirm_evolution() if(!is_alien_whitelisted(src, GLOB.all_species[SPECIES_DIONA])) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 6582b5f6a8..18c5c34c7f 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -5,10 +5,23 @@ speak_emote = list("hisses") icon_state = "larva" language = "Hivemind" +<<<<<<< HEAD maxHealth = 50 //CHOMPedit. Larva can gain a little more health on weeds/phoron to make them just a little harder to kill health = 25 +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + maxHealth = 25 + health = 25 +======= + maxHealth = 50 + health = 50 +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul faction = "xeno" +<<<<<<< HEAD max_grown = 325 //CHOMPedit. Since xenos can reproduce without people now I decided to drastically increase the growth time +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +======= + max_grown = 325 //Increase larva growth time due to not needing hosts. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul /mob/living/carbon/alien/larva/Initialize() . = ..() diff --git a/code/modules/mob/living/carbon/alien/larva/progression.dm b/code/modules/mob/living/carbon/alien/larva/progression.dm index 21cd101f50..9be7ef6b9e 100644 --- a/code/modules/mob/living/carbon/alien/larva/progression.dm +++ b/code/modules/mob/living/carbon/alien/larva/progression.dm @@ -1,8 +1,17 @@ +<<<<<<< HEAD /mob/living/carbon/alien/larva/Stat() //CHOMPedit. Oh thank god we can see how close we are to full grown now . = ..() if(. && statpanel("Status")) stat("Growth", "[round(amount_grown)]/[max_grown]") +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +======= +/mob/living/carbon/alien/larva/Stat() //Specified where progression stats come from, because for some reason it doesn't work right in carbon/alien + . = ..() + if(. && statpanel("Status")) + stat("Growth", "[round(amount_grown)]/[max_grown]") + +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul /mob/living/carbon/alien/larva/confirm_evolution() to_chat(src, "You are growing into a beautiful alien! It is time to choose a caste.") diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm index 7eee938239..acc045e9e4 100644 --- a/code/modules/mob/living/carbon/alien/life.dm +++ b/code/modules/mob/living/carbon/alien/life.dm @@ -28,7 +28,13 @@ var/rads = radiation/25 radiation -= rads +<<<<<<< HEAD /*adjust_nutrition(rads)*/ //CHOMPedit. Commented out to prevent xeno/diona obesity, it was a real problem +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + adjust_nutrition(rads) +======= + //adjust_nutrition(rads) //Commented out to prevent alien obesity. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul heal_overall_damage(rads,rads) adjustOxyLoss(-(rads)) adjustToxLoss(-(rads)) diff --git a/code/modules/mob/living/carbon/human/species/species_attack.dm b/code/modules/mob/living/carbon/human/species/species_attack.dm index 3b38201206..5e2aaafb8e 100644 --- a/code/modules/mob/living/carbon/human/species/species_attack.dm +++ b/code/modules/mob/living/carbon/human/species/species_attack.dm @@ -64,11 +64,11 @@ /datum/unarmed_attack/claws/strong/xeno attack_verb = list("slashed", "gouged", "stabbed") - damage = 10 + damage = 15 /datum/unarmed_attack/claws/strong/xeno/queen attack_verb = list("slashed", "gouged", "stabbed", "gored") - damage = 15 + damage = 20 /datum/unarmed_attack/bite/strong attack_name = "strong bite" @@ -77,7 +77,7 @@ shredding = 1 /datum/unarmed_attack/bite/strong/xeno - damage = 10 + damage = 15 /datum/unarmed_attack/slime_glomp attack_name = "glomp" diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm deleted file mode 100644 index 88efb6d355..0000000000 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm +++ /dev/null @@ -1,161 +0,0 @@ -// This is to replace the previous datum/disease/alien_embryo for slightly improved handling and maintainability -// It functions almost identically (see code/datums/diseases/alien_embryo.dm) - -/* -/obj/item/alien_embryo //Commented out as reference for future reproduction methods, or addition later. - name = "alien embryo" - desc = "All slimy and yuck." - icon = 'icons/mob/alien.dmi' - icon_state = "larva0_dead" - var/mob/living/affected_mob - var/stage = 0 - -/obj/item/alien_embryo/New() - if(istype(loc, /mob/living)) - affected_mob = loc - START_PROCESSING(SSobj, src) - spawn(0) - AddInfectionImages(affected_mob) - else - qdel(src) - -/obj/item/alien_embryo/Destroy() - if(affected_mob) - affected_mob.status_flags &= ~(XENO_HOST) - spawn(0) - RemoveInfectionImages(affected_mob) - ..() - -/obj/item/alien_embryo/process() - if(!affected_mob) return - if(loc != affected_mob) - affected_mob.status_flags &= ~(XENO_HOST) - STOP_PROCESSING(SSobj, src) - spawn(0) - RemoveInfectionImages(affected_mob) - affected_mob = null - return - - if(stage < 5 && prob(3)) - stage++ - spawn(0) - RefreshInfectionImage(affected_mob) - - switch(stage) - if(2, 3) - if(prob(1)) - affected_mob.emote("sneeze") - if(prob(1)) - affected_mob.emote("cough") - if(prob(1)) - to_chat(affected_mob, "Your throat feels sore.") - if(prob(1)) - to_chat(affected_mob, "Mucous runs down the back of your throat.") - if(4) - if(prob(1)) - affected_mob.emote("sneeze") - if(prob(1)) - affected_mob.emote("cough") - if(prob(2)) - to_chat(affected_mob, " Your muscles ache.") - if(prob(20)) - affected_mob.take_organ_damage(1) - if(prob(2)) - to_chat(affected_mob, "Your stomach hurts.") - if(prob(20)) - affected_mob.adjustToxLoss(1) - affected_mob.updatehealth() - if(5) - to_chat(affected_mob, "You feel something tearing its way out of your stomach...") - affected_mob.adjustToxLoss(10) - affected_mob.updatehealth() - if(prob(50)) - AttemptGrow() - -/obj/item/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1) - var/list/candidates = get_alien_candidates() - var/picked = null - - // To stop clientless larva, we will check that our host has a client - // if we find no ghosts to become the alien. If the host has a client - // he will become the alien but if he doesn't then we will set the stage - // to 2, so we don't do a process heavy check everytime. - - if(candidates.len) - picked = pick(candidates) - else if(affected_mob.client) - picked = affected_mob.key - else - stage = 4 // Let's try again later. - return - - if(affected_mob.lying) - affected_mob.add_overlay("burst_lie") - else - affected_mob.add_overlay("burst_stand") - spawn(6) - var/mob/living/carbon/alien/larva/new_xeno = new(affected_mob.loc) - new_xeno.key = picked - new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention - if(gib_on_success) - affected_mob.gib() - qdel(src) - -/*---------------------------------------- -Proc: RefreshInfectionImage() -Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens. -----------------------------------------*/ -/obj/item/alien_embryo/proc/RefreshInfectionImage() - - for(var/mob/living/carbon/alien in player_list) - - if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs) - continue - - if(alien.client) - for(var/image/I in alien.client.images) - if(dd_hasprefix_case(I.icon_state, "infected")) - qdel(I) - for(var/mob/living/L in mob_list) - if(iscorgi(L) || iscarbon(L)) - if(L.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]") - alien.client.images += I - -/*---------------------------------------- -Proc: AddInfectionImages(C) -Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C. -----------------------------------------*/ -/obj/item/alien_embryo/proc/AddInfectionImages(var/mob/living/C) - if(C) - - for(var/mob/living/carbon/alien in player_list) - - if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs) - continue - - if(alien.client) - if(C.status_flags & XENO_HOST) - var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]") - alien.client.images += I - -/*---------------------------------------- -Proc: RemoveInfectionImage(C) -Des: Removes the alien infection image from all aliens in the world located in passed mob (C). -----------------------------------------*/ - -/obj/item/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C) - - if(C) - - for(var/mob/living/carbon/alien in player_list) - - if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs) - continue - - if(alien.client) - for(var/image/I in alien.client.images) - if(I.loc == C) - if(dd_hasprefix_case(I.icon_state, "infected")) - qdel(I) -*/ diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm index 262c5bd732..142d91fb13 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_powers.dm @@ -79,8 +79,16 @@ // Queen verbs. /mob/living/carbon/human/proc/lay_egg() +<<<<<<< HEAD set name = "Lay Egg (200)" //CHOMPedit changed number value set desc = "Lay an egg that hatch into larva." //CHOMPedit +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + set name = "Lay Egg (75)" + set desc = "Lay an egg to produce huggers to impregnate prey with." +======= + set name = "Lay Egg (200)" + set desc = "Lay an egg to produce huggers to impregnate prey with." +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul set category = "Abilities" if(!config.aliens_allowed) @@ -88,13 +96,31 @@ verbs -= /mob/living/carbon/human/proc/lay_egg return +<<<<<<< HEAD if(locate(/obj/structure/alien/egg) in get_turf(src)) //CHOMPedit. Changed from obj/effect to obj/structure +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + if(locate(/obj/effect/alien/egg) in get_turf(src)) +======= + if(locate(/obj/structure/alien/egg) in get_turf(src)) +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul to_chat(src, "There's already an egg here.") return +<<<<<<< HEAD if(check_alien_ability(200,1,O_EGG)) //CHOMPedit changed plasma cost from 75 to 200 +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + if(check_alien_ability(75,1,O_EGG)) +======= + if(check_alien_ability(200,1,O_EGG)) +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul visible_message("[src] has laid an egg!") +<<<<<<< HEAD new /obj/structure/alien/egg(loc) //CHOMPedit. Changed from obj/effect to obj/structure +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + new /obj/effect/alien/egg(loc) +======= + new /obj/structure/alien/egg(loc) +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul return @@ -144,7 +170,7 @@ P.firer = src P.old_style_target(A) P.fire() - playsound(src, 'sound/weapons/pierce.ogg', 25, 0) + playsound(src, 'sound/weapons/alien_spitacid.ogg', 25, 0) /mob/living/carbon/human/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N set name = "Corrosive Acid (200)" @@ -329,7 +355,13 @@ /mob/living/carbon/human/proc/gut() set category = "Abilities" +<<<<<<< HEAD set name = "Slaughter" //CHOMPedit renamed Gut to Slaughter so its more obvious what it does +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + set name = "Gut" +======= + set name = "Slaughter" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul set desc = "While grabbing someone aggressively, rip their guts out or tear them apart." if(last_special > world.time) @@ -345,7 +377,13 @@ return if(G.state < GRAB_AGGRESSIVE) +<<<<<<< HEAD to_chat(src, "You must have an aggressive grab to slaughter your prey!") //CHOMPedit +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + to_chat(src, "You must have an aggressive grab to gut your prey!") +======= + to_chat(src, "You must have an aggressive grab to slaughter your prey!") +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul return last_special = world.time + 50 diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm index b01849f4db..9f50a7177f 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm @@ -25,8 +25,16 @@ siemens_coefficient = 0 gluttonous = 2 +<<<<<<< HEAD brute_mod = 0.65 //CHOMPedit. Edited brute vulnerability burn_mod = 1.50 //CHOMPedit. Edited burn vulnerability +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + brute_mod = 0.5 // Hardened carapace. + burn_mod = 2 // Weak to fire. +======= + brute_mod = 0.6 // Hardened carapace. + burn_mod = 1.75 // Weak to fire. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul warning_low_pressure = 50 hazard_low_pressure = -1 @@ -44,7 +52,13 @@ flesh_color = "#282846" gibbed_anim = "gibbed-a" dusted_anim = "dust-a" +<<<<<<< HEAD death_message = "lets out a piercing multi-toned screech, green blood bubbling from its maw as it ceases." //CHOMPedit. Changed message. +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + death_message = "lets out a waning guttural screech, green blood bubbling from its maw." +======= + death_message = "lets out a guttural screech, green blood bubbling from its maw." +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul death_sound = 'sound/voice/hiss6.ogg' damage_overlays = null //CHOMPedit. They don't have overlays yet, if someone wants to add some then be my guest @@ -52,13 +66,22 @@ blood_mask = null //CHOMPedit. speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') - speech_chance = 100 + speech_chance = 75 virus_immune = 1 breath_type = null poison_type = null +<<<<<<< HEAD +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + vision_flags = SEE_SELF|SEE_MOBS + +======= + vision_flags = SEE_SELF|SEE_MOBS|SEE_TURFS + darksight = 10 + +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul has_organ = list( O_HEART = /obj/item/organ/internal/heart, O_BRAIN = /obj/item/organ/internal/brain/xeno, @@ -96,7 +119,13 @@ return SPECIES_GENA //CHOMPedit /datum/species/xenos/get_random_name() +<<<<<<< HEAD return "Genaprawn [caste_name] ([alien_number])" //CHOMPedit +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + return "alien [caste_name] ([alien_number])" +======= + return "xenomorph [caste_name] ([alien_number])" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul /datum/species/xenos/can_understand(var/mob/other) if(istype(other, /mob/living/carbon/alien/larva)) @@ -114,7 +143,13 @@ H.mind.special_role = "Alien" alien_number++ //Keep track of how many aliens we've had so far. +<<<<<<< HEAD H.real_name = "Genaprawn [caste_name] ([alien_number])" //CHOMPedit +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + H.real_name = "alien [caste_name] ([alien_number])" +======= + H.real_name = "xenomorph [caste_name] ([alien_number])" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul H.name = H.real_name ..() @@ -167,7 +202,20 @@ return 1 return 0 +<<<<<<< HEAD //CHOMPedit removed infection images, since they do not exist anymore. +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +/* +/datum/species/xenos/handle_login_special(var/mob/living/carbon/human/H) + H.AddInfectionImages() + ..() + +/datum/species/xenos/handle_logout_special(var/mob/living/carbon/human/H) + H.RemoveInfectionImages() + ..() +*/ +======= +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul /datum/species/xenos/drone name = SPECIES_GENA_DRONE //CHOMPedit @@ -213,7 +261,7 @@ name = SPECIES_GENA_HUNTER //CHOMPedit weeds_plasma_rate = 5 caste_name = "hunter" - slowdown = -2 + slowdown = -1 total_health = 150 tail = null //CHOMPedit. Set to null @@ -273,13 +321,29 @@ /datum/species/xenos/queen +<<<<<<< HEAD name = SPECIES_GENA_QUEEN //CHOMPedit total_health = 300 //CHOMPedit. Queen is chonk +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + name = SPECIES_XENO_QUEEN + total_health = 250 +======= + name = SPECIES_XENO_QUEEN + total_health = 300 +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul weeds_heal_rate = 5 weeds_plasma_rate = 20 caste_name = "queen" +<<<<<<< HEAD slowdown = 4 tail = null //CHOMPedit. Set to null +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + slowdown = 4 + tail = "xenos_queen_tail" +======= + slowdown = 3 + tail = "xenos_queen_tail" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul rarity_value = 10 icobase = 'icons/mob/human_races/xenos/r_xenos_queen.dmi' @@ -317,10 +381,22 @@ ..() // Make sure only one official queen exists at any point. if(!alien_queen_exists(1,H)) +<<<<<<< HEAD H.real_name = "Genaprawn queen ([alien_number])" //CHOMPedit +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + H.real_name = "alien queen ([alien_number])" +======= + H.real_name = "xenomorph queen ([alien_number])" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul H.name = H.real_name else +<<<<<<< HEAD H.real_name = "Genaprawn princess ([alien_number])" //CHOMPedit +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + H.real_name = "alien princess ([alien_number])" +======= + H.real_name = "xenomorph princess ([alien_number])" +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul H.name = H.real_name /datum/hud_data/alien @@ -341,4 +417,10 @@ gear = list( "storage1" = list("loc" = ui_storage1, "name" = "Left Pocket", "slot" = slot_l_store, "state" = "pocket"), "storage2" = list("loc" = ui_storage2, "name" = "Right Pocket", "slot" = slot_r_store, "state" = "pocket"), +<<<<<<< HEAD ) //CHOMPedit removed head and outer layer item slots, since they caused a slew of problems with xenomorphs +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + ) +======= + ) //Removed hat and outer slots, it caused too many problems that required admin intervention. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm index 7330c80c38..be18629fa0 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/xenomorphs.dm @@ -25,7 +25,43 @@ /mob/living/carbon/human/xqueen/New(var/new_loc) h_style = "Bald" faction = "xeno" +<<<<<<< HEAD ..(new_loc, SPECIES_GENA_QUEEN) //CHOMPedit //CHOMPedit. Removed AddInfectionImages code, due to it being commented out and not used +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul + ..(new_loc, SPECIES_XENO_QUEEN) + +// I feel like we should generalize/condense down all the various icon-rendering antag procs. +/*---------------------------------------- +Proc: AddInfectionImages() +Des: Gives the client of the alien an image on each infected mob. +----------------------------------------*/ +/* +/mob/living/carbon/human/proc/AddInfectionImages() + if (client) + for (var/mob/living/C in mob_list) + if(C.status_flags & XENO_HOST) + var/obj/item/alien_embryo/A = locate() in C + var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]") + client.images += I + return +*/ +/*---------------------------------------- +Proc: RemoveInfectionImages() +Des: Removes all infected images from the alien. +----------------------------------------*/ +/* +/mob/living/carbon/human/proc/RemoveInfectionImages() + if (client) + for(var/image/I in client.images) + if(dd_hasprefix_case(I.icon_state, "infected")) + qdel(I) + return +*/ +======= + ..(new_loc, SPECIES_XENO_QUEEN) + +//Removed AddInfectionImages, no longer required. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 91896ed393..bb05ff47cb 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -144,17 +144,21 @@ agony = 10 check_armour = "bio" armor_penetration = 25 // It's acid + hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg' + hitsound = 'sound/weapons/effects/alien_spit_wall.ogg' combustion = FALSE /obj/item/projectile/energy/neurotoxin name = "neurotoxic spit" icon_state = "neurotoxin" - damage = 5 + damage = 0 damage_type = BIOACID agony = 60 //CHOMPedit lowered agony damage check_armour = "bio" armor_penetration = 25 // It's acid-based + hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg' + hitsound = 'sound/weapons/effects/alien_spit_wall.ogg' combustion = FALSE diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 063a313b5b..62d39f3c48 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -14,7 +14,12 @@ return 0 return affected && affected.open == (affected.encased ? 3 : 2) +<<<<<<< HEAD //CHOMPedit. Removed unused embryo surgery +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +======= +//Removed unused Embryo Surgery, derelict and broken. +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul ////////////////////////////////////////////////////////////////// // CHEST INTERNAL ORGAN SURGERY // diff --git a/maps/submaps/pois_vr/debris_field/derelict.dmm b/maps/submaps/pois_vr/debris_field/derelict.dmm index c1dcd09022..cbc325c351 100644 --- a/maps/submaps/pois_vr/debris_field/derelict.dmm +++ b/maps/submaps/pois_vr/debris_field/derelict.dmm @@ -870,7 +870,6 @@ /turf/simulated/floor/tiled/dark, /area/submap/debrisfield/derelict/interior) "cF" = ( -/obj/effect/alien/egg, /obj/effect/alien/weeds, /turf/simulated/floor/tiled/dark, /area/submap/debrisfield/derelict/interior) diff --git a/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm b/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm index ed2b127f4f..5042974f3c 100644 --- a/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm +++ b/maps/submaps/pois_vr/debris_field/new_escapepod_xeno.dmm @@ -66,7 +66,6 @@ /area/submap/debrisfield/misc_debris) "W" = ( /obj/effect/alien/weeds, -/obj/effect/alien/egg, /turf/simulated/floor/airless, /area/submap/debrisfield/misc_debris) "X" = ( diff --git a/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm b/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm index 5e8267e0fe..151f08fc28 100644 --- a/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm +++ b/maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD "aa" = (/turf/template_noop,/area/template_noop) "ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate) "ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) @@ -152,3 +153,314 @@ aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa "} +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +"aa" = (/turf/template_noop,/area/template_noop) +"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate) +"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ad" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"ae" = (/obj/effect/alien/egg,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ai" = (/obj/machinery/artifact,/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aj" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/ice,/area/template_noop) +"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"an" = (/obj/structure/window/phoronreinforced,/obj/effect/alien/egg,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"ar" = (/obj/effect/alien/weeds/node,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"as" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"at" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"au" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"av" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aw" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ax" = (/turf/simulated/floor/outdoors/ice,/area/template_noop) +"ay" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"az" = (/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aA" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aB" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aC" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aD" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aE" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aF" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aG" = (/obj/machinery/vr_sleeper/alien/random_replicant,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aH" = (/obj/structure/prop/alien/pod,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aI" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aJ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aK" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aL" = (/obj/structure/table/alien,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aN" = (/obj/structure/prop/alien/computer/camera/flipped,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aO" = (/obj/structure/simple_door/resin,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aP" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aQ" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aR" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aS" = (/obj/structure/table/alien,/obj/random/tool/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aT" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aU" = (/obj/machinery/replicator,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aV" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/drug_den,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aW" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aX" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aY" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aZ" = (/obj/machinery/porta_turret/alien/destroyed,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ba" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/scientific,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bb" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/nanites,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bc" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/fresh_medicine,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bd" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/viral,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"be" = (/obj/machinery/door/blast/puzzle,/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bf" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bg" = (/obj/structure/prop/lock/projectile,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bh" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/old_medicine,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bi" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bj" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bk" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bl" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bm" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bn" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bo" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bp" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bq" = (/obj/machinery/implantchair,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"br" = (/obj/structure/prop/alien/computer{icon_state = "console-c"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bs" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bt" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bu" = (/obj/structure/loot_pile/surface/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bv" = (/obj/item/weapon/surgical/bone_clamp/alien,/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bw" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bx" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/accessory/medal/dungeon/alien_ufo{desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably."; name = "alien admiral's medal"},/obj/item/weapon/telecube/precursor/mated/zone,/obj/item/clothing/head/helmet/alien/tank,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"by" = (/obj/structure/loot_pile/mecha/gygax/dark,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bz" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bA" = (/obj/item/brokenbug,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"bB" = (/mob/living/simple_mob/animal/space/alien/sentinel,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bC" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bD" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bE" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bF" = (/obj/structure/prop/blackbox/xenofrigate,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bG" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"bH" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bI" = (/obj/structure/table/alien,/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bJ" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bK" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bL" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bM" = (/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bN" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bO" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bQ" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bR" = (/obj/structure/table/alien,/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bS" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bT" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bU" = (/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bV" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bW" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bX" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bY" = (/obj/structure/foamedmetal,/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bZ" = (/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ca" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cb" = (/obj/structure/prop/alien/power,/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cc" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cd" = (/obj/item/prop/alien/junk,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ce" = (/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"cf" = (/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cg" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"ch" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo_frigate) + +(1,1,1) = {" +aaaaaaaxbGaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaxaxadaxaxbGaaaaaaaaababababacaeacafaeababababaaaaaaajaxadaaaaadaxajaaaaaa +adbGadadadadaxaxaaaaabababagahababacaiacababacakabababaaaaadaxadadaxaxaaaaaaaa +aaaxaxadadadadaaaaababacalalahahabamamanabacacacacaoababaaaaadbGadadaaaaaaaaaa +aaaaaaadbGadaaaaababaoacacalapapchalalalchapapaqaracasababaaaaaaadadadaxaxadaa +aaaaadadadaaaaababaoacacapapapapatalapapauapapapavalacawababaaaaaaadadadaxajaa +aaadadaxaaaaababaoacayapapapalalchazacaAchaAaBapapaCacacawababaaaaaxadadadaaaa +aaaxaxaaaaababaoacalalapapahaDabababazababababawapapaEacacaBababaaaxadaaaaaaaa +adbGaxaaaaabacacalalapapacaFababaGabababaHabababaIapapaqaAacakabaaajaxaaaaaaaa +aaadaaaaababacacaFapapacacaFabaGacaGabaHalalaJacacacapapacacabababaaaxaaaaaaaa +aaadaaaaabakacacaKapapacacacababaJababawacacchabacaAapapacababaIabaaaaaaaaaaaa +aaaaaaababababaFaFapalalacacaJacacakabaLacaLabababacapapababaIacababaaaaaaaaaa +aaaaaaabaMaNabababalalacacacababaOababaLacaLababababchatchaFalacaPabaaaaaaaaaa +aaaaaaabaFacakacchauchaoacacabaeaQaeabaLacaLabababakapaRabaSalacaPabadaxaaaaaa +aaaaaaabaFacalalapalababaTalababaeabababawababaMaFacapapabahalacaPabadadaaaaaa +aaaaababaFalalapapapacababalaTabababakabababaUacaFacapapatacacababababadaxaaaa +aaaaabaVacapapapapacacakababababacacaWaAacababacacapapapabavababacacabadaxaaaa +aaaaabacapapapapacacacacabababaXacaFaFahalaYababchaRapacabababaZacacabadadadaa +adaaabbaapapacalbbalbcacbdabacacapalalalapapapapbeapacacaIabalalacapchaZadadaa +adaaabalapabababababababababapapapapapapapapapapchaFacbfababbgacapapatacadbAaa +adaaabbhalabbiawabbiapaFabapapaRbjbkacacacaparblabbmacaFabacacapapapchaZadadaa +axaaabalbnbobpacabbiapbqchapalalalaFaFaFacacapalabbfacbmabacapapapalabadadaxaa +axaaabalbnbnbnbrabbibsapatapalagabababababakapapabbtaAbuabalapapalalabadadaxaa +aaadababaFbnapbvababaFaFchapalababbwbxbwababapapabbyacbzabalalapacababadadaaaa +aaaaaaabaFapbBacaYababababapapabbCapapapbDabapapabbEbFbHabalalapacabadaxaaaaaa +aaaaaaabaFapapalalalalababapapabapapaRapapabapapabababababalapapalabadaaaaaaaa +axaaaaabbIaFapapbpalalabacalapbJapbKbLbfapbMapapacabacakbNapapalalabaaaaaaaaaa +axadaaababaFapbnbnacacabagalapbJbOaFapbPbObMapapakabacacbQapapalababaaaaaaaaaa +adbGadaaabbIbRbnapapbSabalalapbTapaRapapalbUapapacabacbVbWapacalabaaaaaaaaaaaa +aaaxaxaaababaFacapapbSababalaRapapapbXalalalaRacababacapapacakababaaaaaaaaaaaa +aaaaaxaaaaabbIaFapapapbSabalapapapapapapapapapacabacapapapacacabaaaaaaaaadadaa +aaaaaaaaaaabababchbYchabababbfbOapapapapapbObfabababchatchabababaaaaaaadbGadaa +aaadaaaaaaaaababbZbZbnapacababaFahalagarcaaFababacapapapacababaaaaaaadadadadaa +aaadaxajaaaaaaababcbbZapapalabababccabccabababacapapapaPababaaaaaaadadadadaaaa +aaadadaxaxbGaaaaababbZapapcdalalabababababacapapapapacababaaaaaaaxaxadadadadaa +aaaaadadadadadaaaaababaPacapapalalchapchceapapalcfaPababaaaaaabGadadadaxaxadaa +aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa +aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa +"} +======= +"aa" = (/turf/template_noop,/area/template_noop) +"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate) +"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ad" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"ae" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ai" = (/obj/machinery/artifact,/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aj" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/ice,/area/template_noop) +"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"an" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"ar" = (/obj/effect/alien/weeds/node,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"as" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"at" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"au" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"av" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aw" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ax" = (/turf/simulated/floor/outdoors/ice,/area/template_noop) +"ay" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"az" = (/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aA" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aB" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aC" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aD" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aE" = (/obj/structure/prop/alien/pod/open,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aF" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aG" = (/obj/machinery/vr_sleeper/alien/random_replicant,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aH" = (/obj/structure/prop/alien/pod,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aI" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aJ" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aK" = (/obj/structure/table/alien,/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aL" = (/obj/structure/table/alien,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aN" = (/obj/structure/prop/alien/computer/camera/flipped,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aO" = (/obj/structure/simple_door/resin,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aP" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aQ" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aR" = (/obj/effect/alien/weeds/node,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"aS" = (/obj/structure/table/alien,/obj/random/tool/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aT" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"aU" = (/obj/machinery/replicator,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aV" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/drug_den,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aW" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aX" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aY" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"aZ" = (/obj/machinery/porta_turret/alien/destroyed,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"ba" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/scientific,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bb" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/nanites,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bc" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/fresh_medicine,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bd" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/viral,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"be" = (/obj/machinery/door/blast/puzzle,/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bf" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bg" = (/obj/structure/prop/lock/projectile,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bh" = (/obj/structure/closet/alien,/obj/random/unidentified_medicine/old_medicine,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bi" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bj" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bk" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bl" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/under/psysuit,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bm" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bn" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bo" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bp" = (/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bq" = (/obj/machinery/implantchair,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"br" = (/obj/structure/prop/alien/computer{icon_state = "console-c"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bs" = (/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bt" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bu" = (/obj/structure/loot_pile/surface/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bv" = (/obj/item/weapon/surgical/bone_clamp/alien,/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bw" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bx" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/accessory/medal/dungeon/alien_ufo{desc = "It vaguely like a star. It looks like something an alien admiral might've worn. Probably."; name = "alien admiral's medal"},/obj/item/weapon/telecube/precursor/mated/zone,/obj/item/clothing/head/helmet/alien/tank,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"by" = (/obj/structure/loot_pile/mecha/gygax/dark,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bz" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bA" = (/obj/item/brokenbug,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"bB" = (/mob/living/simple_mob/animal/space/alien/sentinel,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bC" = (/obj/structure/prop/alien/computer/camera/flipped{icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bD" = (/obj/structure/prop/alien/computer/camera{icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bE" = (/obj/structure/loot_pile/maint/boxfort,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bF" = (/obj/structure/prop/blackbox/xenofrigate,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bG" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop) +"bH" = (/obj/structure/loot_pile/maint/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bI" = (/obj/structure/table/alien,/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bJ" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bK" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bL" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/obj/item/device/gps/internal/poi,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bM" = (/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bN" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bO" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bP" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bQ" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bR" = (/obj/structure/table/alien,/obj/structure/foamedmetal,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bS" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bT" = (/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate) +"bU" = (/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{dir = 4},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bV" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bW" = (/obj/structure/table/alien,/obj/structure/window/phoronreinforced{dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bX" = (/mob/living/simple_mob/animal/space/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"bY" = (/obj/structure/foamedmetal,/obj/machinery/door/airlock/alien/locked,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"bZ" = (/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ca" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cb" = (/obj/structure/prop/alien/power,/obj/structure/foamedmetal,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cc" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cd" = (/obj/item/prop/alien/junk,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"ce" = (/obj/random/tech_supply/component,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"cf" = (/obj/random/tech_supply/component,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate) +"cg" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate) +"ch" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo_frigate) + +(1,1,1) = {" +aaaaaaaxbGaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaxaxadaxaxbGaaaaaaaaababababacaeacafaeababababaaaaaaajaxadaaaaadaxajaaaaaa +adbGadadadadaxaxaaaaabababagahababacaiacababacakabababaaaaadaxadadaxaxaaaaaaaa +aaaxaxadadadadaaaaababacalalahahabamamanabacacacacaoababaaaaadbGadadaaaaaaaaaa +aaaaaaadbGadaaaaababaoacacalapapchalalalchapapaqaracasababaaaaaaadadadaxaxadaa +aaaaadadadaaaaababaoacacapapapapatalapapauapapapavalacawababaaaaaaadadadaxajaa +aaadadaxaaaaababaoacayapapapalalchazacaAchaAaBapapaCacacawababaaaaaxadadadaaaa +aaaxaxaaaaababaoacalalapapahaDabababazababababawapapaEacacaBababaaaxadaaaaaaaa +adbGaxaaaaabacacalalapapacaFababaGabababaHabababaIapapaqaAacakabaaajaxaaaaaaaa +aaadaaaaababacacaFapapacacaFabaGacaGabaHalalaJacacacapapacacabababaaaxaaaaaaaa +aaadaaaaabakacacaKapapacacacababaJababawacacchabacaAapapacababaIabaaaaaaaaaaaa +aaaaaaababababaFaFapalalacacaJacacakabaLacaLabababacapapababaIacababaaaaaaaaaa +aaaaaaabaMaNabababalalacacacababaOababaLacaLababababchatchaFalacaPabaaaaaaaaaa +aaaaaaabaFacakacchauchaoacacabaeaQaeabaLacaLabababakapaRabaSalacaPabadaxaaaaaa +aaaaaaabaFacalalapalababaTalababaeabababawababaMaFacapapabahalacaPabadadaaaaaa +aaaaababaFalalapapapacababalaTabababakabababaUacaFacapapatacacababababadaxaaaa +aaaaabaVacapapapapacacakababababacacaWaAacababacacapapapabavababacacabadaxaaaa +aaaaabacapapapapacacacacabababaXacaFaFahalaYababchaRapacabababaZacacabadadadaa +adaaabbaapapacalbbalbcacbdabacacapalalalapapapapbeapacacaIabalalacapchaZadadaa +adaaabalapabababababababababapapapapapapapapapapchaFacbfababbgacapapatacadbAaa +adaaabbhalabbiawabbiapaFabapapaRbjbkacacacaparblabbmacaFabacacapapapchaZadadaa +axaaabalbnbobpacabbiapbqchapalalalaFaFaFacacapalabbfacbmabacapapapalabadadaxaa +axaaabalbnbnbnbrabbibsapatapalagabababababakapapabbtaAbuabalapapalalabadadaxaa +aaadababaFbnapbvababaFaFchapalababbwbxbwababapapabbyacbzabalalapacababadadaaaa +aaaaaaabaFapbBacaYababababapapabbCapapapbDabapapabbEbFbHabalalapacabadaxaaaaaa +aaaaaaabaFapapalalalalababapapabapapaRapapabapapabababababalapapalabadaaaaaaaa +axaaaaabbIaFapapbpalalabacalapbJapbKbLbfapbMapapacabacakbNapapalalabaaaaaaaaaa +axadaaababaFapbnbnacacabagalapbJbOaFapbPbObMapapakabacacbQapapalababaaaaaaaaaa +adbGadaaabbIbRbnapapbSabalalapbTapaRapapalbUapapacabacbVbWapacalabaaaaaaaaaaaa +aaaxaxaaababaFacapapbSababalaRapapapbXalalalaRacababacapapacakababaaaaaaaaaaaa +aaaaaxaaaaabbIaFapapapbSabalapapapapapapapapapacabacapapapacacabaaaaaaaaadadaa +aaaaaaaaaaabababchbYchabababbfbOapapapapapbObfabababchatchabababaaaaaaadbGadaa +aaadaaaaaaaaababbZbZbnapacababaFahalagarcaaFababacapapapacababaaaaaaadadadadaa +aaadaxajaaaaaaababcbbZapapalabababccabccabababacapapapaPababaaaaaaadadadadaaaa +aaadadaxaxbGaaaaababbZapapcdalalabababababacapapapapacababaaaaaaaxaxadadadadaa +aaaaadadadadadaaaaababaPacapapalalchapchceapapalcfaPababaaaaaabGadadadaxaxadaa +aaaaaabGaxaxadbGaaaaabababacapapapcgapcgapalalalabababaaaaaaadadadadadaxbGaaaa +aaaaaaaaaaaxaxadadaaaaaaababababakchaHchakababababaaaaaaadadaxaxbGaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaabGadaaaaaaaaaaaaaaaaaaaa +"} +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/maps/submaps/surface_submaps/mountains/vault4.dmm b/maps/submaps/surface_submaps/mountains/vault4.dmm index 6ea85a27e9..bbd4824422 100644 --- a/maps/submaps/surface_submaps/mountains/vault4.dmm +++ b/maps/submaps/surface_submaps/mountains/vault4.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD "a" = (/turf/template_noop,/area/template_noop) "b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) "c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) @@ -20,3 +21,50 @@ abbfedbba aabbcbbaa aaaaaaaaa "} +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abdeeghba +aciejeica +abhgeedba +abbfedbba +aabbcbbaa +aaaaaaaaa +"} +======= +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"f" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) +"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abdeeghba +aciejeica +abhgeedba +abbfedbba +aabbcbbaa +aaaaaaaaa +"} +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/maps/submaps/surface_submaps/mountains/vault5.dmm b/maps/submaps/surface_submaps/mountains/vault5.dmm index 8daebc236f..a98b97c720 100644 --- a/maps/submaps/surface_submaps/mountains/vault5.dmm +++ b/maps/submaps/surface_submaps/mountains/vault5.dmm @@ -1,3 +1,4 @@ +<<<<<<< HEAD "a" = (/turf/template_noop,/area/template_noop) "b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) "c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) @@ -21,3 +22,52 @@ abbkegbba aabbcbbaa aaaaaaaaa "} +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"i" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abgeeehba +abiejeiba +abheeegba +abbkegbba +aabbcbbaa +aaaaaaaaa +"} +======= +"a" = (/turf/template_noop,/area/template_noop) +"b" = (/obj/effect/alien/resin/wall,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"c" = (/obj/structure/simple_door/resin,/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"d" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/obj/item/weapon/gun/projectile/p92x/large,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"e" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) +"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5) + +(1,1,1) = {" +aaaaaaaaa +aabbcbbaa +abbdefbba +abgeeehba +abiejeiba +abheeegba +abbkegbba +aabbcbbaa +aaaaaaaaa +"} +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul diff --git a/sound/machines/door/airlock_tear_apart.ogg b/sound/machines/door/airlock_tear_apart.ogg new file mode 100644 index 0000000000..aba517475f Binary files /dev/null and b/sound/machines/door/airlock_tear_apart.ogg differ diff --git a/sound/weapons/alien_spitacid.ogg b/sound/weapons/alien_spitacid.ogg new file mode 100644 index 0000000000..db630d0e8c Binary files /dev/null and b/sound/weapons/alien_spitacid.ogg differ diff --git a/sound/weapons/effects/alien_spit_wall.ogg b/sound/weapons/effects/alien_spit_wall.ogg new file mode 100644 index 0000000000..3d4fc90d27 Binary files /dev/null and b/sound/weapons/effects/alien_spit_wall.ogg differ diff --git a/vorestation.dme b/vorestation.dme index a0685571f0..e2ecc486f8 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1,3 +1,4 @@ +<<<<<<< HEAD // DM Environment file for baystation12.dme. // All manual changes should be made outside the BEGIN_ and END_ blocks. // New source code should be placed in .dm files: choose File/New --> Code File. @@ -4359,3 +4360,8118 @@ #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" #include "maps\~map_system\maps.dm" // END_INCLUDE +||||||| parent of eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul +// DM Environment file for baystation12.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. + // New source code should be placed in .dm files: choose File/New --> Code File. +// BEGIN_INTERNALS +// END_INTERNALS +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR +// BEGIN_PREFERENCES +#define DEBUG +// END_PREFERENCES +// BEGIN_INCLUDE +#include "code\_away_mission_tests.dm" +#include "code\_macros.dm" +#include "code\_macros_vr.dm" +#include "code\_map_tests.dm" +#include "code\_unit_tests.dm" +#include "code\global.dm" +#include "code\global_init.dm" +#include "code\global_vr.dm" +#include "code\hub.dm" +#include "code\names.dm" +#include "code\stylesheet.dm" +#include "code\world.dm" +#include "code\__datastructures\globals.dm" +#include "code\__defines\__513_compatibility.dm" +#include "code\__defines\_compile_options.dm" +#include "code\__defines\_lists.dm" +#include "code\__defines\_planes+layers.dm" +#include "code\__defines\_planes+layers_vr.dm" +#include "code\__defines\_protect.dm" +#include "code\__defines\_tick.dm" +#include "code\__defines\admin.dm" +#include "code\__defines\admin_vr.dm" +#include "code\__defines\appearance.dm" +#include "code\__defines\atmos.dm" +#include "code\__defines\belly_modes_vr.dm" +#include "code\__defines\callbacks.dm" +#include "code\__defines\chemistry.dm" +#include "code\__defines\chemistry_vr.dm" +#include "code\__defines\color.dm" +#include "code\__defines\construction.dm" +#include "code\__defines\crafting.dm" +#include "code\__defines\damage_organs.dm" +#include "code\__defines\dna.dm" +#include "code\__defines\exosuit_fab.dm" +#include "code\__defines\flags.dm" +#include "code\__defines\gamemode.dm" +#include "code\__defines\holomap.dm" +#include "code\__defines\hoses.dm" +#include "code\__defines\input.dm" +#include "code\__defines\instruments.dm" +#include "code\__defines\integrated_circuits.dm" +#include "code\__defines\inventory_sizes.dm" +#include "code\__defines\is_helpers.dm" +#include "code\__defines\items_clothing.dm" +#include "code\__defines\lighting.dm" +#include "code\__defines\lighting_vr.dm" +#include "code\__defines\machinery.dm" +#include "code\__defines\map.dm" +#include "code\__defines\materials.dm" +#include "code\__defines\math.dm" +#include "code\__defines\math_physics.dm" +#include "code\__defines\MC.dm" +#include "code\__defines\misc.dm" +#include "code\__defines\misc_vr.dm" +#include "code\__defines\mobs.dm" +#include "code\__defines\mobs_vr.dm" +#include "code\__defines\nifsoft.dm" +#include "code\__defines\objects.dm" +#include "code\__defines\overmap.dm" +#include "code\__defines\pda.dm" +#include "code\__defines\planets.dm" +#include "code\__defines\planets_vr.dm" +#include "code\__defines\plants.dm" +#include "code\__defines\preferences.dm" +#include "code\__defines\process_scheduler.dm" +#include "code\__defines\qdel.dm" +#include "code\__defines\research.dm" +#include "code\__defines\roguemining_vr.dm" +#include "code\__defines\rust_g.dm" +#include "code\__defines\shields.dm" +#include "code\__defines\shuttle.dm" +#include "code\__defines\sound.dm" +#include "code\__defines\spaceman_dmm.dm" +#include "code\__defines\species_languages.dm" +#include "code\__defines\species_languages_vr.dm" +#include "code\__defines\sprite_sheets.dm" +#include "code\__defines\sqlite_defines.dm" +#include "code\__defines\stat_tracking.dm" +#include "code\__defines\subsystems.dm" +#include "code\__defines\supply.dm" +#include "code\__defines\targeting.dm" +#include "code\__defines\tgs.config.dm" +#include "code\__defines\tgs.dm" +#include "code\__defines\tgui.dm" +#include "code\__defines\tools.dm" +#include "code\__defines\turfs.dm" +#include "code\__defines\typeids.dm" +#include "code\__defines\unit_tests.dm" +#include "code\__defines\vote.dm" +#include "code\__defines\vv.dm" +#include "code\__defines\webhooks.dm" +#include "code\__defines\wires.dm" +#include "code\__defines\xenoarcheaology.dm" +#include "code\__defines\ZAS.dm" +#include "code\__defines\dcs\flags.dm" +#include "code\__defines\dcs\helpers.dm" +#include "code\__defines\dcs\signals.dm" +#include "code\_global_vars\bitfields.dm" +#include "code\_global_vars\misc.dm" +#include "code\_global_vars\mobs.dm" +#include "code\_global_vars\religion.dm" +#include "code\_global_vars\sensitive.dm" +#include "code\_global_vars\typecache.dm" +#include "code\_global_vars\lists\mapping.dm" +#include "code\_global_vars\lists\misc.dm" +#include "code\_global_vars\lists\species.dm" +#include "code\_helpers\_global_objects.dm" +#include "code\_helpers\_global_objects_vr.dm" +#include "code\_helpers\_lists.dm" +#include "code\_helpers\atmospherics.dm" +#include "code\_helpers\atom_movables.dm" +#include "code\_helpers\events.dm" +#include "code\_helpers\files.dm" +#include "code\_helpers\game.dm" +#include "code\_helpers\global_lists.dm" +#include "code\_helpers\global_lists_vr.dm" +#include "code\_helpers\icons.dm" +#include "code\_helpers\icons_vr.dm" +#include "code\_helpers\lighting.dm" +#include "code\_helpers\logging.dm" +#include "code\_helpers\logging_vr.dm" +#include "code\_helpers\matrices.dm" +#include "code\_helpers\mobs.dm" +#include "code\_helpers\names.dm" +#include "code\_helpers\sanitize_values.dm" +#include "code\_helpers\storage.dm" +#include "code\_helpers\string_lists.dm" +#include "code\_helpers\text.dm" +#include "code\_helpers\time.dm" +#include "code\_helpers\turfs.dm" +#include "code\_helpers\type2type.dm" +#include "code\_helpers\unsorted.dm" +#include "code\_helpers\unsorted_vr.dm" +#include "code\_helpers\view.dm" +#include "code\_helpers\visual_filters.dm" +#include "code\_helpers\sorts\__main.dm" +#include "code\_helpers\sorts\comparators.dm" +#include "code\_helpers\sorts\TimSort.dm" +#include "code\_onclick\_defines.dm" +#include "code\_onclick\adjacent.dm" +#include "code\_onclick\ai.dm" +#include "code\_onclick\click.dm" +#include "code\_onclick\cyborg.dm" +#include "code\_onclick\drag_drop.dm" +#include "code\_onclick\item_attack.dm" +#include "code\_onclick\observer.dm" +#include "code\_onclick\other_mobs.dm" +#include "code\_onclick\rig.dm" +#include "code\_onclick\telekinesis.dm" +#include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\_defines_vr.dm" +#include "code\_onclick\hud\ability_screen_objects.dm" +#include "code\_onclick\hud\action.dm" +#include "code\_onclick\hud\ai.dm" +#include "code\_onclick\hud\alert.dm" +#include "code\_onclick\hud\alert_vr.dm" +#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\fullscreen.dm" +#include "code\_onclick\hud\ghost.dm" +#include "code\_onclick\hud\gun_mode.dm" +#include "code\_onclick\hud\hud.dm" +#include "code\_onclick\hud\human.dm" +#include "code\_onclick\hud\map_popups.dm" +#include "code\_onclick\hud\minihud.dm" +#include "code\_onclick\hud\minihud_mapper.dm" +#include "code\_onclick\hud\minihud_rigmech.dm" +#include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\other_mobs.dm" +#include "code\_onclick\hud\picture_in_picture.dm" +#include "code\_onclick\hud\radial.dm" +#include "code\_onclick\hud\radial_persistent.dm" +#include "code\_onclick\hud\robot.dm" +#include "code\_onclick\hud\robot_vr.dm" +#include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\screen_objects_vr.dm" +#include "code\_onclick\hud\skybox.dm" +#include "code\_onclick\hud\soulcatcher_guest.dm" +#include "code\_onclick\hud\spell_screen_objects.dm" +#include "code\ATMOSPHERICS\_atmos_setup.dm" +#include "code\ATMOSPHERICS\_atmospherics_helpers.dm" +#include "code\ATMOSPHERICS\atmospherics.dm" +#include "code\ATMOSPHERICS\datum_pipe_network.dm" +#include "code\ATMOSPHERICS\datum_pipeline.dm" +#include "code\ATMOSPHERICS\components\portables_connector.dm" +#include "code\ATMOSPHERICS\components\shutoff.dm" +#include "code\ATMOSPHERICS\components\tvalve.dm" +#include "code\ATMOSPHERICS\components\valve.dm" +#include "code\ATMOSPHERICS\components\binary_devices\algae_generator_vr.dm" +#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm" +#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm" +#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm" +#include "code\ATMOSPHERICS\components\binary_devices\passive_gate_vr.dm" +#include "code\ATMOSPHERICS\components\binary_devices\pipeturbine.dm" +#include "code\ATMOSPHERICS\components\binary_devices\pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm" +#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm" +#include "code\ATMOSPHERICS\components\omni_devices\filter.dm" +#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm" +#include "code\ATMOSPHERICS\components\unary\cold_sink.dm" +#include "code\ATMOSPHERICS\components\unary\heat_exchanger.dm" +#include "code\ATMOSPHERICS\components\unary\heat_source.dm" +#include "code\ATMOSPHERICS\components\unary\outlet_injector.dm" +#include "code\ATMOSPHERICS\components\unary\unary_base.dm" +#include "code\ATMOSPHERICS\components\unary\vent_pump.dm" +#include "code\ATMOSPHERICS\components\unary\vent_scrubber.dm" +#include "code\ATMOSPHERICS\components\unary\vent_scrubber_vr.dm" +#include "code\ATMOSPHERICS\pipes\cap.dm" +#include "code\ATMOSPHERICS\pipes\he_pipes.dm" +#include "code\ATMOSPHERICS\pipes\he_pipes_vr.dm" +#include "code\ATMOSPHERICS\pipes\manifold.dm" +#include "code\ATMOSPHERICS\pipes\manifold4w.dm" +#include "code\ATMOSPHERICS\pipes\pipe_base.dm" +#include "code\ATMOSPHERICS\pipes\pipe_base_vr.dm" +#include "code\ATMOSPHERICS\pipes\simple.dm" +#include "code\ATMOSPHERICS\pipes\tank.dm" +#include "code\ATMOSPHERICS\pipes\tank_vr.dm" +#include "code\ATMOSPHERICS\pipes\universal.dm" +#include "code\ATMOSPHERICS\pipes\vent.dm" +#include "code\controllers\autotransfer.dm" +#include "code\controllers\communications.dm" +#include "code\controllers\configuration.dm" +#include "code\controllers\configuration_vr.dm" +#include "code\controllers\controller.dm" +#include "code\controllers\emergency_shuttle_controller.dm" +#include "code\controllers\failsafe.dm" +#include "code\controllers\globals.dm" +#include "code\controllers\hooks-defs.dm" +#include "code\controllers\hooks.dm" +#include "code\controllers\master.dm" +#include "code\controllers\master_controller.dm" +#include "code\controllers\subsystem.dm" +#include "code\controllers\verbs.dm" +#include "code\controllers\observer_listener\atom\observer.dm" +#include "code\controllers\subsystems\ai.dm" +#include "code\controllers\subsystems\aifast.dm" +#include "code\controllers\subsystems\air.dm" +#include "code\controllers\subsystems\airflow.dm" +#include "code\controllers\subsystems\alarm.dm" +#include "code\controllers\subsystems\assets.dm" +#include "code\controllers\subsystems\atoms.dm" +#include "code\controllers\subsystems\character_setup.dm" +#include "code\controllers\subsystems\chat.dm" +#include "code\controllers\subsystems\chemistry.dm" +#include "code\controllers\subsystems\circuits.dm" +#include "code\controllers\subsystems\dcs.dm" +#include "code\controllers\subsystems\events.dm" +#include "code\controllers\subsystems\garbage.dm" +#include "code\controllers\subsystems\holomaps.dm" +#include "code\controllers\subsystems\inactivity.dm" +#include "code\controllers\subsystems\input.dm" +#include "code\controllers\subsystems\job.dm" +#include "code\controllers\subsystems\lighting.dm" +#include "code\controllers\subsystems\machines.dm" +#include "code\controllers\subsystems\mapping.dm" +#include "code\controllers\subsystems\media_tracks.dm" +#include "code\controllers\subsystems\mobs.dm" +#include "code\controllers\subsystems\nightshift.dm" +#include "code\controllers\subsystems\orbits.dm" +#include "code\controllers\subsystems\overlays.dm" +#include "code\controllers\subsystems\persist_vr.dm" +#include "code\controllers\subsystems\persistence.dm" +#include "code\controllers\subsystems\planets.dm" +#include "code\controllers\subsystems\plants.dm" +#include "code\controllers\subsystems\radiation.dm" +#include "code\controllers\subsystems\shuttles.dm" +#include "code\controllers\subsystems\skybox.dm" +#include "code\controllers\subsystems\sounds.dm" +#include "code\controllers\subsystems\sqlite.dm" +#include "code\controllers\subsystems\sun.dm" +#include "code\controllers\subsystems\supply.dm" +#include "code\controllers\subsystems\tgui.dm" +#include "code\controllers\subsystems\ticker.dm" +#include "code\controllers\subsystems\time_track.dm" +#include "code\controllers\subsystems\timer.dm" +#include "code\controllers\subsystems\transcore_vr.dm" +#include "code\controllers\subsystems\vis_overlays.dm" +#include "code\controllers\subsystems\vote.dm" +#include "code\controllers\subsystems\webhooks.dm" +#include "code\controllers\subsystems\xenoarch.dm" +#include "code\controllers\subsystems\processing\bellies_vr.dm" +#include "code\controllers\subsystems\processing\fastprocess.dm" +#include "code\controllers\subsystems\processing\instruments.dm" +#include "code\controllers\subsystems\processing\obj.dm" +#include "code\controllers\subsystems\processing\processing.dm" +#include "code\controllers\subsystems\processing\projectiles.dm" +#include "code\controllers\subsystems\processing\turfs.dm" +#include "code\datums\ai_law_sets.dm" +#include "code\datums\ai_law_sets_vr.dm" +#include "code\datums\ai_laws.dm" +#include "code\datums\beam.dm" +#include "code\datums\browser.dm" +#include "code\datums\callback.dm" +#include "code\datums\category.dm" +#include "code\datums\chat_message.dm" +#include "code\datums\datacore.dm" +#include "code\datums\datum.dm" +#include "code\datums\datumvars.dm" +#include "code\datums\EPv2.dm" +#include "code\datums\ghost_query.dm" +#include "code\datums\ghost_query_vr.dm" +#include "code\datums\hierarchy.dm" +#include "code\datums\mind.dm" +#include "code\datums\mind_vr.dm" +#include "code\datums\mixed.dm" +#include "code\datums\modules.dm" +#include "code\datums\mutable_appearance.dm" +#include "code\datums\orbit.dm" +#include "code\datums\organs.dm" +#include "code\datums\position_point_vector.dm" +#include "code\datums\progressbar.dm" +#include "code\datums\reference_tracking.dm" +#include "code\datums\riding.dm" +#include "code\datums\soul_link.dm" +#include "code\datums\sun.dm" +#include "code\datums\weakref.dm" +#include "code\datums\autolathe\arms.dm" +#include "code\datums\autolathe\arms_vr.dm" +#include "code\datums\autolathe\autolathe.dm" +#include "code\datums\autolathe\devices.dm" +#include "code\datums\autolathe\devices_vr.dm" +#include "code\datums\autolathe\engineering.dm" +#include "code\datums\autolathe\engineering_vr.dm" +#include "code\datums\autolathe\general.dm" +#include "code\datums\autolathe\general_vr.dm" +#include "code\datums\autolathe\materials.dm" +#include "code\datums\autolathe\medical.dm" +#include "code\datums\autolathe\medical_vr.dm" +#include "code\datums\autolathe\tools.dm" +#include "code\datums\autolathe\tools_vr.dm" +#include "code\datums\components\_component.dm" +#include "code\datums\components\material_container.dm" +#include "code\datums\components\overlay_lighting.dm" +#include "code\datums\components\resize_guard.dm" +#include "code\datums\components\crafting\crafting.dm" +#include "code\datums\components\crafting\crafting_external.dm" +#include "code\datums\components\crafting\recipes.dm" +#include "code\datums\components\crafting\tool_quality.dm" +#include "code\datums\components\crafting\recipes\primitive.dm" +#include "code\datums\components\crafting\recipes\weapons.dm" +#include "code\datums\elements\_element.dm" +#include "code\datums\elements\light_blocking.dm" +#include "code\datums\elements\turf_transparency.dm" +#include "code\datums\game_masters\_common.dm" +#include "code\datums\helper_datums\construction_datum.dm" +#include "code\datums\helper_datums\events.dm" +#include "code\datums\helper_datums\getrev.dm" +#include "code\datums\helper_datums\teleport.dm" +#include "code\datums\helper_datums\teleport_vr.dm" +#include "code\datums\helper_datums\topic_input.dm" +#include "code\datums\locations\locations.dm" +#include "code\datums\locations\nyx.dm" +#include "code\datums\locations\qerrvallis.dm" +#include "code\datums\locations\s_randarr.dm" +#include "code\datums\locations\sol.dm" +#include "code\datums\locations\tau_ceti.dm" +#include "code\datums\locations\uueoa_esa.dm" +#include "code\datums\locations\vir.dm" +#include "code\datums\looping_sounds\_looping_sound.dm" +#include "code\datums\looping_sounds\item_sounds.dm" +#include "code\datums\looping_sounds\machinery_sounds.dm" +#include "code\datums\looping_sounds\sequence.dm" +#include "code\datums\looping_sounds\weather_sounds.dm" +#include "code\datums\managed_browsers\_managed_browser.dm" +#include "code\datums\managed_browsers\feedback_form.dm" +#include "code\datums\managed_browsers\feedback_viewer.dm" +#include "code\datums\observation\_debug.dm" +#include "code\datums\observation\_defines.dm" +#include "code\datums\observation\destroyed.dm" +#include "code\datums\observation\dir_set.dm" +#include "code\datums\observation\equipped.dm" +#include "code\datums\observation\helpers.dm" +#include "code\datums\observation\logged_in.dm" +#include "code\datums\observation\moved.dm" +#include "code\datums\observation\observation.dm" +#include "code\datums\observation\power_change.dm" +#include "code\datums\observation\shuttle_added.dm" +#include "code\datums\observation\shuttle_moved.dm" +#include "code\datums\observation\stat_set.dm" +#include "code\datums\observation\turf_changed.dm" +#include "code\datums\observation\turf_enterexit.dm" +#include "code\datums\observation\unequipped.dm" +#include "code\datums\observation\z_moved.dm" +#include "code\datums\observation\~cleanup.dm" +#include "code\datums\outfits\_defines.dm" +#include "code\datums\outfits\horror_killers.dm" +#include "code\datums\outfits\misc.dm" +#include "code\datums\outfits\nanotrasen.dm" +#include "code\datums\outfits\outfit.dm" +#include "code\datums\outfits\outfit_vr.dm" +#include "code\datums\outfits\pirates.dm" +#include "code\datums\outfits\spec_op.dm" +#include "code\datums\outfits\tournament.dm" +#include "code\datums\outfits\wizardry.dm" +#include "code\datums\outfits\costumes\costume.dm" +#include "code\datums\outfits\costumes\halloween.dm" +#include "code\datums\outfits\jobs\cargo.dm" +#include "code\datums\outfits\jobs\civilian.dm" +#include "code\datums\outfits\jobs\civilian_vr.dm" +#include "code\datums\outfits\jobs\command.dm" +#include "code\datums\outfits\jobs\command_vr.dm" +#include "code\datums\outfits\jobs\engineering.dm" +#include "code\datums\outfits\jobs\job.dm" +#include "code\datums\outfits\jobs\medical.dm" +#include "code\datums\outfits\jobs\medical_vr.dm" +#include "code\datums\outfits\jobs\misc.dm" +#include "code\datums\outfits\jobs\science.dm" +#include "code\datums\outfits\jobs\science_vr.dm" +#include "code\datums\outfits\jobs\security.dm" +#include "code\datums\outfits\jobs\special_vr.dm" +#include "code\datums\outfits\military\fleet.dm" +#include "code\datums\outfits\military\marines.dm" +#include "code\datums\outfits\military\military.dm" +#include "code\datums\outfits\military\sifguard.dm" +#include "code\datums\repositories\ammomaterial.dm" +#include "code\datums\repositories\cameras.dm" +#include "code\datums\repositories\crew.dm" +#include "code\datums\repositories\decls.dm" +#include "code\datums\repositories\repository.dm" +#include "code\datums\repositories\unique.dm" +#include "code\datums\roundstats\_defines_local.dm" +#include "code\datums\roundstats\departmentgoal.dm" +#include "code\datums\roundstats\roundstats.dm" +#include "code\datums\supplypacks\atmospherics.dm" +#include "code\datums\supplypacks\contraband.dm" +#include "code\datums\supplypacks\contraband_vr.dm" +#include "code\datums\supplypacks\costumes.dm" +#include "code\datums\supplypacks\costumes_vr.dm" +#include "code\datums\supplypacks\engineering.dm" +#include "code\datums\supplypacks\engineering_vr.dm" +#include "code\datums\supplypacks\hospitality.dm" +#include "code\datums\supplypacks\hospitality_vr.dm" +#include "code\datums\supplypacks\hydroponics.dm" +#include "code\datums\supplypacks\hydroponics_vr.dm" +#include "code\datums\supplypacks\materials.dm" +#include "code\datums\supplypacks\medical.dm" +#include "code\datums\supplypacks\medical_vr.dm" +#include "code\datums\supplypacks\misc.dm" +#include "code\datums\supplypacks\misc_vr.dm" +#include "code\datums\supplypacks\munitions.dm" +#include "code\datums\supplypacks\munitions_vr.dm" +#include "code\datums\supplypacks\musical.dm" +#include "code\datums\supplypacks\recreation.dm" +#include "code\datums\supplypacks\recreation_vr.dm" +#include "code\datums\supplypacks\robotics.dm" +#include "code\datums\supplypacks\robotics_vr.dm" +#include "code\datums\supplypacks\science.dm" +#include "code\datums\supplypacks\science_vr.dm" +#include "code\datums\supplypacks\security.dm" +#include "code\datums\supplypacks\security_vr.dm" +#include "code\datums\supplypacks\supply.dm" +#include "code\datums\supplypacks\supply_vr.dm" +#include "code\datums\supplypacks\supplypacks.dm" +#include "code\datums\supplypacks\voidsuits.dm" +#include "code\datums\supplypacks\voidsuits_vr.dm" +#include "code\datums\underwear\bottom.dm" +#include "code\datums\underwear\socks.dm" +#include "code\datums\underwear\top.dm" +#include "code\datums\underwear\undershirts.dm" +#include "code\datums\underwear\underwear.dm" +#include "code\datums\uplink\ammunition.dm" +#include "code\datums\uplink\ammunition_vr.dm" +#include "code\datums\uplink\announcements.dm" +#include "code\datums\uplink\armor.dm" +#include "code\datums\uplink\backup.dm" +#include "code\datums\uplink\badassery.dm" +#include "code\datums\uplink\grenades.dm" +#include "code\datums\uplink\hardsuit_modules.dm" +#include "code\datums\uplink\implants.dm" +#include "code\datums\uplink\medical.dm" +#include "code\datums\uplink\medical_vr.dm" +#include "code\datums\uplink\resources.dm" +#include "code\datums\uplink\stealth_items.dm" +#include "code\datums\uplink\stealthy_weapons.dm" +#include "code\datums\uplink\telecrystals.dm" +#include "code\datums\uplink\tools.dm" +#include "code\datums\uplink\tools_vr.dm" +#include "code\datums\uplink\uplink_categories.dm" +#include "code\datums\uplink\uplink_items.dm" +#include "code\datums\uplink\visible_weapons.dm" +#include "code\datums\uplink\visible_weapons_vr.dm" +#include "code\datums\vending\stored_item.dm" +#include "code\datums\vending\vending.dm" +#include "code\datums\wires\airlock.dm" +#include "code\datums\wires\alarm.dm" +#include "code\datums\wires\apc.dm" +#include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\camera.dm" +#include "code\datums\wires\explosive.dm" +#include "code\datums\wires\grid_checker.dm" +#include "code\datums\wires\jukebox.dm" +#include "code\datums\wires\mines.dm" +#include "code\datums\wires\particle_accelerator.dm" +#include "code\datums\wires\radio.dm" +#include "code\datums\wires\robot.dm" +#include "code\datums\wires\seedstorage.dm" +#include "code\datums\wires\shield_generator.dm" +#include "code\datums\wires\smartfridge.dm" +#include "code\datums\wires\smes.dm" +#include "code\datums\wires\suit_storage_unit.dm" +#include "code\datums\wires\tesla_coil.dm" +#include "code\datums\wires\vending.dm" +#include "code\datums\wires\wires.dm" +#include "code\defines\gases.dm" +#include "code\defines\obj.dm" +#include "code\defines\obj\weapon.dm" +#include "code\defines\procs\announce.dm" +#include "code\defines\procs\AStar.dm" +#include "code\defines\procs\dbcore.dm" +#include "code\defines\procs\radio.dm" +#include "code\defines\procs\statistics.dm" +#include "code\game\atoms.dm" +#include "code\game\atoms_movable.dm" +#include "code\game\atoms_movable_vr.dm" +#include "code\game\base_turf.dm" +#include "code\game\periodic_news.dm" +#include "code\game\response_team.dm" +#include "code\game\response_team_vr.dm" +#include "code\game\shuttle_engines.dm" +#include "code\game\skincmd.dm" +#include "code\game\sound.dm" +#include "code\game\trader_visit.dm" +#include "code\game\trader_visit_vr.dm" +#include "code\game\world.dm" +#include "code\game\antagonist\_antagonist_setup.dm" +#include "code\game\antagonist\antagonist.dm" +#include "code\game\antagonist\antagonist_add.dm" +#include "code\game\antagonist\antagonist_create.dm" +#include "code\game\antagonist\antagonist_equip.dm" +#include "code\game\antagonist\antagonist_factions.dm" +#include "code\game\antagonist\antagonist_helpers.dm" +#include "code\game\antagonist\antagonist_objectives.dm" +#include "code\game\antagonist\antagonist_panel.dm" +#include "code\game\antagonist\antagonist_place.dm" +#include "code\game\antagonist\antagonist_print.dm" +#include "code\game\antagonist\antagonist_update.dm" +#include "code\game\antagonist\alien\borer.dm" +#include "code\game\antagonist\alien\xenomorph.dm" +#include "code\game\antagonist\outsider\commando.dm" +#include "code\game\antagonist\outsider\deathsquad.dm" +#include "code\game\antagonist\outsider\ert.dm" +#include "code\game\antagonist\outsider\ert_vr.dm" +#include "code\game\antagonist\outsider\mercenary.dm" +#include "code\game\antagonist\outsider\ninja.dm" +#include "code\game\antagonist\outsider\raider.dm" +#include "code\game\antagonist\outsider\technomancer.dm" +#include "code\game\antagonist\outsider\trader.dm" +#include "code\game\antagonist\outsider\wizard.dm" +#include "code\game\antagonist\station\changeling.dm" +#include "code\game\antagonist\station\cultist.dm" +#include "code\game\antagonist\station\highlander.dm" +#include "code\game\antagonist\station\infiltrator.dm" +#include "code\game\antagonist\station\loyalist.dm" +#include "code\game\antagonist\station\renegade.dm" +#include "code\game\antagonist\station\revolutionary.dm" +#include "code\game\antagonist\station\rogue_ai.dm" +#include "code\game\antagonist\station\stowaway.dm" +#include "code\game\antagonist\station\thug.dm" +#include "code\game\antagonist\station\traitor.dm" +#include "code\game\area\ai_monitored.dm" +#include "code\game\area\areas.dm" +#include "code\game\area\areas_vr.dm" +#include "code\game\area\asteroid_areas.dm" +#include "code\game\area\Away Mission areas.dm" +#include "code\game\area\Space Station 13 areas.dm" +#include "code\game\area\Space Station 13 areas_vr.dm" +#include "code\game\area\ss13_deprecated_areas.dm" +#include "code\game\dna\dna2.dm" +#include "code\game\dna\dna2_domutcheck.dm" +#include "code\game\dna\dna2_helpers.dm" +#include "code\game\dna\dna_modifier.dm" +#include "code\game\dna\genes\disabilities.dm" +#include "code\game\dna\genes\gene.dm" +#include "code\game\dna\genes\powers.dm" +#include "code\game\gamemodes\events.dm" +#include "code\game\gamemodes\game_mode.dm" +#include "code\game\gamemodes\game_mode_latespawn.dm" +#include "code\game\gamemodes\objective.dm" +#include "code\game\gamemodes\setupgame.dm" +#include "code\game\gamemodes\calamity\calamity.dm" +#include "code\game\gamemodes\changeling\absorbed_dna.dm" +#include "code\game\gamemodes\changeling\changeling.dm" +#include "code\game\gamemodes\changeling\changeling_powers.dm" +#include "code\game\gamemodes\changeling\generic_equip_procs.dm" +#include "code\game\gamemodes\changeling\modularchangling.dm" +#include "code\game\gamemodes\changeling\powers\absorb.dm" +#include "code\game\gamemodes\changeling\powers\armblade.dm" +#include "code\game\gamemodes\changeling\powers\armor.dm" +#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm" +#include "code\game\gamemodes\changeling\powers\bioelectrogenesis.dm" +#include "code\game\gamemodes\changeling\powers\blind_sting.dm" +#include "code\game\gamemodes\changeling\powers\boost_range.dm" +#include "code\game\gamemodes\changeling\powers\cryo_sting.dm" +#include "code\game\gamemodes\changeling\powers\darkvision.dm" +#include "code\game\gamemodes\changeling\powers\deaf_sting.dm" +#include "code\game\gamemodes\changeling\powers\delayed_toxin_sting.dm" +#include "code\game\gamemodes\changeling\powers\digital_camo.dm" +#include "code\game\gamemodes\changeling\powers\electric_lockpick.dm" +#include "code\game\gamemodes\changeling\powers\endoarmor.dm" +#include "code\game\gamemodes\changeling\powers\enfeebling_string.dm" +#include "code\game\gamemodes\changeling\powers\engorged_glands.dm" +#include "code\game\gamemodes\changeling\powers\enrage.dm" +#include "code\game\gamemodes\changeling\powers\epinephrine_overdose.dm" +#include "code\game\gamemodes\changeling\powers\escape_restraints.dm" +#include "code\game\gamemodes\changeling\powers\extract_dna_sting.dm" +#include "code\game\gamemodes\changeling\powers\fabricate_clothing.dm" +#include "code\game\gamemodes\changeling\powers\fake_death.dm" +#include "code\game\gamemodes\changeling\powers\fleshmend.dm" +#include "code\game\gamemodes\changeling\powers\hivemind.dm" +#include "code\game\gamemodes\changeling\powers\mimic_voice.dm" +#include "code\game\gamemodes\changeling\powers\panacea.dm" +#include "code\game\gamemodes\changeling\powers\rapid_regen.dm" +#include "code\game\gamemodes\changeling\powers\recursive_enhancement.dm" +#include "code\game\gamemodes\changeling\powers\respec.dm" +#include "code\game\gamemodes\changeling\powers\revive.dm" +#include "code\game\gamemodes\changeling\powers\self_respiration.dm" +#include "code\game\gamemodes\changeling\powers\shriek.dm" +#include "code\game\gamemodes\changeling\powers\silence_sting.dm" +#include "code\game\gamemodes\changeling\powers\transform.dm" +#include "code\game\gamemodes\changeling\powers\visible_camouflage.dm" +#include "code\game\gamemodes\cult\construct_spells.dm" +#include "code\game\gamemodes\cult\cult.dm" +#include "code\game\gamemodes\cult\cult_items.dm" +#include "code\game\gamemodes\cult\cult_structures.dm" +#include "code\game\gamemodes\cult\hell_universe.dm" +#include "code\game\gamemodes\cult\narsie.dm" +#include "code\game\gamemodes\cult\ritual.dm" +#include "code\game\gamemodes\cult\runes.dm" +#include "code\game\gamemodes\cult\soulstone.dm" +#include "code\game\gamemodes\cult\talisman.dm" +#include "code\game\gamemodes\cult\cultify\mob.dm" +#include "code\game\gamemodes\cult\cultify\obj.dm" +#include "code\game\gamemodes\cult\cultify\turf.dm" +#include "code\game\gamemodes\endgame\endgame.dm" +#include "code\game\gamemodes\endgame\supermatter_cascade\blob.dm" +#include "code\game\gamemodes\endgame\supermatter_cascade\portal.dm" +#include "code\game\gamemodes\endgame\supermatter_cascade\universe.dm" +#include "code\game\gamemodes\events\black_hole.dm" +#include "code\game\gamemodes\events\clang.dm" +#include "code\game\gamemodes\events\dust.dm" +#include "code\game\gamemodes\events\power_failure.dm" +#include "code\game\gamemodes\events\wormholes.dm" +#include "code\game\gamemodes\events\holidays\Christmas.dm" +#include "code\game\gamemodes\events\holidays\Holidays.dm" +#include "code\game\gamemodes\events\holidays\Other.dm" +#include "code\game\gamemodes\extended\extended.dm" +#include "code\game\gamemodes\heist\heist.dm" +#include "code\game\gamemodes\infiltrator\infiltrator.dm" +#include "code\game\gamemodes\malfunction\malf_hardware.dm" +#include "code\game\gamemodes\malfunction\malf_research.dm" +#include "code\game\gamemodes\malfunction\malf_research_ability.dm" +#include "code\game\gamemodes\malfunction\malfunction.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HARDWARE.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HELPERS.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_interdiction.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_manipulation.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_networking.dm" +#include "code\game\gamemodes\meteor\meteor.dm" +#include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\meteor\meteors_vr.dm" +#include "code\game\gamemodes\mixed\conflux.dm" +#include "code\game\gamemodes\mixed\infestation.dm" +#include "code\game\gamemodes\mixed\intrigue.dm" +#include "code\game\gamemodes\mixed\lizard.dm" +#include "code\game\gamemodes\mixed\mercrenegade.dm" +#include "code\game\gamemodes\mixed\mercwiz.dm" +#include "code\game\gamemodes\mixed\paranoia.dm" +#include "code\game\gamemodes\mixed\traitorling.dm" +#include "code\game\gamemodes\mixed\traitorrenegade.dm" +#include "code\game\gamemodes\mixed\uprising.dm" +#include "code\game\gamemodes\mixed\visitors.dm" +#include "code\game\gamemodes\ninja\ninja.dm" +#include "code\game\gamemodes\nuclear\nuclear.dm" +#include "code\game\gamemodes\nuclear\pinpointer.dm" +#include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\technomancer\catalog.dm" +#include "code\game\gamemodes\technomancer\clothing.dm" +#include "code\game\gamemodes\technomancer\core_obj.dm" +#include "code\game\gamemodes\technomancer\equipment.dm" +#include "code\game\gamemodes\technomancer\instability.dm" +#include "code\game\gamemodes\technomancer\spell_objs.dm" +#include "code\game\gamemodes\technomancer\spell_objs_helpers.dm" +#include "code\game\gamemodes\technomancer\technomancer.dm" +#include "code\game\gamemodes\technomancer\assistance\assistance.dm" +#include "code\game\gamemodes\technomancer\devices\boots_of_speed.dm" +#include "code\game\gamemodes\technomancer\devices\disposable_teleporter.dm" +#include "code\game\gamemodes\technomancer\devices\gloves_of_regen.dm" +#include "code\game\gamemodes\technomancer\devices\hypos.dm" +#include "code\game\gamemodes\technomancer\devices\implants.dm" +#include "code\game\gamemodes\technomancer\devices\shield_armor.dm" +#include "code\game\gamemodes\technomancer\devices\tesla_armor.dm" +#include "code\game\gamemodes\technomancer\spells\abjuration.dm" +#include "code\game\gamemodes\technomancer\spells\apportation.dm" +#include "code\game\gamemodes\technomancer\spells\audible_deception.dm" +#include "code\game\gamemodes\technomancer\spells\blink.dm" +#include "code\game\gamemodes\technomancer\spells\chroma.dm" +#include "code\game\gamemodes\technomancer\spells\condensation.dm" +#include "code\game\gamemodes\technomancer\spells\control.dm" +#include "code\game\gamemodes\technomancer\spells\dispel.dm" +#include "code\game\gamemodes\technomancer\spells\energy_siphon.dm" +#include "code\game\gamemodes\technomancer\spells\flame_tongue.dm" +#include "code\game\gamemodes\technomancer\spells\gambit.dm" +#include "code\game\gamemodes\technomancer\spells\illusion.dm" +#include "code\game\gamemodes\technomancer\spells\instability_tap.dm" +#include "code\game\gamemodes\technomancer\spells\mark_recall.dm" +#include "code\game\gamemodes\technomancer\spells\mend_organs.dm" +#include "code\game\gamemodes\technomancer\spells\oxygenate.dm" +#include "code\game\gamemodes\technomancer\spells\passwall.dm" +#include "code\game\gamemodes\technomancer\spells\phase_shift.dm" +#include "code\game\gamemodes\technomancer\spells\radiance.dm" +#include "code\game\gamemodes\technomancer\spells\reflect.dm" +#include "code\game\gamemodes\technomancer\spells\resurrect.dm" +#include "code\game\gamemodes\technomancer\spells\shared_burden.dm" +#include "code\game\gamemodes\technomancer\spells\shield.dm" +#include "code\game\gamemodes\technomancer\spells\targeting_matrix.dm" +#include "code\game\gamemodes\technomancer\spells\track.dm" +#include "code\game\gamemodes\technomancer\spells\warp_strike.dm" +#include "code\game\gamemodes\technomancer\spells\aura\aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\biomed_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\fire_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\frost_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\shock_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\unstable_aura.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\corona.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\haste.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\mend_all.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\mend_life.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\mend_synthetic.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\modifier.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\purify.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\repel_missiles.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\beam.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\chain_lightning.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\force_missile.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\ionic_bolt.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\lesser_chain_lightning.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\lightning.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\overload.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\projectile.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\darkness.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\destablize.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\fire_blast.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\pulsar.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\spawner.dm" +#include "code\game\gamemodes\technomancer\spells\summon\summon.dm" +#include "code\game\gamemodes\technomancer\spells\summon\summon_creature.dm" +#include "code\game\gamemodes\technomancer\spells\summon\summon_ward.dm" +#include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\jobs\_access_defs.dm" +#include "code\game\jobs\access.dm" +#include "code\game\jobs\access_datum.dm" +#include "code\game\jobs\access_datum_vr.dm" +#include "code\game\jobs\job_controller.dm" +#include "code\game\jobs\jobs.dm" +#include "code\game\jobs\whitelist.dm" +#include "code\game\jobs\whitelist_vr.dm" +#include "code\game\jobs\job\_alt_title.dm" +#include "code\game\jobs\job\assistant.dm" +#include "code\game\jobs\job\assistant_vr.dm" +#include "code\game\jobs\job\captain.dm" +#include "code\game\jobs\job\captain_vr.dm" +#include "code\game\jobs\job\civilian.dm" +#include "code\game\jobs\job\civilian_chaplain.dm" +#include "code\game\jobs\job\civilian_vr.dm" +#include "code\game\jobs\job\department.dm" +#include "code\game\jobs\job\department_vr.dm" +#include "code\game\jobs\job\engineering.dm" +#include "code\game\jobs\job\engineering_vr.dm" +#include "code\game\jobs\job\exploration_vr.dm" +#include "code\game\jobs\job\job.dm" +#include "code\game\jobs\job\job_vr.dm" +#include "code\game\jobs\job\medical.dm" +#include "code\game\jobs\job\medical_vr.dm" +#include "code\game\jobs\job\offduty_vr.dm" +#include "code\game\jobs\job\science.dm" +#include "code\game\jobs\job\science_vr.dm" +#include "code\game\jobs\job\security.dm" +#include "code\game\jobs\job\security_vr.dm" +#include "code\game\jobs\job\silicon.dm" +#include "code\game\jobs\job\silicon_vr.dm" +#include "code\game\jobs\job\special_vr.dm" +#include "code\game\machinery\adv_med.dm" +#include "code\game\machinery\adv_med_vr.dm" +#include "code\game\machinery\ai_slipper.dm" +#include "code\game\machinery\air_alarm.dm" +#include "code\game\machinery\airconditioner_vr.dm" +#include "code\game\machinery\atmo_control.dm" +#include "code\game\machinery\autolathe.dm" +#include "code\game\machinery\Beacon.dm" +#include "code\game\machinery\biogenerator.dm" +#include "code\game\machinery\bioprinter.dm" +#include "code\game\machinery\bomb_tester_vr.dm" +#include "code\game\machinery\buttons.dm" +#include "code\game\machinery\buttons_vr.dm" +#include "code\game\machinery\CableLayer.dm" +#include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\cloning.dm" +#include "code\game\machinery\cryo.dm" +#include "code\game\machinery\cryopod.dm" +#include "code\game\machinery\cryopod_vr.dm" +#include "code\game\machinery\deployable.dm" +#include "code\game\machinery\deployable_vr.dm" +#include "code\game\machinery\door_control.dm" +#include "code\game\machinery\doorbell_vr.dm" +#include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\exonet_node.dm" +#include "code\game\machinery\fire_alarm.dm" +#include "code\game\machinery\flasher.dm" +#include "code\game\machinery\floodlight.dm" +#include "code\game\machinery\floor_light.dm" +#include "code\game\machinery\floorlayer.dm" +#include "code\game\machinery\frame.dm" +#include "code\game\machinery\gear_dispenser.dm" +#include "code\game\machinery\hologram.dm" +#include "code\game\machinery\holoposter.dm" +#include "code\game\machinery\holosign.dm" +#include "code\game\machinery\igniter.dm" +#include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\jukebox.dm" +#include "code\game\machinery\lightswitch.dm" +#include "code\game\machinery\machinery.dm" +#include "code\game\machinery\machinery_power.dm" +#include "code\game\machinery\magnet.dm" +#include "code\game\machinery\mass_driver.dm" +#include "code\game\machinery\navbeacon.dm" +#include "code\game\machinery\neonsign.dm" +#include "code\game\machinery\newscaster.dm" +#include "code\game\machinery\nuclear_bomb.dm" +#include "code\game\machinery\OpTable.dm" +#include "code\game\machinery\overview.dm" +#include "code\game\machinery\oxygen_pump.dm" +#include "code\game\machinery\painter_vr.dm" +#include "code\game\machinery\partslathe_vr.dm" +#include "code\game\machinery\pda_multicaster.dm" +#include "code\game\machinery\pointdefense.dm" +#include "code\game\machinery\portable_turret.dm" +#include "code\game\machinery\portable_turret_vr.dm" +#include "code\game\machinery\recharger.dm" +#include "code\game\machinery\rechargestation.dm" +#include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\requests_console_vr.dm" +#include "code\game\machinery\robot_fabricator.dm" +#include "code\game\machinery\seed_extractor.dm" +#include "code\game\machinery\Sleeper.dm" +#include "code\game\machinery\spaceheater.dm" +#include "code\game\machinery\status_display.dm" +#include "code\game\machinery\status_display_ai.dm" +#include "code\game\machinery\suit_cycler_datums.dm" +#include "code\game\machinery\suit_storage_unit.dm" +#include "code\game\machinery\suit_storage_unit_vr.dm" +#include "code\game\machinery\supply_display.dm" +#include "code\game\machinery\supplybeacon.dm" +#include "code\game\machinery\syndicatebeacon.dm" +#include "code\game\machinery\syndicatebeacon_vr.dm" +#include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\transportpod.dm" +#include "code\game\machinery\turret_control.dm" +#include "code\game\machinery\vending_machines_vr.dm" +#include "code\game\machinery\vitals_monitor.dm" +#include "code\game\machinery\wall_frames.dm" +#include "code\game\machinery\washing_machine.dm" +#include "code\game\machinery\wishgranter.dm" +#include "code\game\machinery\atmoalter\area_atmos_computer.dm" +#include "code\game\machinery\atmoalter\area_atmos_computer_vr.dm" +#include "code\game\machinery\atmoalter\canister.dm" +#include "code\game\machinery\atmoalter\clamp.dm" +#include "code\game\machinery\atmoalter\meter.dm" +#include "code\game\machinery\atmoalter\portable_atmospherics.dm" +#include "code\game\machinery\atmoalter\pump.dm" +#include "code\game\machinery\atmoalter\pump_vr.dm" +#include "code\game\machinery\atmoalter\scrubber.dm" +#include "code\game\machinery\camera\camera.dm" +#include "code\game\machinery\camera\camera_assembly.dm" +#include "code\game\machinery\camera\camera_vr.dm" +#include "code\game\machinery\camera\motion.dm" +#include "code\game\machinery\camera\presets.dm" +#include "code\game\machinery\camera\tracking.dm" +#include "code\game\machinery\computer\ai_core.dm" +#include "code\game\machinery\computer\aifixer.dm" +#include "code\game\machinery\computer\arcade.dm" +#include "code\game\machinery\computer\arcade_vr.dm" +#include "code\game\machinery\computer\atmos_alert.dm" +#include "code\game\machinery\computer\atmos_control.dm" +#include "code\game\machinery\computer\camera.dm" +#include "code\game\machinery\computer\camera_vr.dm" +#include "code\game\machinery\computer\card.dm" +#include "code\game\machinery\computer\cloning.dm" +#include "code\game\machinery\computer\communications.dm" +#include "code\game\machinery\computer\computer.dm" +#include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\guestpass.dm" +#include "code\game\machinery\computer\id_restorer_vr.dm" +#include "code\game\machinery\computer\law.dm" +#include "code\game\machinery\computer\medical.dm" +#include "code\game\machinery\computer\message.dm" +#include "code\game\machinery\computer\Operating.dm" +#include "code\game\machinery\computer\pod.dm" +#include "code\game\machinery\computer\prisoner.dm" +#include "code\game\machinery\computer\prisonshuttle.dm" +#include "code\game\machinery\computer\RCON_Console.dm" +#include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\security.dm" +#include "code\game\machinery\computer\shutoff_monitor.dm" +#include "code\game\machinery\computer\shuttle.dm" +#include "code\game\machinery\computer\skills.dm" +#include "code\game\machinery\computer\specops_shuttle.dm" +#include "code\game\machinery\computer\station_alert.dm" +#include "code\game\machinery\computer\supply.dm" +#include "code\game\machinery\computer\syndicate_specops_shuttle.dm" +#include "code\game\machinery\computer\timeclock_vr.dm" +#include "code\game\machinery\computer\~computer_vr.dm" +#include "code\game\machinery\doors\airlock.dm" +#include "code\game\machinery\doors\airlock_control.dm" +#include "code\game\machinery\doors\airlock_electronics.dm" +#include "code\game\machinery\doors\airlock_vr.dm" +#include "code\game\machinery\doors\alarmlock.dm" +#include "code\game\machinery\doors\blast_door.dm" +#include "code\game\machinery\doors\brigdoors.dm" +#include "code\game\machinery\doors\checkForMultipleDoors.dm" +#include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\door_vr.dm" +#include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\firedoor_assembly.dm" +#include "code\game\machinery\doors\firedoor_vr.dm" +#include "code\game\machinery\doors\multi_tile.dm" +#include "code\game\machinery\doors\multi_tile_vr.dm" +#include "code\game\machinery\doors\unpowered.dm" +#include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\embedded_controller\airlock_controllers.dm" +#include "code\game\machinery\embedded_controller\airlock_docking_controller.dm" +#include "code\game\machinery\embedded_controller\airlock_docking_controller_multi.dm" +#include "code\game\machinery\embedded_controller\airlock_program.dm" +#include "code\game\machinery\embedded_controller\docking_program.dm" +#include "code\game\machinery\embedded_controller\docking_program_multi.dm" +#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" +#include "code\game\machinery\embedded_controller\embedded_program_base.dm" +#include "code\game\machinery\embedded_controller\mapping_helpers.dm" +#include "code\game\machinery\embedded_controller\simple_docking_controller.dm" +#include "code\game\machinery\event\stage_vr.dm" +#include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\pipe_dispenser.dm" +#include "code\game\machinery\pipe\pipe_recipes.dm" +#include "code\game\machinery\pipe\pipelayer.dm" +#include "code\game\machinery\reagents\pump.dm" +#include "code\game\machinery\telecomms\broadcaster.dm" +#include "code\game\machinery\telecomms\broadcaster_vr.dm" +#include "code\game\machinery\telecomms\logbrowser.dm" +#include "code\game\machinery\telecomms\machine_interactions.dm" +#include "code\game\machinery\telecomms\presets.dm" +#include "code\game\machinery\telecomms\presets_vr.dm" +#include "code\game\machinery\telecomms\telecomunications.dm" +#include "code\game\machinery\telecomms\telemonitor.dm" +#include "code\game\machinery\telecomms\traffic_control.dm" +#include "code\game\machinery\virtual_reality\ar_console.dm" +#include "code\game\machinery\virtual_reality\vr_console.dm" +#include "code\game\magic\Uristrunes.dm" +#include "code\game\mecha\mech_bay.dm" +#include "code\game\mecha\mech_fabricator.dm" +#include "code\game\mecha\mech_prosthetics.dm" +#include "code\game\mecha\mech_sensor.dm" +#include "code\game\mecha\mecha.dm" +#include "code\game\mecha\mecha_actions.dm" +#include "code\game\mecha\mecha_appearance.dm" +#include "code\game\mecha\mecha_construction_paths.dm" +#include "code\game\mecha\mecha_control_console.dm" +#include "code\game\mecha\mecha_helpers.dm" +#include "code\game\mecha\mecha_parts.dm" +#include "code\game\mecha\mecha_vr.dm" +#include "code\game\mecha\mecha_wreckage.dm" +#include "code\game\mecha\combat\combat.dm" +#include "code\game\mecha\combat\durand.dm" +#include "code\game\mecha\combat\fighter.dm" +#include "code\game\mecha\combat\gorilla.dm" +#include "code\game\mecha\combat\gygax.dm" +#include "code\game\mecha\combat\marauder.dm" +#include "code\game\mecha\combat\phazon.dm" +#include "code\game\mecha\components\_component.dm" +#include "code\game\mecha\components\actuators.dm" +#include "code\game\mecha\components\armor.dm" +#include "code\game\mecha\components\electrical.dm" +#include "code\game\mecha\components\hull.dm" +#include "code\game\mecha\components\lifesupport.dm" +#include "code\game\mecha\equipment\mecha_equipment.dm" +#include "code\game\mecha\equipment\mecha_equipment_dynamicprocs.dm" +#include "code\game\mecha\equipment\tools\armor_melee.dm" +#include "code\game\mecha\equipment\tools\armor_ranged.dm" +#include "code\game\mecha\equipment\tools\cable_layer.dm" +#include "code\game\mecha\equipment\tools\catapult.dm" +#include "code\game\mecha\equipment\tools\clamp.dm" +#include "code\game\mecha\equipment\tools\cloak.dm" +#include "code\game\mecha\equipment\tools\drill.dm" +#include "code\game\mecha\equipment\tools\energy_relay.dm" +#include "code\game\mecha\equipment\tools\extinguisher.dm" +#include "code\game\mecha\equipment\tools\generator.dm" +#include "code\game\mecha\equipment\tools\hardpoint_actuator.dm" +#include "code\game\mecha\equipment\tools\inflatables.dm" +#include "code\game\mecha\equipment\tools\jetpack.dm" +#include "code\game\mecha\equipment\tools\medigun_vr.dm" +#include "code\game\mecha\equipment\tools\orescanner.dm" +#include "code\game\mecha\equipment\tools\passenger.dm" +#include "code\game\mecha\equipment\tools\powertool.dm" +#include "code\game\mecha\equipment\tools\rcd.dm" +#include "code\game\mecha\equipment\tools\repair_droid.dm" +#include "code\game\mecha\equipment\tools\running_board.dm" +#include "code\game\mecha\equipment\tools\shield.dm" +#include "code\game\mecha\equipment\tools\shield_omni.dm" +#include "code\game\mecha\equipment\tools\sleeper.dm" +#include "code\game\mecha\equipment\tools\speedboost.dm" +#include "code\game\mecha\equipment\tools\syringe_gun.dm" +#include "code\game\mecha\equipment\tools\teleporter.dm" +#include "code\game\mecha\equipment\tools\tools.dm" +#include "code\game\mecha\equipment\tools\weldinglaser.dm" +#include "code\game\mecha\equipment\tools\wormhole.dm" +#include "code\game\mecha\equipment\weapons\honk.dm" +#include "code\game\mecha\equipment\weapons\weapons.dm" +#include "code\game\mecha\equipment\weapons\ballistic\automatic.dm" +#include "code\game\mecha\equipment\weapons\ballistic\ballistic.dm" +#include "code\game\mecha\equipment\weapons\ballistic\mortar.dm" +#include "code\game\mecha\equipment\weapons\ballistic\shotgun.dm" +#include "code\game\mecha\equipment\weapons\defense\shocker.dm" +#include "code\game\mecha\equipment\weapons\energy\energy.dm" +#include "code\game\mecha\equipment\weapons\energy\ion.dm" +#include "code\game\mecha\equipment\weapons\energy\laser.dm" +#include "code\game\mecha\equipment\weapons\energy\phased.dm" +#include "code\game\mecha\equipment\weapons\energy\pulse.dm" +#include "code\game\mecha\equipment\weapons\energy\stun.dm" +#include "code\game\mecha\equipment\weapons\explosive\grenade.dm" +#include "code\game\mecha\equipment\weapons\explosive\missile.dm" +#include "code\game\mecha\equipment\weapons\fire\flamethrower.dm" +#include "code\game\mecha\equipment\weapons\fire\incendiary.dm" +#include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\odysseus.dm" +#include "code\game\mecha\medical\odysseus_vr.dm" +#include "code\game\mecha\micro\mecha_construction_paths_vr.dm" +#include "code\game\mecha\micro\mecha_parts_vr.dm" +#include "code\game\mecha\micro\mecha_vr.dm" +#include "code\game\mecha\micro\mechfab_designs_vr.dm" +#include "code\game\mecha\micro\micro.dm" +#include "code\game\mecha\micro\micro_equipment.dm" +#include "code\game\mecha\micro\security.dm" +#include "code\game\mecha\micro\utility.dm" +#include "code\game\mecha\space\hoverpod.dm" +#include "code\game\mecha\space\shuttle.dm" +#include "code\game\mecha\working\ripley.dm" +#include "code\game\mecha\working\ripley_vr.dm" +#include "code\game\mecha\working\working.dm" +#include "code\game\objects\banners.dm" +#include "code\game\objects\banners_vr.dm" +#include "code\game\objects\buckling.dm" +#include "code\game\objects\empulse.dm" +#include "code\game\objects\explosion.dm" +#include "code\game\objects\explosion_recursive.dm" +#include "code\game\objects\items.dm" +#include "code\game\objects\mob_spawner_vr.dm" +#include "code\game\objects\objs.dm" +#include "code\game\objects\structures.dm" +#include "code\game\objects\stumble_into_vr.dm" +#include "code\game\objects\weapons.dm" +#include "code\game\objects\effects\bump_teleporter.dm" +#include "code\game\objects\effects\confetti_vr.dm" +#include "code\game\objects\effects\effect_system.dm" +#include "code\game\objects\effects\explosion_particles.dm" +#include "code\game\objects\effects\gibs.dm" +#include "code\game\objects\effects\glowshroom.dm" +#include "code\game\objects\effects\item_pickup_ghost.dm" +#include "code\game\objects\effects\landmarks.dm" +#include "code\game\objects\effects\landmarks_vr.dm" +#include "code\game\objects\effects\manifest.dm" +#include "code\game\objects\effects\mines.dm" +#include "code\game\objects\effects\misc.dm" +#include "code\game\objects\effects\overlays.dm" +#include "code\game\objects\effects\portals.dm" +#include "code\game\objects\effects\semirandom_mobs_vr.dm" +#include "code\game\objects\effects\spiders.dm" +#include "code\game\objects\effects\spiders_vr.dm" +#include "code\game\objects\effects\step_triggers.dm" +#include "code\game\objects\effects\zone_divider.dm" +#include "code\game\objects\effects\alien\aliens.dm" +#include "code\game\objects\effects\chem\chemsmoke.dm" +#include "code\game\objects\effects\chem\coating.dm" +#include "code\game\objects\effects\chem\foam.dm" +#include "code\game\objects\effects\chem\foam_vr.dm" +#include "code\game\objects\effects\chem\water.dm" +#include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\crayon.dm" +#include "code\game\objects\effects\decals\misc.dm" +#include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\warning_stripes.dm" +#include "code\game\objects\effects\decals\Cleanable\aliens.dm" +#include "code\game\objects\effects\decals\Cleanable\fuel.dm" +#include "code\game\objects\effects\decals\Cleanable\humans.dm" +#include "code\game\objects\effects\decals\Cleanable\misc.dm" +#include "code\game\objects\effects\decals\Cleanable\robots.dm" +#include "code\game\objects\effects\decals\Cleanable\tracks.dm" +#include "code\game\objects\effects\decals\posters\bs12.dm" +#include "code\game\objects\effects\decals\posters\polarisposters.dm" +#include "code\game\objects\effects\decals\posters\polarisposters_vr.dm" +#include "code\game\objects\effects\decals\posters\posters.dm" +#include "code\game\objects\effects\decals\posters\tgposters.dm" +#include "code\game\objects\effects\decals\posters\voreposters_vr.dm" +#include "code\game\objects\effects\map_effects\beam_point.dm" +#include "code\game\objects\effects\map_effects\effect_emitter.dm" +#include "code\game\objects\effects\map_effects\map_effects.dm" +#include "code\game\objects\effects\map_effects\perma_light.dm" +#include "code\game\objects\effects\map_effects\portal.dm" +#include "code\game\objects\effects\map_effects\radiation_emitter.dm" +#include "code\game\objects\effects\map_effects\screen_shaker.dm" +#include "code\game\objects\effects\map_effects\sound_emitter.dm" +#include "code\game\objects\effects\prop\columnblast.dm" +#include "code\game\objects\effects\prop\snake.dm" +#include "code\game\objects\effects\spawners\bombspawner.dm" +#include "code\game\objects\effects\spawners\gibspawner.dm" +#include "code\game\objects\effects\spawners\graffiti.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" +#include "code\game\objects\items\antag_spawners.dm" +#include "code\game\objects\items\apc_frame.dm" +#include "code\game\objects\items\bells.dm" +#include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\contraband.dm" +#include "code\game\objects\items\contraband_vr.dm" +#include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\falling_object_vr.dm" +#include "code\game\objects\items\glassjar.dm" +#include "code\game\objects\items\gunbox.dm" +#include "code\game\objects\items\gunbox_vr.dm" +#include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\paintkit.dm" +#include "code\game\objects\items\pizza_voucher_vr.dm" +#include "code\game\objects\items\poi_items.dm" +#include "code\game\objects\items\robobag.dm" +#include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\tailoring.dm" +#include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\trash_material.dm" +#include "code\game\objects\items\trash_vr.dm" +#include "code\game\objects\items\uav.dm" +#include "code\game\objects\items\devices\advnifrepair.dm" +#include "code\game\objects\items\devices\ai_detector.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\binoculars.dm" +#include "code\game\objects\items\devices\body_snatcher_vr.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\debugger.dm" +#include "code\game\objects\items\devices\defib.dm" +#include "code\game\objects\items\devices\denecrotizer_vr.dm" +#include "code\game\objects\items\devices\flash.dm" +#include "code\game\objects\items\devices\flash_vr.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\flashlight_vr.dm" +#include "code\game\objects\items\devices\floor_painter.dm" +#include "code\game\objects\items\devices\geiger.dm" +#include "code\game\objects\items\devices\gps.dm" +#include "code\game\objects\items\devices\hacktool.dm" +#include "code\game\objects\items\devices\holowarrant.dm" +#include "code\game\objects\items\devices\laserpointer.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\megaphone.dm" +#include "code\game\objects\items\devices\modkit.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\scanners_vr.dm" +#include "code\game\objects\items\devices\spy_bug.dm" +#include "code\game\objects\items\devices\suit_cooling.dm" +#include "code\game\objects\items\devices\t_scanner.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\text_to_speech.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\translator.dm" +#include "code\game\objects\items\devices\translocator_vr.dm" +#include "code\game\objects\items\devices\tvcamera.dm" +#include "code\game\objects\items\devices\uplink.dm" +#include "code\game\objects\items\devices\uplink_random_lists.dm" +#include "code\game\objects\items\devices\whistle.dm" +#include "code\game\objects\items\devices\communicator\communicator.dm" +#include "code\game\objects\items\devices\communicator\helper.dm" +#include "code\game\objects\items\devices\communicator\integrated.dm" +#include "code\game\objects\items\devices\communicator\messaging.dm" +#include "code\game\objects\items\devices\communicator\phone.dm" +#include "code\game\objects\items\devices\communicator\UI_tgui.dm" +#include "code\game\objects\items\devices\radio\beacon.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\encryptionkey_vr.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\headset_vr.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\jammer.dm" +#include "code\game\objects\items\devices\radio\jammer_vr.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\devices\radio\radio_vr.dm" +#include "code\game\objects\items\devices\radio\radiopack.dm" +#include "code\game\objects\items\robot\robot_items.dm" +#include "code\game\objects\items\robot\robot_parts.dm" +#include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\robot\robot_upgrades_vr.dm" +#include "code\game\objects\items\stacks\marker_beacons.dm" +#include "code\game\objects\items\stacks\matter_synth.dm" +#include "code\game\objects\items\stacks\medical.dm" +#include "code\game\objects\items\stacks\medical_vr.dm" +#include "code\game\objects\items\stacks\nanopaste.dm" +#include "code\game\objects\items\stacks\nanopaste_vr.dm" +#include "code\game\objects\items\stacks\sandbags.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\telecrystal.dm" +#include "code\game\objects\items\stacks\tickets.dm" +#include "code\game\objects\items\stacks\tiles\fifty_spawner_tiles.dm" +#include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\toys\balls_vr.dm" +#include "code\game\objects\items\toys\godfigures.dm" +#include "code\game\objects\items\toys\mech_toys.dm" +#include "code\game\objects\items\toys\toys.dm" +#include "code\game\objects\items\toys\toys_vr.dm" +#include "code\game\objects\items\weapons\AI_modules.dm" +#include "code\game\objects\items\weapons\AI_modules_vr.dm" +#include "code\game\objects\items\weapons\augment_items.dm" +#include "code\game\objects\items\weapons\autopsy.dm" +#include "code\game\objects\items\weapons\bones.dm" +#include "code\game\objects\items\weapons\candle.dm" +#include "code\game\objects\items\weapons\canes.dm" +#include "code\game\objects\items\weapons\cards_ids_vr.dm" +#include "code\game\objects\items\weapons\chewables.dm" +#include "code\game\objects\items\weapons\cigs_lighters.dm" +#include "code\game\objects\items\weapons\clown_items.dm" +#include "code\game\objects\items\weapons\cosmetics.dm" +#include "code\game\objects\items\weapons\dna_injector.dm" +#include "code\game\objects\items\weapons\ecigs.dm" +#include "code\game\objects\items\weapons\explosives.dm" +#include "code\game\objects\items\weapons\explosives_vr.dm" +#include "code\game\objects\items\weapons\extinguisher.dm" +#include "code\game\objects\items\weapons\flamethrower.dm" +#include "code\game\objects\items\weapons\gift_wrappaper.dm" +#include "code\game\objects\items\weapons\handcuffs.dm" +#include "code\game\objects\items\weapons\handcuffs_vr.dm" +#include "code\game\objects\items\weapons\improvised_components.dm" +#include "code\game\objects\items\weapons\inducer_vr.dm" +#include "code\game\objects\items\weapons\manuals.dm" +#include "code\game\objects\items\weapons\manuals_vr.dm" +#include "code\game\objects\items\weapons\mop.dm" +#include "code\game\objects\items\weapons\mop_deploy.dm" +#include "code\game\objects\items\weapons\paint.dm" +#include "code\game\objects\items\weapons\paiwire.dm" +#include "code\game\objects\items\weapons\policetape.dm" +#include "code\game\objects\items\weapons\RCD.dm" +#include "code\game\objects\items\weapons\RCD_vr.dm" +#include "code\game\objects\items\weapons\RMS_vr.dm" +#include "code\game\objects\items\weapons\RPD_vr.dm" +#include "code\game\objects\items\weapons\RSF.dm" +#include "code\game\objects\items\weapons\scrolls.dm" +#include "code\game\objects\items\weapons\shields.dm" +#include "code\game\objects\items\weapons\shields_vr.dm" +#include "code\game\objects\items\weapons\stunbaton.dm" +#include "code\game\objects\items\weapons\surgery_tools.dm" +#include "code\game\objects\items\weapons\swords_axes_etc.dm" +#include "code\game\objects\items\weapons\syndie.dm" +#include "code\game\objects\items\weapons\tape.dm" +#include "code\game\objects\items\weapons\teleportation.dm" +#include "code\game\objects\items\weapons\towels.dm" +#include "code\game\objects\items\weapons\traps.dm" +#include "code\game\objects\items\weapons\traps_vr.dm" +#include "code\game\objects\items\weapons\trays.dm" +#include "code\game\objects\items\weapons\weaponry.dm" +#include "code\game\objects\items\weapons\weldbackpack.dm" +#include "code\game\objects\items\weapons\circuitboards\broken.dm" +#include "code\game\objects\items\weapons\circuitboards\circuitboard.dm" +#include "code\game\objects\items\weapons\circuitboards\circuitboards_vr.dm" +#include "code\game\objects\items\weapons\circuitboards\frame.dm" +#include "code\game\objects\items\weapons\circuitboards\mecha.dm" +#include "code\game\objects\items\weapons\circuitboards\other.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\air_management.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\camera_monitor.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\computer.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\research.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\shuttle.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\supply.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\telecomms.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\biogenerator.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\fluidpump.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\kitchen_appliances.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\papershredder.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\power.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\research.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\shieldgen.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\ships.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\telecomms.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\unary_atmos.dm" +#include "code\game\objects\items\weapons\grenades\anti_photon_grenade.dm" +#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" +#include "code\game\objects\items\weapons\grenades\concussion.dm" +#include "code\game\objects\items\weapons\grenades\emgrenade.dm" +#include "code\game\objects\items\weapons\grenades\explosive.dm" +#include "code\game\objects\items\weapons\grenades\flashbang.dm" +#include "code\game\objects\items\weapons\grenades\grenade.dm" +#include "code\game\objects\items\weapons\grenades\projectile.dm" +#include "code\game\objects\items\weapons\grenades\smokebomb.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm" +#include "code\game\objects\items\weapons\grenades\supermatter.dm" +#include "code\game\objects\items\weapons\id cards\cards.dm" +#include "code\game\objects\items\weapons\id cards\cards_vr.dm" +#include "code\game\objects\items\weapons\id cards\id_stacks.dm" +#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm" +#include "code\game\objects\items\weapons\id cards\station_ids.dm" +#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm" +#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm" +#include "code\game\objects\items\weapons\implants\implant.dm" +#include "code\game\objects\items\weapons\implants\implant_vr.dm" +#include "code\game\objects\items\weapons\implants\implantaugment.dm" +#include "code\game\objects\items\weapons\implants\implantcase.dm" +#include "code\game\objects\items\weapons\implants\implantcase_vr.dm" +#include "code\game\objects\items\weapons\implants\implantchair.dm" +#include "code\game\objects\items\weapons\implants\implantcircuits.dm" +#include "code\game\objects\items\weapons\implants\implantdud.dm" +#include "code\game\objects\items\weapons\implants\implanter.dm" +#include "code\game\objects\items\weapons\implants\implanter_vr.dm" +#include "code\game\objects\items\weapons\implants\implantfreedom.dm" +#include "code\game\objects\items\weapons\implants\implantlanguage.dm" +#include "code\game\objects\items\weapons\implants\implantpad.dm" +#include "code\game\objects\items\weapons\implants\implantreagent_vr.dm" +#include "code\game\objects\items\weapons\implants\implantrestrainingbolt.dm" +#include "code\game\objects\items\weapons\implants\implantuplink.dm" +#include "code\game\objects\items\weapons\implants\neuralbasic.dm" +#include "code\game\objects\items\weapons\material\ashtray.dm" +#include "code\game\objects\items\weapons\material\bats.dm" +#include "code\game\objects\items\weapons\material\chainsaw.dm" +#include "code\game\objects\items\weapons\material\foam.dm" +#include "code\game\objects\items\weapons\material\gravemarker.dm" +#include "code\game\objects\items\weapons\material\kitchen.dm" +#include "code\game\objects\items\weapons\material\knives.dm" +#include "code\game\objects\items\weapons\material\knives_vr.dm" +#include "code\game\objects\items\weapons\material\material_armor.dm" +#include "code\game\objects\items\weapons\material\material_weapons.dm" +#include "code\game\objects\items\weapons\material\misc.dm" +#include "code\game\objects\items\weapons\material\shards.dm" +#include "code\game\objects\items\weapons\material\shards_vr.dm" +#include "code\game\objects\items\weapons\material\swords.dm" +#include "code\game\objects\items\weapons\material\thrown.dm" +#include "code\game\objects\items\weapons\material\twohanded.dm" +#include "code\game\objects\items\weapons\material\twohanded_vr.dm" +#include "code\game\objects\items\weapons\material\whetstone.dm" +#include "code\game\objects\items\weapons\melee\deflect.dm" +#include "code\game\objects\items\weapons\melee\energy.dm" +#include "code\game\objects\items\weapons\melee\energy_vr.dm" +#include "code\game\objects\items\weapons\melee\misc.dm" +#include "code\game\objects\items\weapons\melee\misc_vr.dm" +#include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\backpack_vr.dm" +#include "code\game\objects\items\weapons\storage\bags.dm" +#include "code\game\objects\items\weapons\storage\bags_vr.dm" +#include "code\game\objects\items\weapons\storage\belt.dm" +#include "code\game\objects\items\weapons\storage\belt_vr.dm" +#include "code\game\objects\items\weapons\storage\bible.dm" +#include "code\game\objects\items\weapons\storage\boxes.dm" +#include "code\game\objects\items\weapons\storage\boxes_vr.dm" +#include "code\game\objects\items\weapons\storage\briefcase.dm" +#include "code\game\objects\items\weapons\storage\egg_vr.dm" +#include "code\game\objects\items\weapons\storage\fancy.dm" +#include "code\game\objects\items\weapons\storage\firstaid.dm" +#include "code\game\objects\items\weapons\storage\firstaid_vr.dm" +#include "code\game\objects\items\weapons\storage\internal.dm" +#include "code\game\objects\items\weapons\storage\laundry_basket.dm" +#include "code\game\objects\items\weapons\storage\lockbox.dm" +#include "code\game\objects\items\weapons\storage\misc.dm" +#include "code\game\objects\items\weapons\storage\mre.dm" +#include "code\game\objects\items\weapons\storage\pouches.dm" +#include "code\game\objects\items\weapons\storage\quickdraw.dm" +#include "code\game\objects\items\weapons\storage\secure.dm" +#include "code\game\objects\items\weapons\storage\storage.dm" +#include "code\game\objects\items\weapons\storage\toolbox.dm" +#include "code\game\objects\items\weapons\storage\toolbox_vr.dm" +#include "code\game\objects\items\weapons\storage\uplink_kits.dm" +#include "code\game\objects\items\weapons\storage\wallets.dm" +#include "code\game\objects\items\weapons\tanks\jetpack.dm" +#include "code\game\objects\items\weapons\tanks\tank_types.dm" +#include "code\game\objects\items\weapons\tanks\tank_types_vr.dm" +#include "code\game\objects\items\weapons\tanks\tanks.dm" +#include "code\game\objects\items\weapons\tools\crowbar.dm" +#include "code\game\objects\items\weapons\tools\crowbar_vr.dm" +#include "code\game\objects\items\weapons\tools\screwdriver.dm" +#include "code\game\objects\items\weapons\tools\weldingtool.dm" +#include "code\game\objects\items\weapons\tools\wirecutters.dm" +#include "code\game\objects\items\weapons\tools\wrench.dm" +#include "code\game\objects\random\_random.dm" +#include "code\game\objects\random\guns_and_ammo.dm" +#include "code\game\objects\random\maintenance.dm" +#include "code\game\objects\random\mapping.dm" +#include "code\game\objects\random\mapping_vr.dm" +#include "code\game\objects\random\mechs.dm" +#include "code\game\objects\random\misc.dm" +#include "code\game\objects\random\misc_vr.dm" +#include "code\game\objects\random\mob.dm" +#include "code\game\objects\random\mob_vr.dm" +#include "code\game\objects\random\spacesuits.dm" +#include "code\game\objects\random\unidentified\medicine.dm" +#include "code\game\objects\structures\artstuff.dm" +#include "code\game\objects\structures\barricades.dm" +#include "code\game\objects\structures\barsign.dm" +#include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\bedsheet_bin_vr.dm" +#include "code\game\objects\structures\bonfire.dm" +#include "code\game\objects\structures\catwalk.dm" +#include "code\game\objects\structures\cliff.dm" +#include "code\game\objects\structures\coathanger.dm" +#include "code\game\objects\structures\curtains.dm" +#include "code\game\objects\structures\dancepole_vr.dm" +#include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\dogbed.dm" +#include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\fence.dm" +#include "code\game\objects\structures\fireaxe.dm" +#include "code\game\objects\structures\fitness.dm" +#include "code\game\objects\structures\fitness_vr.dm" +#include "code\game\objects\structures\girders.dm" +#include "code\game\objects\structures\gravemarker.dm" +#include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\handrail.dm" +#include "code\game\objects\structures\holoplant.dm" +#include "code\game\objects\structures\inflatable.dm" +#include "code\game\objects\structures\janicart.dm" +#include "code\game\objects\structures\kitchen_foodcart_vr.dm" +#include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\lattice.dm" +#include "code\game\objects\structures\ledges.dm" +#include "code\game\objects\structures\lightpost.dm" +#include "code\game\objects\structures\loot_piles.dm" +#include "code\game\objects\structures\map_blocker_vr.dm" +#include "code\game\objects\structures\medical_stand_vr.dm" +#include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\mop_bucket.dm" +#include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\morgue_vr.dm" +#include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\railing.dm" +#include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\salvageable.dm" +#include "code\game\objects\structures\signs.dm" +#include "code\game\objects\structures\signs_vr.dm" +#include "code\game\objects\structures\simple_doors.dm" +#include "code\game\objects\structures\simple_doors_vr.dm" +#include "code\game\objects\structures\snowman.dm" +#include "code\game\objects\structures\stasis_cage.dm" +#include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\transit_tubes.dm" +#include "code\game\objects\structures\trash_pile_vr.dm" +#include "code\game\objects\structures\under_wardrobe.dm" +#include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\watercloset_vr.dm" +#include "code\game\objects\structures\windoor_assembly.dm" +#include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\window_spawner.dm" +#include "code\game\objects\structures\window_vr.dm" +#include "code\game\objects\structures\crates_lockers\__closets.dm" +#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm" +#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions_vr.dm" +#include "code\game\objects\structures\crates_lockers\crates.dm" +#include "code\game\objects\structures\crates_lockers\crates_vr.dm" +#include "code\game\objects\structures\crates_lockers\largecrate.dm" +#include "code\game\objects\structures\crates_lockers\largecrate_vr.dm" +#include "code\game\objects\structures\crates_lockers\vehiclecage.dm" +#include "code\game\objects\structures\crates_lockers\closets\coffin.dm" +#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" +#include "code\game\objects\structures\crates_lockers\closets\egg_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" +#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" +#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" +#include "code\game\objects\structures\crates_lockers\closets\misc_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\statue.dm" +#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\walllocker.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security_vr.dm" +#include "code\game\objects\structures\flora\flora.dm" +#include "code\game\objects\structures\flora\flora_vr.dm" +#include "code\game\objects\structures\flora\grass.dm" +#include "code\game\objects\structures\flora\moretrees_vr.dm" +#include "code\game\objects\structures\flora\trees.dm" +#include "code\game\objects\structures\ghost_pods\event_vr.dm" +#include "code\game\objects\structures\ghost_pods\ghost_pods.dm" +#include "code\game\objects\structures\ghost_pods\ghost_pods_vr.dm" +#include "code\game\objects\structures\ghost_pods\human.dm" +#include "code\game\objects\structures\ghost_pods\mysterious.dm" +#include "code\game\objects\structures\ghost_pods\silicon.dm" +#include "code\game\objects\structures\ghost_pods\silicon_vr.dm" +#include "code\game\objects\structures\props\alien_props.dm" +#include "code\game\objects\structures\props\alien_props_vr.dm" +#include "code\game\objects\structures\props\beam_prism.dm" +#include "code\game\objects\structures\props\blackbox.dm" +#include "code\game\objects\structures\props\fake_ai.dm" +#include "code\game\objects\structures\props\nest.dm" +#include "code\game\objects\structures\props\projectile_lock.dm" +#include "code\game\objects\structures\props\prop.dm" +#include "code\game\objects\structures\props\puzzledoor.dm" +#include "code\game\objects\structures\props\rocks.dm" +#include "code\game\objects\structures\props\swarm.dm" +#include "code\game\objects\structures\props\transmitter.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs_vr.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\stools.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\stools_vr.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair_item.dm" +#include "code\game\turfs\simulated.dm" +#include "code\game\turfs\simulated_vr.dm" +#include "code\game\turfs\turf.dm" +#include "code\game\turfs\turf_changing.dm" +#include "code\game\turfs\turf_flick_animations.dm" +#include "code\game\turfs\unsimulated.dm" +#include "code\game\turfs\flooring\flooring.dm" +#include "code\game\turfs\flooring\flooring_decals.dm" +#include "code\game\turfs\flooring\flooring_decals_vr.dm" +#include "code\game\turfs\flooring\flooring_premade.dm" +#include "code\game\turfs\flooring\flooring_vr.dm" +#include "code\game\turfs\flooring\shuttle_vr.dm" +#include "code\game\turfs\initialization\init.dm" +#include "code\game\turfs\initialization\maintenance.dm" +#include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\floor_acts.dm" +#include "code\game\turfs\simulated\floor_attackby.dm" +#include "code\game\turfs\simulated\floor_damage.dm" +#include "code\game\turfs\simulated\floor_icon.dm" +#include "code\game\turfs\simulated\floor_static.dm" +#include "code\game\turfs\simulated\floor_types.dm" +#include "code\game\turfs\simulated\floor_types_eris.dm" +#include "code\game\turfs\simulated\floor_types_vr.dm" +#include "code\game\turfs\simulated\lava.dm" +#include "code\game\turfs\simulated\wall_attacks.dm" +#include "code\game\turfs\simulated\wall_icon.dm" +#include "code\game\turfs\simulated\wall_types.dm" +#include "code\game\turfs\simulated\wall_types_vr.dm" +#include "code\game\turfs\simulated\walls.dm" +#include "code\game\turfs\simulated\water.dm" +#include "code\game\turfs\simulated\water_vr.dm" +#include "code\game\turfs\simulated\dungeon\floor.dm" +#include "code\game\turfs\simulated\dungeon\wall.dm" +#include "code\game\turfs\simulated\outdoors\atmoscaves_vr.dm" +#include "code\game\turfs\simulated\outdoors\dirt.dm" +#include "code\game\turfs\simulated\outdoors\grass.dm" +#include "code\game\turfs\simulated\outdoors\ironsand_vr.dm" +#include "code\game\turfs\simulated\outdoors\outdoors.dm" +#include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm" +#include "code\game\turfs\simulated\outdoors\outdoors_vr.dm" +#include "code\game\turfs\simulated\outdoors\sky.dm" +#include "code\game\turfs\simulated\outdoors\snow.dm" +#include "code\game\turfs\snow\snow.dm" +#include "code\game\turfs\space\cracked_asteroid.dm" +#include "code\game\turfs\space\space.dm" +#include "code\game\turfs\space\transit.dm" +#include "code\game\turfs\unsimulated\beach.dm" +#include "code\game\turfs\unsimulated\beach_vr.dm" +#include "code\game\turfs\unsimulated\floor.dm" +#include "code\game\turfs\unsimulated\planetary.dm" +#include "code\game\turfs\unsimulated\planetary_vr.dm" +#include "code\game\turfs\unsimulated\shuttle.dm" +#include "code\game\turfs\unsimulated\sky_vr.dm" +#include "code\game\turfs\unsimulated\walls.dm" +#include "code\js\byjax.dm" +#include "code\js\menus.dm" +#include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_attack_log.dm" +#include "code\modules\admin\admin_investigate.dm" +#include "code\modules\admin\admin_memo.dm" +#include "code\modules\admin\admin_ranks.dm" +#include "code\modules\admin\admin_secrets.dm" +#include "code\modules\admin\admin_tools.dm" +#include "code\modules\admin\admin_verb_lists_vr.dm" +#include "code\modules\admin\admin_verbs.dm" +#include "code\modules\admin\admin_vr.dm" +#include "code\modules\admin\banjob.dm" +#include "code\modules\admin\ckey_vr.dm" +#include "code\modules\admin\create_mob.dm" +#include "code\modules\admin\create_object.dm" +#include "code\modules\admin\create_turf.dm" +#include "code\modules\admin\holder2.dm" +#include "code\modules\admin\IsBanned.dm" +#include "code\modules\admin\map_capture.dm" +#include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\news.dm" +#include "code\modules\admin\persistence.dm" +#include "code\modules\admin\player_notes.dm" +#include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\topic.dm" +#include "code\modules\admin\ToRban.dm" +#include "code\modules\admin\callproc\callproc.dm" +#include "code\modules\admin\DB ban\functions.dm" +#include "code\modules\admin\permissionverbs\permissionedit.dm" +#include "code\modules\admin\secrets\admin_secrets\admin_logs.dm" +#include "code\modules\admin\secrets\admin_secrets\alter_narsie.dm" +#include "code\modules\admin\secrets\admin_secrets\bombing_list.dm" +#include "code\modules\admin\secrets\admin_secrets\jump_shuttle.dm" +#include "code\modules\admin\secrets\admin_secrets\launch_shuttle.dm" +#include "code\modules\admin\secrets\admin_secrets\launch_shuttle_forced.dm" +#include "code\modules\admin\secrets\admin_secrets\list_dna.dm" +#include "code\modules\admin\secrets\admin_secrets\list_fingerprints.dm" +#include "code\modules\admin\secrets\admin_secrets\move_shuttle.dm" +#include "code\modules\admin\secrets\admin_secrets\prison_warp.dm" +#include "code\modules\admin\secrets\admin_secrets\show_ai_laws.dm" +#include "code\modules\admin\secrets\admin_secrets\show_crew_manifest.dm" +#include "code\modules\admin\secrets\admin_secrets\show_game_mode.dm" +#include "code\modules\admin\secrets\admin_secrets\show_law_changes.dm" +#include "code\modules\admin\secrets\admin_secrets\show_signalers.dm" +#include "code\modules\admin\secrets\admin_secrets\traitors_and_objectives.dm" +#include "code\modules\admin\secrets\final_solutions\summon_narsie.dm" +#include "code\modules\admin\secrets\final_solutions\supermatter_cascade.dm" +#include "code\modules\admin\secrets\fun_secrets\break_all_lights.dm" +#include "code\modules\admin\secrets\fun_secrets\break_some_lights.dm" +#include "code\modules\admin\secrets\fun_secrets\fix_all_lights.dm" +#include "code\modules\admin\secrets\fun_secrets\ghost_mode.dm" +#include "code\modules\admin\secrets\fun_secrets\only_one.dm" +#include "code\modules\admin\secrets\fun_secrets\paintball_mode.dm" +#include "code\modules\admin\secrets\fun_secrets\power_all_smes.dm" +#include "code\modules\admin\secrets\fun_secrets\power_failure_begin.dm" +#include "code\modules\admin\secrets\fun_secrets\power_failure_end.dm" +#include "code\modules\admin\secrets\fun_secrets\remove_all_clothing.dm" +#include "code\modules\admin\secrets\fun_secrets\remove_internal_clothing.dm" +#include "code\modules\admin\secrets\fun_secrets\send_strike_team.dm" +#include "code\modules\admin\secrets\fun_secrets\toggle_bomb_cap.dm" +#include "code\modules\admin\secrets\fun_secrets\triple_ai_mode.dm" +#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_corgies.dm" +#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_monkeys.dm" +#include "code\modules\admin\secrets\random_events\gravity_vr.dm" +#include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm" +#include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm" +#include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminhelp_vr.dm" +#include "code\modules\admin\verbs\adminjump.dm" +#include "code\modules\admin\verbs\adminpm.dm" +#include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\antag-ooc.dm" +#include "code\modules\admin\verbs\atmosdebug.dm" +#include "code\modules\admin\verbs\BrokenInhands.dm" +#include "code\modules\admin\verbs\buildmode.dm" +#include "code\modules\admin\verbs\change_appearance.dm" +#include "code\modules\admin\verbs\check_customitem_activity.dm" +#include "code\modules\admin\verbs\cinematic.dm" +#include "code\modules\admin\verbs\custom_event.dm" +#include "code\modules\admin\verbs\dbcon_fix.dm" +#include "code\modules\admin\verbs\deadsay.dm" +#include "code\modules\admin\verbs\debug.dm" +#include "code\modules\admin\verbs\debug_vr.dm" +#include "code\modules\admin\verbs\diagnostics.dm" +#include "code\modules\admin\verbs\dice.dm" +#include "code\modules\admin\verbs\fps.dm" +#include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\grief_fixers.dm" +#include "code\modules\admin\verbs\lightning_strike.dm" +#include "code\modules\admin\verbs\map_template_loadverb.dm" +#include "code\modules\admin\verbs\mapping.dm" +#include "code\modules\admin\verbs\panicbunker.dm" +#include "code\modules\admin\verbs\playsound.dm" +#include "code\modules\admin\verbs\possess.dm" +#include "code\modules\admin\verbs\pray.dm" +#include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\randomverbs_vr.dm" +#include "code\modules\admin\verbs\resize.dm" +#include "code\modules\admin\verbs\smite.dm" +#include "code\modules\admin\verbs\smite_vr.dm" +#include "code\modules\admin\verbs\striketeam.dm" +#include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" +#include "code\modules\admin\view_variables\admin_delete.dm" +#include "code\modules\admin\view_variables\debug_variables.dm" +#include "code\modules\admin\view_variables\get_variables.dm" +#include "code\modules\admin\view_variables\helpers.dm" +#include "code\modules\admin\view_variables\mass_edit_variables.dm" +#include "code\modules\admin\view_variables\modify_variables.dm" +#include "code\modules\admin\view_variables\topic.dm" +#include "code\modules\admin\view_variables\topic_list.dm" +#include "code\modules\admin\view_variables\view_variables.dm" +#include "code\modules\admin\view_variables\view_variables_global.dm" +#include "code\modules\ai\_defines.dm" +#include "code\modules\ai\ai_holder.dm" +#include "code\modules\ai\ai_holder_combat.dm" +#include "code\modules\ai\ai_holder_combat_unseen.dm" +#include "code\modules\ai\ai_holder_communication.dm" +#include "code\modules\ai\ai_holder_cooperation.dm" +#include "code\modules\ai\ai_holder_debug.dm" +#include "code\modules\ai\ai_holder_disabled.dm" +#include "code\modules\ai\ai_holder_fleeing.dm" +#include "code\modules\ai\ai_holder_follow.dm" +#include "code\modules\ai\ai_holder_movement.dm" +#include "code\modules\ai\ai_holder_pathfinding.dm" +#include "code\modules\ai\ai_holder_targeting.dm" +#include "code\modules\ai\ai_holder_targeting_vr.dm" +#include "code\modules\ai\interfaces.dm" +#include "code\modules\ai\say_list.dm" +#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai.dm" +#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai_vr.dm" +#include "code\modules\ai\ai_holder_subtypes\slime_xenobio_ai.dm" +#include "code\modules\alarm\alarm.dm" +#include "code\modules\alarm\alarm_handler.dm" +#include "code\modules\alarm\atmosphere_alarm.dm" +#include "code\modules\alarm\camera_alarm.dm" +#include "code\modules\alarm\fire_alarm.dm" +#include "code\modules\alarm\motion_alarm.dm" +#include "code\modules\alarm\power_alarm.dm" +#include "code\modules\artifice\cursedform.dm" +#include "code\modules\artifice\deadringer.dm" +#include "code\modules\artifice\telecube.dm" +#include "code\modules\assembly\assembly.dm" +#include "code\modules\assembly\helpers.dm" +#include "code\modules\assembly\holder.dm" +#include "code\modules\assembly\igniter.dm" +#include "code\modules\assembly\infrared.dm" +#include "code\modules\assembly\mousetrap.dm" +#include "code\modules\assembly\proximity.dm" +#include "code\modules\assembly\shock_kit.dm" +#include "code\modules\assembly\signaler.dm" +#include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" +#include "code\modules\asset_cache\asset_cache.dm" +#include "code\modules\asset_cache\asset_cache_client.dm" +#include "code\modules\asset_cache\asset_cache_item.dm" +#include "code\modules\asset_cache\asset_list.dm" +#include "code\modules\asset_cache\asset_list_items.dm" +#include "code\modules\awaymissions\bluespaceartillery.dm" +#include "code\modules\awaymissions\corpse.dm" +#include "code\modules\awaymissions\exile.dm" +#include "code\modules\awaymissions\gateway.dm" +#include "code\modules\awaymissions\gateway_vr.dm" +#include "code\modules\awaymissions\loot.dm" +#include "code\modules\awaymissions\loot_vr.dm" +#include "code\modules\awaymissions\pamphlet.dm" +#include "code\modules\awaymissions\trigger.dm" +#include "code\modules\awaymissions\zlevel.dm" +#include "code\modules\blob\blob.dm" +#include "code\modules\blob2\_defines.dm" +#include "code\modules\blob2\core_chunk.dm" +#include "code\modules\blob2\blobs\base_blob.dm" +#include "code\modules\blob2\blobs\core.dm" +#include "code\modules\blob2\blobs\factory.dm" +#include "code\modules\blob2\blobs\node.dm" +#include "code\modules\blob2\blobs\normal.dm" +#include "code\modules\blob2\blobs\resource.dm" +#include "code\modules\blob2\blobs\shield.dm" +#include "code\modules\blob2\overmind\overmind.dm" +#include "code\modules\blob2\overmind\powers.dm" +#include "code\modules\blob2\overmind\types.dm" +#include "code\modules\blob2\overmind\types\blazing_oil.dm" +#include "code\modules\blob2\overmind\types\classic.dm" +#include "code\modules\blob2\overmind\types\cryogenic_goo.dm" +#include "code\modules\blob2\overmind\types\ectoplasmic_horror.dm" +#include "code\modules\blob2\overmind\types\electromagnetic_web.dm" +#include "code\modules\blob2\overmind\types\energized_jelly.dm" +#include "code\modules\blob2\overmind\types\explosive_lattice.dm" +#include "code\modules\blob2\overmind\types\fabrication_swarm.dm" +#include "code\modules\blob2\overmind\types\fulminant_organism.dm" +#include "code\modules\blob2\overmind\types\fungal_bloom.dm" +#include "code\modules\blob2\overmind\types\grey_goo.dm" +#include "code\modules\blob2\overmind\types\pressurized_slime.dm" +#include "code\modules\blob2\overmind\types\radioactive_ooze.dm" +#include "code\modules\blob2\overmind\types\ravenous_macrophage.dm" +#include "code\modules\blob2\overmind\types\reactive_spines.dm" +#include "code\modules\blob2\overmind\types\roiling_mold.dm" +#include "code\modules\blob2\overmind\types\shifting_fragments.dm" +#include "code\modules\blob2\overmind\types\synchronous_mesh.dm" +#include "code\modules\blob2\overmind\types\volatile_alluvium.dm" +#include "code\modules\busy_space_vr\air_traffic.dm" +#include "code\modules\busy_space_vr\loremaster.dm" +#include "code\modules\busy_space_vr\organizations.dm" +#include "code\modules\catalogue\atoms.dm" +#include "code\modules\catalogue\catalogue_data.dm" +#include "code\modules\catalogue\catalogue_data_vr.dm" +#include "code\modules\catalogue\cataloguer.dm" +#include "code\modules\catalogue\cataloguer_visuals.dm" +#include "code\modules\catalogue\cataloguer_vr.dm" +#include "code\modules\client\client defines.dm" +#include "code\modules\client\client procs.dm" +#include "code\modules\client\client procs_vr.dm" +#include "code\modules\client\movement.dm" +#include "code\modules\client\preferences.dm" +#include "code\modules\client\preferences_factions.dm" +#include "code\modules\client\preferences_savefile.dm" +#include "code\modules\client\preferences_spawnpoints.dm" +#include "code\modules\client\preferences_toggle_procs.dm" +#include "code\modules\client\preferences_vr.dm" +#include "code\modules\client\spam_prevention.dm" +#include "code\modules\client\ui_style.dm" +#include "code\modules\client\preference_setup\_defines.dm" +#include "code\modules\client\preference_setup\preference_setup.dm" +#include "code\modules\client\preference_setup\preference_setup_vr.dm" +#include "code\modules\client\preference_setup\antagonism\01_basic.dm" +#include "code\modules\client\preference_setup\antagonism\02_candidacy.dm" +#include "code\modules\client\preference_setup\general\01_basic.dm" +#include "code\modules\client\preference_setup\general\02_language.dm" +#include "code\modules\client\preference_setup\general\03_body.dm" +#include "code\modules\client\preference_setup\general\04_equipment.dm" +#include "code\modules\client\preference_setup\general\05_background.dm" +#include "code\modules\client\preference_setup\general\06_flavor.dm" +#include "code\modules\client\preference_setup\global\01_ui.dm" +#include "code\modules\client\preference_setup\global\02_settings.dm" +#include "code\modules\client\preference_setup\global\03_pai.dm" +#include "code\modules\client\preference_setup\global\04_ooc.dm" +#include "code\modules\client\preference_setup\global\setting_datums.dm" +#include "code\modules\client\preference_setup\loadout\gear_tweaks.dm" +#include "code\modules\client\preference_setup\loadout\gear_tweaks_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout.dm" +#include "code\modules\client\preference_setup\loadout\loadout_accessories.dm" +#include "code\modules\client\preference_setup\loadout\loadout_accessories_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_cosmetics.dm" +#include "code\modules\client\preference_setup\loadout\loadout_cosmetics_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_cyberware.dm" +#include "code\modules\client\preference_setup\loadout\loadout_ears.dm" +#include "code\modules\client\preference_setup\loadout\loadout_eyes.dm" +#include "code\modules\client\preference_setup\loadout\loadout_eyes_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_fluffitems_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_general.dm" +#include "code\modules\client\preference_setup\loadout\loadout_general_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_gloves.dm" +#include "code\modules\client\preference_setup\loadout\loadout_gloves_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_head.dm" +#include "code\modules\client\preference_setup\loadout\loadout_head_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_mask.dm" +#include "code\modules\client\preference_setup\loadout\loadout_shoes.dm" +#include "code\modules\client\preference_setup\loadout\loadout_shoes_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_smoking.dm" +#include "code\modules\client\preference_setup\loadout\loadout_suit.dm" +#include "code\modules\client\preference_setup\loadout\loadout_suit_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_uniform.dm" +#include "code\modules\client\preference_setup\loadout\loadout_uniform_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_utility.dm" +#include "code\modules\client\preference_setup\loadout\loadout_utility_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno_vr.dm" +#include "code\modules\client\preference_setup\occupation\occupation.dm" +#include "code\modules\client\preference_setup\skills\skills.dm" +#include "code\modules\client\preference_setup\volume_sliders\01_volume.dm" +#include "code\modules\client\preference_setup\volume_sliders\02_media.dm" +#include "code\modules\client\preference_setup\vore\01_ears.dm" +#include "code\modules\client\preference_setup\vore\02_size.dm" +#include "code\modules\client\preference_setup\vore\03_egg.dm" +#include "code\modules\client\preference_setup\vore\04_resleeving.dm" +#include "code\modules\client\preference_setup\vore\05_persistence.dm" +#include "code\modules\client\preference_setup\vore\06_vantag.dm" +#include "code\modules\client\preference_setup\vore\07_traits.dm" +#include "code\modules\client\preference_setup\vore\08_nif.dm" +#include "code\modules\client\preference_setup\vore\09_misc.dm" +#include "code\modules\client\verbs\advanced_who.dm" +#include "code\modules\client\verbs\character_directory.dm" +#include "code\modules\client\verbs\ignore.dm" +#include "code\modules\client\verbs\ooc.dm" +#include "code\modules\client\verbs\ping.dm" +#include "code\modules\client\verbs\suicide.dm" +#include "code\modules\client\verbs\who.dm" +#include "code\modules\clothing\chameleon.dm" +#include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\clothing_accessories.dm" +#include "code\modules\clothing\clothing_icons.dm" +#include "code\modules\clothing\clothing_vr.dm" +#include "code\modules\clothing\ears\earrings.dm" +#include "code\modules\clothing\ears\ears.dm" +#include "code\modules\clothing\glasses\glasses.dm" +#include "code\modules\clothing\glasses\glasses_vr.dm" +#include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\glasses\hud_vr.dm" +#include "code\modules\clothing\gloves\antagonist.dm" +#include "code\modules\clothing\gloves\arm_guards.dm" +#include "code\modules\clothing\gloves\arm_guards_vr.dm" +#include "code\modules\clothing\gloves\boxing.dm" +#include "code\modules\clothing\gloves\color.dm" +#include "code\modules\clothing\gloves\gauntlets.dm" +#include "code\modules\clothing\gloves\miscellaneous.dm" +#include "code\modules\clothing\gloves\miscellaneous_vr.dm" +#include "code\modules\clothing\head\collectable.dm" +#include "code\modules\clothing\head\flowercrowns.dm" +#include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\helmet.dm" +#include "code\modules\clothing\head\helmet_vr.dm" +#include "code\modules\clothing\head\hood.dm" +#include "code\modules\clothing\head\hood_vr.dm" +#include "code\modules\clothing\head\jobs.dm" +#include "code\modules\clothing\head\jobs_vr.dm" +#include "code\modules\clothing\head\misc.dm" +#include "code\modules\clothing\head\misc_special.dm" +#include "code\modules\clothing\head\misc_vr.dm" +#include "code\modules\clothing\head\pilot_helmet.dm" +#include "code\modules\clothing\head\pilot_helmet_vr.dm" +#include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\head\solgov.dm" +#include "code\modules\clothing\head\solgov_vr.dm" +#include "code\modules\clothing\masks\boxing.dm" +#include "code\modules\clothing\masks\breath.dm" +#include "code\modules\clothing\masks\breath_vr.dm" +#include "code\modules\clothing\masks\gasmask.dm" +#include "code\modules\clothing\masks\gasmask_vr.dm" +#include "code\modules\clothing\masks\hailer.dm" +#include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\masks\shiny_vr.dm" +#include "code\modules\clothing\masks\voice.dm" +#include "code\modules\clothing\rings\material.dm" +#include "code\modules\clothing\rings\rings.dm" +#include "code\modules\clothing\rings\rings_vr.dm" +#include "code\modules\clothing\shoes\boots.dm" +#include "code\modules\clothing\shoes\boots_vr.dm" +#include "code\modules\clothing\shoes\colour.dm" +#include "code\modules\clothing\shoes\leg_guards.dm" +#include "code\modules\clothing\shoes\leg_guards_vr.dm" +#include "code\modules\clothing\shoes\magboots.dm" +#include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\shoes\miscellaneous_vr.dm" +#include "code\modules\clothing\spacesuits\alien.dm" +#include "code\modules\clothing\spacesuits\breaches.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\spacesuits.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\spacesuits\rig\rig.dm" +#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm" +#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm" +#include "code\modules\clothing\spacesuits\rig\rig_pieces_vr.dm" +#include "code\modules\clothing\spacesuits\rig\rig_tgui.dm" +#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm" +#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm" +#include "code\modules\clothing\spacesuits\rig\modules\modules.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\ai_container.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\chem_dispenser.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\cleaner_launcher.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\cloak.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\datajack.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\device.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\electrowarfare.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\grenade_launcher.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\inhand_fabricator.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\jetpack.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\self_destruct.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\sprinter.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\teleporter.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\vision.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\voice.dm" +#include "code\modules\clothing\spacesuits\rig\suits\alien.dm" +#include "code\modules\clothing\spacesuits\rig\suits\combat.dm" +#include "code\modules\clothing\spacesuits\rig\suits\ert.dm" +#include "code\modules\clothing\spacesuits\rig\suits\ert_vr.dm" +#include "code\modules\clothing\spacesuits\rig\suits\light.dm" +#include "code\modules\clothing\spacesuits\rig\suits\merc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\pmc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\robotics.dm" +#include "code\modules\clothing\spacesuits\rig\suits\station.dm" +#include "code\modules\clothing\spacesuits\rig\suits\station_vr.dm" +#include "code\modules\clothing\spacesuits\void\ert_vr.dm" +#include "code\modules\clothing\spacesuits\void\event.dm" +#include "code\modules\clothing\spacesuits\void\event_vr.dm" +#include "code\modules\clothing\spacesuits\void\merc.dm" +#include "code\modules\clothing\spacesuits\void\military_vr.dm" +#include "code\modules\clothing\spacesuits\void\station.dm" +#include "code\modules\clothing\spacesuits\void\station_vr.dm" +#include "code\modules\clothing\spacesuits\void\void.dm" +#include "code\modules\clothing\spacesuits\void\void_vr.dm" +#include "code\modules\clothing\spacesuits\void\wizard.dm" +#include "code\modules\clothing\spacesuits\void\zaddat.dm" +#include "code\modules\clothing\suits\armor.dm" +#include "code\modules\clothing\suits\armor_vr.dm" +#include "code\modules\clothing\suits\bio.dm" +#include "code\modules\clothing\suits\bio_vr.dm" +#include "code\modules\clothing\suits\hooded.dm" +#include "code\modules\clothing\suits\hooded_vr.dm" +#include "code\modules\clothing\suits\jobs.dm" +#include "code\modules\clothing\suits\jobs_vr.dm" +#include "code\modules\clothing\suits\labcoat.dm" +#include "code\modules\clothing\suits\labcoat_vr.dm" +#include "code\modules\clothing\suits\miscellaneous.dm" +#include "code\modules\clothing\suits\miscellaneous_vr.dm" +#include "code\modules\clothing\suits\solgov.dm" +#include "code\modules\clothing\suits\solgov_vr.dm" +#include "code\modules\clothing\suits\storage.dm" +#include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\utility_vr.dm" +#include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\suits\aliens\tajara.dm" +#include "code\modules\clothing\suits\aliens\teshari.dm" +#include "code\modules\clothing\suits\aliens\unathi.dm" +#include "code\modules\clothing\suits\aliens\vox.dm" +#include "code\modules\clothing\under\color.dm" +#include "code\modules\clothing\under\imperial_vr.dm" +#include "code\modules\clothing\under\miscellaneous.dm" +#include "code\modules\clothing\under\miscellaneous_vr.dm" +#include "code\modules\clothing\under\nanotrasen_vr.dm" +#include "code\modules\clothing\under\pants.dm" +#include "code\modules\clothing\under\shiny_vr.dm" +#include "code\modules\clothing\under\shorts.dm" +#include "code\modules\clothing\under\solgov.dm" +#include "code\modules\clothing\under\solgov_vr.dm" +#include "code\modules\clothing\under\syndicate.dm" +#include "code\modules\clothing\under\accessories\accessory.dm" +#include "code\modules\clothing\under\accessories\accessory_vr.dm" +#include "code\modules\clothing\under\accessories\armband.dm" +#include "code\modules\clothing\under\accessories\armor.dm" +#include "code\modules\clothing\under\accessories\badges.dm" +#include "code\modules\clothing\under\accessories\clothing.dm" +#include "code\modules\clothing\under\accessories\holster.dm" +#include "code\modules\clothing\under\accessories\holster_vr.dm" +#include "code\modules\clothing\under\accessories\lockets.dm" +#include "code\modules\clothing\under\accessories\permits.dm" +#include "code\modules\clothing\under\accessories\permits_vr.dm" +#include "code\modules\clothing\under\accessories\shiny_vr.dm" +#include "code\modules\clothing\under\accessories\storage.dm" +#include "code\modules\clothing\under\accessories\storage_vr.dm" +#include "code\modules\clothing\under\accessories\torch.dm" +#include "code\modules\clothing\under\accessories\torch_vr.dm" +#include "code\modules\clothing\under\accessories\temperature\poncho.dm" +#include "code\modules\clothing\under\jobs\civilian.dm" +#include "code\modules\clothing\under\jobs\engineering.dm" +#include "code\modules\clothing\under\jobs\medsci.dm" +#include "code\modules\clothing\under\jobs\security.dm" +#include "code\modules\clothing\under\xenos\teshari.dm" +#include "code\modules\clothing\under\xenos\vox.dm" +#include "code\modules\compass\_compass.dm" +#include "code\modules\compass\compass_holder.dm" +#include "code\modules\compass\compass_waypoint.dm" +#include "code\modules\compass\~compass.dm" +#include "code\modules\customitems\item_spawning.dm" +#include "code\modules\detectivework\footprints.dm" +#include "code\modules\detectivework\forensics.dm" +#include "code\modules\detectivework\microscope\dnascanner.dm" +#include "code\modules\detectivework\microscope\microscope.dm" +#include "code\modules\detectivework\tools\crimekit.dm" +#include "code\modules\detectivework\tools\evidencebag.dm" +#include "code\modules\detectivework\tools\luminol.dm" +#include "code\modules\detectivework\tools\rag.dm" +#include "code\modules\detectivework\tools\sample_kits.dm" +#include "code\modules\detectivework\tools\scanner.dm" +#include "code\modules\detectivework\tools\storage.dm" +#include "code\modules\detectivework\tools\swabs.dm" +#include "code\modules\detectivework\tools\uvlight.dm" +#include "code\modules\economy\Accounts.dm" +#include "code\modules\economy\Accounts_DB.dm" +#include "code\modules\economy\ATM.dm" +#include "code\modules\economy\cash.dm" +#include "code\modules\economy\cash_register.dm" +#include "code\modules\economy\coins.dm" +#include "code\modules\economy\coins_vr.dm" +#include "code\modules\economy\economy_misc.dm" +#include "code\modules\economy\EFTPOS.dm" +#include "code\modules\economy\Events.dm" +#include "code\modules\economy\Events_Mundane.dm" +#include "code\modules\economy\lorenews.dm" +#include "code\modules\economy\mint.dm" +#include "code\modules\economy\money_bag.dm" +#include "code\modules\economy\price_list.dm" +#include "code\modules\economy\retail_scanner.dm" +#include "code\modules\economy\TradeDestinations.dm" +#include "code\modules\economy\vending.dm" +#include "code\modules\economy\vending_machines.dm" +#include "code\modules\emotes\emote_define.dm" +#include "code\modules\emotes\emote_mob.dm" +#include "code\modules\emotes\definitions\_mob.dm" +#include "code\modules\emotes\definitions\_species.dm" +#include "code\modules\emotes\definitions\audible.dm" +#include "code\modules\emotes\definitions\audible_cough.dm" +#include "code\modules\emotes\definitions\audible_furry_vr.dm" +#include "code\modules\emotes\definitions\audible_scream.dm" +#include "code\modules\emotes\definitions\audible_scream_vr.dm" +#include "code\modules\emotes\definitions\audible_slap.dm" +#include "code\modules\emotes\definitions\audible_snap.dm" +#include "code\modules\emotes\definitions\audible_sneeze.dm" +#include "code\modules\emotes\definitions\audible_whistle.dm" +#include "code\modules\emotes\definitions\exertion.dm" +#include "code\modules\emotes\definitions\helpers_vr.dm" +#include "code\modules\emotes\definitions\human.dm" +#include "code\modules\emotes\definitions\slimes.dm" +#include "code\modules\emotes\definitions\synthetics.dm" +#include "code\modules\emotes\definitions\visible.dm" +#include "code\modules\emotes\definitions\visible_animated.dm" +#include "code\modules\emotes\definitions\visible_vomit.dm" +#include "code\modules\emotes\definitions\visible_vr.dm" +#include "code\modules\entopics_vr\alternate_appearance.dm" +#include "code\modules\entopics_vr\entopics.dm" +#include "code\modules\error_handler\_defines.dm" +#include "code\modules\error_handler\error_handler.dm" +#include "code\modules\error_handler\error_viewer.dm" +#include "code\modules\error_handler\~defines.dm" +#include "code\modules\events\apc_damage.dm" +#include "code\modules\events\atmos_leak.dm" +#include "code\modules\events\aurora_caelus.dm" +#include "code\modules\events\blob.dm" +#include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\camera_damage.dm" +#include "code\modules\events\canister_leak.dm" +#include "code\modules\events\carp_migration.dm" +#include "code\modules\events\comms_blackout.dm" +#include "code\modules\events\communications_blackout.dm" +#include "code\modules\events\drone_pod_vr.dm" +#include "code\modules\events\dust.dm" +#include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\event.dm" +#include "code\modules\events\event_container.dm" +#include "code\modules\events\event_container_vr.dm" +#include "code\modules\events\event_dynamic.dm" +#include "code\modules\events\event_manager.dm" +#include "code\modules\events\gravity_vr.dm" +#include "code\modules\events\grid_check.dm" +#include "code\modules\events\grubinfestation_vr.dm" +#include "code\modules\events\ian_storm_vr.dm" +#include "code\modules\events\infestation.dm" +#include "code\modules\events\ion_storm.dm" +#include "code\modules\events\maintenance_predator_vr.dm" +#include "code\modules\events\meteor_strike_vr.dm" +#include "code\modules\events\meteors.dm" +#include "code\modules\events\money_hacker.dm" +#include "code\modules\events\money_lotto.dm" +#include "code\modules\events\money_spam.dm" +#include "code\modules\events\morph_spawn_vr.dm" +#include "code\modules\events\prison_break.dm" +#include "code\modules\events\radiation_storm.dm" +#include "code\modules\events\random_antagonist.dm" +#include "code\modules\events\rogue_drones.dm" +#include "code\modules\events\shipping_error.dm" +#include "code\modules\events\solar_storm.dm" +#include "code\modules\events\space_ninja.dm" +#include "code\modules\events\spacevine.dm" +#include "code\modules\events\spider_infestation.dm" +#include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\spontaneous_appendicitis_vr.dm" +#include "code\modules\events\supply_demand_vr.dm" +#include "code\modules\events\wallrot.dm" +#include "code\modules\examine\examine.dm" +#include "code\modules\examine\stat_icons.dm" +#include "code\modules\examine\descriptions\armor.dm" +#include "code\modules\examine\descriptions\atmospherics.dm" +#include "code\modules\examine\descriptions\containers.dm" +#include "code\modules\examine\descriptions\devices.dm" +#include "code\modules\examine\descriptions\engineering.dm" +#include "code\modules\examine\descriptions\machines.dm" +#include "code\modules\examine\descriptions\medical.dm" +#include "code\modules\examine\descriptions\mobs.dm" +#include "code\modules\examine\descriptions\paperwork.dm" +#include "code\modules\examine\descriptions\stacks.dm" +#include "code\modules\examine\descriptions\structures.dm" +#include "code\modules\examine\descriptions\telecomms.dm" +#include "code\modules\examine\descriptions\turfs.dm" +#include "code\modules\examine\descriptions\weapons.dm" +#include "code\modules\ext_scripts\irc.dm" +#include "code\modules\ext_scripts\python.dm" +#include "code\modules\fishing\fishing.dm" +#include "code\modules\fishing\fishing_net.dm" +#include "code\modules\fishing\fishing_rod.dm" +#include "code\modules\fishing\fishing_rod_vr.dm" +#include "code\modules\fishing\fishing_vr.dm" +#include "code\modules\flufftext\Dreaming.dm" +#include "code\modules\flufftext\Hallucination.dm" +#include "code\modules\flufftext\look_up.dm" +#include "code\modules\flufftext\TextFilters.dm" +#include "code\modules\food\food.dm" +#include "code\modules\food\recipe.dm" +#include "code\modules\food\recipe_dump.dm" +#include "code\modules\food\recipes_fryer.dm" +#include "code\modules\food\recipes_fryer_vr.dm" +#include "code\modules\food\recipes_grill.dm" +#include "code\modules\food\recipes_microwave.dm" +#include "code\modules\food\recipes_microwave_vr.dm" +#include "code\modules\food\recipes_oven.dm" +#include "code\modules\food\recipes_oven_vr.dm" +#include "code\modules\food\drinkingglass\drinkingglass.dm" +#include "code\modules\food\drinkingglass\extras.dm" +#include "code\modules\food\drinkingglass\glass_boxes.dm" +#include "code\modules\food\drinkingglass\glass_types.dm" +#include "code\modules\food\drinkingglass\metaglass.dm" +#include "code\modules\food\drinkingglass\metaglass_vr.dm" +#include "code\modules\food\drinkingglass\serving_glasses.dm" +#include "code\modules\food\drinkingglass\shaker.dm" +#include "code\modules\food\drinkingglass\shaker_vr.dm" +#include "code\modules\food\food\cans.dm" +#include "code\modules\food\food\cans_vr.dm" +#include "code\modules\food\food\condiment.dm" +#include "code\modules\food\food\drinks.dm" +#include "code\modules\food\food\drinks_vr.dm" +#include "code\modules\food\food\lunch.dm" +#include "code\modules\food\food\sandwich.dm" +#include "code\modules\food\food\snacks.dm" +#include "code\modules\food\food\snacks_vr.dm" +#include "code\modules\food\food\thecake.dm" +#include "code\modules\food\food\z_custom_food_vr.dm" +#include "code\modules\food\food\drinks\bottle.dm" +#include "code\modules\food\food\drinks\cup.dm" +#include "code\modules\food\food\drinks\drinkingglass.dm" +#include "code\modules\food\food\drinks\jar.dm" +#include "code\modules\food\food\drinks\bottle\robot.dm" +#include "code\modules\food\food\snacks\meat.dm" +#include "code\modules\food\glass\bottle.dm" +#include "code\modules\food\glass\bottle_vr.dm" +#include "code\modules\food\glass\bottle\robot.dm" +#include "code\modules\food\kitchen\gibber.dm" +#include "code\modules\food\kitchen\icecream.dm" +#include "code\modules\food\kitchen\microwave.dm" +#include "code\modules\food\kitchen\cooking_machines\_appliance.dm" +#include "code\modules\food\kitchen\cooking_machines\_cooker.dm" +#include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm" +#include "code\modules\food\kitchen\cooking_machines\_mixer.dm" +#include "code\modules\food\kitchen\cooking_machines\candy.dm" +#include "code\modules\food\kitchen\cooking_machines\cereal.dm" +#include "code\modules\food\kitchen\cooking_machines\container.dm" +#include "code\modules\food\kitchen\cooking_machines\fryer.dm" +#include "code\modules\food\kitchen\cooking_machines\grill.dm" +#include "code\modules\food\kitchen\cooking_machines\oven.dm" +#include "code\modules\food\kitchen\smartfridge\drying_rack.dm" +#include "code\modules\food\kitchen\smartfridge\engineering.dm" +#include "code\modules\food\kitchen\smartfridge\hydroponics.dm" +#include "code\modules\food\kitchen\smartfridge\medical.dm" +#include "code\modules\food\kitchen\smartfridge\smartfridge.dm" +#include "code\modules\food\kitchen\smartfridge\smartfridge_vr.dm" +#include "code\modules\gamemaster\defines.dm" +#include "code\modules\gamemaster\event2\event.dm" +#include "code\modules\gamemaster\event2\meta.dm" +#include "code\modules\gamemaster\event2\events\ghost_pod_spawner.dm" +#include "code\modules\gamemaster\event2\events\mob_spawning.dm" +#include "code\modules\gamemaster\event2\events\cargo\shipping_error.dm" +#include "code\modules\gamemaster\event2\events\command\manifest_malfunction.dm" +#include "code\modules\gamemaster\event2\events\command\money_hacker.dm" +#include "code\modules\gamemaster\event2\events\command\raise_funds.dm" +#include "code\modules\gamemaster\event2\events\engineering\airlock_failure.dm" +#include "code\modules\gamemaster\event2\events\engineering\blob.dm" +#include "code\modules\gamemaster\event2\events\engineering\brand_intelligence.dm" +#include "code\modules\gamemaster\event2\events\engineering\camera_damage.dm" +#include "code\modules\gamemaster\event2\events\engineering\canister_leak.dm" +#include "code\modules\gamemaster\event2\events\engineering\dust.dm" +#include "code\modules\gamemaster\event2\events\engineering\gas_leak.dm" +#include "code\modules\gamemaster\event2\events\engineering\grid_check.dm" +#include "code\modules\gamemaster\event2\events\engineering\meteor_defense.dm" +#include "code\modules\gamemaster\event2\events\engineering\spacevine.dm" +#include "code\modules\gamemaster\event2\events\engineering\wallrot.dm" +#include "code\modules\gamemaster\event2\events\engineering\window_break.dm" +#include "code\modules\gamemaster\event2\events\everyone\comms_blackout.dm" +#include "code\modules\gamemaster\event2\events\everyone\electrical_fault.dm" +#include "code\modules\gamemaster\event2\events\everyone\gravity_vr.dm" +#include "code\modules\gamemaster\event2\events\everyone\infestation.dm" +#include "code\modules\gamemaster\event2\events\everyone\pda_spam.dm" +#include "code\modules\gamemaster\event2\events\everyone\radiation_storm.dm" +#include "code\modules\gamemaster\event2\events\everyone\random_antag.dm" +#include "code\modules\gamemaster\event2\events\everyone\solar_storm.dm" +#include "code\modules\gamemaster\event2\events\everyone\sudden_weather_shift.dm" +#include "code\modules\gamemaster\event2\events\legacy\legacy.dm" +#include "code\modules\gamemaster\event2\events\medical\appendicitis.dm" +#include "code\modules\gamemaster\event2\events\medical\virus.dm" +#include "code\modules\gamemaster\event2\events\security\carp_migration.dm" +#include "code\modules\gamemaster\event2\events\security\drill_announcement.dm" +#include "code\modules\gamemaster\event2\events\security\prison_break.dm" +#include "code\modules\gamemaster\event2\events\security\rogue_drones.dm" +#include "code\modules\gamemaster\event2\events\security\security_advisement.dm" +#include "code\modules\gamemaster\event2\events\security\spider_infestation.dm" +#include "code\modules\gamemaster\event2\events\security\stowaway.dm" +#include "code\modules\gamemaster\event2\events\security\surprise_carp.dm" +#include "code\modules\gamemaster\event2\events\security\swarm_boarder.dm" +#include "code\modules\gamemaster\event2\events\synthetic\ion_storm.dm" +#include "code\modules\games\cah.dm" +#include "code\modules\games\cah_black_cards.dm" +#include "code\modules\games\cah_white_cards.dm" +#include "code\modules\games\cardemon.dm" +#include "code\modules\games\cards.dm" +#include "code\modules\games\dice.dm" +#include "code\modules\games\spaceball_cards.dm" +#include "code\modules\games\tarot.dm" +#include "code\modules\genetics\side_effects.dm" +#include "code\modules\ghosttrap\trap.dm" +#include "code\modules\holodeck\HolodeckControl.dm" +#include "code\modules\holodeck\HolodeckObjects.dm" +#include "code\modules\holodeck\HolodeckPrograms.dm" +#include "code\modules\holomap\generate_holomap.dm" +#include "code\modules\holomap\holomap_area.dm" +#include "code\modules\holomap\holomap_datum.dm" +#include "code\modules\holomap\mapper.dm" +#include "code\modules\holomap\station_holomap.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\grown_inedible.dm" +#include "code\modules\hydroponics\grown_predefined.dm" +#include "code\modules\hydroponics\seed.dm" +#include "code\modules\hydroponics\seed_datums_vr.dm" +#include "code\modules\hydroponics\seed_gene_mut.dm" +#include "code\modules\hydroponics\seed_machines.dm" +#include "code\modules\hydroponics\seed_mobs.dm" +#include "code\modules\hydroponics\seed_packets.dm" +#include "code\modules\hydroponics\seed_packets_vr.dm" +#include "code\modules\hydroponics\seed_storage.dm" +#include "code\modules\hydroponics\seed_storage_vr.dm" +#include "code\modules\hydroponics\beekeeping\beehive.dm" +#include "code\modules\hydroponics\seedtypes\amauri.dm" +#include "code\modules\hydroponics\seedtypes\ambrosia.dm" +#include "code\modules\hydroponics\seedtypes\apples.dm" +#include "code\modules\hydroponics\seedtypes\banana.dm" +#include "code\modules\hydroponics\seedtypes\berries.dm" +#include "code\modules\hydroponics\seedtypes\cabbage.dm" +#include "code\modules\hydroponics\seedtypes\carrots.dm" +#include "code\modules\hydroponics\seedtypes\celery.dm" +#include "code\modules\hydroponics\seedtypes\cherries.dm" +#include "code\modules\hydroponics\seedtypes\chili.dm" +#include "code\modules\hydroponics\seedtypes\citrus.dm" +#include "code\modules\hydroponics\seedtypes\cocoa.dm" +#include "code\modules\hydroponics\seedtypes\corn.dm" +#include "code\modules\hydroponics\seedtypes\diona.dm" +#include "code\modules\hydroponics\seedtypes\durian.dm" +#include "code\modules\hydroponics\seedtypes\eggplant.dm" +#include "code\modules\hydroponics\seedtypes\flowers.dm" +#include "code\modules\hydroponics\seedtypes\gelthi.dm" +#include "code\modules\hydroponics\seedtypes\gnomes.dm" +#include "code\modules\hydroponics\seedtypes\grapes.dm" +#include "code\modules\hydroponics\seedtypes\grass.dm" +#include "code\modules\hydroponics\seedtypes\jurlmah.dm" +#include "code\modules\hydroponics\seedtypes\kudzu.dm" +#include "code\modules\hydroponics\seedtypes\lettuce.dm" +#include "code\modules\hydroponics\seedtypes\malanitear.dm" +#include "code\modules\hydroponics\seedtypes\mushrooms.dm" +#include "code\modules\hydroponics\seedtypes\nettles.dm" +#include "code\modules\hydroponics\seedtypes\onion.dm" +#include "code\modules\hydroponics\seedtypes\peanuts.dm" +#include "code\modules\hydroponics\seedtypes\pineapple.dm" +#include "code\modules\hydroponics\seedtypes\potato.dm" +#include "code\modules\hydroponics\seedtypes\pumpkin.dm" +#include "code\modules\hydroponics\seedtypes\rhubarb.dm" +#include "code\modules\hydroponics\seedtypes\rice.dm" +#include "code\modules\hydroponics\seedtypes\selemhand.dm" +#include "code\modules\hydroponics\seedtypes\soybean.dm" +#include "code\modules\hydroponics\seedtypes\sugarcane.dm" +#include "code\modules\hydroponics\seedtypes\surik.dm" +#include "code\modules\hydroponics\seedtypes\telriis.dm" +#include "code\modules\hydroponics\seedtypes\thaadra.dm" +#include "code\modules\hydroponics\seedtypes\tobacco.dm" +#include "code\modules\hydroponics\seedtypes\tomatoes.dm" +#include "code\modules\hydroponics\seedtypes\vale.dm" +#include "code\modules\hydroponics\seedtypes\vanilla.dm" +#include "code\modules\hydroponics\seedtypes\wabback.dm" +#include "code\modules\hydroponics\seedtypes\watermelon.dm" +#include "code\modules\hydroponics\seedtypes\weeds.dm" +#include "code\modules\hydroponics\seedtypes\wheat.dm" +#include "code\modules\hydroponics\seedtypes\whitebeets.dm" +#include "code\modules\hydroponics\seedtypes\wurmwoad.dm" +#include "code\modules\hydroponics\seedtypes\xeno.dm" +#include "code\modules\hydroponics\spreading\spreading.dm" +#include "code\modules\hydroponics\spreading\spreading_growth.dm" +#include "code\modules\hydroponics\spreading\spreading_response.dm" +#include "code\modules\hydroponics\trays\tray.dm" +#include "code\modules\hydroponics\trays\tray_process.dm" +#include "code\modules\hydroponics\trays\tray_reagents.dm" +#include "code\modules\hydroponics\trays\tray_soil.dm" +#include "code\modules\hydroponics\trays\tray_tools.dm" +#include "code\modules\hydroponics\trays\tray_update_icons.dm" +#include "code\modules\identification\identification.dm" +#include "code\modules\identification\item_procs.dm" +#include "code\modules\instruments\items.dm" +#include "code\modules\instruments\stationary.dm" +#include "code\modules\instruments\instrument_data\_instrument_data.dm" +#include "code\modules\instruments\instrument_data\_instrument_key.dm" +#include "code\modules\instruments\instrument_data\brass.dm" +#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" +#include "code\modules\instruments\instrument_data\fun.dm" +#include "code\modules\instruments\instrument_data\guitar.dm" +#include "code\modules\instruments\instrument_data\hardcoded.dm" +#include "code\modules\instruments\instrument_data\organ.dm" +#include "code\modules\instruments\instrument_data\piano.dm" +#include "code\modules\instruments\instrument_data\synth_tones.dm" +#include "code\modules\instruments\songs\_song.dm" +#include "code\modules\instruments\songs\editor.dm" +#include "code\modules\instruments\songs\play_legacy.dm" +#include "code\modules\instruments\songs\play_synthesized.dm" +#include "code\modules\integrated_electronics\_defines.dm" +#include "code\modules\integrated_electronics\core\assemblies.dm" +#include "code\modules\integrated_electronics\core\detailer.dm" +#include "code\modules\integrated_electronics\core\helpers.dm" +#include "code\modules\integrated_electronics\core\integrated_circuit.dm" +#include "code\modules\integrated_electronics\core\pins.dm" +#include "code\modules\integrated_electronics\core\printer.dm" +#include "code\modules\integrated_electronics\core\tools.dm" +#include "code\modules\integrated_electronics\core\assemblies\clothing.dm" +#include "code\modules\integrated_electronics\core\assemblies\device.dm" +#include "code\modules\integrated_electronics\core\assemblies\generic.dm" +#include "code\modules\integrated_electronics\core\assemblies\implant.dm" +#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm" +#include "code\modules\integrated_electronics\passive\passive.dm" +#include "code\modules\integrated_electronics\passive\power.dm" +#include "code\modules\integrated_electronics\subtypes\arithmetic.dm" +#include "code\modules\integrated_electronics\subtypes\built_in.dm" +#include "code\modules\integrated_electronics\subtypes\converters.dm" +#include "code\modules\integrated_electronics\subtypes\data_transfer.dm" +#include "code\modules\integrated_electronics\subtypes\input.dm" +#include "code\modules\integrated_electronics\subtypes\lists.dm" +#include "code\modules\integrated_electronics\subtypes\logic.dm" +#include "code\modules\integrated_electronics\subtypes\manipulation.dm" +#include "code\modules\integrated_electronics\subtypes\memory.dm" +#include "code\modules\integrated_electronics\subtypes\output.dm" +#include "code\modules\integrated_electronics\subtypes\power.dm" +#include "code\modules\integrated_electronics\subtypes\reagents.dm" +#include "code\modules\integrated_electronics\subtypes\smart.dm" +#include "code\modules\integrated_electronics\subtypes\time.dm" +#include "code\modules\integrated_electronics\subtypes\trig.dm" +#include "code\modules\integrated_electronics\~defines\~defines.dm" +#include "code\modules\keybindings\bindings_atom.dm" +#include "code\modules\keybindings\bindings_movekeys.dm" +#include "code\modules\keybindings\setup.dm" +#include "code\modules\library\lib_items.dm" +#include "code\modules\library\lib_machines.dm" +#include "code\modules\library\lib_readme.dm" +#include "code\modules\library\hardcode_library\_library.dm" +#include "code\modules\library\hardcode_library\fiction\APsychonaut.dm" +#include "code\modules\library\hardcode_library\fiction\battlefieldcommander.dm" +#include "code\modules\library\hardcode_library\fiction\PortedBooks.dm" +#include "code\modules\library\hardcode_library\fiction\schnayy.dm" +#include "code\modules\library\hardcode_library\non-fiction\PortedBooks.dm" +#include "code\modules\library\hardcode_library\reference\PortedBooks.dm" +#include "code\modules\library\hardcode_library\reference\Schnayy.dm" +#include "code\modules\library\hardcode_library\religious\PortedBooks.dm" +#include "code\modules\lighting\emissive_blocker.dm" +#include "code\modules\lighting\lighting_area.dm" +#include "code\modules\lighting\lighting_atom.dm" +#include "code\modules\lighting\lighting_corner.dm" +#include "code\modules\lighting\lighting_fake_sun_vr.dm" +#include "code\modules\lighting\lighting_overlay.dm" +#include "code\modules\lighting\lighting_setup.dm" +#include "code\modules\lighting\lighting_source.dm" +#include "code\modules\lighting\lighting_turf.dm" +#include "code\modules\looking_glass\lg_area.dm" +#include "code\modules\looking_glass\lg_console.dm" +#include "code\modules\looking_glass\lg_imageholder.dm" +#include "code\modules\looking_glass\lg_turfs.dm" +#include "code\modules\lore_codex\codex.dm" +#include "code\modules\lore_codex\codex_tree.dm" +#include "code\modules\lore_codex\pages.dm" +#include "code\modules\lore_codex\lore_data_vr\important_locations.dm" +#include "code\modules\lore_codex\lore_data_vr\main.dm" +#include "code\modules\lore_codex\lore_data_vr\orgs.dm" +#include "code\modules\lore_codex\lore_data_vr\political_parties.dm" +#include "code\modules\lore_codex\lore_data_vr\species.dm" +#include "code\modules\lore_codex\news_data\main.dm" +#include "code\modules\lore_codex\robutt_data\bybrand.dm" +#include "code\modules\lore_codex\robutt_data\main_robutts.dm" +#include "code\modules\lore_codex\robutt_data\more.dm" +#include "code\modules\makeup\nailpolish.dm" +#include "code\modules\maps\tg\dmm_suite.dm" +#include "code\modules\maps\tg\map_template.dm" +#include "code\modules\maps\tg\map_template_vr.dm" +#include "code\modules\maps\tg\reader.dm" +#include "code\modules\materials\fifty_spawner.dm" +#include "code\modules\materials\fifty_spawner_mats.dm" +#include "code\modules\materials\fifty_spawner_mats_vr.dm" +#include "code\modules\materials\material_synth.dm" +#include "code\modules\materials\materials\_materials.dm" +#include "code\modules\materials\materials\_materials_vr.dm" +#include "code\modules\materials\materials\alien_alloy.dm" +#include "code\modules\materials\materials\cult.dm" +#include "code\modules\materials\materials\gems.dm" +#include "code\modules\materials\materials\glass.dm" +#include "code\modules\materials\materials\glass_vr.dm" +#include "code\modules\materials\materials\holographic.dm" +#include "code\modules\materials\materials\other_vr.dm" +#include "code\modules\materials\materials\plastic.dm" +#include "code\modules\materials\materials\snow.dm" +#include "code\modules\materials\materials\stone.dm" +#include "code\modules\materials\materials\supermatter.dm" +#include "code\modules\materials\materials\metals\hull.dm" +#include "code\modules\materials\materials\metals\hull_vr.dm" +#include "code\modules\materials\materials\metals\metals.dm" +#include "code\modules\materials\materials\metals\metals_vr.dm" +#include "code\modules\materials\materials\metals\plasteel.dm" +#include "code\modules\materials\materials\metals\plasteel_vr.dm" +#include "code\modules\materials\materials\metals\steel.dm" +#include "code\modules\materials\materials\metals\steel_vr.dm" +#include "code\modules\materials\materials\organic\animal_products.dm" +#include "code\modules\materials\materials\organic\cloth.dm" +#include "code\modules\materials\materials\organic\leather.dm" +#include "code\modules\materials\materials\organic\resin.dm" +#include "code\modules\materials\materials\organic\wood.dm" +#include "code\modules\materials\sheets\_sheets.dm" +#include "code\modules\materials\sheets\gems.dm" +#include "code\modules\materials\sheets\glass.dm" +#include "code\modules\materials\sheets\glass_vr.dm" +#include "code\modules\materials\sheets\plastic.dm" +#include "code\modules\materials\sheets\snow.dm" +#include "code\modules\materials\sheets\stone.dm" +#include "code\modules\materials\sheets\supermatter.dm" +#include "code\modules\materials\sheets\metals\hull.dm" +#include "code\modules\materials\sheets\metals\hull_vr.dm" +#include "code\modules\materials\sheets\metals\metal.dm" +#include "code\modules\materials\sheets\metals\metal_vr.dm" +#include "code\modules\materials\sheets\metals\rods.dm" +#include "code\modules\materials\sheets\organic\animal_products.dm" +#include "code\modules\materials\sheets\organic\resin.dm" +#include "code\modules\materials\sheets\organic\textiles.dm" +#include "code\modules\materials\sheets\organic\wood.dm" +#include "code\modules\materials\sheets\organic\tanning\hide.dm" +#include "code\modules\materials\sheets\organic\tanning\hide_hairless.dm" +#include "code\modules\materials\sheets\organic\tanning\leather_wet.dm" +#include "code\modules\materials\sheets\organic\tanning\tanning_rack.dm" +#include "code\modules\media\juke_remote.dm" +#include "code\modules\media\media_machinery.dm" +#include "code\modules\media\media_player_html5.dm" +#include "code\modules\media\media_player_vlc.dm" +#include "code\modules\media\media_player_wmp.dm" +#include "code\modules\media\media_tracks.dm" +#include "code\modules\media\mediamanager.dm" +#include "code\modules\media\walkpod.dm" +#include "code\modules\metric\activity.dm" +#include "code\modules\metric\count.dm" +#include "code\modules\metric\department.dm" +#include "code\modules\metric\metric.dm" +#include "code\modules\mining\abandonedcrates.dm" +#include "code\modules\mining\abandonedcrates_vr.dm" +#include "code\modules\mining\alloys.dm" +#include "code\modules\mining\alloys_vr.dm" +#include "code\modules\mining\fulton.dm" +#include "code\modules\mining\mine_items.dm" +#include "code\modules\mining\mine_items_vr.dm" +#include "code\modules\mining\mine_outcrops.dm" +#include "code\modules\mining\mine_turfs.dm" +#include "code\modules\mining\mine_turfs_vr.dm" +#include "code\modules\mining\mineral_effect.dm" +#include "code\modules\mining\ore.dm" +#include "code\modules\mining\ore_box.dm" +#include "code\modules\mining\ore_datum.dm" +#include "code\modules\mining\resonator_vr.dm" +#include "code\modules\mining\shelter_atoms_vr.dm" +#include "code\modules\mining\shelters_vr.dm" +#include "code\modules\mining\drilling\drill.dm" +#include "code\modules\mining\drilling\scanner.dm" +#include "code\modules\mining\machinery\machine_input_output_plates.dm" +#include "code\modules\mining\machinery\machine_processing.dm" +#include "code\modules\mining\machinery\machine_stacking.dm" +#include "code\modules\mining\machinery\machine_unloading.dm" +#include "code\modules\mining\ore_redemption_machine\construction.dm" +#include "code\modules\mining\ore_redemption_machine\equipment_vendor.dm" +#include "code\modules\mining\ore_redemption_machine\mine_point_items.dm" +#include "code\modules\mining\ore_redemption_machine\survey_vendor.dm" +#include "code\modules\mob\animations.dm" +#include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" +#include "code\modules\mob\gender.dm" +#include "code\modules\mob\gender_vr.dm" +#include "code\modules\mob\hear_say.dm" +#include "code\modules\mob\holder.dm" +#include "code\modules\mob\inventory.dm" +#include "code\modules\mob\login.dm" +#include "code\modules\mob\login_vr.dm" +#include "code\modules\mob\logout.dm" +#include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" +#include "code\modules\mob\mob_defines_vr.dm" +#include "code\modules\mob\mob_grab.dm" +#include "code\modules\mob\mob_grab_specials.dm" +#include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_helpers_vr.dm" +#include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_planes.dm" +#include "code\modules\mob\mob_planes_vr.dm" +#include "code\modules\mob\mob_transformation_simple.dm" +#include "code\modules\mob\say.dm" +#include "code\modules\mob\say_vr.dm" +#include "code\modules\mob\skillset.dm" +#include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" +#include "code\modules\mob\update_icons.dm" +#include "code\modules\mob\_modifiers\aura.dm" +#include "code\modules\mob\_modifiers\changeling.dm" +#include "code\modules\mob\_modifiers\cloning.dm" +#include "code\modules\mob\_modifiers\feysight.dm" +#include "code\modules\mob\_modifiers\fire.dm" +#include "code\modules\mob\_modifiers\medical.dm" +#include "code\modules\mob\_modifiers\modifiers.dm" +#include "code\modules\mob\_modifiers\modifiers_misc.dm" +#include "code\modules\mob\_modifiers\traits.dm" +#include "code\modules\mob\_modifiers\traits_phobias.dm" +#include "code\modules\mob\_modifiers\unholy.dm" +#include "code\modules\mob\dead\corpse.dm" +#include "code\modules\mob\dead\corpse_vr.dm" +#include "code\modules\mob\dead\death.dm" +#include "code\modules\mob\dead\observer\free_vr.dm" +#include "code\modules\mob\dead\observer\login.dm" +#include "code\modules\mob\dead\observer\logout.dm" +#include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\observer_vr.dm" +#include "code\modules\mob\dead\observer\say.dm" +#include "code\modules\mob\freelook\chunk.dm" +#include "code\modules\mob\freelook\eye.dm" +#include "code\modules\mob\freelook\life.dm" +#include "code\modules\mob\freelook\update_triggers.dm" +#include "code\modules\mob\freelook\visualnet.dm" +#include "code\modules\mob\freelook\ai\cameranet.dm" +#include "code\modules\mob\freelook\ai\chunk.dm" +#include "code\modules\mob\freelook\ai\eye.dm" +#include "code\modules\mob\freelook\ai\update_triggers.dm" +#include "code\modules\mob\freelook\mask\chunk.dm" +#include "code\modules\mob\freelook\mask\cultnet.dm" +#include "code\modules\mob\freelook\mask\eye.dm" +#include "code\modules\mob\freelook\mask\update_triggers.dm" +#include "code\modules\mob\language\generic.dm" +#include "code\modules\mob\language\language.dm" +#include "code\modules\mob\language\monkey.dm" +#include "code\modules\mob\language\outsider.dm" +#include "code\modules\mob\language\station.dm" +#include "code\modules\mob\language\station_vr.dm" +#include "code\modules\mob\language\synthetic.dm" +#include "code\modules\mob\living\autohiss.dm" +#include "code\modules\mob\living\butchering.dm" +#include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\death.dm" +#include "code\modules\mob\living\default_language.dm" +#include "code\modules\mob\living\inventory.dm" +#include "code\modules\mob\living\life.dm" +#include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_defense.dm" +#include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\living_defines_vr.dm" +#include "code\modules\mob\living\living_movement.dm" +#include "code\modules\mob\living\living_powers.dm" +#include "code\modules\mob\living\living_vr.dm" +#include "code\modules\mob\living\login.dm" +#include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\organs.dm" +#include "code\modules\mob\living\riding.dm" +#include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\status_indicators.dm" +#include "code\modules\mob\living\bot\bot.dm" +#include "code\modules\mob\living\bot\bot_vr.dm" +#include "code\modules\mob\living\bot\cleanbot.dm" +#include "code\modules\mob\living\bot\ed209bot.dm" +#include "code\modules\mob\living\bot\edCLNbot.dm" +#include "code\modules\mob\living\bot\farmbot.dm" +#include "code\modules\mob\living\bot\floorbot.dm" +#include "code\modules\mob\living\bot\medbot.dm" +#include "code\modules\mob\living\bot\mulebot.dm" +#include "code\modules\mob\living\bot\mulebot_vr.dm" +#include "code\modules\mob\living\bot\secbot.dm" +#include "code\modules\mob\living\bot\SLed209bot.dm" +#include "code\modules\mob\living\carbon\breathe.dm" +#include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_defense.dm" +#include "code\modules\mob\living\carbon\carbon_defines.dm" +#include "code\modules\mob\living\carbon\carbon_powers.dm" +#include "code\modules\mob\living\carbon\give.dm" +#include "code\modules\mob\living\carbon\lick_wounds.dm" +#include "code\modules\mob\living\carbon\resist.dm" +#include "code\modules\mob\living\carbon\shock.dm" +#include "code\modules\mob\living\carbon\taste.dm" +#include "code\modules\mob\living\carbon\viruses.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" +#include "code\modules\mob\living\carbon\alien\alien_attacks.dm" +#include "code\modules\mob\living\carbon\alien\alien_damage.dm" +#include "code\modules\mob\living\carbon\alien\death.dm" +#include "code\modules\mob\living\carbon\alien\emote.dm" +#include "code\modules\mob\living\carbon\alien\life.dm" +#include "code\modules\mob\living\carbon\alien\progression.dm" +#include "code\modules\mob\living\carbon\alien\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\diona\diona.dm" +#include "code\modules\mob\living\carbon\alien\diona\diona_attacks.dm" +#include "code\modules\mob\living\carbon\alien\diona\diona_powers.dm" +#include "code\modules\mob\living\carbon\alien\diona\life.dm" +#include "code\modules\mob\living\carbon\alien\diona\progression.dm" +#include "code\modules\mob\living\carbon\alien\diona\say_understands.dm" +#include "code\modules\mob\living\carbon\alien\diona\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva.dm" +#include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\progression.dm" +#include "code\modules\mob\living\carbon\brain\brain.dm" +#include "code\modules\mob\living\carbon\brain\death.dm" +#include "code\modules\mob\living\carbon\brain\emote.dm" +#include "code\modules\mob\living\carbon\brain\life.dm" +#include "code\modules\mob\living\carbon\brain\login.dm" +#include "code\modules\mob\living\carbon\brain\MMI.dm" +#include "code\modules\mob\living\carbon\brain\robot.dm" +#include "code\modules\mob\living\carbon\brain\say.dm" +#include "code\modules\mob\living\carbon\human\appearance.dm" +#include "code\modules\mob\living\carbon\human\death.dm" +#include "code\modules\mob\living\carbon\human\death_vr.dm" +#include "code\modules\mob\living\carbon\human\emote.dm" +#include "code\modules\mob\living\carbon\human\emote_vr.dm" +#include "code\modules\mob\living\carbon\human\examine.dm" +#include "code\modules\mob\living\carbon\human\examine_vr.dm" +#include "code\modules\mob\living\carbon\human\gradient.dm" +#include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_attackhand.dm" +#include "code\modules\mob\living\carbon\human\human_damage.dm" +#include "code\modules\mob\living\carbon\human\human_defense.dm" +#include "code\modules\mob\living\carbon\human\human_defines.dm" +#include "code\modules\mob\living\carbon\human\human_defines_vr.dm" +#include "code\modules\mob\living\carbon\human\human_helpers.dm" +#include "code\modules\mob\living\carbon\human\human_helpers_vr.dm" +#include "code\modules\mob\living\carbon\human\human_modular_limbs.dm" +#include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\human_organs.dm" +#include "code\modules\mob\living\carbon\human\human_powers.dm" +#include "code\modules\mob\living\carbon\human\human_powers_vr.dm" +#include "code\modules\mob\living\carbon\human\human_resist.dm" +#include "code\modules\mob\living\carbon\human\human_species.dm" +#include "code\modules\mob\living\carbon\human\human_species_vr.dm" +#include "code\modules\mob\living\carbon\human\human_vr.dm" +#include "code\modules\mob\living\carbon\human\inventory.dm" +#include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\life_vr.dm" +#include "code\modules\mob\living\carbon\human\login.dm" +#include "code\modules\mob\living\carbon\human\logout.dm" +#include "code\modules\mob\living\carbon\human\MedicalSideEffects.dm" +#include "code\modules\mob\living\carbon\human\npcs.dm" +#include "code\modules\mob\living\carbon\human\say.dm" +#include "code\modules\mob\living\carbon\human\stripping.dm" +#include "code\modules\mob\living\carbon\human\unarmed_attack.dm" +#include "code\modules\mob\living\carbon\human\update_icons.dm" +#include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled.dm" +#include "code\modules\mob\living\carbon\human\descriptors\_descriptors.dm" +#include "code\modules\mob\living\carbon\human\descriptors\descriptors_generic.dm" +#include "code\modules\mob\living\carbon\human\descriptors\descriptors_skrell.dm" +#include "code\modules\mob\living\carbon\human\descriptors\descriptors_vox.dm" +#include "code\modules\mob\living\carbon\human\species\species.dm" +#include "code\modules\mob\living\carbon\human\species\species_attack.dm" +#include "code\modules\mob\living\carbon\human\species\species_attack_vr.dm" +#include "code\modules\mob\living\carbon\human\species\species_getters.dm" +#include "code\modules\mob\living\carbon\human\species\species_getters_vr.dm" +#include "code\modules\mob\living\carbon\human\species\species_helpers.dm" +#include "code\modules\mob\living\carbon\human\species\species_hud.dm" +#include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm" +#include "code\modules\mob\living\carbon\human\species\species_shapeshift_vr.dm" +#include "code\modules\mob\living\carbon\human\species\species_vr.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\event.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\replicant.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\skeleton.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\vox.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\vox_vr.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\_defines.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_hud.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_trait.dm" +#include "code\modules\mob\living\carbon\human\species\station\alraune.dm" +#include "code\modules\mob\living\carbon\human\species\station\blank_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\golem.dm" +#include "code\modules\mob\living\carbon\human\species\station\human_subspecies.dm" +#include "code\modules\mob\living\carbon\human\species\station\monkey.dm" +#include "code\modules\mob\living\carbon\human\species\station\monkey_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\prometheans.dm" +#include "code\modules\mob\living\carbon\human\species\station\prometheans_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\station.dm" +#include "code\modules\mob\living\carbon\human\species\station\station_special_abilities_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\station_special_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\station_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\teshari.dm" +#include "code\modules\mob\living\carbon\human\species\station\teshari_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\xenochimera_trait_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\_protean_defines.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_blob.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_powers.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_species.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\negative.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\neutral.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\positive.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\trait.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_objs.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_recipies.dm" +#include "code\modules\mob\living\carbon\human\species\virtual_reality\avatar.dm" +#include "code\modules\mob\living\carbon\human\species\virtual_reality\opaque_form.dm" +#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_powers.dm" +#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_species.dm" +#include "code\modules\mob\living\carbon\human\species\xenomorphs\xenomorphs.dm" +#include "code\modules\mob\living\silicon\death.dm" +#include "code\modules\mob\living\silicon\emote.dm" +#include "code\modules\mob\living\silicon\laws.dm" +#include "code\modules\mob\living\silicon\login.dm" +#include "code\modules\mob\living\silicon\say.dm" +#include "code\modules\mob\living\silicon\silicon.dm" +#include "code\modules\mob\living\silicon\silicon_vr.dm" +#include "code\modules\mob\living\silicon\subystems.dm" +#include "code\modules\mob\living\silicon\ai\ai.dm" +#include "code\modules\mob\living\silicon\ai\ai_movement.dm" +#include "code\modules\mob\living\silicon\ai\ai_remote_control.dm" +#include "code\modules\mob\living\silicon\ai\ai_vr.dm" +#include "code\modules\mob\living\silicon\ai\death.dm" +#include "code\modules\mob\living\silicon\ai\examine.dm" +#include "code\modules\mob\living\silicon\ai\icons.dm" +#include "code\modules\mob\living\silicon\ai\latejoin.dm" +#include "code\modules\mob\living\silicon\ai\laws.dm" +#include "code\modules\mob\living\silicon\ai\life.dm" +#include "code\modules\mob\living\silicon\ai\login.dm" +#include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\malf.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" +#include "code\modules\mob\living\silicon\decoy\death.dm" +#include "code\modules\mob\living\silicon\decoy\decoy.dm" +#include "code\modules\mob\living\silicon\decoy\life.dm" +#include "code\modules\mob\living\silicon\pai\admin.dm" +#include "code\modules\mob\living\silicon\pai\death.dm" +#include "code\modules\mob\living\silicon\pai\examine.dm" +#include "code\modules\mob\living\silicon\pai\life.dm" +#include "code\modules\mob\living\silicon\pai\pai.dm" +#include "code\modules\mob\living\silicon\pai\pai_vr.dm" +#include "code\modules\mob\living\silicon\pai\personality.dm" +#include "code\modules\mob\living\silicon\pai\recruit.dm" +#include "code\modules\mob\living\silicon\pai\say.dm" +#include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\pai\software_modules.dm" +#include "code\modules\mob\living\silicon\robot\analyzer.dm" +#include "code\modules\mob\living\silicon\robot\component.dm" +#include "code\modules\mob\living\silicon\robot\custom_sprites.dm" +#include "code\modules\mob\living\silicon\robot\death.dm" +#include "code\modules\mob\living\silicon\robot\emote.dm" +#include "code\modules\mob\living\silicon\robot\examine.dm" +#include "code\modules\mob\living\silicon\robot\examine_vr.dm" +#include "code\modules\mob\living\silicon\robot\inventory.dm" +#include "code\modules\mob\living\silicon\robot\laws.dm" +#include "code\modules\mob\living\silicon\robot\life.dm" +#include "code\modules\mob\living\silicon\robot\login.dm" +#include "code\modules\mob\living\silicon\robot\photos.dm" +#include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_animation_vr.dm" +#include "code\modules\mob\living\silicon\robot\robot_damage.dm" +#include "code\modules\mob\living\silicon\robot\robot_items.dm" +#include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\robot_remote_control.dm" +#include "code\modules\mob\living\silicon\robot\robot_vr.dm" +#include "code\modules\mob\living\silicon\robot\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm" +#include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_vr.dm" +#include "code\modules\mob\living\silicon\robot\drone\swarm.dm" +#include "code\modules\mob\living\silicon\robot\drone\swarm_abilities.dm" +#include "code\modules\mob\living\silicon\robot\drone\swarm_items.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\event.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\event_vr.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\station.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\station_vr.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone_vr.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\_thinktank.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_icon.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_interactions.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_module.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_storage.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_subtypes.dm" +#include "code\modules\mob\living\simple_mob\appearance.dm" +#include "code\modules\mob\living\simple_mob\butchering.dm" +#include "code\modules\mob\living\simple_mob\combat.dm" +#include "code\modules\mob\living\simple_mob\defense.dm" +#include "code\modules\mob\living\simple_mob\donteatpets_vr.dm" +#include "code\modules\mob\living\simple_mob\hands.dm" +#include "code\modules\mob\living\simple_mob\harvesting.dm" +#include "code\modules\mob\living\simple_mob\life.dm" +#include "code\modules\mob\living\simple_mob\on_click.dm" +#include "code\modules\mob\living\simple_mob\simple_hud.dm" +#include "code\modules\mob\living\simple_mob\simple_mob.dm" +#include "code\modules\mob\living\simple_mob\simple_mob_vr.dm" +#include "code\modules\mob\living\simple_mob\taming.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_powers.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\chicken.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\cow.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\goat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\_giant_spider.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\carrier.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\electric.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\frost.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\giant_spider_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\hunter.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\lurker.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\nurse.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\pepper.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\phorogenic.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\thermic.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\tunneler.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\webslinger.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\crab.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\jerboa_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\lizard.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\misc.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\passive.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\penguin.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\possum.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\dog.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\fox_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\parrot.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\diyaab.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\duck.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\fluffy_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\frostfly.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\glitterfly.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hare.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hooligan_crab.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\kururak.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\leech.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\moth.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\pillbug.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\racoon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\savik.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\shantak.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\sif.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\siffet.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\alien.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bats.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bear.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\gaslamp_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\snake_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\worm.dm" +#include "code\modules\mob\living\simple_mob\subtypes\blob\blob.dm" +#include "code\modules\mob\living\simple_mob\subtypes\blob\spore.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\bradley.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Eddy.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\horror .dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Master.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Rickey.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\sally.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\shittytim.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Smiley.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Steve.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\timling.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Willy.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\clown.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\pirates.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\russian.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\illusion\illusion.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\corrupt_maint_drone_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\disbot_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\viscerator.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\wahlem_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\combat_drone.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\mining_drone.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\tank.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\combat_mecha.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\durand.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\hoverpod.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\marauder.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\mecha.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\odysseus.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\phazon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\ripley.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\monitor_ward.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\ward.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\creature.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\faithless.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\_construct.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\artificer.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\harvester.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\shade.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\wraith.dm" +#include "code\modules\mob\living\simple_mob\subtypes\plant\tomato.dm" +#include "code\modules\mob\living\simple_mob\subtypes\plant\tree.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\slime.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\slime_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\combat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\consumption.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\defense.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\discipline.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\xenobio.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\bee.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\c_pet.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\catgirl.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\cookiegirl.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\corrupt_hounds.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\deathclaw.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\dino.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\dragon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\fennec.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\fennix.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\frog.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\hippo.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\horse.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\jelly.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\lamia.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mimic.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\oregrub.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\otie.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\rabbit.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_drone.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_queen.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\snake.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\softdog.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub_larva.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\vore.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\weretiger.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\wolf.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\wolfgirl.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\xeno_vore.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\zz_vore_overrides.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\_defines.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_abilities.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_subtypes.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\~defines.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Big.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bigclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bus.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\busclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\c_shift.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Clowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\hespawner.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\honkelemental.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\regularclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\morph\morph.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_procs.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\shadekin.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\types.dm" +#include "code\modules\mob\living\voice\voice.dm" +#include "code\modules\mob\living\voice\voice_vr.dm" +#include "code\modules\mob\new_player\login.dm" +#include "code\modules\mob\new_player\login_vr.dm" +#include "code\modules\mob\new_player\logout.dm" +#include "code\modules\mob\new_player\new_player.dm" +#include "code\modules\mob\new_player\new_player_vr.dm" +#include "code\modules\mob\new_player\news.dm" +#include "code\modules\mob\new_player\poll.dm" +#include "code\modules\mob\new_player\preferences_setup.dm" +#include "code\modules\mob\new_player\preferences_setup_vr.dm" +#include "code\modules\mob\new_player\skill.dm" +#include "code\modules\mob\new_player\sprite_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories_ear.dm" +#include "code\modules\mob\new_player\sprite_accessories_ear_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_extra.dm" +#include "code\modules\mob\new_player\sprite_accessories_extra_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_tail.dm" +#include "code\modules\mob\new_player\sprite_accessories_tail_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_taur.dm" +#include "code\modules\mob\new_player\sprite_accessories_taur_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_wing.dm" +#include "code\modules\mob\new_player\sprite_accessories_wing_vr.dm" +#include "code\modules\modular_computers\laptop_vendor.dm" +#include "code\modules\modular_computers\computers\modular_computer\core.dm" +#include "code\modules\modular_computers\computers\modular_computer\damage.dm" +#include "code\modules\modular_computers\computers\modular_computer\hardware.dm" +#include "code\modules\modular_computers\computers\modular_computer\interaction.dm" +#include "code\modules\modular_computers\computers\modular_computer\power.dm" +#include "code\modules\modular_computers\computers\modular_computer\ui.dm" +#include "code\modules\modular_computers\computers\modular_computer\variables.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_console.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_laptop.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_tablet.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_telescreen.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_console.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_laptop.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_laptop_vr.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_tablet.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_tablet_vr.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_telescreen.dm" +#include "code\modules\modular_computers\file_system\computer_file.dm" +#include "code\modules\modular_computers\file_system\data.dm" +#include "code\modules\modular_computers\file_system\news_article.dm" +#include "code\modules\modular_computers\file_system\program.dm" +#include "code\modules\modular_computers\file_system\program_events.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\access_decrypter.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\hacked_camera.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\file_system\programs\command\card.dm" +#include "code\modules\modular_computers\file_system\programs\command\comm.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\alarm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\atmos_control.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\rcon_console.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\shutoff_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\supermatter_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\generic\camera.dm" +#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm" +#include "code\modules\modular_computers\file_system\programs\generic\email_client.dm" +#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" +#include "code\modules\modular_computers\file_system\programs\generic\game.dm" +#include "code\modules\modular_computers\file_system\programs\generic\news_browser.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" +#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" +#include "code\modules\modular_computers\file_system\programs\generic\uav.dm" +#include "code\modules\modular_computers\file_system\programs\generic\wordprocessor.dm" +#include "code\modules\modular_computers\file_system\programs\medical\suit_sensors.dm" +#include "code\modules\modular_computers\file_system\programs\research\email_administration.dm" +#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm" +#include "code\modules\modular_computers\file_system\programs\security\alarm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\security\digitalwarrant.dm" +#include "code\modules\modular_computers\file_system\programs\ships\navigation.dm" +#include "code\modules\modular_computers\hardware\_hardware.dm" +#include "code\modules\modular_computers\hardware\battery_module.dm" +#include "code\modules\modular_computers\hardware\card_slot.dm" +#include "code\modules\modular_computers\hardware\hard_drive.dm" +#include "code\modules\modular_computers\hardware\nano_printer.dm" +#include "code\modules\modular_computers\hardware\network_card.dm" +#include "code\modules\modular_computers\hardware\portable_hard_drive.dm" +#include "code\modules\modular_computers\hardware\processor_unit.dm" +#include "code\modules\modular_computers\hardware\tesla_link.dm" +#include "code\modules\modular_computers\NTNet\NTNet.dm" +#include "code\modules\modular_computers\NTNet\NTNet_relay.dm" +#include "code\modules\modular_computers\NTNet\emails\email_account.dm" +#include "code\modules\modular_computers\NTNet\emails\email_message.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\multi-tile\multi-tile.dm" +#include "code\modules\multiz\_stubs.dm" +#include "code\modules\multiz\admin_upload.dm" +#include "code\modules\multiz\basic.dm" +#include "code\modules\multiz\hoist.dm" +#include "code\modules\multiz\ladder_assembly_vr.dm" +#include "code\modules\multiz\ladders.dm" +#include "code\modules\multiz\ladders_vr.dm" +#include "code\modules\multiz\movement.dm" +#include "code\modules\multiz\movement_vr.dm" +#include "code\modules\multiz\pipes.dm" +#include "code\modules\multiz\stairs.dm" +#include "code\modules\multiz\turf.dm" +#include "code\modules\news\news_init.dm" +#include "code\modules\news\newspaper.dm" +#include "code\modules\news\newspaper_layout.dm" +#include "code\modules\nifsoft\nif.dm" +#include "code\modules\nifsoft\nif_softshop.dm" +#include "code\modules\nifsoft\nif_tgui.dm" +#include "code\modules\nifsoft\nifsoft.dm" +#include "code\modules\nifsoft\software\01_vision.dm" +#include "code\modules\nifsoft\software\05_health.dm" +#include "code\modules\nifsoft\software\06_screens.dm" +#include "code\modules\nifsoft\software\10_combat.dm" +#include "code\modules\nifsoft\software\13_soulcatcher.dm" +#include "code\modules\nifsoft\software\14_commlink.dm" +#include "code\modules\nifsoft\software\15_misc.dm" +#include "code\modules\organs\blood.dm" +#include "code\modules\organs\misc.dm" +#include "code\modules\organs\organ.dm" +#include "code\modules\organs\organ_external.dm" +#include "code\modules\organs\organ_external_vr.dm" +#include "code\modules\organs\organ_icon.dm" +#include "code\modules\organs\organ_stump.dm" +#include "code\modules\organs\pain.dm" +#include "code\modules\organs\robolimbs.dm" +#include "code\modules\organs\robolimbs_custom.dm" +#include "code\modules\organs\robolimbs_vr.dm" +#include "code\modules\organs\wound.dm" +#include "code\modules\organs\internal\_organ_internal.dm" +#include "code\modules\organs\internal\appendix.dm" +#include "code\modules\organs\internal\augment.dm" +#include "code\modules\organs\internal\brain.dm" +#include "code\modules\organs\internal\eyes.dm" +#include "code\modules\organs\internal\heart.dm" +#include "code\modules\organs\internal\intestine.dm" +#include "code\modules\organs\internal\kidneys.dm" +#include "code\modules\organs\internal\liver.dm" +#include "code\modules\organs\internal\lungs.dm" +#include "code\modules\organs\internal\spleen.dm" +#include "code\modules\organs\internal\stomach.dm" +#include "code\modules\organs\internal\voicebox.dm" +#include "code\modules\organs\internal\augment\armmounted.dm" +#include "code\modules\organs\internal\augment\bio.dm" +#include "code\modules\organs\internal\robotic\diagnostic.dm" +#include "code\modules\organs\internal\robotic\heatsink.dm" +#include "code\modules\organs\internal\robotic\robotic.dm" +#include "code\modules\organs\subtypes\diona.dm" +#include "code\modules\organs\subtypes\indestructible.dm" +#include "code\modules\organs\subtypes\machine.dm" +#include "code\modules\organs\subtypes\nano.dm" +#include "code\modules\organs\subtypes\replicant.dm" +#include "code\modules\organs\subtypes\shadekin.dm" +#include "code\modules\organs\subtypes\shadekin_vr.dm" +#include "code\modules\organs\subtypes\slime.dm" +#include "code\modules\organs\subtypes\slime_vr.dm" +#include "code\modules\organs\subtypes\standard.dm" +#include "code\modules\organs\subtypes\standard_vr.dm" +#include "code\modules\organs\subtypes\teshari.dm" +#include "code\modules\organs\subtypes\unathi.dm" +#include "code\modules\organs\subtypes\unbreakable.dm" +#include "code\modules\organs\subtypes\unseverable.dm" +#include "code\modules\organs\subtypes\vox.dm" +#include "code\modules\organs\subtypes\vox_vr.dm" +#include "code\modules\organs\subtypes\xenos.dm" +#include "code\modules\overmap\abductor_vr.dm" +#include "code\modules\overmap\bluespace_rift_vr.dm" +#include "code\modules\overmap\champagne.dm" +#include "code\modules\overmap\helpers.dm" +#include "code\modules\overmap\overmap_object.dm" +#include "code\modules\overmap\overmap_planet.dm" +#include "code\modules\overmap\overmap_shuttle.dm" +#include "code\modules\overmap\sectors.dm" +#include "code\modules\overmap\spacetravel.dm" +#include "code\modules\overmap\turfs.dm" +#include "code\modules\overmap\disperser\disperser.dm" +#include "code\modules\overmap\disperser\disperser_charge.dm" +#include "code\modules\overmap\disperser\disperser_circuit.dm" +#include "code\modules\overmap\disperser\disperser_console.dm" +#include "code\modules\overmap\disperser\disperser_fire.dm" +#include "code\modules\overmap\events\event_handler.dm" +#include "code\modules\overmap\events\generation.dm" +#include "code\modules\overmap\events\overmap_event.dm" +#include "code\modules\overmap\ships\landable.dm" +#include "code\modules\overmap\ships\panicbutton.dm" +#include "code\modules\overmap\ships\ship.dm" +#include "code\modules\overmap\ships\computers\computer_shims.dm" +#include "code\modules\overmap\ships\computers\engine_control.dm" +#include "code\modules\overmap\ships\computers\helm.dm" +#include "code\modules\overmap\ships\computers\sensors.dm" +#include "code\modules\overmap\ships\computers\ship.dm" +#include "code\modules\overmap\ships\computers\ship_vr.dm" +#include "code\modules\overmap\ships\computers\shuttle.dm" +#include "code\modules\overmap\ships\engines\engine.dm" +#include "code\modules\overmap\ships\engines\gas_thruster.dm" +#include "code\modules\overmap\ships\engines\gas_thruster_vr.dm" +#include "code\modules\overmap\ships\engines\ion_thruster.dm" +#include "code\modules\paperwork\adminpaper.dm" +#include "code\modules\paperwork\carbonpaper.dm" +#include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\faxmachine.dm" +#include "code\modules\paperwork\faxmachine_vr.dm" +#include "code\modules\paperwork\filingcabinet.dm" +#include "code\modules\paperwork\folders.dm" +#include "code\modules\paperwork\handlabeler.dm" +#include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_bundle.dm" +#include "code\modules\paperwork\paper_sticky.dm" +#include "code\modules\paperwork\paperbin.dm" +#include "code\modules\paperwork\paperplane.dm" +#include "code\modules\paperwork\papershredder.dm" +#include "code\modules\paperwork\pen.dm" +#include "code\modules\paperwork\photocopier.dm" +#include "code\modules\paperwork\photography.dm" +#include "code\modules\paperwork\silicon_photography.dm" +#include "code\modules\paperwork\stamps.dm" +#include "code\modules\pda\ai.dm" +#include "code\modules\pda\app.dm" +#include "code\modules\pda\cart.dm" +#include "code\modules\pda\cart_apps.dm" +#include "code\modules\pda\cart_vr.dm" +#include "code\modules\pda\core_apps.dm" +#include "code\modules\pda\messenger.dm" +#include "code\modules\pda\messenger_plugins.dm" +#include "code\modules\pda\pda.dm" +#include "code\modules\pda\pda_subtypes.dm" +#include "code\modules\pda\pda_tgui.dm" +#include "code\modules\pda\pda_vr.dm" +#include "code\modules\pda\radio.dm" +#include "code\modules\pda\utilities.dm" +#include "code\modules\persistence\filth.dm" +#include "code\modules\persistence\graffiti.dm" +#include "code\modules\persistence\noticeboard.dm" +#include "code\modules\persistence\paintings.dm" +#include "code\modules\persistence\serialize.dm" +#include "code\modules\persistence\datum\persistence_datum.dm" +#include "code\modules\persistence\effects\filth.dm" +#include "code\modules\persistence\effects\graffiti.dm" +#include "code\modules\persistence\effects\paper.dm" +#include "code\modules\persistence\effects\paper_sticky.dm" +#include "code\modules\persistence\effects\trash.dm" +#include "code\modules\persistence\storage\smartfridge.dm" +#include "code\modules\persistence\storage\storage.dm" +#include "code\modules\planet\planet.dm" +#include "code\modules\planet\sun.dm" +#include "code\modules\planet\time.dm" +#include "code\modules\planet\virgo3b_vr.dm" +#include "code\modules\planet\virgo4_vr.dm" +#include "code\modules\planet\weather.dm" +#include "code\modules\planet\weather_vr.dm" +#include "code\modules\power\apc.dm" +#include "code\modules\power\apc_vr.dm" +#include "code\modules\power\batteryrack.dm" +#include "code\modules\power\batteryrack_vr.dm" +#include "code\modules\power\breaker_box.dm" +#include "code\modules\power\cable.dm" +#include "code\modules\power\cable_ender.dm" +#include "code\modules\power\cable_heavyduty.dm" +#include "code\modules\power\cell.dm" +#include "code\modules\power\debug_items.dm" +#include "code\modules\power\generator.dm" +#include "code\modules\power\gravitygenerator_vr.dm" +#include "code\modules\power\grid_checker.dm" +#include "code\modules\power\lighting.dm" +#include "code\modules\power\lighting_vr.dm" +#include "code\modules\power\lightswitch_vr.dm" +#include "code\modules\power\port_gen.dm" +#include "code\modules\power\port_gen_vr.dm" +#include "code\modules\power\power.dm" +#include "code\modules\power\powernet.dm" +#include "code\modules\power\smes.dm" +#include "code\modules\power\smes_construction.dm" +#include "code\modules\power\smes_vr.dm" +#include "code\modules\power\solar.dm" +#include "code\modules\power\terminal.dm" +#include "code\modules\power\tracker.dm" +#include "code\modules\power\turbine.dm" +#include "code\modules\power\antimatter\containment_jar.dm" +#include "code\modules\power\antimatter\control.dm" +#include "code\modules\power\antimatter\shielding.dm" +#include "code\modules\power\cells\device_cells.dm" +#include "code\modules\power\cells\device_cells_vr.dm" +#include "code\modules\power\cells\esoteric_cells.dm" +#include "code\modules\power\cells\power_cells.dm" +#include "code\modules\power\fusion\_setup.dm" +#include "code\modules\power\fusion\fusion_circuits.dm" +#include "code\modules\power\fusion\fusion_particle_catcher.dm" +#include "code\modules\power\fusion\fusion_reactions.dm" +#include "code\modules\power\fusion\magpower.dm" +#include "code\modules\power\fusion\core\_core.dm" +#include "code\modules\power\fusion\core\core_control.dm" +#include "code\modules\power\fusion\core\core_field.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_assembly.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_compressor.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_control.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_injector.dm" +#include "code\modules\power\fusion\gyrotron\gyrotron.dm" +#include "code\modules\power\fusion\gyrotron\gyrotron_control.dm" +#include "code\modules\power\sensors\powernet_sensor.dm" +#include "code\modules\power\sensors\sensor_monitoring.dm" +#include "code\modules\power\singularity\act.dm" +#include "code\modules\power\singularity\collector.dm" +#include "code\modules\power\singularity\containment_field.dm" +#include "code\modules\power\singularity\emitter.dm" +#include "code\modules\power\singularity\emitter_vr.dm" +#include "code\modules\power\singularity\field_generator.dm" +#include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" +#include "code\modules\power\singularity\singularity.dm" +#include "code\modules\power\singularity\particle_accelerator\particle.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_power.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_smasher.dm" +#include "code\modules\power\supermatter\setup_supermatter.dm" +#include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" +#include "code\modules\power\tesla\telsa_construction.dm" +#include "code\modules\power\tesla\tesla_act.dm" +#include "code\modules\projectiles\ammunition.dm" +#include "code\modules\projectiles\broken.dm" +#include "code\modules\projectiles\dnalocking.dm" +#include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\projectile.dm" +#include "code\modules\projectiles\ammunition\magazines.dm" +#include "code\modules\projectiles\ammunition\magazines_vr.dm" +#include "code\modules\projectiles\ammunition\magnetic.dm" +#include "code\modules\projectiles\ammunition\rounds.dm" +#include "code\modules\projectiles\ammunition\smartmag.dm" +#include "code\modules\projectiles\brokenguns\energy.dm" +#include "code\modules\projectiles\brokenguns\launcher.dm" +#include "code\modules\projectiles\brokenguns\magnetic.dm" +#include "code\modules\projectiles\brokenguns\projectile.dm" +#include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\launcher.dm" +#include "code\modules\projectiles\guns\magic.dm" +#include "code\modules\projectiles\guns\modular_guns.dm" +#include "code\modules\projectiles\guns\projectile.dm" +#include "code\modules\projectiles\guns\vox.dm" +#include "code\modules\projectiles\guns\energy\bsharpoon_vr.dm" +#include "code\modules\projectiles\guns\energy\crestrose_vr.dm" +#include "code\modules\projectiles\guns\energy\dominator_vr.dm" +#include "code\modules\projectiles\guns\energy\gunsword_vr.dm" +#include "code\modules\projectiles\guns\energy\hooklauncher.dm" +#include "code\modules\projectiles\guns\energy\kinetic_accelerator_vr.dm" +#include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\laser_vr.dm" +#include "code\modules\projectiles\guns\energy\netgun_vr.dm" +#include "code\modules\projectiles\guns\energy\nuclear.dm" +#include "code\modules\projectiles\guns\energy\nuclear_vr.dm" +#include "code\modules\projectiles\guns\energy\particle.dm" +#include "code\modules\projectiles\guns\energy\phase.dm" +#include "code\modules\projectiles\guns\energy\protector_vr.dm" +#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\pummeler_vr.dm" +#include "code\modules\projectiles\guns\energy\sickshot_vr.dm" +#include "code\modules\projectiles\guns\energy\special.dm" +#include "code\modules\projectiles\guns\energy\special_vr.dm" +#include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\energy\stun_vr.dm" +#include "code\modules\projectiles\guns\energy\temperature.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\cell_loaded.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m_cells.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon_cells.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw_cells.dm" +#include "code\modules\projectiles\guns\launcher\bows.dm" +#include "code\modules\projectiles\guns\launcher\crossbow.dm" +#include "code\modules\projectiles\guns\launcher\grenade_launcher.dm" +#include "code\modules\projectiles\guns\launcher\pneumatic.dm" +#include "code\modules\projectiles\guns\launcher\rocket.dm" +#include "code\modules\projectiles\guns\launcher\syringe_gun.dm" +#include "code\modules\projectiles\guns\magic\fireball.dm" +#include "code\modules\projectiles\guns\magnetic\bore.dm" +#include "code\modules\projectiles\guns\magnetic\gasthrower.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic_construction.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic_railgun.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic_railgun_vr.dm" +#include "code\modules\projectiles\guns\projectile\automatic.dm" +#include "code\modules\projectiles\guns\projectile\automatic_vr.dm" +#include "code\modules\projectiles\guns\projectile\boltaction.dm" +#include "code\modules\projectiles\guns\projectile\boltaction_vr.dm" +#include "code\modules\projectiles\guns\projectile\caseless.dm" +#include "code\modules\projectiles\guns\projectile\contender.dm" +#include "code\modules\projectiles\guns\projectile\dartgun.dm" +#include "code\modules\projectiles\guns\projectile\dartgun_vr.dm" +#include "code\modules\projectiles\guns\projectile\pistol.dm" +#include "code\modules\projectiles\guns\projectile\pistol_vr.dm" +#include "code\modules\projectiles\guns\projectile\revolver.dm" +#include "code\modules\projectiles\guns\projectile\revolver_vr.dm" +#include "code\modules\projectiles\guns\projectile\semiauto.dm" +#include "code\modules\projectiles\guns\projectile\shotgun.dm" +#include "code\modules\projectiles\guns\projectile\shotgun_vr.dm" +#include "code\modules\projectiles\guns\projectile\sniper.dm" +#include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm" +#include "code\modules\projectiles\projectile\arc.dm" +#include "code\modules\projectiles\projectile\beams.dm" +#include "code\modules\projectiles\projectile\beams_vr.dm" +#include "code\modules\projectiles\projectile\blob.dm" +#include "code\modules\projectiles\projectile\bullets.dm" +#include "code\modules\projectiles\projectile\bullets_vr.dm" +#include "code\modules\projectiles\projectile\change.dm" +#include "code\modules\projectiles\projectile\energy.dm" +#include "code\modules\projectiles\projectile\energy_vr.dm" +#include "code\modules\projectiles\projectile\explosive.dm" +#include "code\modules\projectiles\projectile\force.dm" +#include "code\modules\projectiles\projectile\hook.dm" +#include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\magnetic.dm" +#include "code\modules\projectiles\projectile\pellets.dm" +#include "code\modules\projectiles\projectile\scatter.dm" +#include "code\modules\projectiles\projectile\special.dm" +#include "code\modules\projectiles\projectile\trace.dm" +#include "code\modules\projectiles\targeting\targeting_client.dm" +#include "code\modules\projectiles\targeting\targeting_gun.dm" +#include "code\modules\projectiles\targeting\targeting_mob.dm" +#include "code\modules\projectiles\targeting\targeting_overlay.dm" +#include "code\modules\projectiles\targeting\targeting_triggers.dm" +#include "code\modules\radiation\radiation.dm" +#include "code\modules\random_map\_random_map_setup.dm" +#include "code\modules\random_map\random_map.dm" +#include "code\modules\random_map\random_map_verbs.dm" +#include "code\modules\random_map\automata\automata.dm" +#include "code\modules\random_map\automata\caves.dm" +#include "code\modules\random_map\building\building.dm" +#include "code\modules\random_map\drop\drop_types.dm" +#include "code\modules\random_map\drop\droppod.dm" +#include "code\modules\random_map\drop\droppod_doors.dm" +#include "code\modules\random_map\drop\supply.dm" +#include "code\modules\random_map\mazes\maze.dm" +#include "code\modules\random_map\mazes\maze_cell.dm" +#include "code\modules\random_map\noise\desert.dm" +#include "code\modules\random_map\noise\noise.dm" +#include "code\modules\random_map\noise\ore.dm" +#include "code\modules\random_map\noise\tundra.dm" +#include "code\modules\reagents\Chemistry-Colours.dm" +#include "code\modules\reagents\Chemistry-Logging.dm" +#include "code\modules\reagents\Chemistry-Metabolism.dm" +#include "code\modules\reagents\holder\distilling.dm" +#include "code\modules\reagents\holder\holder.dm" +#include "code\modules\reagents\hoses\connector.dm" +#include "code\modules\reagents\hoses\hose.dm" +#include "code\modules\reagents\hoses\hose_connector.dm" +#include "code\modules\reagents\machinery\chem_master.dm" +#include "code\modules\reagents\machinery\chemalyzer.dm" +#include "code\modules\reagents\machinery\distillery.dm" +#include "code\modules\reagents\machinery\grinder.dm" +#include "code\modules\reagents\machinery\dispenser\_defines.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge_presets.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge_presets_vr.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge_spawn.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser2.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser2_energy.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser_presets.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser_presets_vr.dm" +#include "code\modules\reagents\machinery\dispenser\reagent_tank.dm" +#include "code\modules\reagents\machinery\dispenser\supply.dm" +#include "code\modules\reagents\reactions\_reactions.dm" +#include "code\modules\reagents\reactions\distilling\distilling.dm" +#include "code\modules\reagents\reactions\fusion\fusion.dm" +#include "code\modules\reagents\reactions\instant\drinks.dm" +#include "code\modules\reagents\reactions\instant\drinks_vr.dm" +#include "code\modules\reagents\reactions\instant\food.dm" +#include "code\modules\reagents\reactions\instant\food_vr.dm" +#include "code\modules\reagents\reactions\instant\instant.dm" +#include "code\modules\reagents\reactions\instant\instant_vr.dm" +#include "code\modules\reagents\reagent_containers\_reagent_containers.dm" +#include "code\modules\reagents\reagent_containers\blood_pack.dm" +#include "code\modules\reagents\reagent_containers\blood_pack_vr.dm" +#include "code\modules\reagents\reagent_containers\borghypo.dm" +#include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\glass.dm" +#include "code\modules\reagents\reagent_containers\glass_vr.dm" +#include "code\modules\reagents\reagent_containers\hypospray.dm" +#include "code\modules\reagents\reagent_containers\hypospray_vr.dm" +#include "code\modules\reagents\reagent_containers\patch.dm" +#include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\pill_vr.dm" +#include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\spray_vr.dm" +#include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\reagents\reagent_containers\syringes_vr.dm" +#include "code\modules\reagents\reagent_containers\unidentified_hypospray.dm" +#include "code\modules\reagents\reagents\_helpers.dm" +#include "code\modules\reagents\reagents\_reagents.dm" +#include "code\modules\reagents\reagents\core.dm" +#include "code\modules\reagents\reagents\dispenser.dm" +#include "code\modules\reagents\reagents\food_drinks.dm" +#include "code\modules\reagents\reagents\food_drinks_vr.dm" +#include "code\modules\reagents\reagents\medicine.dm" +#include "code\modules\reagents\reagents\medicine_vr.dm" +#include "code\modules\reagents\reagents\modifiers.dm" +#include "code\modules\reagents\reagents\other.dm" +#include "code\modules\reagents\reagents\other_vr.dm" +#include "code\modules\reagents\reagents\toxins.dm" +#include "code\modules\reagents\reagents\vore_vr.dm" +#include "code\modules\recycling\conveyor2.dm" +#include "code\modules\recycling\disposal-construction.dm" +#include "code\modules\recycling\disposal.dm" +#include "code\modules\recycling\sortingmachinery.dm" +#include "code\modules\research\circuitprinter.dm" +#include "code\modules\research\designs.dm" +#include "code\modules\research\destructive_analyzer.dm" +#include "code\modules\research\mechfab_designs.dm" +#include "code\modules\research\message_server.dm" +#include "code\modules\research\prosfab_designs.dm" +#include "code\modules\research\prosfab_designs_vr.dm" +#include "code\modules\research\protolathe.dm" +#include "code\modules\research\rd-readme.dm" +#include "code\modules\research\rdconsole.dm" +#include "code\modules\research\rdconsole_tgui.dm" +#include "code\modules\research\rdmachines.dm" +#include "code\modules\research\research.dm" +#include "code\modules\research\server.dm" +#include "code\modules\research\teleport_vr.dm" +#include "code\modules\research\designs\ai_holders.dm" +#include "code\modules\research\designs\bag_of_holding.dm" +#include "code\modules\research\designs\beakers.dm" +#include "code\modules\research\designs\bio_devices.dm" +#include "code\modules\research\designs\bio_devices_vr.dm" +#include "code\modules\research\designs\circuit_assembly.dm" +#include "code\modules\research\designs\engineering.dm" +#include "code\modules\research\designs\HUDs.dm" +#include "code\modules\research\designs\HUDs_vr.dm" +#include "code\modules\research\designs\implants.dm" +#include "code\modules\research\designs\implants_vr.dm" +#include "code\modules\research\designs\locator_devices.dm" +#include "code\modules\research\designs\medical.dm" +#include "code\modules\research\designs\medical_vr.dm" +#include "code\modules\research\designs\mining_toys.dm" +#include "code\modules\research\designs\misc.dm" +#include "code\modules\research\designs\misc_vr.dm" +#include "code\modules\research\designs\modular_computer.dm" +#include "code\modules\research\designs\pdas.dm" +#include "code\modules\research\designs\power_cells.dm" +#include "code\modules\research\designs\precursor.dm" +#include "code\modules\research\designs\stock_parts.dm" +#include "code\modules\research\designs\subspace_parts.dm" +#include "code\modules\research\designs\tech_disks.dm" +#include "code\modules\research\designs\weapons.dm" +#include "code\modules\research\designs\weapons_vr.dm" +#include "code\modules\research\designs\xenoarch_toys.dm" +#include "code\modules\research\designs\xenobio_toys.dm" +#include "code\modules\research\designs\circuits\ai_modules.dm" +#include "code\modules\research\designs\circuits\ai_modules_vr.dm" +#include "code\modules\research\designs\circuits\circuits.dm" +#include "code\modules\research\designs\circuits\circuits_vr.dm" +#include "code\modules\research\designs\circuits\disks.dm" +#include "code\modules\resleeving\circuitboards.dm" +#include "code\modules\resleeving\computers.dm" +#include "code\modules\resleeving\designer.dm" +#include "code\modules\resleeving\documents.dm" +#include "code\modules\resleeving\implant.dm" +#include "code\modules\resleeving\infocore_records.dm" +#include "code\modules\resleeving\infomorph.dm" +#include "code\modules\resleeving\infomorph_software.dm" +#include "code\modules\resleeving\machines.dm" +#include "code\modules\resleeving\machines_vr.dm" +#include "code\modules\resleeving\resleeving_sickness.dm" +#include "code\modules\resleeving\sleevecard.dm" +#include "code\modules\rogueminer_vr\asteroid.dm" +#include "code\modules\rogueminer_vr\controller.dm" +#include "code\modules\rogueminer_vr\debug.dm" +#include "code\modules\rogueminer_vr\landmarks.dm" +#include "code\modules\rogueminer_vr\roguemines_mobs.dm" +#include "code\modules\rogueminer_vr\wrappers.dm" +#include "code\modules\rogueminer_vr\zone_console.dm" +#include "code\modules\rogueminer_vr\zonemaster.dm" +#include "code\modules\scripting\Errors.dm" +#include "code\modules\scripting\IDE.dm" +#include "code\modules\scripting\Options.dm" +#include "code\modules\scripting\stack.dm" +#include "code\modules\scripting\AST\AST Nodes.dm" +#include "code\modules\scripting\AST\Blocks.dm" +#include "code\modules\scripting\AST\Statements.dm" +#include "code\modules\scripting\AST\Operators\Binary Operators.dm" +#include "code\modules\scripting\AST\Operators\Unary Operators.dm" +#include "code\modules\scripting\Implementations\_Logic.dm" +#include "code\modules\scripting\Implementations\Telecomms.dm" +#include "code\modules\scripting\Interpreter\Evaluation.dm" +#include "code\modules\scripting\Interpreter\Interaction.dm" +#include "code\modules\scripting\Interpreter\Interpreter.dm" +#include "code\modules\scripting\Interpreter\Scope.dm" +#include "code\modules\scripting\Parser\Expressions.dm" +#include "code\modules\scripting\Parser\Keywords.dm" +#include "code\modules\scripting\Parser\Parser.dm" +#include "code\modules\scripting\Scanner\Scanner.dm" +#include "code\modules\scripting\Scanner\Tokens.dm" +#include "code\modules\security levels\keycard authentication.dm" +#include "code\modules\security levels\security levels.dm" +#include "code\modules\shieldgen\directional_shield.dm" +#include "code\modules\shieldgen\emergency_shield.dm" +#include "code\modules\shieldgen\energy_field.dm" +#include "code\modules\shieldgen\energy_shield.dm" +#include "code\modules\shieldgen\handheld_defuser.dm" +#include "code\modules\shieldgen\sheldwallgen.dm" +#include "code\modules\shieldgen\shield_capacitor.dm" +#include "code\modules\shieldgen\shield_diffuser.dm" +#include "code\modules\shieldgen\shield_gen.dm" +#include "code\modules\shieldgen\shield_gen_external.dm" +#include "code\modules\shieldgen\shield_generator.dm" +#include "code\modules\shieldgen\shield_modes.dm" +#include "code\modules\shuttles\antagonist.dm" +#include "code\modules\shuttles\crashes.dm" +#include "code\modules\shuttles\departmental.dm" +#include "code\modules\shuttles\escape_pods.dm" +#include "code\modules\shuttles\landmarks.dm" +#include "code\modules\shuttles\shuttle.dm" +#include "code\modules\shuttles\shuttle_autodock.dm" +#include "code\modules\shuttles\shuttle_console.dm" +#include "code\modules\shuttles\shuttle_console_multi.dm" +#include "code\modules\shuttles\shuttle_emergency.dm" +#include "code\modules\shuttles\shuttle_ferry.dm" +#include "code\modules\shuttles\shuttle_specops.dm" +#include "code\modules\shuttles\shuttle_supply.dm" +#include "code\modules\shuttles\shuttles_multi.dm" +#include "code\modules\shuttles\shuttles_vr.dm" +#include "code\modules\shuttles\shuttles_web.dm" +#include "code\modules\shuttles\web_datums.dm" +#include "code\modules\spells\artifacts.dm" +#include "code\modules\spells\construct_spells.dm" +#include "code\modules\spells\no_clothes.dm" +#include "code\modules\spells\spell_code.dm" +#include "code\modules\spells\spell_projectile.dm" +#include "code\modules\spells\spellbook.dm" +#include "code\modules\spells\spells.dm" +#include "code\modules\spells\aoe_turf\aoe_turf.dm" +#include "code\modules\spells\aoe_turf\blink.dm" +#include "code\modules\spells\aoe_turf\charge.dm" +#include "code\modules\spells\aoe_turf\disable_tech.dm" +#include "code\modules\spells\aoe_turf\knock.dm" +#include "code\modules\spells\aoe_turf\smoke.dm" +#include "code\modules\spells\aoe_turf\summons.dm" +#include "code\modules\spells\aoe_turf\conjure\conjure.dm" +#include "code\modules\spells\aoe_turf\conjure\construct.dm" +#include "code\modules\spells\aoe_turf\conjure\forcewall.dm" +#include "code\modules\spells\general\area_teleport.dm" +#include "code\modules\spells\general\rune_write.dm" +#include "code\modules\spells\targeted\ethereal_jaunt.dm" +#include "code\modules\spells\targeted\genetic.dm" +#include "code\modules\spells\targeted\harvest.dm" +#include "code\modules\spells\targeted\mind_transfer.dm" +#include "code\modules\spells\targeted\shift.dm" +#include "code\modules\spells\targeted\subjugate.dm" +#include "code\modules\spells\targeted\targeted.dm" +#include "code\modules\spells\targeted\equip\equip.dm" +#include "code\modules\spells\targeted\equip\horsemask.dm" +#include "code\modules\spells\targeted\projectile\dumbfire.dm" +#include "code\modules\spells\targeted\projectile\fireball.dm" +#include "code\modules\spells\targeted\projectile\magic_missile.dm" +#include "code\modules\spells\targeted\projectile\projectile.dm" +#include "code\modules\surgery\_defines.dm" +#include "code\modules\surgery\bones.dm" +#include "code\modules\surgery\encased.dm" +#include "code\modules\surgery\external_repair.dm" +#include "code\modules\surgery\face.dm" +#include "code\modules\surgery\generic.dm" +#include "code\modules\surgery\implant.dm" +#include "code\modules\surgery\limb_reattach.dm" +#include "code\modules\surgery\neck.dm" +#include "code\modules\surgery\organs_internal.dm" +#include "code\modules\surgery\other.dm" +#include "code\modules\surgery\robotics.dm" +#include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\~defines.dm" +#include "code\modules\tables\bench.dm" +#include "code\modules\tables\flipping.dm" +#include "code\modules\tables\interactions.dm" +#include "code\modules\tables\presets.dm" +#include "code\modules\tables\presets_vr.dm" +#include "code\modules\tables\rack.dm" +#include "code\modules\tables\rack_vr.dm" +#include "code\modules\tables\tables.dm" +#include "code\modules\tables\update_triggers.dm" +#include "code\modules\telesci\bscyrstal.dm" +#include "code\modules\telesci\construction.dm" +#include "code\modules\telesci\gps_advanced.dm" +#include "code\modules\telesci\quantum_pad.dm" +#include "code\modules\telesci\telepad.dm" +#include "code\modules\telesci\telesci_computer.dm" +#include "code\modules\tension\tension.dm" +#include "code\modules\tgs\includes.dm" +#include "code\modules\tgui\external.dm" +#include "code\modules\tgui\modal.dm" +#include "code\modules\tgui\states.dm" +#include "code\modules\tgui\tgui.dm" +#include "code\modules\tgui\tgui_alert.dm" +#include "code\modules\tgui\tgui_input_list.dm" +#include "code\modules\tgui\tgui_input_text.dm" +#include "code\modules\tgui\tgui_window.dm" +#include "code\modules\tgui\modules\_base.dm" +#include "code\modules\tgui\modules\admin_shuttle_controller.dm" +#include "code\modules\tgui\modules\agentcard.dm" +#include "code\modules\tgui\modules\alarm.dm" +#include "code\modules\tgui\modules\appearance_changer.dm" +#include "code\modules\tgui\modules\appearance_changer_vr.dm" +#include "code\modules\tgui\modules\atmos_control.dm" +#include "code\modules\tgui\modules\camera.dm" +#include "code\modules\tgui\modules\communications.dm" +#include "code\modules\tgui\modules\crew_manifest.dm" +#include "code\modules\tgui\modules\crew_monitor.dm" +#include "code\modules\tgui\modules\gyrotron_control.dm" +#include "code\modules\tgui\modules\law_manager.dm" +#include "code\modules\tgui\modules\overmap.dm" +#include "code\modules\tgui\modules\power_monitor.dm" +#include "code\modules\tgui\modules\rcon.dm" +#include "code\modules\tgui\modules\rustcore_monitor.dm" +#include "code\modules\tgui\modules\rustfuel_control.dm" +#include "code\modules\tgui\modules\shutoff_monitor.dm" +#include "code\modules\tgui\modules\supermatter_monitor.dm" +#include "code\modules\tgui\modules\teleporter.dm" +#include "code\modules\tgui\modules\ntos-only\cardmod.dm" +#include "code\modules\tgui\modules\ntos-only\configurator.dm" +#include "code\modules\tgui\modules\ntos-only\email.dm" +#include "code\modules\tgui\modules\ntos-only\uav.dm" +#include "code\modules\tgui\states\admin.dm" +#include "code\modules\tgui\states\always.dm" +#include "code\modules\tgui\states\conscious.dm" +#include "code\modules\tgui\states\contained.dm" +#include "code\modules\tgui\states\deep_inventory.dm" +#include "code\modules\tgui\states\default.dm" +#include "code\modules\tgui\states\hands.dm" +#include "code\modules\tgui\states\human_adjacent.dm" +#include "code\modules\tgui\states\inventory.dm" +#include "code\modules\tgui\states\inventory_vr.dm" +#include "code\modules\tgui\states\not_incapacitated.dm" +#include "code\modules\tgui\states\notcontained.dm" +#include "code\modules\tgui\states\observer.dm" +#include "code\modules\tgui\states\physical.dm" +#include "code\modules\tgui\states\self.dm" +#include "code\modules\tgui\states\vorepanel_vr.dm" +#include "code\modules\tgui\states\zlevel.dm" +#include "code\modules\tooltip\tooltip.dm" +#include "code\modules\turbolift\_turbolift.dm" +#include "code\modules\turbolift\turbolift.dm" +#include "code\modules\turbolift\turbolift_areas.dm" +#include "code\modules\turbolift\turbolift_console.dm" +#include "code\modules\turbolift\turbolift_console_vr.dm" +#include "code\modules\turbolift\turbolift_door.dm" +#include "code\modules\turbolift\turbolift_door_vr.dm" +#include "code\modules\turbolift\turbolift_floor.dm" +#include "code\modules\turbolift\turbolift_map.dm" +#include "code\modules\turbolift\turbolift_turfs.dm" +#include "code\modules\vchat\vchat_client.dm" +#include "code\modules\vchat\vchat_db.dm" +#include "code\modules\vehicles\bike.dm" +#include "code\modules\vehicles\boat.dm" +#include "code\modules\vehicles\cargo_train.dm" +#include "code\modules\vehicles\construction.dm" +#include "code\modules\vehicles\quad.dm" +#include "code\modules\vehicles\train.dm" +#include "code\modules\vehicles\vehicle.dm" +#include "code\modules\ventcrawl\ventcrawl.dm" +#include "code\modules\ventcrawl\ventcrawl_atmospherics.dm" +#include "code\modules\ventcrawl\ventcrawl_multiz.dm" +#include "code\modules\ventcrawl\ventcrawl_verb.dm" +#include "code\modules\virus2\admin.dm" +#include "code\modules\virus2\analyser.dm" +#include "code\modules\virus2\antibodies.dm" +#include "code\modules\virus2\centrifuge.dm" +#include "code\modules\virus2\curer.dm" +#include "code\modules\virus2\disease2.dm" +#include "code\modules\virus2\diseasesplicer.dm" +#include "code\modules\virus2\dishincubator.dm" +#include "code\modules\virus2\effect.dm" +#include "code\modules\virus2\effect_vr.dm" +#include "code\modules\virus2\helpers.dm" +#include "code\modules\virus2\isolator.dm" +#include "code\modules\virus2\items_devices.dm" +#include "code\modules\vore\hook-defs_vr.dm" +#include "code\modules\vore\trycatch_vr.dm" +#include "code\modules\vore\appearance\preferences_vr.dm" +#include "code\modules\vore\appearance\update_icons_vr.dm" +#include "code\modules\vore\eating\belly_dat_vr.dm" +#include "code\modules\vore\eating\belly_obj_vr.dm" +#include "code\modules\vore\eating\bellymodes_datum_vr.dm" +#include "code\modules\vore\eating\bellymodes_vr.dm" +#include "code\modules\vore\eating\contaminate_vr.dm" +#include "code\modules\vore\eating\digest_act_vr.dm" +#include "code\modules\vore\eating\leave_remains_vr.dm" +#include "code\modules\vore\eating\living_vr.dm" +#include "code\modules\vore\eating\silicon_vr.dm" +#include "code\modules\vore\eating\simple_animal_vr.dm" +#include "code\modules\vore\eating\transforming_vr.dm" +#include "code\modules\vore\eating\vore_vr.dm" +#include "code\modules\vore\eating\vorehooks_vr.dm" +#include "code\modules\vore\eating\vorepanel_vr.dm" +#include "code\modules\vore\fluffstuff\custom_boxes_vr.dm" +#include "code\modules\vore\fluffstuff\custom_clothes_vr.dm" +#include "code\modules\vore\fluffstuff\custom_items_vr.dm" +#include "code\modules\vore\fluffstuff\custom_mecha_vr.dm" +#include "code\modules\vore\fluffstuff\custom_permits_vr.dm" +#include "code\modules\vore\persist\persist_vr.dm" +#include "code\modules\vore\resizing\grav_pull_vr.dm" +#include "code\modules\vore\resizing\holder_micro_vr.dm" +#include "code\modules\vore\resizing\resize_vr.dm" +#include "code\modules\vore\resizing\sizegun_vr.dm" +#include "code\modules\vore\smoleworld\smoleworld_vr.dm" +#include "code\modules\vore\weight\fitness_machines_vr.dm" +#include "code\modules\webhooks\_webhook.dm" +#include "code\modules\webhooks\webhook_ahelp2discord.dm" +#include "code\modules\webhooks\webhook_custom_event.dm" +#include "code\modules\webhooks\webhook_fax2discord.dm" +#include "code\modules\webhooks\webhook_roundend.dm" +#include "code\modules\webhooks\webhook_roundprep.dm" +#include "code\modules\webhooks\webhook_roundstart.dm" +#include "code\modules\xenoarcheaology\anomaly_container.dm" +#include "code\modules\xenoarcheaology\boulder.dm" +#include "code\modules\xenoarcheaology\effect.dm" +#include "code\modules\xenoarcheaology\manuals.dm" +#include "code\modules\xenoarcheaology\misc.dm" +#include "code\modules\xenoarcheaology\sampling.dm" +#include "code\modules\xenoarcheaology\artifacts\artifact.dm" +#include "code\modules\xenoarcheaology\artifacts\artifact_find.dm" +#include "code\modules\xenoarcheaology\artifacts\artifact_vr.dm" +#include "code\modules\xenoarcheaology\artifacts\autocloner.dm" +#include "code\modules\xenoarcheaology\artifacts\crystal.dm" +#include "code\modules\xenoarcheaology\artifacts\gigadrill.dm" +#include "code\modules\xenoarcheaology\artifacts\replicator.dm" +#include "code\modules\xenoarcheaology\artifacts\predefined\_predefined.dm" +#include "code\modules\xenoarcheaology\artifacts\predefined\hungry_statue.dm" +#include "code\modules\xenoarcheaology\effects\animate_anomaly.dm" +#include "code\modules\xenoarcheaology\effects\badfeeling.dm" +#include "code\modules\xenoarcheaology\effects\berserk.dm" +#include "code\modules\xenoarcheaology\effects\cannibal.dm" +#include "code\modules\xenoarcheaology\effects\cellcharge.dm" +#include "code\modules\xenoarcheaology\effects\celldrain.dm" +#include "code\modules\xenoarcheaology\effects\cold.dm" +#include "code\modules\xenoarcheaology\effects\dnaswitch.dm" +#include "code\modules\xenoarcheaology\effects\electric_field.dm" +#include "code\modules\xenoarcheaology\effects\emp.dm" +#include "code\modules\xenoarcheaology\effects\feysight.dm" +#include "code\modules\xenoarcheaology\effects\forcefield.dm" +#include "code\modules\xenoarcheaology\effects\gaia.dm" +#include "code\modules\xenoarcheaology\effects\gasco2.dm" +#include "code\modules\xenoarcheaology\effects\gasnitro.dm" +#include "code\modules\xenoarcheaology\effects\gasoxy.dm" +#include "code\modules\xenoarcheaology\effects\gasphoron.dm" +#include "code\modules\xenoarcheaology\effects\gassleeping.dm" +#include "code\modules\xenoarcheaology\effects\goodfeeling.dm" +#include "code\modules\xenoarcheaology\effects\gravitational_waves.dm" +#include "code\modules\xenoarcheaology\effects\heal.dm" +#include "code\modules\xenoarcheaology\effects\heat.dm" +#include "code\modules\xenoarcheaology\effects\hurt.dm" +#include "code\modules\xenoarcheaology\effects\poltergeist.dm" +#include "code\modules\xenoarcheaology\effects\radiate.dm" +#include "code\modules\xenoarcheaology\effects\resurrect.dm" +#include "code\modules\xenoarcheaology\effects\roboheal.dm" +#include "code\modules\xenoarcheaology\effects\robohurt.dm" +#include "code\modules\xenoarcheaology\effects\sleepy.dm" +#include "code\modules\xenoarcheaology\effects\stun.dm" +#include "code\modules\xenoarcheaology\effects\teleport.dm" +#include "code\modules\xenoarcheaology\effects\vampire.dm" +#include "code\modules\xenoarcheaology\finds\eguns.dm" +#include "code\modules\xenoarcheaology\finds\eguns_vr.dm" +#include "code\modules\xenoarcheaology\finds\find_spawning.dm" +#include "code\modules\xenoarcheaology\finds\finds.dm" +#include "code\modules\xenoarcheaology\finds\finds_defines.dm" +#include "code\modules\xenoarcheaology\finds\fossils.dm" +#include "code\modules\xenoarcheaology\finds\misc.dm" +#include "code\modules\xenoarcheaology\finds\special.dm" +#include "code\modules\xenoarcheaology\finds\talking.dm" +#include "code\modules\xenoarcheaology\tools\ano_device_battery.dm" +#include "code\modules\xenoarcheaology\tools\artifact_analyser.dm" +#include "code\modules\xenoarcheaology\tools\artifact_harvester.dm" +#include "code\modules\xenoarcheaology\tools\artifact_scanner.dm" +#include "code\modules\xenoarcheaology\tools\coolant_tank.dm" +#include "code\modules\xenoarcheaology\tools\equipment.dm" +#include "code\modules\xenoarcheaology\tools\geosample_scanner.dm" +#include "code\modules\xenoarcheaology\tools\suspension_generator.dm" +#include "code\modules\xenoarcheaology\tools\tools.dm" +#include "code\modules\xenoarcheaology\tools\tools_pickaxe.dm" +#include "code\modules\xenoarcheaology\tools\tools_pickaxe_vr.dm" +#include "code\modules\xenoarcheaology\tools\tools_vr.dm" +#include "code\modules\xenobio\items\extracts.dm" +#include "code\modules\xenobio\items\slime_objects.dm" +#include "code\modules\xenobio\items\slimepotions.dm" +#include "code\modules\xenobio\items\weapons.dm" +#include "code\modules\xenobio\machinery\processor.dm" +#include "code\modules\xgm\xgm_gas_data.dm" +#include "code\modules\xgm\xgm_gas_mixture.dm" +#include "code\unit_tests\decl_tests.dm" +#include "code\unit_tests\language_tests.dm" +#include "code\unit_tests\loadout_tests.dm" +#include "code\unit_tests\map_tests.dm" +#include "code\unit_tests\material_tests.dm" +#include "code\unit_tests\mob_tests.dm" +#include "code\unit_tests\recipe_tests.dm" +#include "code\unit_tests\research_tests.dm" +#include "code\unit_tests\sqlite_tests.dm" +#include "code\unit_tests\subsystem_tests.dm" +#include "code\unit_tests\unit_test.dm" +#include "code\unit_tests\unit_test_vr.dm" +#include "code\unit_tests\vore_tests_vr.dm" +#include "code\unit_tests\zas_tests.dm" +#include "code\unit_tests\integrated_circuits\arithmetic.dm" +#include "code\unit_tests\integrated_circuits\circuits.dm" +#include "code\unit_tests\integrated_circuits\converter.dm" +#include "code\unit_tests\integrated_circuits\logic.dm" +#include "code\unit_tests\integrated_circuits\trig.dm" +#include "code\ZAS\Airflow.dm" +#include "code\ZAS\Atom.dm" +#include "code\ZAS\Connection.dm" +#include "code\ZAS\ConnectionGroup.dm" +#include "code\ZAS\ConnectionManager.dm" +#include "code\ZAS\Controller.dm" +#include "code\ZAS\Debug.dm" +#include "code\ZAS\Diagnostic.dm" +#include "code\ZAS\Fire.dm" +#include "code\ZAS\Phoron.dm" +#include "code\ZAS\Turf.dm" +#include "code\ZAS\Variable Settings.dm" +#include "code\ZAS\Zone.dm" +#include "interface\interface.dm" +#include "interface\skin.dmf" +#include "maps\gateway_archive_vr\blackmarketpackers.dm" +#include "maps\offmap_vr\om_ships\abductor.dm" +#include "maps\southern_cross\items\clothing\sc_accessory.dm" +#include "maps\southern_cross\items\clothing\sc_suit.dm" +#include "maps\southern_cross\items\clothing\sc_under.dm" +#include "maps\southern_cross\loadout\loadout_suit.dm" +#include "maps\southern_cross\loadout\loadout_uniform.dm" +#include "maps\southern_cross\loadout\loadout_vr.dm" +#include "maps\submaps\_helpers.dm" +#include "maps\submaps\_readme.dm" +#include "maps\submaps\engine_submaps\engine.dm" +#include "maps\submaps\engine_submaps\engine_areas.dm" +#include "maps\submaps\engine_submaps_vr\tether\_engine_submaps.dm" +#include "maps\submaps\space_submaps\space.dm" +#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm" +#include "maps\submaps\surface_submaps\mountains\mountains.dm" +#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm" +#include "maps\submaps\surface_submaps\mountains\mountains_areas_vr.dm" +#include "maps\submaps\surface_submaps\plains\plains.dm" +#include "maps\submaps\surface_submaps\plains\plains_areas.dm" +#include "maps\submaps\surface_submaps\wilderness\wilderness.dm" +#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" +#include "maps\tether\tether.dm" +#include "maps\~map_system\maps.dm" +// END_INCLUDE +======= +// DM Environment file for baystation12.dme. +// All manual changes should be made outside the BEGIN_ and END_ blocks. + // New source code should be placed in .dm files: choose File/New --> Code File. +// BEGIN_INTERNALS +// END_INTERNALS +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR +// BEGIN_PREFERENCES +#define DEBUG +// END_PREFERENCES +// BEGIN_INCLUDE +#include "code\_away_mission_tests.dm" +#include "code\_macros.dm" +#include "code\_macros_vr.dm" +#include "code\_map_tests.dm" +#include "code\_unit_tests.dm" +#include "code\global.dm" +#include "code\global_init.dm" +#include "code\global_vr.dm" +#include "code\hub.dm" +#include "code\names.dm" +#include "code\stylesheet.dm" +#include "code\world.dm" +#include "code\__datastructures\globals.dm" +#include "code\__defines\__513_compatibility.dm" +#include "code\__defines\_compile_options.dm" +#include "code\__defines\_lists.dm" +#include "code\__defines\_planes+layers.dm" +#include "code\__defines\_planes+layers_vr.dm" +#include "code\__defines\_protect.dm" +#include "code\__defines\_tick.dm" +#include "code\__defines\admin.dm" +#include "code\__defines\admin_vr.dm" +#include "code\__defines\appearance.dm" +#include "code\__defines\atmos.dm" +#include "code\__defines\belly_modes_vr.dm" +#include "code\__defines\callbacks.dm" +#include "code\__defines\chemistry.dm" +#include "code\__defines\chemistry_vr.dm" +#include "code\__defines\color.dm" +#include "code\__defines\construction.dm" +#include "code\__defines\crafting.dm" +#include "code\__defines\damage_organs.dm" +#include "code\__defines\dna.dm" +#include "code\__defines\exosuit_fab.dm" +#include "code\__defines\flags.dm" +#include "code\__defines\gamemode.dm" +#include "code\__defines\holomap.dm" +#include "code\__defines\hoses.dm" +#include "code\__defines\input.dm" +#include "code\__defines\instruments.dm" +#include "code\__defines\integrated_circuits.dm" +#include "code\__defines\inventory_sizes.dm" +#include "code\__defines\is_helpers.dm" +#include "code\__defines\items_clothing.dm" +#include "code\__defines\lighting.dm" +#include "code\__defines\lighting_vr.dm" +#include "code\__defines\machinery.dm" +#include "code\__defines\map.dm" +#include "code\__defines\materials.dm" +#include "code\__defines\math.dm" +#include "code\__defines\math_physics.dm" +#include "code\__defines\MC.dm" +#include "code\__defines\misc.dm" +#include "code\__defines\misc_vr.dm" +#include "code\__defines\mobs.dm" +#include "code\__defines\mobs_vr.dm" +#include "code\__defines\nifsoft.dm" +#include "code\__defines\objects.dm" +#include "code\__defines\overmap.dm" +#include "code\__defines\pda.dm" +#include "code\__defines\planets.dm" +#include "code\__defines\planets_vr.dm" +#include "code\__defines\plants.dm" +#include "code\__defines\preferences.dm" +#include "code\__defines\process_scheduler.dm" +#include "code\__defines\qdel.dm" +#include "code\__defines\research.dm" +#include "code\__defines\roguemining_vr.dm" +#include "code\__defines\rust_g.dm" +#include "code\__defines\shields.dm" +#include "code\__defines\shuttle.dm" +#include "code\__defines\sound.dm" +#include "code\__defines\spaceman_dmm.dm" +#include "code\__defines\species_languages.dm" +#include "code\__defines\species_languages_vr.dm" +#include "code\__defines\sprite_sheets.dm" +#include "code\__defines\sqlite_defines.dm" +#include "code\__defines\stat_tracking.dm" +#include "code\__defines\subsystems.dm" +#include "code\__defines\supply.dm" +#include "code\__defines\targeting.dm" +#include "code\__defines\tgs.config.dm" +#include "code\__defines\tgs.dm" +#include "code\__defines\tgui.dm" +#include "code\__defines\tools.dm" +#include "code\__defines\turfs.dm" +#include "code\__defines\typeids.dm" +#include "code\__defines\unit_tests.dm" +#include "code\__defines\vote.dm" +#include "code\__defines\vv.dm" +#include "code\__defines\webhooks.dm" +#include "code\__defines\wires.dm" +#include "code\__defines\xenoarcheaology.dm" +#include "code\__defines\ZAS.dm" +#include "code\__defines\dcs\flags.dm" +#include "code\__defines\dcs\helpers.dm" +#include "code\__defines\dcs\signals.dm" +#include "code\_global_vars\bitfields.dm" +#include "code\_global_vars\misc.dm" +#include "code\_global_vars\mobs.dm" +#include "code\_global_vars\religion.dm" +#include "code\_global_vars\sensitive.dm" +#include "code\_global_vars\typecache.dm" +#include "code\_global_vars\lists\mapping.dm" +#include "code\_global_vars\lists\misc.dm" +#include "code\_global_vars\lists\species.dm" +#include "code\_helpers\_global_objects.dm" +#include "code\_helpers\_global_objects_vr.dm" +#include "code\_helpers\_lists.dm" +#include "code\_helpers\atmospherics.dm" +#include "code\_helpers\atom_movables.dm" +#include "code\_helpers\events.dm" +#include "code\_helpers\files.dm" +#include "code\_helpers\game.dm" +#include "code\_helpers\global_lists.dm" +#include "code\_helpers\global_lists_vr.dm" +#include "code\_helpers\icons.dm" +#include "code\_helpers\icons_vr.dm" +#include "code\_helpers\lighting.dm" +#include "code\_helpers\logging.dm" +#include "code\_helpers\logging_vr.dm" +#include "code\_helpers\matrices.dm" +#include "code\_helpers\mobs.dm" +#include "code\_helpers\names.dm" +#include "code\_helpers\sanitize_values.dm" +#include "code\_helpers\storage.dm" +#include "code\_helpers\string_lists.dm" +#include "code\_helpers\text.dm" +#include "code\_helpers\time.dm" +#include "code\_helpers\turfs.dm" +#include "code\_helpers\type2type.dm" +#include "code\_helpers\unsorted.dm" +#include "code\_helpers\unsorted_vr.dm" +#include "code\_helpers\view.dm" +#include "code\_helpers\visual_filters.dm" +#include "code\_helpers\sorts\__main.dm" +#include "code\_helpers\sorts\comparators.dm" +#include "code\_helpers\sorts\TimSort.dm" +#include "code\_onclick\_defines.dm" +#include "code\_onclick\adjacent.dm" +#include "code\_onclick\ai.dm" +#include "code\_onclick\click.dm" +#include "code\_onclick\cyborg.dm" +#include "code\_onclick\drag_drop.dm" +#include "code\_onclick\item_attack.dm" +#include "code\_onclick\observer.dm" +#include "code\_onclick\other_mobs.dm" +#include "code\_onclick\rig.dm" +#include "code\_onclick\telekinesis.dm" +#include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\_defines_vr.dm" +#include "code\_onclick\hud\ability_screen_objects.dm" +#include "code\_onclick\hud\action.dm" +#include "code\_onclick\hud\ai.dm" +#include "code\_onclick\hud\alert.dm" +#include "code\_onclick\hud\alert_vr.dm" +#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\fullscreen.dm" +#include "code\_onclick\hud\ghost.dm" +#include "code\_onclick\hud\gun_mode.dm" +#include "code\_onclick\hud\hud.dm" +#include "code\_onclick\hud\human.dm" +#include "code\_onclick\hud\map_popups.dm" +#include "code\_onclick\hud\minihud.dm" +#include "code\_onclick\hud\minihud_mapper.dm" +#include "code\_onclick\hud\minihud_rigmech.dm" +#include "code\_onclick\hud\movable_screen_objects.dm" +#include "code\_onclick\hud\other_mobs.dm" +#include "code\_onclick\hud\picture_in_picture.dm" +#include "code\_onclick\hud\radial.dm" +#include "code\_onclick\hud\radial_persistent.dm" +#include "code\_onclick\hud\robot.dm" +#include "code\_onclick\hud\robot_vr.dm" +#include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\screen_objects_vr.dm" +#include "code\_onclick\hud\skybox.dm" +#include "code\_onclick\hud\soulcatcher_guest.dm" +#include "code\_onclick\hud\spell_screen_objects.dm" +#include "code\ATMOSPHERICS\_atmos_setup.dm" +#include "code\ATMOSPHERICS\_atmospherics_helpers.dm" +#include "code\ATMOSPHERICS\atmospherics.dm" +#include "code\ATMOSPHERICS\datum_pipe_network.dm" +#include "code\ATMOSPHERICS\datum_pipeline.dm" +#include "code\ATMOSPHERICS\components\portables_connector.dm" +#include "code\ATMOSPHERICS\components\shutoff.dm" +#include "code\ATMOSPHERICS\components\tvalve.dm" +#include "code\ATMOSPHERICS\components\valve.dm" +#include "code\ATMOSPHERICS\components\binary_devices\algae_generator_vr.dm" +#include "code\ATMOSPHERICS\components\binary_devices\binary_atmos_base.dm" +#include "code\ATMOSPHERICS\components\binary_devices\circulator.dm" +#include "code\ATMOSPHERICS\components\binary_devices\dp_vent_pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\passive_gate.dm" +#include "code\ATMOSPHERICS\components\binary_devices\passive_gate_vr.dm" +#include "code\ATMOSPHERICS\components\binary_devices\pipeturbine.dm" +#include "code\ATMOSPHERICS\components\binary_devices\pump.dm" +#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.dm" +#include "code\ATMOSPHERICS\components\omni_devices\_omni_extras.dm" +#include "code\ATMOSPHERICS\components\omni_devices\filter.dm" +#include "code\ATMOSPHERICS\components\omni_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\omni_devices\omni_base.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\filter.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\mixer.dm" +#include "code\ATMOSPHERICS\components\trinary_devices\trinary_base.dm" +#include "code\ATMOSPHERICS\components\unary\cold_sink.dm" +#include "code\ATMOSPHERICS\components\unary\heat_exchanger.dm" +#include "code\ATMOSPHERICS\components\unary\heat_source.dm" +#include "code\ATMOSPHERICS\components\unary\outlet_injector.dm" +#include "code\ATMOSPHERICS\components\unary\unary_base.dm" +#include "code\ATMOSPHERICS\components\unary\vent_pump.dm" +#include "code\ATMOSPHERICS\components\unary\vent_scrubber.dm" +#include "code\ATMOSPHERICS\components\unary\vent_scrubber_vr.dm" +#include "code\ATMOSPHERICS\pipes\cap.dm" +#include "code\ATMOSPHERICS\pipes\he_pipes.dm" +#include "code\ATMOSPHERICS\pipes\he_pipes_vr.dm" +#include "code\ATMOSPHERICS\pipes\manifold.dm" +#include "code\ATMOSPHERICS\pipes\manifold4w.dm" +#include "code\ATMOSPHERICS\pipes\pipe_base.dm" +#include "code\ATMOSPHERICS\pipes\pipe_base_vr.dm" +#include "code\ATMOSPHERICS\pipes\simple.dm" +#include "code\ATMOSPHERICS\pipes\tank.dm" +#include "code\ATMOSPHERICS\pipes\tank_vr.dm" +#include "code\ATMOSPHERICS\pipes\universal.dm" +#include "code\ATMOSPHERICS\pipes\vent.dm" +#include "code\controllers\autotransfer.dm" +#include "code\controllers\communications.dm" +#include "code\controllers\configuration.dm" +#include "code\controllers\configuration_vr.dm" +#include "code\controllers\controller.dm" +#include "code\controllers\emergency_shuttle_controller.dm" +#include "code\controllers\failsafe.dm" +#include "code\controllers\globals.dm" +#include "code\controllers\hooks-defs.dm" +#include "code\controllers\hooks.dm" +#include "code\controllers\master.dm" +#include "code\controllers\master_controller.dm" +#include "code\controllers\subsystem.dm" +#include "code\controllers\verbs.dm" +#include "code\controllers\observer_listener\atom\observer.dm" +#include "code\controllers\subsystems\ai.dm" +#include "code\controllers\subsystems\aifast.dm" +#include "code\controllers\subsystems\air.dm" +#include "code\controllers\subsystems\airflow.dm" +#include "code\controllers\subsystems\alarm.dm" +#include "code\controllers\subsystems\assets.dm" +#include "code\controllers\subsystems\atoms.dm" +#include "code\controllers\subsystems\character_setup.dm" +#include "code\controllers\subsystems\chat.dm" +#include "code\controllers\subsystems\chemistry.dm" +#include "code\controllers\subsystems\circuits.dm" +#include "code\controllers\subsystems\dcs.dm" +#include "code\controllers\subsystems\events.dm" +#include "code\controllers\subsystems\garbage.dm" +#include "code\controllers\subsystems\holomaps.dm" +#include "code\controllers\subsystems\inactivity.dm" +#include "code\controllers\subsystems\input.dm" +#include "code\controllers\subsystems\job.dm" +#include "code\controllers\subsystems\lighting.dm" +#include "code\controllers\subsystems\machines.dm" +#include "code\controllers\subsystems\mapping.dm" +#include "code\controllers\subsystems\media_tracks.dm" +#include "code\controllers\subsystems\mobs.dm" +#include "code\controllers\subsystems\nightshift.dm" +#include "code\controllers\subsystems\orbits.dm" +#include "code\controllers\subsystems\overlays.dm" +#include "code\controllers\subsystems\persist_vr.dm" +#include "code\controllers\subsystems\persistence.dm" +#include "code\controllers\subsystems\planets.dm" +#include "code\controllers\subsystems\plants.dm" +#include "code\controllers\subsystems\radiation.dm" +#include "code\controllers\subsystems\shuttles.dm" +#include "code\controllers\subsystems\skybox.dm" +#include "code\controllers\subsystems\sounds.dm" +#include "code\controllers\subsystems\sqlite.dm" +#include "code\controllers\subsystems\sun.dm" +#include "code\controllers\subsystems\supply.dm" +#include "code\controllers\subsystems\tgui.dm" +#include "code\controllers\subsystems\ticker.dm" +#include "code\controllers\subsystems\time_track.dm" +#include "code\controllers\subsystems\timer.dm" +#include "code\controllers\subsystems\transcore_vr.dm" +#include "code\controllers\subsystems\vis_overlays.dm" +#include "code\controllers\subsystems\vote.dm" +#include "code\controllers\subsystems\webhooks.dm" +#include "code\controllers\subsystems\xenoarch.dm" +#include "code\controllers\subsystems\processing\bellies_vr.dm" +#include "code\controllers\subsystems\processing\fastprocess.dm" +#include "code\controllers\subsystems\processing\instruments.dm" +#include "code\controllers\subsystems\processing\obj.dm" +#include "code\controllers\subsystems\processing\processing.dm" +#include "code\controllers\subsystems\processing\projectiles.dm" +#include "code\controllers\subsystems\processing\turfs.dm" +#include "code\datums\ai_law_sets.dm" +#include "code\datums\ai_law_sets_vr.dm" +#include "code\datums\ai_laws.dm" +#include "code\datums\beam.dm" +#include "code\datums\browser.dm" +#include "code\datums\callback.dm" +#include "code\datums\category.dm" +#include "code\datums\chat_message.dm" +#include "code\datums\datacore.dm" +#include "code\datums\datum.dm" +#include "code\datums\datumvars.dm" +#include "code\datums\EPv2.dm" +#include "code\datums\ghost_query.dm" +#include "code\datums\ghost_query_vr.dm" +#include "code\datums\hierarchy.dm" +#include "code\datums\mind.dm" +#include "code\datums\mind_vr.dm" +#include "code\datums\mixed.dm" +#include "code\datums\modules.dm" +#include "code\datums\mutable_appearance.dm" +#include "code\datums\orbit.dm" +#include "code\datums\organs.dm" +#include "code\datums\position_point_vector.dm" +#include "code\datums\progressbar.dm" +#include "code\datums\reference_tracking.dm" +#include "code\datums\riding.dm" +#include "code\datums\soul_link.dm" +#include "code\datums\sun.dm" +#include "code\datums\weakref.dm" +#include "code\datums\autolathe\arms.dm" +#include "code\datums\autolathe\arms_vr.dm" +#include "code\datums\autolathe\autolathe.dm" +#include "code\datums\autolathe\devices.dm" +#include "code\datums\autolathe\devices_vr.dm" +#include "code\datums\autolathe\engineering.dm" +#include "code\datums\autolathe\engineering_vr.dm" +#include "code\datums\autolathe\general.dm" +#include "code\datums\autolathe\general_vr.dm" +#include "code\datums\autolathe\materials.dm" +#include "code\datums\autolathe\medical.dm" +#include "code\datums\autolathe\medical_vr.dm" +#include "code\datums\autolathe\tools.dm" +#include "code\datums\autolathe\tools_vr.dm" +#include "code\datums\components\_component.dm" +#include "code\datums\components\material_container.dm" +#include "code\datums\components\overlay_lighting.dm" +#include "code\datums\components\resize_guard.dm" +#include "code\datums\components\crafting\crafting.dm" +#include "code\datums\components\crafting\crafting_external.dm" +#include "code\datums\components\crafting\recipes.dm" +#include "code\datums\components\crafting\tool_quality.dm" +#include "code\datums\components\crafting\recipes\primitive.dm" +#include "code\datums\components\crafting\recipes\weapons.dm" +#include "code\datums\elements\_element.dm" +#include "code\datums\elements\light_blocking.dm" +#include "code\datums\elements\turf_transparency.dm" +#include "code\datums\game_masters\_common.dm" +#include "code\datums\helper_datums\construction_datum.dm" +#include "code\datums\helper_datums\events.dm" +#include "code\datums\helper_datums\getrev.dm" +#include "code\datums\helper_datums\teleport.dm" +#include "code\datums\helper_datums\teleport_vr.dm" +#include "code\datums\helper_datums\topic_input.dm" +#include "code\datums\locations\locations.dm" +#include "code\datums\locations\nyx.dm" +#include "code\datums\locations\qerrvallis.dm" +#include "code\datums\locations\s_randarr.dm" +#include "code\datums\locations\sol.dm" +#include "code\datums\locations\tau_ceti.dm" +#include "code\datums\locations\uueoa_esa.dm" +#include "code\datums\locations\vir.dm" +#include "code\datums\looping_sounds\_looping_sound.dm" +#include "code\datums\looping_sounds\item_sounds.dm" +#include "code\datums\looping_sounds\machinery_sounds.dm" +#include "code\datums\looping_sounds\sequence.dm" +#include "code\datums\looping_sounds\weather_sounds.dm" +#include "code\datums\managed_browsers\_managed_browser.dm" +#include "code\datums\managed_browsers\feedback_form.dm" +#include "code\datums\managed_browsers\feedback_viewer.dm" +#include "code\datums\observation\_debug.dm" +#include "code\datums\observation\_defines.dm" +#include "code\datums\observation\destroyed.dm" +#include "code\datums\observation\dir_set.dm" +#include "code\datums\observation\equipped.dm" +#include "code\datums\observation\helpers.dm" +#include "code\datums\observation\logged_in.dm" +#include "code\datums\observation\moved.dm" +#include "code\datums\observation\observation.dm" +#include "code\datums\observation\power_change.dm" +#include "code\datums\observation\shuttle_added.dm" +#include "code\datums\observation\shuttle_moved.dm" +#include "code\datums\observation\stat_set.dm" +#include "code\datums\observation\turf_changed.dm" +#include "code\datums\observation\turf_enterexit.dm" +#include "code\datums\observation\unequipped.dm" +#include "code\datums\observation\z_moved.dm" +#include "code\datums\observation\~cleanup.dm" +#include "code\datums\outfits\_defines.dm" +#include "code\datums\outfits\horror_killers.dm" +#include "code\datums\outfits\misc.dm" +#include "code\datums\outfits\nanotrasen.dm" +#include "code\datums\outfits\outfit.dm" +#include "code\datums\outfits\outfit_vr.dm" +#include "code\datums\outfits\pirates.dm" +#include "code\datums\outfits\spec_op.dm" +#include "code\datums\outfits\tournament.dm" +#include "code\datums\outfits\wizardry.dm" +#include "code\datums\outfits\costumes\costume.dm" +#include "code\datums\outfits\costumes\halloween.dm" +#include "code\datums\outfits\jobs\cargo.dm" +#include "code\datums\outfits\jobs\civilian.dm" +#include "code\datums\outfits\jobs\civilian_vr.dm" +#include "code\datums\outfits\jobs\command.dm" +#include "code\datums\outfits\jobs\command_vr.dm" +#include "code\datums\outfits\jobs\engineering.dm" +#include "code\datums\outfits\jobs\job.dm" +#include "code\datums\outfits\jobs\medical.dm" +#include "code\datums\outfits\jobs\medical_vr.dm" +#include "code\datums\outfits\jobs\misc.dm" +#include "code\datums\outfits\jobs\science.dm" +#include "code\datums\outfits\jobs\science_vr.dm" +#include "code\datums\outfits\jobs\security.dm" +#include "code\datums\outfits\jobs\special_vr.dm" +#include "code\datums\outfits\military\fleet.dm" +#include "code\datums\outfits\military\marines.dm" +#include "code\datums\outfits\military\military.dm" +#include "code\datums\outfits\military\sifguard.dm" +#include "code\datums\repositories\ammomaterial.dm" +#include "code\datums\repositories\cameras.dm" +#include "code\datums\repositories\crew.dm" +#include "code\datums\repositories\decls.dm" +#include "code\datums\repositories\repository.dm" +#include "code\datums\repositories\unique.dm" +#include "code\datums\roundstats\_defines_local.dm" +#include "code\datums\roundstats\departmentgoal.dm" +#include "code\datums\roundstats\roundstats.dm" +#include "code\datums\supplypacks\atmospherics.dm" +#include "code\datums\supplypacks\contraband.dm" +#include "code\datums\supplypacks\contraband_vr.dm" +#include "code\datums\supplypacks\costumes.dm" +#include "code\datums\supplypacks\costumes_vr.dm" +#include "code\datums\supplypacks\engineering.dm" +#include "code\datums\supplypacks\engineering_vr.dm" +#include "code\datums\supplypacks\hospitality.dm" +#include "code\datums\supplypacks\hospitality_vr.dm" +#include "code\datums\supplypacks\hydroponics.dm" +#include "code\datums\supplypacks\hydroponics_vr.dm" +#include "code\datums\supplypacks\materials.dm" +#include "code\datums\supplypacks\medical.dm" +#include "code\datums\supplypacks\medical_vr.dm" +#include "code\datums\supplypacks\misc.dm" +#include "code\datums\supplypacks\misc_vr.dm" +#include "code\datums\supplypacks\munitions.dm" +#include "code\datums\supplypacks\munitions_vr.dm" +#include "code\datums\supplypacks\musical.dm" +#include "code\datums\supplypacks\recreation.dm" +#include "code\datums\supplypacks\recreation_vr.dm" +#include "code\datums\supplypacks\robotics.dm" +#include "code\datums\supplypacks\robotics_vr.dm" +#include "code\datums\supplypacks\science.dm" +#include "code\datums\supplypacks\science_vr.dm" +#include "code\datums\supplypacks\security.dm" +#include "code\datums\supplypacks\security_vr.dm" +#include "code\datums\supplypacks\supply.dm" +#include "code\datums\supplypacks\supply_vr.dm" +#include "code\datums\supplypacks\supplypacks.dm" +#include "code\datums\supplypacks\voidsuits.dm" +#include "code\datums\supplypacks\voidsuits_vr.dm" +#include "code\datums\underwear\bottom.dm" +#include "code\datums\underwear\socks.dm" +#include "code\datums\underwear\top.dm" +#include "code\datums\underwear\undershirts.dm" +#include "code\datums\underwear\underwear.dm" +#include "code\datums\uplink\ammunition.dm" +#include "code\datums\uplink\ammunition_vr.dm" +#include "code\datums\uplink\announcements.dm" +#include "code\datums\uplink\armor.dm" +#include "code\datums\uplink\backup.dm" +#include "code\datums\uplink\badassery.dm" +#include "code\datums\uplink\grenades.dm" +#include "code\datums\uplink\hardsuit_modules.dm" +#include "code\datums\uplink\implants.dm" +#include "code\datums\uplink\medical.dm" +#include "code\datums\uplink\medical_vr.dm" +#include "code\datums\uplink\resources.dm" +#include "code\datums\uplink\stealth_items.dm" +#include "code\datums\uplink\stealthy_weapons.dm" +#include "code\datums\uplink\telecrystals.dm" +#include "code\datums\uplink\tools.dm" +#include "code\datums\uplink\tools_vr.dm" +#include "code\datums\uplink\uplink_categories.dm" +#include "code\datums\uplink\uplink_items.dm" +#include "code\datums\uplink\visible_weapons.dm" +#include "code\datums\uplink\visible_weapons_vr.dm" +#include "code\datums\vending\stored_item.dm" +#include "code\datums\vending\vending.dm" +#include "code\datums\wires\airlock.dm" +#include "code\datums\wires\alarm.dm" +#include "code\datums\wires\apc.dm" +#include "code\datums\wires\autolathe.dm" +#include "code\datums\wires\camera.dm" +#include "code\datums\wires\explosive.dm" +#include "code\datums\wires\grid_checker.dm" +#include "code\datums\wires\jukebox.dm" +#include "code\datums\wires\mines.dm" +#include "code\datums\wires\particle_accelerator.dm" +#include "code\datums\wires\radio.dm" +#include "code\datums\wires\robot.dm" +#include "code\datums\wires\seedstorage.dm" +#include "code\datums\wires\shield_generator.dm" +#include "code\datums\wires\smartfridge.dm" +#include "code\datums\wires\smes.dm" +#include "code\datums\wires\suit_storage_unit.dm" +#include "code\datums\wires\tesla_coil.dm" +#include "code\datums\wires\vending.dm" +#include "code\datums\wires\wires.dm" +#include "code\defines\gases.dm" +#include "code\defines\obj.dm" +#include "code\defines\obj\weapon.dm" +#include "code\defines\procs\announce.dm" +#include "code\defines\procs\AStar.dm" +#include "code\defines\procs\dbcore.dm" +#include "code\defines\procs\radio.dm" +#include "code\defines\procs\statistics.dm" +#include "code\game\atoms.dm" +#include "code\game\atoms_movable.dm" +#include "code\game\atoms_movable_vr.dm" +#include "code\game\base_turf.dm" +#include "code\game\periodic_news.dm" +#include "code\game\response_team.dm" +#include "code\game\response_team_vr.dm" +#include "code\game\shuttle_engines.dm" +#include "code\game\skincmd.dm" +#include "code\game\sound.dm" +#include "code\game\trader_visit.dm" +#include "code\game\trader_visit_vr.dm" +#include "code\game\world.dm" +#include "code\game\antagonist\_antagonist_setup.dm" +#include "code\game\antagonist\antagonist.dm" +#include "code\game\antagonist\antagonist_add.dm" +#include "code\game\antagonist\antagonist_create.dm" +#include "code\game\antagonist\antagonist_equip.dm" +#include "code\game\antagonist\antagonist_factions.dm" +#include "code\game\antagonist\antagonist_helpers.dm" +#include "code\game\antagonist\antagonist_objectives.dm" +#include "code\game\antagonist\antagonist_panel.dm" +#include "code\game\antagonist\antagonist_place.dm" +#include "code\game\antagonist\antagonist_print.dm" +#include "code\game\antagonist\antagonist_update.dm" +#include "code\game\antagonist\alien\borer.dm" +#include "code\game\antagonist\alien\xenomorph.dm" +#include "code\game\antagonist\outsider\commando.dm" +#include "code\game\antagonist\outsider\deathsquad.dm" +#include "code\game\antagonist\outsider\ert.dm" +#include "code\game\antagonist\outsider\ert_vr.dm" +#include "code\game\antagonist\outsider\mercenary.dm" +#include "code\game\antagonist\outsider\ninja.dm" +#include "code\game\antagonist\outsider\raider.dm" +#include "code\game\antagonist\outsider\technomancer.dm" +#include "code\game\antagonist\outsider\trader.dm" +#include "code\game\antagonist\outsider\wizard.dm" +#include "code\game\antagonist\station\changeling.dm" +#include "code\game\antagonist\station\cultist.dm" +#include "code\game\antagonist\station\highlander.dm" +#include "code\game\antagonist\station\infiltrator.dm" +#include "code\game\antagonist\station\loyalist.dm" +#include "code\game\antagonist\station\renegade.dm" +#include "code\game\antagonist\station\revolutionary.dm" +#include "code\game\antagonist\station\rogue_ai.dm" +#include "code\game\antagonist\station\stowaway.dm" +#include "code\game\antagonist\station\thug.dm" +#include "code\game\antagonist\station\traitor.dm" +#include "code\game\area\ai_monitored.dm" +#include "code\game\area\areas.dm" +#include "code\game\area\areas_vr.dm" +#include "code\game\area\asteroid_areas.dm" +#include "code\game\area\Away Mission areas.dm" +#include "code\game\area\Space Station 13 areas.dm" +#include "code\game\area\Space Station 13 areas_vr.dm" +#include "code\game\area\ss13_deprecated_areas.dm" +#include "code\game\dna\dna2.dm" +#include "code\game\dna\dna2_domutcheck.dm" +#include "code\game\dna\dna2_helpers.dm" +#include "code\game\dna\dna_modifier.dm" +#include "code\game\dna\genes\disabilities.dm" +#include "code\game\dna\genes\gene.dm" +#include "code\game\dna\genes\powers.dm" +#include "code\game\gamemodes\events.dm" +#include "code\game\gamemodes\game_mode.dm" +#include "code\game\gamemodes\game_mode_latespawn.dm" +#include "code\game\gamemodes\objective.dm" +#include "code\game\gamemodes\setupgame.dm" +#include "code\game\gamemodes\calamity\calamity.dm" +#include "code\game\gamemodes\changeling\absorbed_dna.dm" +#include "code\game\gamemodes\changeling\changeling.dm" +#include "code\game\gamemodes\changeling\changeling_powers.dm" +#include "code\game\gamemodes\changeling\generic_equip_procs.dm" +#include "code\game\gamemodes\changeling\modularchangling.dm" +#include "code\game\gamemodes\changeling\powers\absorb.dm" +#include "code\game\gamemodes\changeling\powers\armblade.dm" +#include "code\game\gamemodes\changeling\powers\armor.dm" +#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm" +#include "code\game\gamemodes\changeling\powers\bioelectrogenesis.dm" +#include "code\game\gamemodes\changeling\powers\blind_sting.dm" +#include "code\game\gamemodes\changeling\powers\boost_range.dm" +#include "code\game\gamemodes\changeling\powers\cryo_sting.dm" +#include "code\game\gamemodes\changeling\powers\darkvision.dm" +#include "code\game\gamemodes\changeling\powers\deaf_sting.dm" +#include "code\game\gamemodes\changeling\powers\delayed_toxin_sting.dm" +#include "code\game\gamemodes\changeling\powers\digital_camo.dm" +#include "code\game\gamemodes\changeling\powers\electric_lockpick.dm" +#include "code\game\gamemodes\changeling\powers\endoarmor.dm" +#include "code\game\gamemodes\changeling\powers\enfeebling_string.dm" +#include "code\game\gamemodes\changeling\powers\engorged_glands.dm" +#include "code\game\gamemodes\changeling\powers\enrage.dm" +#include "code\game\gamemodes\changeling\powers\epinephrine_overdose.dm" +#include "code\game\gamemodes\changeling\powers\escape_restraints.dm" +#include "code\game\gamemodes\changeling\powers\extract_dna_sting.dm" +#include "code\game\gamemodes\changeling\powers\fabricate_clothing.dm" +#include "code\game\gamemodes\changeling\powers\fake_death.dm" +#include "code\game\gamemodes\changeling\powers\fleshmend.dm" +#include "code\game\gamemodes\changeling\powers\hivemind.dm" +#include "code\game\gamemodes\changeling\powers\mimic_voice.dm" +#include "code\game\gamemodes\changeling\powers\panacea.dm" +#include "code\game\gamemodes\changeling\powers\rapid_regen.dm" +#include "code\game\gamemodes\changeling\powers\recursive_enhancement.dm" +#include "code\game\gamemodes\changeling\powers\respec.dm" +#include "code\game\gamemodes\changeling\powers\revive.dm" +#include "code\game\gamemodes\changeling\powers\self_respiration.dm" +#include "code\game\gamemodes\changeling\powers\shriek.dm" +#include "code\game\gamemodes\changeling\powers\silence_sting.dm" +#include "code\game\gamemodes\changeling\powers\transform.dm" +#include "code\game\gamemodes\changeling\powers\visible_camouflage.dm" +#include "code\game\gamemodes\cult\construct_spells.dm" +#include "code\game\gamemodes\cult\cult.dm" +#include "code\game\gamemodes\cult\cult_items.dm" +#include "code\game\gamemodes\cult\cult_structures.dm" +#include "code\game\gamemodes\cult\hell_universe.dm" +#include "code\game\gamemodes\cult\narsie.dm" +#include "code\game\gamemodes\cult\ritual.dm" +#include "code\game\gamemodes\cult\runes.dm" +#include "code\game\gamemodes\cult\soulstone.dm" +#include "code\game\gamemodes\cult\talisman.dm" +#include "code\game\gamemodes\cult\cultify\mob.dm" +#include "code\game\gamemodes\cult\cultify\obj.dm" +#include "code\game\gamemodes\cult\cultify\turf.dm" +#include "code\game\gamemodes\endgame\endgame.dm" +#include "code\game\gamemodes\endgame\supermatter_cascade\blob.dm" +#include "code\game\gamemodes\endgame\supermatter_cascade\portal.dm" +#include "code\game\gamemodes\endgame\supermatter_cascade\universe.dm" +#include "code\game\gamemodes\events\black_hole.dm" +#include "code\game\gamemodes\events\clang.dm" +#include "code\game\gamemodes\events\dust.dm" +#include "code\game\gamemodes\events\power_failure.dm" +#include "code\game\gamemodes\events\wormholes.dm" +#include "code\game\gamemodes\events\holidays\Christmas.dm" +#include "code\game\gamemodes\events\holidays\Holidays.dm" +#include "code\game\gamemodes\events\holidays\Other.dm" +#include "code\game\gamemodes\extended\extended.dm" +#include "code\game\gamemodes\heist\heist.dm" +#include "code\game\gamemodes\infiltrator\infiltrator.dm" +#include "code\game\gamemodes\malfunction\malf_hardware.dm" +#include "code\game\gamemodes\malfunction\malf_research.dm" +#include "code\game\gamemodes\malfunction\malf_research_ability.dm" +#include "code\game\gamemodes\malfunction\malfunction.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HARDWARE.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\HELPERS.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_interdiction.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_manipulation.dm" +#include "code\game\gamemodes\malfunction\newmalf_ability_trees\tree_networking.dm" +#include "code\game\gamemodes\meteor\meteor.dm" +#include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\meteor\meteors_vr.dm" +#include "code\game\gamemodes\mixed\conflux.dm" +#include "code\game\gamemodes\mixed\infestation.dm" +#include "code\game\gamemodes\mixed\intrigue.dm" +#include "code\game\gamemodes\mixed\lizard.dm" +#include "code\game\gamemodes\mixed\mercrenegade.dm" +#include "code\game\gamemodes\mixed\mercwiz.dm" +#include "code\game\gamemodes\mixed\paranoia.dm" +#include "code\game\gamemodes\mixed\traitorling.dm" +#include "code\game\gamemodes\mixed\traitorrenegade.dm" +#include "code\game\gamemodes\mixed\uprising.dm" +#include "code\game\gamemodes\mixed\visitors.dm" +#include "code\game\gamemodes\ninja\ninja.dm" +#include "code\game\gamemodes\nuclear\nuclear.dm" +#include "code\game\gamemodes\nuclear\pinpointer.dm" +#include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\technomancer\catalog.dm" +#include "code\game\gamemodes\technomancer\clothing.dm" +#include "code\game\gamemodes\technomancer\core_obj.dm" +#include "code\game\gamemodes\technomancer\equipment.dm" +#include "code\game\gamemodes\technomancer\instability.dm" +#include "code\game\gamemodes\technomancer\spell_objs.dm" +#include "code\game\gamemodes\technomancer\spell_objs_helpers.dm" +#include "code\game\gamemodes\technomancer\technomancer.dm" +#include "code\game\gamemodes\technomancer\assistance\assistance.dm" +#include "code\game\gamemodes\technomancer\devices\boots_of_speed.dm" +#include "code\game\gamemodes\technomancer\devices\disposable_teleporter.dm" +#include "code\game\gamemodes\technomancer\devices\gloves_of_regen.dm" +#include "code\game\gamemodes\technomancer\devices\hypos.dm" +#include "code\game\gamemodes\technomancer\devices\implants.dm" +#include "code\game\gamemodes\technomancer\devices\shield_armor.dm" +#include "code\game\gamemodes\technomancer\devices\tesla_armor.dm" +#include "code\game\gamemodes\technomancer\spells\abjuration.dm" +#include "code\game\gamemodes\technomancer\spells\apportation.dm" +#include "code\game\gamemodes\technomancer\spells\audible_deception.dm" +#include "code\game\gamemodes\technomancer\spells\blink.dm" +#include "code\game\gamemodes\technomancer\spells\chroma.dm" +#include "code\game\gamemodes\technomancer\spells\condensation.dm" +#include "code\game\gamemodes\technomancer\spells\control.dm" +#include "code\game\gamemodes\technomancer\spells\dispel.dm" +#include "code\game\gamemodes\technomancer\spells\energy_siphon.dm" +#include "code\game\gamemodes\technomancer\spells\flame_tongue.dm" +#include "code\game\gamemodes\technomancer\spells\gambit.dm" +#include "code\game\gamemodes\technomancer\spells\illusion.dm" +#include "code\game\gamemodes\technomancer\spells\instability_tap.dm" +#include "code\game\gamemodes\technomancer\spells\mark_recall.dm" +#include "code\game\gamemodes\technomancer\spells\mend_organs.dm" +#include "code\game\gamemodes\technomancer\spells\oxygenate.dm" +#include "code\game\gamemodes\technomancer\spells\passwall.dm" +#include "code\game\gamemodes\technomancer\spells\phase_shift.dm" +#include "code\game\gamemodes\technomancer\spells\radiance.dm" +#include "code\game\gamemodes\technomancer\spells\reflect.dm" +#include "code\game\gamemodes\technomancer\spells\resurrect.dm" +#include "code\game\gamemodes\technomancer\spells\shared_burden.dm" +#include "code\game\gamemodes\technomancer\spells\shield.dm" +#include "code\game\gamemodes\technomancer\spells\targeting_matrix.dm" +#include "code\game\gamemodes\technomancer\spells\track.dm" +#include "code\game\gamemodes\technomancer\spells\warp_strike.dm" +#include "code\game\gamemodes\technomancer\spells\aura\aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\biomed_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\fire_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\frost_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\shock_aura.dm" +#include "code\game\gamemodes\technomancer\spells\aura\unstable_aura.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\corona.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\haste.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\mend_all.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\mend_life.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\mend_synthetic.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\modifier.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\purify.dm" +#include "code\game\gamemodes\technomancer\spells\modifier\repel_missiles.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\beam.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\chain_lightning.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\force_missile.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\ionic_bolt.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\lesser_chain_lightning.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\lightning.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\overload.dm" +#include "code\game\gamemodes\technomancer\spells\projectile\projectile.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\darkness.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\destablize.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\fire_blast.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\pulsar.dm" +#include "code\game\gamemodes\technomancer\spells\spawner\spawner.dm" +#include "code\game\gamemodes\technomancer\spells\summon\summon.dm" +#include "code\game\gamemodes\technomancer\spells\summon\summon_creature.dm" +#include "code\game\gamemodes\technomancer\spells\summon\summon_ward.dm" +#include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\jobs\_access_defs.dm" +#include "code\game\jobs\access.dm" +#include "code\game\jobs\access_datum.dm" +#include "code\game\jobs\access_datum_vr.dm" +#include "code\game\jobs\job_controller.dm" +#include "code\game\jobs\jobs.dm" +#include "code\game\jobs\whitelist.dm" +#include "code\game\jobs\whitelist_vr.dm" +#include "code\game\jobs\job\_alt_title.dm" +#include "code\game\jobs\job\assistant.dm" +#include "code\game\jobs\job\assistant_vr.dm" +#include "code\game\jobs\job\captain.dm" +#include "code\game\jobs\job\captain_vr.dm" +#include "code\game\jobs\job\civilian.dm" +#include "code\game\jobs\job\civilian_chaplain.dm" +#include "code\game\jobs\job\civilian_vr.dm" +#include "code\game\jobs\job\department.dm" +#include "code\game\jobs\job\department_vr.dm" +#include "code\game\jobs\job\engineering.dm" +#include "code\game\jobs\job\engineering_vr.dm" +#include "code\game\jobs\job\exploration_vr.dm" +#include "code\game\jobs\job\job.dm" +#include "code\game\jobs\job\job_vr.dm" +#include "code\game\jobs\job\medical.dm" +#include "code\game\jobs\job\medical_vr.dm" +#include "code\game\jobs\job\offduty_vr.dm" +#include "code\game\jobs\job\science.dm" +#include "code\game\jobs\job\science_vr.dm" +#include "code\game\jobs\job\security.dm" +#include "code\game\jobs\job\security_vr.dm" +#include "code\game\jobs\job\silicon.dm" +#include "code\game\jobs\job\silicon_vr.dm" +#include "code\game\jobs\job\special_vr.dm" +#include "code\game\machinery\adv_med.dm" +#include "code\game\machinery\adv_med_vr.dm" +#include "code\game\machinery\ai_slipper.dm" +#include "code\game\machinery\air_alarm.dm" +#include "code\game\machinery\airconditioner_vr.dm" +#include "code\game\machinery\atmo_control.dm" +#include "code\game\machinery\autolathe.dm" +#include "code\game\machinery\Beacon.dm" +#include "code\game\machinery\biogenerator.dm" +#include "code\game\machinery\bioprinter.dm" +#include "code\game\machinery\bomb_tester_vr.dm" +#include "code\game\machinery\buttons.dm" +#include "code\game\machinery\buttons_vr.dm" +#include "code\game\machinery\CableLayer.dm" +#include "code\game\machinery\cell_charger.dm" +#include "code\game\machinery\cloning.dm" +#include "code\game\machinery\cryo.dm" +#include "code\game\machinery\cryopod.dm" +#include "code\game\machinery\cryopod_vr.dm" +#include "code\game\machinery\deployable.dm" +#include "code\game\machinery\deployable_vr.dm" +#include "code\game\machinery\door_control.dm" +#include "code\game\machinery\doorbell_vr.dm" +#include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\exonet_node.dm" +#include "code\game\machinery\fire_alarm.dm" +#include "code\game\machinery\flasher.dm" +#include "code\game\machinery\floodlight.dm" +#include "code\game\machinery\floor_light.dm" +#include "code\game\machinery\floorlayer.dm" +#include "code\game\machinery\frame.dm" +#include "code\game\machinery\gear_dispenser.dm" +#include "code\game\machinery\hologram.dm" +#include "code\game\machinery\holoposter.dm" +#include "code\game\machinery\holosign.dm" +#include "code\game\machinery\igniter.dm" +#include "code\game\machinery\iv_drip.dm" +#include "code\game\machinery\jukebox.dm" +#include "code\game\machinery\lightswitch.dm" +#include "code\game\machinery\machinery.dm" +#include "code\game\machinery\machinery_power.dm" +#include "code\game\machinery\magnet.dm" +#include "code\game\machinery\mass_driver.dm" +#include "code\game\machinery\navbeacon.dm" +#include "code\game\machinery\neonsign.dm" +#include "code\game\machinery\newscaster.dm" +#include "code\game\machinery\nuclear_bomb.dm" +#include "code\game\machinery\OpTable.dm" +#include "code\game\machinery\overview.dm" +#include "code\game\machinery\oxygen_pump.dm" +#include "code\game\machinery\painter_vr.dm" +#include "code\game\machinery\partslathe_vr.dm" +#include "code\game\machinery\pda_multicaster.dm" +#include "code\game\machinery\pointdefense.dm" +#include "code\game\machinery\portable_turret.dm" +#include "code\game\machinery\portable_turret_vr.dm" +#include "code\game\machinery\recharger.dm" +#include "code\game\machinery\rechargestation.dm" +#include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\requests_console_vr.dm" +#include "code\game\machinery\robot_fabricator.dm" +#include "code\game\machinery\seed_extractor.dm" +#include "code\game\machinery\Sleeper.dm" +#include "code\game\machinery\spaceheater.dm" +#include "code\game\machinery\status_display.dm" +#include "code\game\machinery\status_display_ai.dm" +#include "code\game\machinery\suit_cycler_datums.dm" +#include "code\game\machinery\suit_storage_unit.dm" +#include "code\game\machinery\suit_storage_unit_vr.dm" +#include "code\game\machinery\supply_display.dm" +#include "code\game\machinery\supplybeacon.dm" +#include "code\game\machinery\syndicatebeacon.dm" +#include "code\game\machinery\syndicatebeacon_vr.dm" +#include "code\game\machinery\teleporter.dm" +#include "code\game\machinery\transportpod.dm" +#include "code\game\machinery\turret_control.dm" +#include "code\game\machinery\vending_machines_vr.dm" +#include "code\game\machinery\vitals_monitor.dm" +#include "code\game\machinery\wall_frames.dm" +#include "code\game\machinery\washing_machine.dm" +#include "code\game\machinery\wishgranter.dm" +#include "code\game\machinery\atmoalter\area_atmos_computer.dm" +#include "code\game\machinery\atmoalter\area_atmos_computer_vr.dm" +#include "code\game\machinery\atmoalter\canister.dm" +#include "code\game\machinery\atmoalter\clamp.dm" +#include "code\game\machinery\atmoalter\meter.dm" +#include "code\game\machinery\atmoalter\portable_atmospherics.dm" +#include "code\game\machinery\atmoalter\pump.dm" +#include "code\game\machinery\atmoalter\pump_vr.dm" +#include "code\game\machinery\atmoalter\scrubber.dm" +#include "code\game\machinery\camera\camera.dm" +#include "code\game\machinery\camera\camera_assembly.dm" +#include "code\game\machinery\camera\camera_vr.dm" +#include "code\game\machinery\camera\motion.dm" +#include "code\game\machinery\camera\presets.dm" +#include "code\game\machinery\camera\tracking.dm" +#include "code\game\machinery\computer\ai_core.dm" +#include "code\game\machinery\computer\aifixer.dm" +#include "code\game\machinery\computer\arcade.dm" +#include "code\game\machinery\computer\arcade_vr.dm" +#include "code\game\machinery\computer\atmos_alert.dm" +#include "code\game\machinery\computer\atmos_control.dm" +#include "code\game\machinery\computer\camera.dm" +#include "code\game\machinery\computer\camera_vr.dm" +#include "code\game\machinery\computer\card.dm" +#include "code\game\machinery\computer\cloning.dm" +#include "code\game\machinery\computer\communications.dm" +#include "code\game\machinery\computer\computer.dm" +#include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\guestpass.dm" +#include "code\game\machinery\computer\id_restorer_vr.dm" +#include "code\game\machinery\computer\law.dm" +#include "code\game\machinery\computer\medical.dm" +#include "code\game\machinery\computer\message.dm" +#include "code\game\machinery\computer\Operating.dm" +#include "code\game\machinery\computer\pod.dm" +#include "code\game\machinery\computer\prisoner.dm" +#include "code\game\machinery\computer\prisonshuttle.dm" +#include "code\game\machinery\computer\RCON_Console.dm" +#include "code\game\machinery\computer\robot.dm" +#include "code\game\machinery\computer\security.dm" +#include "code\game\machinery\computer\shutoff_monitor.dm" +#include "code\game\machinery\computer\shuttle.dm" +#include "code\game\machinery\computer\skills.dm" +#include "code\game\machinery\computer\specops_shuttle.dm" +#include "code\game\machinery\computer\station_alert.dm" +#include "code\game\machinery\computer\supply.dm" +#include "code\game\machinery\computer\syndicate_specops_shuttle.dm" +#include "code\game\machinery\computer\timeclock_vr.dm" +#include "code\game\machinery\computer\~computer_vr.dm" +#include "code\game\machinery\doors\airlock.dm" +#include "code\game\machinery\doors\airlock_control.dm" +#include "code\game\machinery\doors\airlock_electronics.dm" +#include "code\game\machinery\doors\airlock_vr.dm" +#include "code\game\machinery\doors\alarmlock.dm" +#include "code\game\machinery\doors\blast_door.dm" +#include "code\game\machinery\doors\brigdoors.dm" +#include "code\game\machinery\doors\checkForMultipleDoors.dm" +#include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\door_vr.dm" +#include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\firedoor_assembly.dm" +#include "code\game\machinery\doors\firedoor_vr.dm" +#include "code\game\machinery\doors\multi_tile.dm" +#include "code\game\machinery\doors\multi_tile_vr.dm" +#include "code\game\machinery\doors\unpowered.dm" +#include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\embedded_controller\airlock_controllers.dm" +#include "code\game\machinery\embedded_controller\airlock_docking_controller.dm" +#include "code\game\machinery\embedded_controller\airlock_docking_controller_multi.dm" +#include "code\game\machinery\embedded_controller\airlock_program.dm" +#include "code\game\machinery\embedded_controller\docking_program.dm" +#include "code\game\machinery\embedded_controller\docking_program_multi.dm" +#include "code\game\machinery\embedded_controller\embedded_controller_base.dm" +#include "code\game\machinery\embedded_controller\embedded_program_base.dm" +#include "code\game\machinery\embedded_controller\mapping_helpers.dm" +#include "code\game\machinery\embedded_controller\simple_docking_controller.dm" +#include "code\game\machinery\event\stage_vr.dm" +#include "code\game\machinery\pipe\construction.dm" +#include "code\game\machinery\pipe\pipe_dispenser.dm" +#include "code\game\machinery\pipe\pipe_recipes.dm" +#include "code\game\machinery\pipe\pipelayer.dm" +#include "code\game\machinery\reagents\pump.dm" +#include "code\game\machinery\telecomms\broadcaster.dm" +#include "code\game\machinery\telecomms\broadcaster_vr.dm" +#include "code\game\machinery\telecomms\logbrowser.dm" +#include "code\game\machinery\telecomms\machine_interactions.dm" +#include "code\game\machinery\telecomms\presets.dm" +#include "code\game\machinery\telecomms\presets_vr.dm" +#include "code\game\machinery\telecomms\telecomunications.dm" +#include "code\game\machinery\telecomms\telemonitor.dm" +#include "code\game\machinery\telecomms\traffic_control.dm" +#include "code\game\machinery\virtual_reality\ar_console.dm" +#include "code\game\machinery\virtual_reality\vr_console.dm" +#include "code\game\magic\Uristrunes.dm" +#include "code\game\mecha\mech_bay.dm" +#include "code\game\mecha\mech_fabricator.dm" +#include "code\game\mecha\mech_prosthetics.dm" +#include "code\game\mecha\mech_sensor.dm" +#include "code\game\mecha\mecha.dm" +#include "code\game\mecha\mecha_actions.dm" +#include "code\game\mecha\mecha_appearance.dm" +#include "code\game\mecha\mecha_construction_paths.dm" +#include "code\game\mecha\mecha_control_console.dm" +#include "code\game\mecha\mecha_helpers.dm" +#include "code\game\mecha\mecha_parts.dm" +#include "code\game\mecha\mecha_vr.dm" +#include "code\game\mecha\mecha_wreckage.dm" +#include "code\game\mecha\combat\combat.dm" +#include "code\game\mecha\combat\durand.dm" +#include "code\game\mecha\combat\fighter.dm" +#include "code\game\mecha\combat\gorilla.dm" +#include "code\game\mecha\combat\gygax.dm" +#include "code\game\mecha\combat\marauder.dm" +#include "code\game\mecha\combat\phazon.dm" +#include "code\game\mecha\components\_component.dm" +#include "code\game\mecha\components\actuators.dm" +#include "code\game\mecha\components\armor.dm" +#include "code\game\mecha\components\electrical.dm" +#include "code\game\mecha\components\hull.dm" +#include "code\game\mecha\components\lifesupport.dm" +#include "code\game\mecha\equipment\mecha_equipment.dm" +#include "code\game\mecha\equipment\mecha_equipment_dynamicprocs.dm" +#include "code\game\mecha\equipment\tools\armor_melee.dm" +#include "code\game\mecha\equipment\tools\armor_ranged.dm" +#include "code\game\mecha\equipment\tools\cable_layer.dm" +#include "code\game\mecha\equipment\tools\catapult.dm" +#include "code\game\mecha\equipment\tools\clamp.dm" +#include "code\game\mecha\equipment\tools\cloak.dm" +#include "code\game\mecha\equipment\tools\drill.dm" +#include "code\game\mecha\equipment\tools\energy_relay.dm" +#include "code\game\mecha\equipment\tools\extinguisher.dm" +#include "code\game\mecha\equipment\tools\generator.dm" +#include "code\game\mecha\equipment\tools\hardpoint_actuator.dm" +#include "code\game\mecha\equipment\tools\inflatables.dm" +#include "code\game\mecha\equipment\tools\jetpack.dm" +#include "code\game\mecha\equipment\tools\medigun_vr.dm" +#include "code\game\mecha\equipment\tools\orescanner.dm" +#include "code\game\mecha\equipment\tools\passenger.dm" +#include "code\game\mecha\equipment\tools\powertool.dm" +#include "code\game\mecha\equipment\tools\rcd.dm" +#include "code\game\mecha\equipment\tools\repair_droid.dm" +#include "code\game\mecha\equipment\tools\running_board.dm" +#include "code\game\mecha\equipment\tools\shield.dm" +#include "code\game\mecha\equipment\tools\shield_omni.dm" +#include "code\game\mecha\equipment\tools\sleeper.dm" +#include "code\game\mecha\equipment\tools\speedboost.dm" +#include "code\game\mecha\equipment\tools\syringe_gun.dm" +#include "code\game\mecha\equipment\tools\teleporter.dm" +#include "code\game\mecha\equipment\tools\tools.dm" +#include "code\game\mecha\equipment\tools\weldinglaser.dm" +#include "code\game\mecha\equipment\tools\wormhole.dm" +#include "code\game\mecha\equipment\weapons\honk.dm" +#include "code\game\mecha\equipment\weapons\weapons.dm" +#include "code\game\mecha\equipment\weapons\ballistic\automatic.dm" +#include "code\game\mecha\equipment\weapons\ballistic\ballistic.dm" +#include "code\game\mecha\equipment\weapons\ballistic\mortar.dm" +#include "code\game\mecha\equipment\weapons\ballistic\shotgun.dm" +#include "code\game\mecha\equipment\weapons\defense\shocker.dm" +#include "code\game\mecha\equipment\weapons\energy\energy.dm" +#include "code\game\mecha\equipment\weapons\energy\ion.dm" +#include "code\game\mecha\equipment\weapons\energy\laser.dm" +#include "code\game\mecha\equipment\weapons\energy\phased.dm" +#include "code\game\mecha\equipment\weapons\energy\pulse.dm" +#include "code\game\mecha\equipment\weapons\energy\stun.dm" +#include "code\game\mecha\equipment\weapons\explosive\grenade.dm" +#include "code\game\mecha\equipment\weapons\explosive\missile.dm" +#include "code\game\mecha\equipment\weapons\fire\flamethrower.dm" +#include "code\game\mecha\equipment\weapons\fire\incendiary.dm" +#include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\odysseus.dm" +#include "code\game\mecha\medical\odysseus_vr.dm" +#include "code\game\mecha\micro\mecha_construction_paths_vr.dm" +#include "code\game\mecha\micro\mecha_parts_vr.dm" +#include "code\game\mecha\micro\mecha_vr.dm" +#include "code\game\mecha\micro\mechfab_designs_vr.dm" +#include "code\game\mecha\micro\micro.dm" +#include "code\game\mecha\micro\micro_equipment.dm" +#include "code\game\mecha\micro\security.dm" +#include "code\game\mecha\micro\utility.dm" +#include "code\game\mecha\space\hoverpod.dm" +#include "code\game\mecha\space\shuttle.dm" +#include "code\game\mecha\working\ripley.dm" +#include "code\game\mecha\working\ripley_vr.dm" +#include "code\game\mecha\working\working.dm" +#include "code\game\objects\banners.dm" +#include "code\game\objects\banners_vr.dm" +#include "code\game\objects\buckling.dm" +#include "code\game\objects\empulse.dm" +#include "code\game\objects\explosion.dm" +#include "code\game\objects\explosion_recursive.dm" +#include "code\game\objects\items.dm" +#include "code\game\objects\mob_spawner_vr.dm" +#include "code\game\objects\objs.dm" +#include "code\game\objects\structures.dm" +#include "code\game\objects\stumble_into_vr.dm" +#include "code\game\objects\weapons.dm" +#include "code\game\objects\effects\bump_teleporter.dm" +#include "code\game\objects\effects\confetti_vr.dm" +#include "code\game\objects\effects\effect_system.dm" +#include "code\game\objects\effects\explosion_particles.dm" +#include "code\game\objects\effects\gibs.dm" +#include "code\game\objects\effects\glowshroom.dm" +#include "code\game\objects\effects\item_pickup_ghost.dm" +#include "code\game\objects\effects\landmarks.dm" +#include "code\game\objects\effects\landmarks_vr.dm" +#include "code\game\objects\effects\manifest.dm" +#include "code\game\objects\effects\mines.dm" +#include "code\game\objects\effects\misc.dm" +#include "code\game\objects\effects\overlays.dm" +#include "code\game\objects\effects\portals.dm" +#include "code\game\objects\effects\semirandom_mobs_vr.dm" +#include "code\game\objects\effects\spiders.dm" +#include "code\game\objects\effects\spiders_vr.dm" +#include "code\game\objects\effects\step_triggers.dm" +#include "code\game\objects\effects\zone_divider.dm" +#include "code\game\objects\effects\alien\aliens.dm" +#include "code\game\objects\effects\chem\chemsmoke.dm" +#include "code\game\objects\effects\chem\coating.dm" +#include "code\game\objects\effects\chem\foam.dm" +#include "code\game\objects\effects\chem\foam_vr.dm" +#include "code\game\objects\effects\chem\water.dm" +#include "code\game\objects\effects\decals\cleanable.dm" +#include "code\game\objects\effects\decals\crayon.dm" +#include "code\game\objects\effects\decals\misc.dm" +#include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\warning_stripes.dm" +#include "code\game\objects\effects\decals\Cleanable\aliens.dm" +#include "code\game\objects\effects\decals\Cleanable\fuel.dm" +#include "code\game\objects\effects\decals\Cleanable\humans.dm" +#include "code\game\objects\effects\decals\Cleanable\misc.dm" +#include "code\game\objects\effects\decals\Cleanable\robots.dm" +#include "code\game\objects\effects\decals\Cleanable\tracks.dm" +#include "code\game\objects\effects\decals\posters\bs12.dm" +#include "code\game\objects\effects\decals\posters\polarisposters.dm" +#include "code\game\objects\effects\decals\posters\polarisposters_vr.dm" +#include "code\game\objects\effects\decals\posters\posters.dm" +#include "code\game\objects\effects\decals\posters\tgposters.dm" +#include "code\game\objects\effects\decals\posters\voreposters_vr.dm" +#include "code\game\objects\effects\map_effects\beam_point.dm" +#include "code\game\objects\effects\map_effects\effect_emitter.dm" +#include "code\game\objects\effects\map_effects\map_effects.dm" +#include "code\game\objects\effects\map_effects\perma_light.dm" +#include "code\game\objects\effects\map_effects\portal.dm" +#include "code\game\objects\effects\map_effects\radiation_emitter.dm" +#include "code\game\objects\effects\map_effects\screen_shaker.dm" +#include "code\game\objects\effects\map_effects\sound_emitter.dm" +#include "code\game\objects\effects\prop\columnblast.dm" +#include "code\game\objects\effects\prop\snake.dm" +#include "code\game\objects\effects\spawners\bombspawner.dm" +#include "code\game\objects\effects\spawners\gibspawner.dm" +#include "code\game\objects\effects\spawners\graffiti.dm" +#include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" +#include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\impact.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\projectile_effects.dm" +#include "code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" +#include "code\game\objects\items\antag_spawners.dm" +#include "code\game\objects\items\apc_frame.dm" +#include "code\game\objects\items\bells.dm" +#include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\bodybag.dm" +#include "code\game\objects\items\contraband.dm" +#include "code\game\objects\items\contraband_vr.dm" +#include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\falling_object_vr.dm" +#include "code\game\objects\items\glassjar.dm" +#include "code\game\objects\items\gunbox.dm" +#include "code\game\objects\items\gunbox_vr.dm" +#include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\paintkit.dm" +#include "code\game\objects\items\pizza_voucher_vr.dm" +#include "code\game\objects\items\poi_items.dm" +#include "code\game\objects\items\robobag.dm" +#include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\tailoring.dm" +#include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\trash_material.dm" +#include "code\game\objects\items\trash_vr.dm" +#include "code\game\objects\items\uav.dm" +#include "code\game\objects\items\devices\advnifrepair.dm" +#include "code\game\objects\items\devices\ai_detector.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\binoculars.dm" +#include "code\game\objects\items\devices\body_snatcher_vr.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\debugger.dm" +#include "code\game\objects\items\devices\defib.dm" +#include "code\game\objects\items\devices\denecrotizer_vr.dm" +#include "code\game\objects\items\devices\flash.dm" +#include "code\game\objects\items\devices\flash_vr.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\flashlight_vr.dm" +#include "code\game\objects\items\devices\floor_painter.dm" +#include "code\game\objects\items\devices\geiger.dm" +#include "code\game\objects\items\devices\gps.dm" +#include "code\game\objects\items\devices\hacktool.dm" +#include "code\game\objects\items\devices\holowarrant.dm" +#include "code\game\objects\items\devices\laserpointer.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\megaphone.dm" +#include "code\game\objects\items\devices\modkit.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\scanners_vr.dm" +#include "code\game\objects\items\devices\spy_bug.dm" +#include "code\game\objects\items\devices\suit_cooling.dm" +#include "code\game\objects\items\devices\t_scanner.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\text_to_speech.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\translator.dm" +#include "code\game\objects\items\devices\translocator_vr.dm" +#include "code\game\objects\items\devices\tvcamera.dm" +#include "code\game\objects\items\devices\uplink.dm" +#include "code\game\objects\items\devices\uplink_random_lists.dm" +#include "code\game\objects\items\devices\whistle.dm" +#include "code\game\objects\items\devices\communicator\communicator.dm" +#include "code\game\objects\items\devices\communicator\helper.dm" +#include "code\game\objects\items\devices\communicator\integrated.dm" +#include "code\game\objects\items\devices\communicator\messaging.dm" +#include "code\game\objects\items\devices\communicator\phone.dm" +#include "code\game\objects\items\devices\communicator\UI_tgui.dm" +#include "code\game\objects\items\devices\radio\beacon.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\encryptionkey_vr.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\headset_vr.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\jammer.dm" +#include "code\game\objects\items\devices\radio\jammer_vr.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\devices\radio\radio_vr.dm" +#include "code\game\objects\items\devices\radio\radiopack.dm" +#include "code\game\objects\items\robot\robot_items.dm" +#include "code\game\objects\items\robot\robot_parts.dm" +#include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\robot\robot_upgrades_vr.dm" +#include "code\game\objects\items\stacks\marker_beacons.dm" +#include "code\game\objects\items\stacks\matter_synth.dm" +#include "code\game\objects\items\stacks\medical.dm" +#include "code\game\objects\items\stacks\medical_vr.dm" +#include "code\game\objects\items\stacks\nanopaste.dm" +#include "code\game\objects\items\stacks\nanopaste_vr.dm" +#include "code\game\objects\items\stacks\sandbags.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\telecrystal.dm" +#include "code\game\objects\items\stacks\tickets.dm" +#include "code\game\objects\items\stacks\tiles\fifty_spawner_tiles.dm" +#include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\toys\balls_vr.dm" +#include "code\game\objects\items\toys\godfigures.dm" +#include "code\game\objects\items\toys\mech_toys.dm" +#include "code\game\objects\items\toys\toys.dm" +#include "code\game\objects\items\toys\toys_vr.dm" +#include "code\game\objects\items\weapons\AI_modules.dm" +#include "code\game\objects\items\weapons\AI_modules_vr.dm" +#include "code\game\objects\items\weapons\augment_items.dm" +#include "code\game\objects\items\weapons\autopsy.dm" +#include "code\game\objects\items\weapons\bones.dm" +#include "code\game\objects\items\weapons\candle.dm" +#include "code\game\objects\items\weapons\canes.dm" +#include "code\game\objects\items\weapons\cards_ids_vr.dm" +#include "code\game\objects\items\weapons\chewables.dm" +#include "code\game\objects\items\weapons\cigs_lighters.dm" +#include "code\game\objects\items\weapons\clown_items.dm" +#include "code\game\objects\items\weapons\cosmetics.dm" +#include "code\game\objects\items\weapons\dna_injector.dm" +#include "code\game\objects\items\weapons\ecigs.dm" +#include "code\game\objects\items\weapons\explosives.dm" +#include "code\game\objects\items\weapons\explosives_vr.dm" +#include "code\game\objects\items\weapons\extinguisher.dm" +#include "code\game\objects\items\weapons\flamethrower.dm" +#include "code\game\objects\items\weapons\gift_wrappaper.dm" +#include "code\game\objects\items\weapons\handcuffs.dm" +#include "code\game\objects\items\weapons\handcuffs_vr.dm" +#include "code\game\objects\items\weapons\improvised_components.dm" +#include "code\game\objects\items\weapons\inducer_vr.dm" +#include "code\game\objects\items\weapons\manuals.dm" +#include "code\game\objects\items\weapons\manuals_vr.dm" +#include "code\game\objects\items\weapons\mop.dm" +#include "code\game\objects\items\weapons\mop_deploy.dm" +#include "code\game\objects\items\weapons\paint.dm" +#include "code\game\objects\items\weapons\paiwire.dm" +#include "code\game\objects\items\weapons\policetape.dm" +#include "code\game\objects\items\weapons\RCD.dm" +#include "code\game\objects\items\weapons\RCD_vr.dm" +#include "code\game\objects\items\weapons\RMS_vr.dm" +#include "code\game\objects\items\weapons\RPD_vr.dm" +#include "code\game\objects\items\weapons\RSF.dm" +#include "code\game\objects\items\weapons\scrolls.dm" +#include "code\game\objects\items\weapons\shields.dm" +#include "code\game\objects\items\weapons\shields_vr.dm" +#include "code\game\objects\items\weapons\stunbaton.dm" +#include "code\game\objects\items\weapons\surgery_tools.dm" +#include "code\game\objects\items\weapons\swords_axes_etc.dm" +#include "code\game\objects\items\weapons\syndie.dm" +#include "code\game\objects\items\weapons\tape.dm" +#include "code\game\objects\items\weapons\teleportation.dm" +#include "code\game\objects\items\weapons\towels.dm" +#include "code\game\objects\items\weapons\traps.dm" +#include "code\game\objects\items\weapons\traps_vr.dm" +#include "code\game\objects\items\weapons\trays.dm" +#include "code\game\objects\items\weapons\weaponry.dm" +#include "code\game\objects\items\weapons\weldbackpack.dm" +#include "code\game\objects\items\weapons\circuitboards\broken.dm" +#include "code\game\objects\items\weapons\circuitboards\circuitboard.dm" +#include "code\game\objects\items\weapons\circuitboards\circuitboards_vr.dm" +#include "code\game\objects\items\weapons\circuitboards\frame.dm" +#include "code\game\objects\items\weapons\circuitboards\mecha.dm" +#include "code\game\objects\items\weapons\circuitboards\other.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\air_management.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\camera_monitor.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\computer.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\research.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\shuttle.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\supply.dm" +#include "code\game\objects\items\weapons\circuitboards\computer\telecomms.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\biogenerator.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\fluidpump.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\kitchen_appliances.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\papershredder.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\power.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\research.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\shieldgen.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\ships.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\telecomms.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\unary_atmos.dm" +#include "code\game\objects\items\weapons\grenades\anti_photon_grenade.dm" +#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" +#include "code\game\objects\items\weapons\grenades\concussion.dm" +#include "code\game\objects\items\weapons\grenades\emgrenade.dm" +#include "code\game\objects\items\weapons\grenades\explosive.dm" +#include "code\game\objects\items\weapons\grenades\flashbang.dm" +#include "code\game\objects\items\weapons\grenades\grenade.dm" +#include "code\game\objects\items\weapons\grenades\projectile.dm" +#include "code\game\objects\items\weapons\grenades\smokebomb.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade_vr.dm" +#include "code\game\objects\items\weapons\grenades\supermatter.dm" +#include "code\game\objects\items\weapons\id cards\cards.dm" +#include "code\game\objects\items\weapons\id cards\cards_vr.dm" +#include "code\game\objects\items\weapons\id cards\id_stacks.dm" +#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm" +#include "code\game\objects\items\weapons\id cards\station_ids.dm" +#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm" +#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm" +#include "code\game\objects\items\weapons\implants\implant.dm" +#include "code\game\objects\items\weapons\implants\implant_vr.dm" +#include "code\game\objects\items\weapons\implants\implantaugment.dm" +#include "code\game\objects\items\weapons\implants\implantcase.dm" +#include "code\game\objects\items\weapons\implants\implantcase_vr.dm" +#include "code\game\objects\items\weapons\implants\implantchair.dm" +#include "code\game\objects\items\weapons\implants\implantcircuits.dm" +#include "code\game\objects\items\weapons\implants\implantdud.dm" +#include "code\game\objects\items\weapons\implants\implanter.dm" +#include "code\game\objects\items\weapons\implants\implanter_vr.dm" +#include "code\game\objects\items\weapons\implants\implantfreedom.dm" +#include "code\game\objects\items\weapons\implants\implantlanguage.dm" +#include "code\game\objects\items\weapons\implants\implantpad.dm" +#include "code\game\objects\items\weapons\implants\implantreagent_vr.dm" +#include "code\game\objects\items\weapons\implants\implantrestrainingbolt.dm" +#include "code\game\objects\items\weapons\implants\implantuplink.dm" +#include "code\game\objects\items\weapons\implants\neuralbasic.dm" +#include "code\game\objects\items\weapons\material\ashtray.dm" +#include "code\game\objects\items\weapons\material\bats.dm" +#include "code\game\objects\items\weapons\material\chainsaw.dm" +#include "code\game\objects\items\weapons\material\foam.dm" +#include "code\game\objects\items\weapons\material\gravemarker.dm" +#include "code\game\objects\items\weapons\material\kitchen.dm" +#include "code\game\objects\items\weapons\material\knives.dm" +#include "code\game\objects\items\weapons\material\knives_vr.dm" +#include "code\game\objects\items\weapons\material\material_armor.dm" +#include "code\game\objects\items\weapons\material\material_weapons.dm" +#include "code\game\objects\items\weapons\material\misc.dm" +#include "code\game\objects\items\weapons\material\shards.dm" +#include "code\game\objects\items\weapons\material\shards_vr.dm" +#include "code\game\objects\items\weapons\material\swords.dm" +#include "code\game\objects\items\weapons\material\thrown.dm" +#include "code\game\objects\items\weapons\material\twohanded.dm" +#include "code\game\objects\items\weapons\material\twohanded_vr.dm" +#include "code\game\objects\items\weapons\material\whetstone.dm" +#include "code\game\objects\items\weapons\melee\deflect.dm" +#include "code\game\objects\items\weapons\melee\energy.dm" +#include "code\game\objects\items\weapons\melee\energy_vr.dm" +#include "code\game\objects\items\weapons\melee\misc.dm" +#include "code\game\objects\items\weapons\melee\misc_vr.dm" +#include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\backpack_vr.dm" +#include "code\game\objects\items\weapons\storage\bags.dm" +#include "code\game\objects\items\weapons\storage\bags_vr.dm" +#include "code\game\objects\items\weapons\storage\belt.dm" +#include "code\game\objects\items\weapons\storage\belt_vr.dm" +#include "code\game\objects\items\weapons\storage\bible.dm" +#include "code\game\objects\items\weapons\storage\boxes.dm" +#include "code\game\objects\items\weapons\storage\boxes_vr.dm" +#include "code\game\objects\items\weapons\storage\briefcase.dm" +#include "code\game\objects\items\weapons\storage\egg_vr.dm" +#include "code\game\objects\items\weapons\storage\fancy.dm" +#include "code\game\objects\items\weapons\storage\firstaid.dm" +#include "code\game\objects\items\weapons\storage\firstaid_vr.dm" +#include "code\game\objects\items\weapons\storage\internal.dm" +#include "code\game\objects\items\weapons\storage\laundry_basket.dm" +#include "code\game\objects\items\weapons\storage\lockbox.dm" +#include "code\game\objects\items\weapons\storage\misc.dm" +#include "code\game\objects\items\weapons\storage\mre.dm" +#include "code\game\objects\items\weapons\storage\pouches.dm" +#include "code\game\objects\items\weapons\storage\quickdraw.dm" +#include "code\game\objects\items\weapons\storage\secure.dm" +#include "code\game\objects\items\weapons\storage\storage.dm" +#include "code\game\objects\items\weapons\storage\toolbox.dm" +#include "code\game\objects\items\weapons\storage\toolbox_vr.dm" +#include "code\game\objects\items\weapons\storage\uplink_kits.dm" +#include "code\game\objects\items\weapons\storage\wallets.dm" +#include "code\game\objects\items\weapons\tanks\jetpack.dm" +#include "code\game\objects\items\weapons\tanks\tank_types.dm" +#include "code\game\objects\items\weapons\tanks\tank_types_vr.dm" +#include "code\game\objects\items\weapons\tanks\tanks.dm" +#include "code\game\objects\items\weapons\tools\crowbar.dm" +#include "code\game\objects\items\weapons\tools\crowbar_vr.dm" +#include "code\game\objects\items\weapons\tools\screwdriver.dm" +#include "code\game\objects\items\weapons\tools\weldingtool.dm" +#include "code\game\objects\items\weapons\tools\wirecutters.dm" +#include "code\game\objects\items\weapons\tools\wrench.dm" +#include "code\game\objects\random\_random.dm" +#include "code\game\objects\random\guns_and_ammo.dm" +#include "code\game\objects\random\maintenance.dm" +#include "code\game\objects\random\mapping.dm" +#include "code\game\objects\random\mapping_vr.dm" +#include "code\game\objects\random\mechs.dm" +#include "code\game\objects\random\misc.dm" +#include "code\game\objects\random\misc_vr.dm" +#include "code\game\objects\random\mob.dm" +#include "code\game\objects\random\mob_vr.dm" +#include "code\game\objects\random\spacesuits.dm" +#include "code\game\objects\random\unidentified\medicine.dm" +#include "code\game\objects\structures\artstuff.dm" +#include "code\game\objects\structures\barricades.dm" +#include "code\game\objects\structures\barsign.dm" +#include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\bedsheet_bin_vr.dm" +#include "code\game\objects\structures\bonfire.dm" +#include "code\game\objects\structures\catwalk.dm" +#include "code\game\objects\structures\cliff.dm" +#include "code\game\objects\structures\coathanger.dm" +#include "code\game\objects\structures\curtains.dm" +#include "code\game\objects\structures\dancepole_vr.dm" +#include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\dogbed.dm" +#include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\fence.dm" +#include "code\game\objects\structures\fireaxe.dm" +#include "code\game\objects\structures\fitness.dm" +#include "code\game\objects\structures\fitness_vr.dm" +#include "code\game\objects\structures\girders.dm" +#include "code\game\objects\structures\gravemarker.dm" +#include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\handrail.dm" +#include "code\game\objects\structures\holoplant.dm" +#include "code\game\objects\structures\inflatable.dm" +#include "code\game\objects\structures\janicart.dm" +#include "code\game\objects\structures\kitchen_foodcart_vr.dm" +#include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\lattice.dm" +#include "code\game\objects\structures\ledges.dm" +#include "code\game\objects\structures\lightpost.dm" +#include "code\game\objects\structures\loot_piles.dm" +#include "code\game\objects\structures\map_blocker_vr.dm" +#include "code\game\objects\structures\medical_stand_vr.dm" +#include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\mop_bucket.dm" +#include "code\game\objects\structures\morgue.dm" +#include "code\game\objects\structures\morgue_vr.dm" +#include "code\game\objects\structures\plasticflaps.dm" +#include "code\game\objects\structures\railing.dm" +#include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\salvageable.dm" +#include "code\game\objects\structures\signs.dm" +#include "code\game\objects\structures\signs_vr.dm" +#include "code\game\objects\structures\simple_doors.dm" +#include "code\game\objects\structures\simple_doors_vr.dm" +#include "code\game\objects\structures\snowman.dm" +#include "code\game\objects\structures\stasis_cage.dm" +#include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\transit_tubes.dm" +#include "code\game\objects\structures\trash_pile_vr.dm" +#include "code\game\objects\structures\under_wardrobe.dm" +#include "code\game\objects\structures\watercloset.dm" +#include "code\game\objects\structures\watercloset_vr.dm" +#include "code\game\objects\structures\windoor_assembly.dm" +#include "code\game\objects\structures\window.dm" +#include "code\game\objects\structures\window_spawner.dm" +#include "code\game\objects\structures\window_vr.dm" +#include "code\game\objects\structures\alien\alien egg.dm" +#include "code\game\objects\structures\alien\alien.dm" +#include "code\game\objects\structures\crates_lockers\__closets.dm" +#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm" +#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions_vr.dm" +#include "code\game\objects\structures\crates_lockers\crates.dm" +#include "code\game\objects\structures\crates_lockers\crates_vr.dm" +#include "code\game\objects\structures\crates_lockers\largecrate.dm" +#include "code\game\objects\structures\crates_lockers\largecrate_vr.dm" +#include "code\game\objects\structures\crates_lockers\vehiclecage.dm" +#include "code\game\objects\structures\crates_lockers\closets\coffin.dm" +#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm" +#include "code\game\objects\structures\crates_lockers\closets\egg_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\fitness.dm" +#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" +#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" +#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" +#include "code\game\objects\structures\crates_lockers\closets\misc_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\statue.dm" +#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\utility_closets_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\walllocker.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm" +#include "code\game\objects\structures\crates_lockers\closets\wardrobe_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\cargo_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\medical_vr.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\security_vr.dm" +#include "code\game\objects\structures\flora\flora.dm" +#include "code\game\objects\structures\flora\flora_vr.dm" +#include "code\game\objects\structures\flora\grass.dm" +#include "code\game\objects\structures\flora\moretrees_vr.dm" +#include "code\game\objects\structures\flora\trees.dm" +#include "code\game\objects\structures\ghost_pods\event_vr.dm" +#include "code\game\objects\structures\ghost_pods\ghost_pods.dm" +#include "code\game\objects\structures\ghost_pods\ghost_pods_vr.dm" +#include "code\game\objects\structures\ghost_pods\human.dm" +#include "code\game\objects\structures\ghost_pods\mysterious.dm" +#include "code\game\objects\structures\ghost_pods\silicon.dm" +#include "code\game\objects\structures\ghost_pods\silicon_vr.dm" +#include "code\game\objects\structures\props\alien_props.dm" +#include "code\game\objects\structures\props\alien_props_vr.dm" +#include "code\game\objects\structures\props\beam_prism.dm" +#include "code\game\objects\structures\props\blackbox.dm" +#include "code\game\objects\structures\props\fake_ai.dm" +#include "code\game\objects\structures\props\nest.dm" +#include "code\game\objects\structures\props\projectile_lock.dm" +#include "code\game\objects\structures\props\prop.dm" +#include "code\game\objects\structures\props\puzzledoor.dm" +#include "code\game\objects\structures\props\rocks.dm" +#include "code\game\objects\structures\props\swarm.dm" +#include "code\game\objects\structures\props\transmitter.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\chairs_vr.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\stools.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\stools_vr.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair_item.dm" +#include "code\game\turfs\simulated.dm" +#include "code\game\turfs\simulated_vr.dm" +#include "code\game\turfs\turf.dm" +#include "code\game\turfs\turf_changing.dm" +#include "code\game\turfs\turf_flick_animations.dm" +#include "code\game\turfs\unsimulated.dm" +#include "code\game\turfs\flooring\flooring.dm" +#include "code\game\turfs\flooring\flooring_decals.dm" +#include "code\game\turfs\flooring\flooring_decals_vr.dm" +#include "code\game\turfs\flooring\flooring_premade.dm" +#include "code\game\turfs\flooring\flooring_vr.dm" +#include "code\game\turfs\flooring\shuttle_vr.dm" +#include "code\game\turfs\initialization\init.dm" +#include "code\game\turfs\initialization\maintenance.dm" +#include "code\game\turfs\simulated\floor.dm" +#include "code\game\turfs\simulated\floor_acts.dm" +#include "code\game\turfs\simulated\floor_attackby.dm" +#include "code\game\turfs\simulated\floor_damage.dm" +#include "code\game\turfs\simulated\floor_icon.dm" +#include "code\game\turfs\simulated\floor_static.dm" +#include "code\game\turfs\simulated\floor_types.dm" +#include "code\game\turfs\simulated\floor_types_eris.dm" +#include "code\game\turfs\simulated\floor_types_vr.dm" +#include "code\game\turfs\simulated\lava.dm" +#include "code\game\turfs\simulated\wall_attacks.dm" +#include "code\game\turfs\simulated\wall_icon.dm" +#include "code\game\turfs\simulated\wall_types.dm" +#include "code\game\turfs\simulated\wall_types_vr.dm" +#include "code\game\turfs\simulated\walls.dm" +#include "code\game\turfs\simulated\water.dm" +#include "code\game\turfs\simulated\water_vr.dm" +#include "code\game\turfs\simulated\dungeon\floor.dm" +#include "code\game\turfs\simulated\dungeon\wall.dm" +#include "code\game\turfs\simulated\outdoors\atmoscaves_vr.dm" +#include "code\game\turfs\simulated\outdoors\dirt.dm" +#include "code\game\turfs\simulated\outdoors\grass.dm" +#include "code\game\turfs\simulated\outdoors\ironsand_vr.dm" +#include "code\game\turfs\simulated\outdoors\outdoors.dm" +#include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm" +#include "code\game\turfs\simulated\outdoors\outdoors_vr.dm" +#include "code\game\turfs\simulated\outdoors\sky.dm" +#include "code\game\turfs\simulated\outdoors\snow.dm" +#include "code\game\turfs\snow\snow.dm" +#include "code\game\turfs\space\cracked_asteroid.dm" +#include "code\game\turfs\space\space.dm" +#include "code\game\turfs\space\transit.dm" +#include "code\game\turfs\unsimulated\beach.dm" +#include "code\game\turfs\unsimulated\beach_vr.dm" +#include "code\game\turfs\unsimulated\floor.dm" +#include "code\game\turfs\unsimulated\planetary.dm" +#include "code\game\turfs\unsimulated\planetary_vr.dm" +#include "code\game\turfs\unsimulated\shuttle.dm" +#include "code\game\turfs\unsimulated\sky_vr.dm" +#include "code\game\turfs\unsimulated\walls.dm" +#include "code\js\byjax.dm" +#include "code\js\menus.dm" +#include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_attack_log.dm" +#include "code\modules\admin\admin_investigate.dm" +#include "code\modules\admin\admin_memo.dm" +#include "code\modules\admin\admin_ranks.dm" +#include "code\modules\admin\admin_secrets.dm" +#include "code\modules\admin\admin_tools.dm" +#include "code\modules\admin\admin_verb_lists_vr.dm" +#include "code\modules\admin\admin_verbs.dm" +#include "code\modules\admin\admin_vr.dm" +#include "code\modules\admin\banjob.dm" +#include "code\modules\admin\ckey_vr.dm" +#include "code\modules\admin\create_mob.dm" +#include "code\modules\admin\create_object.dm" +#include "code\modules\admin\create_turf.dm" +#include "code\modules\admin\holder2.dm" +#include "code\modules\admin\IsBanned.dm" +#include "code\modules\admin\map_capture.dm" +#include "code\modules\admin\NewBan.dm" +#include "code\modules\admin\news.dm" +#include "code\modules\admin\persistence.dm" +#include "code\modules\admin\player_notes.dm" +#include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\topic.dm" +#include "code\modules\admin\ToRban.dm" +#include "code\modules\admin\callproc\callproc.dm" +#include "code\modules\admin\DB ban\functions.dm" +#include "code\modules\admin\permissionverbs\permissionedit.dm" +#include "code\modules\admin\secrets\admin_secrets\admin_logs.dm" +#include "code\modules\admin\secrets\admin_secrets\alter_narsie.dm" +#include "code\modules\admin\secrets\admin_secrets\bombing_list.dm" +#include "code\modules\admin\secrets\admin_secrets\jump_shuttle.dm" +#include "code\modules\admin\secrets\admin_secrets\launch_shuttle.dm" +#include "code\modules\admin\secrets\admin_secrets\launch_shuttle_forced.dm" +#include "code\modules\admin\secrets\admin_secrets\list_dna.dm" +#include "code\modules\admin\secrets\admin_secrets\list_fingerprints.dm" +#include "code\modules\admin\secrets\admin_secrets\move_shuttle.dm" +#include "code\modules\admin\secrets\admin_secrets\prison_warp.dm" +#include "code\modules\admin\secrets\admin_secrets\show_ai_laws.dm" +#include "code\modules\admin\secrets\admin_secrets\show_crew_manifest.dm" +#include "code\modules\admin\secrets\admin_secrets\show_game_mode.dm" +#include "code\modules\admin\secrets\admin_secrets\show_law_changes.dm" +#include "code\modules\admin\secrets\admin_secrets\show_signalers.dm" +#include "code\modules\admin\secrets\admin_secrets\traitors_and_objectives.dm" +#include "code\modules\admin\secrets\final_solutions\summon_narsie.dm" +#include "code\modules\admin\secrets\final_solutions\supermatter_cascade.dm" +#include "code\modules\admin\secrets\fun_secrets\break_all_lights.dm" +#include "code\modules\admin\secrets\fun_secrets\break_some_lights.dm" +#include "code\modules\admin\secrets\fun_secrets\fix_all_lights.dm" +#include "code\modules\admin\secrets\fun_secrets\ghost_mode.dm" +#include "code\modules\admin\secrets\fun_secrets\only_one.dm" +#include "code\modules\admin\secrets\fun_secrets\paintball_mode.dm" +#include "code\modules\admin\secrets\fun_secrets\power_all_smes.dm" +#include "code\modules\admin\secrets\fun_secrets\power_failure_begin.dm" +#include "code\modules\admin\secrets\fun_secrets\power_failure_end.dm" +#include "code\modules\admin\secrets\fun_secrets\remove_all_clothing.dm" +#include "code\modules\admin\secrets\fun_secrets\remove_internal_clothing.dm" +#include "code\modules\admin\secrets\fun_secrets\send_strike_team.dm" +#include "code\modules\admin\secrets\fun_secrets\toggle_bomb_cap.dm" +#include "code\modules\admin\secrets\fun_secrets\triple_ai_mode.dm" +#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_corgies.dm" +#include "code\modules\admin\secrets\fun_secrets\turn_humans_into_monkeys.dm" +#include "code\modules\admin\secrets\random_events\gravity_vr.dm" +#include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm" +#include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm" +#include "code\modules\admin\verbs\adminhelp.dm" +#include "code\modules\admin\verbs\adminhelp_vr.dm" +#include "code\modules\admin\verbs\adminjump.dm" +#include "code\modules\admin\verbs\adminpm.dm" +#include "code\modules\admin\verbs\adminsay.dm" +#include "code\modules\admin\verbs\antag-ooc.dm" +#include "code\modules\admin\verbs\atmosdebug.dm" +#include "code\modules\admin\verbs\BrokenInhands.dm" +#include "code\modules\admin\verbs\buildmode.dm" +#include "code\modules\admin\verbs\change_appearance.dm" +#include "code\modules\admin\verbs\check_customitem_activity.dm" +#include "code\modules\admin\verbs\cinematic.dm" +#include "code\modules\admin\verbs\custom_event.dm" +#include "code\modules\admin\verbs\dbcon_fix.dm" +#include "code\modules\admin\verbs\deadsay.dm" +#include "code\modules\admin\verbs\debug.dm" +#include "code\modules\admin\verbs\debug_vr.dm" +#include "code\modules\admin\verbs\diagnostics.dm" +#include "code\modules\admin\verbs\dice.dm" +#include "code\modules\admin\verbs\fps.dm" +#include "code\modules\admin\verbs\getlogs.dm" +#include "code\modules\admin\verbs\grief_fixers.dm" +#include "code\modules\admin\verbs\lightning_strike.dm" +#include "code\modules\admin\verbs\map_template_loadverb.dm" +#include "code\modules\admin\verbs\mapping.dm" +#include "code\modules\admin\verbs\panicbunker.dm" +#include "code\modules\admin\verbs\playsound.dm" +#include "code\modules\admin\verbs\possess.dm" +#include "code\modules\admin\verbs\pray.dm" +#include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\randomverbs_vr.dm" +#include "code\modules\admin\verbs\resize.dm" +#include "code\modules\admin\verbs\smite.dm" +#include "code\modules\admin\verbs\smite_vr.dm" +#include "code\modules\admin\verbs\striketeam.dm" +#include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" +#include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" +#include "code\modules\admin\view_variables\admin_delete.dm" +#include "code\modules\admin\view_variables\debug_variables.dm" +#include "code\modules\admin\view_variables\get_variables.dm" +#include "code\modules\admin\view_variables\helpers.dm" +#include "code\modules\admin\view_variables\mass_edit_variables.dm" +#include "code\modules\admin\view_variables\modify_variables.dm" +#include "code\modules\admin\view_variables\topic.dm" +#include "code\modules\admin\view_variables\topic_list.dm" +#include "code\modules\admin\view_variables\view_variables.dm" +#include "code\modules\admin\view_variables\view_variables_global.dm" +#include "code\modules\ai\_defines.dm" +#include "code\modules\ai\ai_holder.dm" +#include "code\modules\ai\ai_holder_combat.dm" +#include "code\modules\ai\ai_holder_combat_unseen.dm" +#include "code\modules\ai\ai_holder_communication.dm" +#include "code\modules\ai\ai_holder_cooperation.dm" +#include "code\modules\ai\ai_holder_debug.dm" +#include "code\modules\ai\ai_holder_disabled.dm" +#include "code\modules\ai\ai_holder_fleeing.dm" +#include "code\modules\ai\ai_holder_follow.dm" +#include "code\modules\ai\ai_holder_movement.dm" +#include "code\modules\ai\ai_holder_pathfinding.dm" +#include "code\modules\ai\ai_holder_targeting.dm" +#include "code\modules\ai\ai_holder_targeting_vr.dm" +#include "code\modules\ai\interfaces.dm" +#include "code\modules\ai\say_list.dm" +#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai.dm" +#include "code\modules\ai\ai_holder_subtypes\simple_mob_ai_vr.dm" +#include "code\modules\ai\ai_holder_subtypes\slime_xenobio_ai.dm" +#include "code\modules\alarm\alarm.dm" +#include "code\modules\alarm\alarm_handler.dm" +#include "code\modules\alarm\atmosphere_alarm.dm" +#include "code\modules\alarm\camera_alarm.dm" +#include "code\modules\alarm\fire_alarm.dm" +#include "code\modules\alarm\motion_alarm.dm" +#include "code\modules\alarm\power_alarm.dm" +#include "code\modules\artifice\cursedform.dm" +#include "code\modules\artifice\deadringer.dm" +#include "code\modules\artifice\telecube.dm" +#include "code\modules\assembly\assembly.dm" +#include "code\modules\assembly\helpers.dm" +#include "code\modules\assembly\holder.dm" +#include "code\modules\assembly\igniter.dm" +#include "code\modules\assembly\infrared.dm" +#include "code\modules\assembly\mousetrap.dm" +#include "code\modules\assembly\proximity.dm" +#include "code\modules\assembly\shock_kit.dm" +#include "code\modules\assembly\signaler.dm" +#include "code\modules\assembly\timer.dm" +#include "code\modules\assembly\voice.dm" +#include "code\modules\asset_cache\asset_cache.dm" +#include "code\modules\asset_cache\asset_cache_client.dm" +#include "code\modules\asset_cache\asset_cache_item.dm" +#include "code\modules\asset_cache\asset_list.dm" +#include "code\modules\asset_cache\asset_list_items.dm" +#include "code\modules\awaymissions\bluespaceartillery.dm" +#include "code\modules\awaymissions\corpse.dm" +#include "code\modules\awaymissions\exile.dm" +#include "code\modules\awaymissions\gateway.dm" +#include "code\modules\awaymissions\gateway_vr.dm" +#include "code\modules\awaymissions\loot.dm" +#include "code\modules\awaymissions\loot_vr.dm" +#include "code\modules\awaymissions\pamphlet.dm" +#include "code\modules\awaymissions\trigger.dm" +#include "code\modules\awaymissions\zlevel.dm" +#include "code\modules\blob\blob.dm" +#include "code\modules\blob2\_defines.dm" +#include "code\modules\blob2\core_chunk.dm" +#include "code\modules\blob2\blobs\base_blob.dm" +#include "code\modules\blob2\blobs\core.dm" +#include "code\modules\blob2\blobs\factory.dm" +#include "code\modules\blob2\blobs\node.dm" +#include "code\modules\blob2\blobs\normal.dm" +#include "code\modules\blob2\blobs\resource.dm" +#include "code\modules\blob2\blobs\shield.dm" +#include "code\modules\blob2\overmind\overmind.dm" +#include "code\modules\blob2\overmind\powers.dm" +#include "code\modules\blob2\overmind\types.dm" +#include "code\modules\blob2\overmind\types\blazing_oil.dm" +#include "code\modules\blob2\overmind\types\classic.dm" +#include "code\modules\blob2\overmind\types\cryogenic_goo.dm" +#include "code\modules\blob2\overmind\types\ectoplasmic_horror.dm" +#include "code\modules\blob2\overmind\types\electromagnetic_web.dm" +#include "code\modules\blob2\overmind\types\energized_jelly.dm" +#include "code\modules\blob2\overmind\types\explosive_lattice.dm" +#include "code\modules\blob2\overmind\types\fabrication_swarm.dm" +#include "code\modules\blob2\overmind\types\fulminant_organism.dm" +#include "code\modules\blob2\overmind\types\fungal_bloom.dm" +#include "code\modules\blob2\overmind\types\grey_goo.dm" +#include "code\modules\blob2\overmind\types\pressurized_slime.dm" +#include "code\modules\blob2\overmind\types\radioactive_ooze.dm" +#include "code\modules\blob2\overmind\types\ravenous_macrophage.dm" +#include "code\modules\blob2\overmind\types\reactive_spines.dm" +#include "code\modules\blob2\overmind\types\roiling_mold.dm" +#include "code\modules\blob2\overmind\types\shifting_fragments.dm" +#include "code\modules\blob2\overmind\types\synchronous_mesh.dm" +#include "code\modules\blob2\overmind\types\volatile_alluvium.dm" +#include "code\modules\busy_space_vr\air_traffic.dm" +#include "code\modules\busy_space_vr\loremaster.dm" +#include "code\modules\busy_space_vr\organizations.dm" +#include "code\modules\catalogue\atoms.dm" +#include "code\modules\catalogue\catalogue_data.dm" +#include "code\modules\catalogue\catalogue_data_vr.dm" +#include "code\modules\catalogue\cataloguer.dm" +#include "code\modules\catalogue\cataloguer_visuals.dm" +#include "code\modules\catalogue\cataloguer_vr.dm" +#include "code\modules\client\client defines.dm" +#include "code\modules\client\client procs.dm" +#include "code\modules\client\client procs_vr.dm" +#include "code\modules\client\movement.dm" +#include "code\modules\client\preferences.dm" +#include "code\modules\client\preferences_factions.dm" +#include "code\modules\client\preferences_savefile.dm" +#include "code\modules\client\preferences_spawnpoints.dm" +#include "code\modules\client\preferences_toggle_procs.dm" +#include "code\modules\client\preferences_vr.dm" +#include "code\modules\client\spam_prevention.dm" +#include "code\modules\client\ui_style.dm" +#include "code\modules\client\preference_setup\_defines.dm" +#include "code\modules\client\preference_setup\preference_setup.dm" +#include "code\modules\client\preference_setup\preference_setup_vr.dm" +#include "code\modules\client\preference_setup\antagonism\01_basic.dm" +#include "code\modules\client\preference_setup\antagonism\02_candidacy.dm" +#include "code\modules\client\preference_setup\general\01_basic.dm" +#include "code\modules\client\preference_setup\general\02_language.dm" +#include "code\modules\client\preference_setup\general\03_body.dm" +#include "code\modules\client\preference_setup\general\04_equipment.dm" +#include "code\modules\client\preference_setup\general\05_background.dm" +#include "code\modules\client\preference_setup\general\06_flavor.dm" +#include "code\modules\client\preference_setup\global\01_ui.dm" +#include "code\modules\client\preference_setup\global\02_settings.dm" +#include "code\modules\client\preference_setup\global\03_pai.dm" +#include "code\modules\client\preference_setup\global\04_ooc.dm" +#include "code\modules\client\preference_setup\global\setting_datums.dm" +#include "code\modules\client\preference_setup\loadout\gear_tweaks.dm" +#include "code\modules\client\preference_setup\loadout\gear_tweaks_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout.dm" +#include "code\modules\client\preference_setup\loadout\loadout_accessories.dm" +#include "code\modules\client\preference_setup\loadout\loadout_accessories_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_cosmetics.dm" +#include "code\modules\client\preference_setup\loadout\loadout_cosmetics_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_cyberware.dm" +#include "code\modules\client\preference_setup\loadout\loadout_ears.dm" +#include "code\modules\client\preference_setup\loadout\loadout_eyes.dm" +#include "code\modules\client\preference_setup\loadout\loadout_eyes_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_fluffitems_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_general.dm" +#include "code\modules\client\preference_setup\loadout\loadout_general_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_gloves.dm" +#include "code\modules\client\preference_setup\loadout\loadout_gloves_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_head.dm" +#include "code\modules\client\preference_setup\loadout\loadout_head_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_mask.dm" +#include "code\modules\client\preference_setup\loadout\loadout_shoes.dm" +#include "code\modules\client\preference_setup\loadout\loadout_shoes_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_smoking.dm" +#include "code\modules\client\preference_setup\loadout\loadout_suit.dm" +#include "code\modules\client\preference_setup\loadout\loadout_suit_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_uniform.dm" +#include "code\modules\client\preference_setup\loadout\loadout_uniform_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_utility.dm" +#include "code\modules\client\preference_setup\loadout\loadout_utility_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_vr.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno_vr.dm" +#include "code\modules\client\preference_setup\occupation\occupation.dm" +#include "code\modules\client\preference_setup\skills\skills.dm" +#include "code\modules\client\preference_setup\volume_sliders\01_volume.dm" +#include "code\modules\client\preference_setup\volume_sliders\02_media.dm" +#include "code\modules\client\preference_setup\vore\01_ears.dm" +#include "code\modules\client\preference_setup\vore\02_size.dm" +#include "code\modules\client\preference_setup\vore\03_egg.dm" +#include "code\modules\client\preference_setup\vore\04_resleeving.dm" +#include "code\modules\client\preference_setup\vore\05_persistence.dm" +#include "code\modules\client\preference_setup\vore\06_vantag.dm" +#include "code\modules\client\preference_setup\vore\07_traits.dm" +#include "code\modules\client\preference_setup\vore\08_nif.dm" +#include "code\modules\client\preference_setup\vore\09_misc.dm" +#include "code\modules\client\verbs\advanced_who.dm" +#include "code\modules\client\verbs\character_directory.dm" +#include "code\modules\client\verbs\ignore.dm" +#include "code\modules\client\verbs\ooc.dm" +#include "code\modules\client\verbs\ping.dm" +#include "code\modules\client\verbs\suicide.dm" +#include "code\modules\client\verbs\who.dm" +#include "code\modules\clothing\chameleon.dm" +#include "code\modules\clothing\clothing.dm" +#include "code\modules\clothing\clothing_accessories.dm" +#include "code\modules\clothing\clothing_icons.dm" +#include "code\modules\clothing\clothing_vr.dm" +#include "code\modules\clothing\ears\earrings.dm" +#include "code\modules\clothing\ears\ears.dm" +#include "code\modules\clothing\glasses\glasses.dm" +#include "code\modules\clothing\glasses\glasses_vr.dm" +#include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\glasses\hud_vr.dm" +#include "code\modules\clothing\gloves\antagonist.dm" +#include "code\modules\clothing\gloves\arm_guards.dm" +#include "code\modules\clothing\gloves\arm_guards_vr.dm" +#include "code\modules\clothing\gloves\boxing.dm" +#include "code\modules\clothing\gloves\color.dm" +#include "code\modules\clothing\gloves\gauntlets.dm" +#include "code\modules\clothing\gloves\miscellaneous.dm" +#include "code\modules\clothing\gloves\miscellaneous_vr.dm" +#include "code\modules\clothing\head\collectable.dm" +#include "code\modules\clothing\head\flowercrowns.dm" +#include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\helmet.dm" +#include "code\modules\clothing\head\helmet_vr.dm" +#include "code\modules\clothing\head\hood.dm" +#include "code\modules\clothing\head\hood_vr.dm" +#include "code\modules\clothing\head\jobs.dm" +#include "code\modules\clothing\head\jobs_vr.dm" +#include "code\modules\clothing\head\misc.dm" +#include "code\modules\clothing\head\misc_special.dm" +#include "code\modules\clothing\head\misc_vr.dm" +#include "code\modules\clothing\head\pilot_helmet.dm" +#include "code\modules\clothing\head\pilot_helmet_vr.dm" +#include "code\modules\clothing\head\soft_caps.dm" +#include "code\modules\clothing\head\solgov.dm" +#include "code\modules\clothing\head\solgov_vr.dm" +#include "code\modules\clothing\masks\boxing.dm" +#include "code\modules\clothing\masks\breath.dm" +#include "code\modules\clothing\masks\breath_vr.dm" +#include "code\modules\clothing\masks\gasmask.dm" +#include "code\modules\clothing\masks\gasmask_vr.dm" +#include "code\modules\clothing\masks\hailer.dm" +#include "code\modules\clothing\masks\miscellaneous.dm" +#include "code\modules\clothing\masks\shiny_vr.dm" +#include "code\modules\clothing\masks\voice.dm" +#include "code\modules\clothing\rings\material.dm" +#include "code\modules\clothing\rings\rings.dm" +#include "code\modules\clothing\rings\rings_vr.dm" +#include "code\modules\clothing\shoes\boots.dm" +#include "code\modules\clothing\shoes\boots_vr.dm" +#include "code\modules\clothing\shoes\colour.dm" +#include "code\modules\clothing\shoes\leg_guards.dm" +#include "code\modules\clothing\shoes\leg_guards_vr.dm" +#include "code\modules\clothing\shoes\magboots.dm" +#include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\shoes\miscellaneous_vr.dm" +#include "code\modules\clothing\spacesuits\alien.dm" +#include "code\modules\clothing\spacesuits\breaches.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\spacesuits.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\spacesuits\rig\rig.dm" +#include "code\modules\clothing\spacesuits\rig\rig_attackby.dm" +#include "code\modules\clothing\spacesuits\rig\rig_pieces.dm" +#include "code\modules\clothing\spacesuits\rig\rig_pieces_vr.dm" +#include "code\modules\clothing\spacesuits\rig\rig_tgui.dm" +#include "code\modules\clothing\spacesuits\rig\rig_verbs.dm" +#include "code\modules\clothing\spacesuits\rig\rig_wiring.dm" +#include "code\modules\clothing\spacesuits\rig\modules\modules.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\ai_container.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\chem_dispenser.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\cleaner_launcher.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\cloak.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\datajack.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\device.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\electrowarfare.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\grenade_launcher.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\inhand_fabricator.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\jetpack.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\metalfoam_launcher.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\mounted_gun_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\pat_module_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\powersink.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\rescue_pharm_vr.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\self_destruct.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\sprinter.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\teleporter.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\vision.dm" +#include "code\modules\clothing\spacesuits\rig\modules\specific\voice.dm" +#include "code\modules\clothing\spacesuits\rig\suits\alien.dm" +#include "code\modules\clothing\spacesuits\rig\suits\combat.dm" +#include "code\modules\clothing\spacesuits\rig\suits\ert.dm" +#include "code\modules\clothing\spacesuits\rig\suits\ert_vr.dm" +#include "code\modules\clothing\spacesuits\rig\suits\light.dm" +#include "code\modules\clothing\spacesuits\rig\suits\merc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\pmc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\robotics.dm" +#include "code\modules\clothing\spacesuits\rig\suits\station.dm" +#include "code\modules\clothing\spacesuits\rig\suits\station_vr.dm" +#include "code\modules\clothing\spacesuits\void\ert_vr.dm" +#include "code\modules\clothing\spacesuits\void\event.dm" +#include "code\modules\clothing\spacesuits\void\event_vr.dm" +#include "code\modules\clothing\spacesuits\void\merc.dm" +#include "code\modules\clothing\spacesuits\void\military_vr.dm" +#include "code\modules\clothing\spacesuits\void\station.dm" +#include "code\modules\clothing\spacesuits\void\station_vr.dm" +#include "code\modules\clothing\spacesuits\void\void.dm" +#include "code\modules\clothing\spacesuits\void\void_vr.dm" +#include "code\modules\clothing\spacesuits\void\wizard.dm" +#include "code\modules\clothing\spacesuits\void\zaddat.dm" +#include "code\modules\clothing\suits\armor.dm" +#include "code\modules\clothing\suits\armor_vr.dm" +#include "code\modules\clothing\suits\bio.dm" +#include "code\modules\clothing\suits\bio_vr.dm" +#include "code\modules\clothing\suits\hooded.dm" +#include "code\modules\clothing\suits\hooded_vr.dm" +#include "code\modules\clothing\suits\jobs.dm" +#include "code\modules\clothing\suits\jobs_vr.dm" +#include "code\modules\clothing\suits\labcoat.dm" +#include "code\modules\clothing\suits\labcoat_vr.dm" +#include "code\modules\clothing\suits\miscellaneous.dm" +#include "code\modules\clothing\suits\miscellaneous_vr.dm" +#include "code\modules\clothing\suits\solgov.dm" +#include "code\modules\clothing\suits\solgov_vr.dm" +#include "code\modules\clothing\suits\storage.dm" +#include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\utility_vr.dm" +#include "code\modules\clothing\suits\wiz_robe.dm" +#include "code\modules\clothing\suits\aliens\tajara.dm" +#include "code\modules\clothing\suits\aliens\teshari.dm" +#include "code\modules\clothing\suits\aliens\unathi.dm" +#include "code\modules\clothing\suits\aliens\vox.dm" +#include "code\modules\clothing\under\color.dm" +#include "code\modules\clothing\under\imperial_vr.dm" +#include "code\modules\clothing\under\miscellaneous.dm" +#include "code\modules\clothing\under\miscellaneous_vr.dm" +#include "code\modules\clothing\under\nanotrasen_vr.dm" +#include "code\modules\clothing\under\pants.dm" +#include "code\modules\clothing\under\shiny_vr.dm" +#include "code\modules\clothing\under\shorts.dm" +#include "code\modules\clothing\under\solgov.dm" +#include "code\modules\clothing\under\solgov_vr.dm" +#include "code\modules\clothing\under\syndicate.dm" +#include "code\modules\clothing\under\accessories\accessory.dm" +#include "code\modules\clothing\under\accessories\accessory_vr.dm" +#include "code\modules\clothing\under\accessories\armband.dm" +#include "code\modules\clothing\under\accessories\armor.dm" +#include "code\modules\clothing\under\accessories\badges.dm" +#include "code\modules\clothing\under\accessories\clothing.dm" +#include "code\modules\clothing\under\accessories\holster.dm" +#include "code\modules\clothing\under\accessories\holster_vr.dm" +#include "code\modules\clothing\under\accessories\lockets.dm" +#include "code\modules\clothing\under\accessories\permits.dm" +#include "code\modules\clothing\under\accessories\permits_vr.dm" +#include "code\modules\clothing\under\accessories\shiny_vr.dm" +#include "code\modules\clothing\under\accessories\storage.dm" +#include "code\modules\clothing\under\accessories\storage_vr.dm" +#include "code\modules\clothing\under\accessories\torch.dm" +#include "code\modules\clothing\under\accessories\torch_vr.dm" +#include "code\modules\clothing\under\accessories\temperature\poncho.dm" +#include "code\modules\clothing\under\jobs\civilian.dm" +#include "code\modules\clothing\under\jobs\engineering.dm" +#include "code\modules\clothing\under\jobs\medsci.dm" +#include "code\modules\clothing\under\jobs\security.dm" +#include "code\modules\clothing\under\xenos\teshari.dm" +#include "code\modules\clothing\under\xenos\vox.dm" +#include "code\modules\compass\_compass.dm" +#include "code\modules\compass\compass_holder.dm" +#include "code\modules\compass\compass_waypoint.dm" +#include "code\modules\compass\~compass.dm" +#include "code\modules\customitems\item_spawning.dm" +#include "code\modules\detectivework\footprints.dm" +#include "code\modules\detectivework\forensics.dm" +#include "code\modules\detectivework\microscope\dnascanner.dm" +#include "code\modules\detectivework\microscope\microscope.dm" +#include "code\modules\detectivework\tools\crimekit.dm" +#include "code\modules\detectivework\tools\evidencebag.dm" +#include "code\modules\detectivework\tools\luminol.dm" +#include "code\modules\detectivework\tools\rag.dm" +#include "code\modules\detectivework\tools\sample_kits.dm" +#include "code\modules\detectivework\tools\scanner.dm" +#include "code\modules\detectivework\tools\storage.dm" +#include "code\modules\detectivework\tools\swabs.dm" +#include "code\modules\detectivework\tools\uvlight.dm" +#include "code\modules\economy\Accounts.dm" +#include "code\modules\economy\Accounts_DB.dm" +#include "code\modules\economy\ATM.dm" +#include "code\modules\economy\cash.dm" +#include "code\modules\economy\cash_register.dm" +#include "code\modules\economy\coins.dm" +#include "code\modules\economy\coins_vr.dm" +#include "code\modules\economy\economy_misc.dm" +#include "code\modules\economy\EFTPOS.dm" +#include "code\modules\economy\Events.dm" +#include "code\modules\economy\Events_Mundane.dm" +#include "code\modules\economy\lorenews.dm" +#include "code\modules\economy\mint.dm" +#include "code\modules\economy\money_bag.dm" +#include "code\modules\economy\price_list.dm" +#include "code\modules\economy\retail_scanner.dm" +#include "code\modules\economy\TradeDestinations.dm" +#include "code\modules\economy\vending.dm" +#include "code\modules\economy\vending_machines.dm" +#include "code\modules\emotes\emote_define.dm" +#include "code\modules\emotes\emote_mob.dm" +#include "code\modules\emotes\definitions\_mob.dm" +#include "code\modules\emotes\definitions\_species.dm" +#include "code\modules\emotes\definitions\audible.dm" +#include "code\modules\emotes\definitions\audible_cough.dm" +#include "code\modules\emotes\definitions\audible_furry_vr.dm" +#include "code\modules\emotes\definitions\audible_scream.dm" +#include "code\modules\emotes\definitions\audible_scream_vr.dm" +#include "code\modules\emotes\definitions\audible_slap.dm" +#include "code\modules\emotes\definitions\audible_snap.dm" +#include "code\modules\emotes\definitions\audible_sneeze.dm" +#include "code\modules\emotes\definitions\audible_whistle.dm" +#include "code\modules\emotes\definitions\exertion.dm" +#include "code\modules\emotes\definitions\helpers_vr.dm" +#include "code\modules\emotes\definitions\human.dm" +#include "code\modules\emotes\definitions\slimes.dm" +#include "code\modules\emotes\definitions\synthetics.dm" +#include "code\modules\emotes\definitions\visible.dm" +#include "code\modules\emotes\definitions\visible_animated.dm" +#include "code\modules\emotes\definitions\visible_vomit.dm" +#include "code\modules\emotes\definitions\visible_vr.dm" +#include "code\modules\entopics_vr\alternate_appearance.dm" +#include "code\modules\entopics_vr\entopics.dm" +#include "code\modules\error_handler\_defines.dm" +#include "code\modules\error_handler\error_handler.dm" +#include "code\modules\error_handler\error_viewer.dm" +#include "code\modules\error_handler\~defines.dm" +#include "code\modules\events\apc_damage.dm" +#include "code\modules\events\atmos_leak.dm" +#include "code\modules\events\aurora_caelus.dm" +#include "code\modules\events\blob.dm" +#include "code\modules\events\brand_intelligence.dm" +#include "code\modules\events\camera_damage.dm" +#include "code\modules\events\canister_leak.dm" +#include "code\modules\events\carp_migration.dm" +#include "code\modules\events\comms_blackout.dm" +#include "code\modules\events\communications_blackout.dm" +#include "code\modules\events\drone_pod_vr.dm" +#include "code\modules\events\dust.dm" +#include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\event.dm" +#include "code\modules\events\event_container.dm" +#include "code\modules\events\event_container_vr.dm" +#include "code\modules\events\event_dynamic.dm" +#include "code\modules\events\event_manager.dm" +#include "code\modules\events\gravity_vr.dm" +#include "code\modules\events\grid_check.dm" +#include "code\modules\events\grubinfestation_vr.dm" +#include "code\modules\events\ian_storm_vr.dm" +#include "code\modules\events\infestation.dm" +#include "code\modules\events\ion_storm.dm" +#include "code\modules\events\maintenance_predator_vr.dm" +#include "code\modules\events\meteor_strike_vr.dm" +#include "code\modules\events\meteors.dm" +#include "code\modules\events\money_hacker.dm" +#include "code\modules\events\money_lotto.dm" +#include "code\modules\events\money_spam.dm" +#include "code\modules\events\morph_spawn_vr.dm" +#include "code\modules\events\prison_break.dm" +#include "code\modules\events\radiation_storm.dm" +#include "code\modules\events\random_antagonist.dm" +#include "code\modules\events\rogue_drones.dm" +#include "code\modules\events\shipping_error.dm" +#include "code\modules\events\solar_storm.dm" +#include "code\modules\events\space_ninja.dm" +#include "code\modules\events\spacevine.dm" +#include "code\modules\events\spider_infestation.dm" +#include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\spontaneous_appendicitis_vr.dm" +#include "code\modules\events\supply_demand_vr.dm" +#include "code\modules\events\wallrot.dm" +#include "code\modules\examine\examine.dm" +#include "code\modules\examine\stat_icons.dm" +#include "code\modules\examine\descriptions\armor.dm" +#include "code\modules\examine\descriptions\atmospherics.dm" +#include "code\modules\examine\descriptions\containers.dm" +#include "code\modules\examine\descriptions\devices.dm" +#include "code\modules\examine\descriptions\engineering.dm" +#include "code\modules\examine\descriptions\machines.dm" +#include "code\modules\examine\descriptions\medical.dm" +#include "code\modules\examine\descriptions\mobs.dm" +#include "code\modules\examine\descriptions\paperwork.dm" +#include "code\modules\examine\descriptions\stacks.dm" +#include "code\modules\examine\descriptions\structures.dm" +#include "code\modules\examine\descriptions\telecomms.dm" +#include "code\modules\examine\descriptions\turfs.dm" +#include "code\modules\examine\descriptions\weapons.dm" +#include "code\modules\ext_scripts\irc.dm" +#include "code\modules\ext_scripts\python.dm" +#include "code\modules\fishing\fishing.dm" +#include "code\modules\fishing\fishing_net.dm" +#include "code\modules\fishing\fishing_rod.dm" +#include "code\modules\fishing\fishing_rod_vr.dm" +#include "code\modules\fishing\fishing_vr.dm" +#include "code\modules\flufftext\Dreaming.dm" +#include "code\modules\flufftext\Hallucination.dm" +#include "code\modules\flufftext\look_up.dm" +#include "code\modules\flufftext\TextFilters.dm" +#include "code\modules\food\food.dm" +#include "code\modules\food\recipe.dm" +#include "code\modules\food\recipe_dump.dm" +#include "code\modules\food\recipes_fryer.dm" +#include "code\modules\food\recipes_fryer_vr.dm" +#include "code\modules\food\recipes_grill.dm" +#include "code\modules\food\recipes_microwave.dm" +#include "code\modules\food\recipes_microwave_vr.dm" +#include "code\modules\food\recipes_oven.dm" +#include "code\modules\food\recipes_oven_vr.dm" +#include "code\modules\food\drinkingglass\drinkingglass.dm" +#include "code\modules\food\drinkingglass\extras.dm" +#include "code\modules\food\drinkingglass\glass_boxes.dm" +#include "code\modules\food\drinkingglass\glass_types.dm" +#include "code\modules\food\drinkingglass\metaglass.dm" +#include "code\modules\food\drinkingglass\metaglass_vr.dm" +#include "code\modules\food\drinkingglass\serving_glasses.dm" +#include "code\modules\food\drinkingglass\shaker.dm" +#include "code\modules\food\drinkingglass\shaker_vr.dm" +#include "code\modules\food\food\cans.dm" +#include "code\modules\food\food\cans_vr.dm" +#include "code\modules\food\food\condiment.dm" +#include "code\modules\food\food\drinks.dm" +#include "code\modules\food\food\drinks_vr.dm" +#include "code\modules\food\food\lunch.dm" +#include "code\modules\food\food\sandwich.dm" +#include "code\modules\food\food\snacks.dm" +#include "code\modules\food\food\snacks_vr.dm" +#include "code\modules\food\food\thecake.dm" +#include "code\modules\food\food\z_custom_food_vr.dm" +#include "code\modules\food\food\drinks\bottle.dm" +#include "code\modules\food\food\drinks\cup.dm" +#include "code\modules\food\food\drinks\drinkingglass.dm" +#include "code\modules\food\food\drinks\jar.dm" +#include "code\modules\food\food\drinks\bottle\robot.dm" +#include "code\modules\food\food\snacks\meat.dm" +#include "code\modules\food\glass\bottle.dm" +#include "code\modules\food\glass\bottle_vr.dm" +#include "code\modules\food\glass\bottle\robot.dm" +#include "code\modules\food\kitchen\gibber.dm" +#include "code\modules\food\kitchen\icecream.dm" +#include "code\modules\food\kitchen\microwave.dm" +#include "code\modules\food\kitchen\cooking_machines\_appliance.dm" +#include "code\modules\food\kitchen\cooking_machines\_cooker.dm" +#include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm" +#include "code\modules\food\kitchen\cooking_machines\_mixer.dm" +#include "code\modules\food\kitchen\cooking_machines\candy.dm" +#include "code\modules\food\kitchen\cooking_machines\cereal.dm" +#include "code\modules\food\kitchen\cooking_machines\container.dm" +#include "code\modules\food\kitchen\cooking_machines\fryer.dm" +#include "code\modules\food\kitchen\cooking_machines\grill.dm" +#include "code\modules\food\kitchen\cooking_machines\oven.dm" +#include "code\modules\food\kitchen\smartfridge\drying_rack.dm" +#include "code\modules\food\kitchen\smartfridge\engineering.dm" +#include "code\modules\food\kitchen\smartfridge\hydroponics.dm" +#include "code\modules\food\kitchen\smartfridge\medical.dm" +#include "code\modules\food\kitchen\smartfridge\smartfridge.dm" +#include "code\modules\food\kitchen\smartfridge\smartfridge_vr.dm" +#include "code\modules\gamemaster\defines.dm" +#include "code\modules\gamemaster\event2\event.dm" +#include "code\modules\gamemaster\event2\meta.dm" +#include "code\modules\gamemaster\event2\events\ghost_pod_spawner.dm" +#include "code\modules\gamemaster\event2\events\mob_spawning.dm" +#include "code\modules\gamemaster\event2\events\cargo\shipping_error.dm" +#include "code\modules\gamemaster\event2\events\command\manifest_malfunction.dm" +#include "code\modules\gamemaster\event2\events\command\money_hacker.dm" +#include "code\modules\gamemaster\event2\events\command\raise_funds.dm" +#include "code\modules\gamemaster\event2\events\engineering\airlock_failure.dm" +#include "code\modules\gamemaster\event2\events\engineering\blob.dm" +#include "code\modules\gamemaster\event2\events\engineering\brand_intelligence.dm" +#include "code\modules\gamemaster\event2\events\engineering\camera_damage.dm" +#include "code\modules\gamemaster\event2\events\engineering\canister_leak.dm" +#include "code\modules\gamemaster\event2\events\engineering\dust.dm" +#include "code\modules\gamemaster\event2\events\engineering\gas_leak.dm" +#include "code\modules\gamemaster\event2\events\engineering\grid_check.dm" +#include "code\modules\gamemaster\event2\events\engineering\meteor_defense.dm" +#include "code\modules\gamemaster\event2\events\engineering\spacevine.dm" +#include "code\modules\gamemaster\event2\events\engineering\wallrot.dm" +#include "code\modules\gamemaster\event2\events\engineering\window_break.dm" +#include "code\modules\gamemaster\event2\events\everyone\comms_blackout.dm" +#include "code\modules\gamemaster\event2\events\everyone\electrical_fault.dm" +#include "code\modules\gamemaster\event2\events\everyone\gravity_vr.dm" +#include "code\modules\gamemaster\event2\events\everyone\infestation.dm" +#include "code\modules\gamemaster\event2\events\everyone\pda_spam.dm" +#include "code\modules\gamemaster\event2\events\everyone\radiation_storm.dm" +#include "code\modules\gamemaster\event2\events\everyone\random_antag.dm" +#include "code\modules\gamemaster\event2\events\everyone\solar_storm.dm" +#include "code\modules\gamemaster\event2\events\everyone\sudden_weather_shift.dm" +#include "code\modules\gamemaster\event2\events\legacy\legacy.dm" +#include "code\modules\gamemaster\event2\events\medical\appendicitis.dm" +#include "code\modules\gamemaster\event2\events\medical\virus.dm" +#include "code\modules\gamemaster\event2\events\security\carp_migration.dm" +#include "code\modules\gamemaster\event2\events\security\drill_announcement.dm" +#include "code\modules\gamemaster\event2\events\security\prison_break.dm" +#include "code\modules\gamemaster\event2\events\security\rogue_drones.dm" +#include "code\modules\gamemaster\event2\events\security\security_advisement.dm" +#include "code\modules\gamemaster\event2\events\security\spider_infestation.dm" +#include "code\modules\gamemaster\event2\events\security\stowaway.dm" +#include "code\modules\gamemaster\event2\events\security\surprise_carp.dm" +#include "code\modules\gamemaster\event2\events\security\swarm_boarder.dm" +#include "code\modules\gamemaster\event2\events\synthetic\ion_storm.dm" +#include "code\modules\games\cah.dm" +#include "code\modules\games\cah_black_cards.dm" +#include "code\modules\games\cah_white_cards.dm" +#include "code\modules\games\cardemon.dm" +#include "code\modules\games\cards.dm" +#include "code\modules\games\dice.dm" +#include "code\modules\games\spaceball_cards.dm" +#include "code\modules\games\tarot.dm" +#include "code\modules\genetics\side_effects.dm" +#include "code\modules\ghosttrap\trap.dm" +#include "code\modules\holodeck\HolodeckControl.dm" +#include "code\modules\holodeck\HolodeckObjects.dm" +#include "code\modules\holodeck\HolodeckPrograms.dm" +#include "code\modules\holomap\generate_holomap.dm" +#include "code\modules\holomap\holomap_area.dm" +#include "code\modules\holomap\holomap_datum.dm" +#include "code\modules\holomap\mapper.dm" +#include "code\modules\holomap\station_holomap.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\grown_inedible.dm" +#include "code\modules\hydroponics\grown_predefined.dm" +#include "code\modules\hydroponics\seed.dm" +#include "code\modules\hydroponics\seed_datums_vr.dm" +#include "code\modules\hydroponics\seed_gene_mut.dm" +#include "code\modules\hydroponics\seed_machines.dm" +#include "code\modules\hydroponics\seed_mobs.dm" +#include "code\modules\hydroponics\seed_packets.dm" +#include "code\modules\hydroponics\seed_packets_vr.dm" +#include "code\modules\hydroponics\seed_storage.dm" +#include "code\modules\hydroponics\seed_storage_vr.dm" +#include "code\modules\hydroponics\beekeeping\beehive.dm" +#include "code\modules\hydroponics\seedtypes\amauri.dm" +#include "code\modules\hydroponics\seedtypes\ambrosia.dm" +#include "code\modules\hydroponics\seedtypes\apples.dm" +#include "code\modules\hydroponics\seedtypes\banana.dm" +#include "code\modules\hydroponics\seedtypes\berries.dm" +#include "code\modules\hydroponics\seedtypes\cabbage.dm" +#include "code\modules\hydroponics\seedtypes\carrots.dm" +#include "code\modules\hydroponics\seedtypes\celery.dm" +#include "code\modules\hydroponics\seedtypes\cherries.dm" +#include "code\modules\hydroponics\seedtypes\chili.dm" +#include "code\modules\hydroponics\seedtypes\citrus.dm" +#include "code\modules\hydroponics\seedtypes\cocoa.dm" +#include "code\modules\hydroponics\seedtypes\corn.dm" +#include "code\modules\hydroponics\seedtypes\diona.dm" +#include "code\modules\hydroponics\seedtypes\durian.dm" +#include "code\modules\hydroponics\seedtypes\eggplant.dm" +#include "code\modules\hydroponics\seedtypes\flowers.dm" +#include "code\modules\hydroponics\seedtypes\gelthi.dm" +#include "code\modules\hydroponics\seedtypes\gnomes.dm" +#include "code\modules\hydroponics\seedtypes\grapes.dm" +#include "code\modules\hydroponics\seedtypes\grass.dm" +#include "code\modules\hydroponics\seedtypes\jurlmah.dm" +#include "code\modules\hydroponics\seedtypes\kudzu.dm" +#include "code\modules\hydroponics\seedtypes\lettuce.dm" +#include "code\modules\hydroponics\seedtypes\malanitear.dm" +#include "code\modules\hydroponics\seedtypes\mushrooms.dm" +#include "code\modules\hydroponics\seedtypes\nettles.dm" +#include "code\modules\hydroponics\seedtypes\onion.dm" +#include "code\modules\hydroponics\seedtypes\peanuts.dm" +#include "code\modules\hydroponics\seedtypes\pineapple.dm" +#include "code\modules\hydroponics\seedtypes\potato.dm" +#include "code\modules\hydroponics\seedtypes\pumpkin.dm" +#include "code\modules\hydroponics\seedtypes\rhubarb.dm" +#include "code\modules\hydroponics\seedtypes\rice.dm" +#include "code\modules\hydroponics\seedtypes\selemhand.dm" +#include "code\modules\hydroponics\seedtypes\soybean.dm" +#include "code\modules\hydroponics\seedtypes\sugarcane.dm" +#include "code\modules\hydroponics\seedtypes\surik.dm" +#include "code\modules\hydroponics\seedtypes\telriis.dm" +#include "code\modules\hydroponics\seedtypes\thaadra.dm" +#include "code\modules\hydroponics\seedtypes\tobacco.dm" +#include "code\modules\hydroponics\seedtypes\tomatoes.dm" +#include "code\modules\hydroponics\seedtypes\vale.dm" +#include "code\modules\hydroponics\seedtypes\vanilla.dm" +#include "code\modules\hydroponics\seedtypes\wabback.dm" +#include "code\modules\hydroponics\seedtypes\watermelon.dm" +#include "code\modules\hydroponics\seedtypes\weeds.dm" +#include "code\modules\hydroponics\seedtypes\wheat.dm" +#include "code\modules\hydroponics\seedtypes\whitebeets.dm" +#include "code\modules\hydroponics\seedtypes\wurmwoad.dm" +#include "code\modules\hydroponics\seedtypes\xeno.dm" +#include "code\modules\hydroponics\spreading\spreading.dm" +#include "code\modules\hydroponics\spreading\spreading_growth.dm" +#include "code\modules\hydroponics\spreading\spreading_response.dm" +#include "code\modules\hydroponics\trays\tray.dm" +#include "code\modules\hydroponics\trays\tray_process.dm" +#include "code\modules\hydroponics\trays\tray_reagents.dm" +#include "code\modules\hydroponics\trays\tray_soil.dm" +#include "code\modules\hydroponics\trays\tray_tools.dm" +#include "code\modules\hydroponics\trays\tray_update_icons.dm" +#include "code\modules\identification\identification.dm" +#include "code\modules\identification\item_procs.dm" +#include "code\modules\instruments\items.dm" +#include "code\modules\instruments\stationary.dm" +#include "code\modules\instruments\instrument_data\_instrument_data.dm" +#include "code\modules\instruments\instrument_data\_instrument_key.dm" +#include "code\modules\instruments\instrument_data\brass.dm" +#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" +#include "code\modules\instruments\instrument_data\fun.dm" +#include "code\modules\instruments\instrument_data\guitar.dm" +#include "code\modules\instruments\instrument_data\hardcoded.dm" +#include "code\modules\instruments\instrument_data\organ.dm" +#include "code\modules\instruments\instrument_data\piano.dm" +#include "code\modules\instruments\instrument_data\synth_tones.dm" +#include "code\modules\instruments\songs\_song.dm" +#include "code\modules\instruments\songs\editor.dm" +#include "code\modules\instruments\songs\play_legacy.dm" +#include "code\modules\instruments\songs\play_synthesized.dm" +#include "code\modules\integrated_electronics\_defines.dm" +#include "code\modules\integrated_electronics\core\assemblies.dm" +#include "code\modules\integrated_electronics\core\detailer.dm" +#include "code\modules\integrated_electronics\core\helpers.dm" +#include "code\modules\integrated_electronics\core\integrated_circuit.dm" +#include "code\modules\integrated_electronics\core\pins.dm" +#include "code\modules\integrated_electronics\core\printer.dm" +#include "code\modules\integrated_electronics\core\tools.dm" +#include "code\modules\integrated_electronics\core\assemblies\clothing.dm" +#include "code\modules\integrated_electronics\core\assemblies\device.dm" +#include "code\modules\integrated_electronics\core\assemblies\generic.dm" +#include "code\modules\integrated_electronics\core\assemblies\implant.dm" +#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm" +#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm" +#include "code\modules\integrated_electronics\passive\passive.dm" +#include "code\modules\integrated_electronics\passive\power.dm" +#include "code\modules\integrated_electronics\subtypes\arithmetic.dm" +#include "code\modules\integrated_electronics\subtypes\built_in.dm" +#include "code\modules\integrated_electronics\subtypes\converters.dm" +#include "code\modules\integrated_electronics\subtypes\data_transfer.dm" +#include "code\modules\integrated_electronics\subtypes\input.dm" +#include "code\modules\integrated_electronics\subtypes\lists.dm" +#include "code\modules\integrated_electronics\subtypes\logic.dm" +#include "code\modules\integrated_electronics\subtypes\manipulation.dm" +#include "code\modules\integrated_electronics\subtypes\memory.dm" +#include "code\modules\integrated_electronics\subtypes\output.dm" +#include "code\modules\integrated_electronics\subtypes\power.dm" +#include "code\modules\integrated_electronics\subtypes\reagents.dm" +#include "code\modules\integrated_electronics\subtypes\smart.dm" +#include "code\modules\integrated_electronics\subtypes\time.dm" +#include "code\modules\integrated_electronics\subtypes\trig.dm" +#include "code\modules\integrated_electronics\~defines\~defines.dm" +#include "code\modules\keybindings\bindings_atom.dm" +#include "code\modules\keybindings\bindings_movekeys.dm" +#include "code\modules\keybindings\setup.dm" +#include "code\modules\library\lib_items.dm" +#include "code\modules\library\lib_machines.dm" +#include "code\modules\library\lib_readme.dm" +#include "code\modules\library\hardcode_library\_library.dm" +#include "code\modules\library\hardcode_library\fiction\APsychonaut.dm" +#include "code\modules\library\hardcode_library\fiction\battlefieldcommander.dm" +#include "code\modules\library\hardcode_library\fiction\PortedBooks.dm" +#include "code\modules\library\hardcode_library\fiction\schnayy.dm" +#include "code\modules\library\hardcode_library\non-fiction\PortedBooks.dm" +#include "code\modules\library\hardcode_library\reference\PortedBooks.dm" +#include "code\modules\library\hardcode_library\reference\Schnayy.dm" +#include "code\modules\library\hardcode_library\religious\PortedBooks.dm" +#include "code\modules\lighting\emissive_blocker.dm" +#include "code\modules\lighting\lighting_area.dm" +#include "code\modules\lighting\lighting_atom.dm" +#include "code\modules\lighting\lighting_corner.dm" +#include "code\modules\lighting\lighting_fake_sun_vr.dm" +#include "code\modules\lighting\lighting_overlay.dm" +#include "code\modules\lighting\lighting_setup.dm" +#include "code\modules\lighting\lighting_source.dm" +#include "code\modules\lighting\lighting_turf.dm" +#include "code\modules\looking_glass\lg_area.dm" +#include "code\modules\looking_glass\lg_console.dm" +#include "code\modules\looking_glass\lg_imageholder.dm" +#include "code\modules\looking_glass\lg_turfs.dm" +#include "code\modules\lore_codex\codex.dm" +#include "code\modules\lore_codex\codex_tree.dm" +#include "code\modules\lore_codex\pages.dm" +#include "code\modules\lore_codex\lore_data_vr\important_locations.dm" +#include "code\modules\lore_codex\lore_data_vr\main.dm" +#include "code\modules\lore_codex\lore_data_vr\orgs.dm" +#include "code\modules\lore_codex\lore_data_vr\political_parties.dm" +#include "code\modules\lore_codex\lore_data_vr\species.dm" +#include "code\modules\lore_codex\news_data\main.dm" +#include "code\modules\lore_codex\robutt_data\bybrand.dm" +#include "code\modules\lore_codex\robutt_data\main_robutts.dm" +#include "code\modules\lore_codex\robutt_data\more.dm" +#include "code\modules\makeup\nailpolish.dm" +#include "code\modules\maps\tg\dmm_suite.dm" +#include "code\modules\maps\tg\map_template.dm" +#include "code\modules\maps\tg\map_template_vr.dm" +#include "code\modules\maps\tg\reader.dm" +#include "code\modules\materials\fifty_spawner.dm" +#include "code\modules\materials\fifty_spawner_mats.dm" +#include "code\modules\materials\fifty_spawner_mats_vr.dm" +#include "code\modules\materials\material_synth.dm" +#include "code\modules\materials\materials\_materials.dm" +#include "code\modules\materials\materials\_materials_vr.dm" +#include "code\modules\materials\materials\alien_alloy.dm" +#include "code\modules\materials\materials\cult.dm" +#include "code\modules\materials\materials\gems.dm" +#include "code\modules\materials\materials\glass.dm" +#include "code\modules\materials\materials\glass_vr.dm" +#include "code\modules\materials\materials\holographic.dm" +#include "code\modules\materials\materials\other_vr.dm" +#include "code\modules\materials\materials\plastic.dm" +#include "code\modules\materials\materials\snow.dm" +#include "code\modules\materials\materials\stone.dm" +#include "code\modules\materials\materials\supermatter.dm" +#include "code\modules\materials\materials\metals\hull.dm" +#include "code\modules\materials\materials\metals\hull_vr.dm" +#include "code\modules\materials\materials\metals\metals.dm" +#include "code\modules\materials\materials\metals\metals_vr.dm" +#include "code\modules\materials\materials\metals\plasteel.dm" +#include "code\modules\materials\materials\metals\plasteel_vr.dm" +#include "code\modules\materials\materials\metals\steel.dm" +#include "code\modules\materials\materials\metals\steel_vr.dm" +#include "code\modules\materials\materials\organic\animal_products.dm" +#include "code\modules\materials\materials\organic\cloth.dm" +#include "code\modules\materials\materials\organic\leather.dm" +#include "code\modules\materials\materials\organic\resin.dm" +#include "code\modules\materials\materials\organic\wood.dm" +#include "code\modules\materials\sheets\_sheets.dm" +#include "code\modules\materials\sheets\gems.dm" +#include "code\modules\materials\sheets\glass.dm" +#include "code\modules\materials\sheets\glass_vr.dm" +#include "code\modules\materials\sheets\plastic.dm" +#include "code\modules\materials\sheets\snow.dm" +#include "code\modules\materials\sheets\stone.dm" +#include "code\modules\materials\sheets\supermatter.dm" +#include "code\modules\materials\sheets\metals\hull.dm" +#include "code\modules\materials\sheets\metals\hull_vr.dm" +#include "code\modules\materials\sheets\metals\metal.dm" +#include "code\modules\materials\sheets\metals\metal_vr.dm" +#include "code\modules\materials\sheets\metals\rods.dm" +#include "code\modules\materials\sheets\organic\animal_products.dm" +#include "code\modules\materials\sheets\organic\resin.dm" +#include "code\modules\materials\sheets\organic\textiles.dm" +#include "code\modules\materials\sheets\organic\wood.dm" +#include "code\modules\materials\sheets\organic\tanning\hide.dm" +#include "code\modules\materials\sheets\organic\tanning\hide_hairless.dm" +#include "code\modules\materials\sheets\organic\tanning\leather_wet.dm" +#include "code\modules\materials\sheets\organic\tanning\tanning_rack.dm" +#include "code\modules\media\juke_remote.dm" +#include "code\modules\media\media_machinery.dm" +#include "code\modules\media\media_player_html5.dm" +#include "code\modules\media\media_player_vlc.dm" +#include "code\modules\media\media_player_wmp.dm" +#include "code\modules\media\media_tracks.dm" +#include "code\modules\media\mediamanager.dm" +#include "code\modules\media\walkpod.dm" +#include "code\modules\metric\activity.dm" +#include "code\modules\metric\count.dm" +#include "code\modules\metric\department.dm" +#include "code\modules\metric\metric.dm" +#include "code\modules\mining\abandonedcrates.dm" +#include "code\modules\mining\abandonedcrates_vr.dm" +#include "code\modules\mining\alloys.dm" +#include "code\modules\mining\alloys_vr.dm" +#include "code\modules\mining\fulton.dm" +#include "code\modules\mining\mine_items.dm" +#include "code\modules\mining\mine_items_vr.dm" +#include "code\modules\mining\mine_outcrops.dm" +#include "code\modules\mining\mine_turfs.dm" +#include "code\modules\mining\mine_turfs_vr.dm" +#include "code\modules\mining\mineral_effect.dm" +#include "code\modules\mining\ore.dm" +#include "code\modules\mining\ore_box.dm" +#include "code\modules\mining\ore_datum.dm" +#include "code\modules\mining\resonator_vr.dm" +#include "code\modules\mining\shelter_atoms_vr.dm" +#include "code\modules\mining\shelters_vr.dm" +#include "code\modules\mining\drilling\drill.dm" +#include "code\modules\mining\drilling\scanner.dm" +#include "code\modules\mining\machinery\machine_input_output_plates.dm" +#include "code\modules\mining\machinery\machine_processing.dm" +#include "code\modules\mining\machinery\machine_stacking.dm" +#include "code\modules\mining\machinery\machine_unloading.dm" +#include "code\modules\mining\ore_redemption_machine\construction.dm" +#include "code\modules\mining\ore_redemption_machine\equipment_vendor.dm" +#include "code\modules\mining\ore_redemption_machine\mine_point_items.dm" +#include "code\modules\mining\ore_redemption_machine\survey_vendor.dm" +#include "code\modules\mob\animations.dm" +#include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" +#include "code\modules\mob\gender.dm" +#include "code\modules\mob\gender_vr.dm" +#include "code\modules\mob\hear_say.dm" +#include "code\modules\mob\holder.dm" +#include "code\modules\mob\inventory.dm" +#include "code\modules\mob\login.dm" +#include "code\modules\mob\login_vr.dm" +#include "code\modules\mob\logout.dm" +#include "code\modules\mob\mob.dm" +#include "code\modules\mob\mob_defines.dm" +#include "code\modules\mob\mob_defines_vr.dm" +#include "code\modules\mob\mob_grab.dm" +#include "code\modules\mob\mob_grab_specials.dm" +#include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_helpers_vr.dm" +#include "code\modules\mob\mob_movement.dm" +#include "code\modules\mob\mob_planes.dm" +#include "code\modules\mob\mob_planes_vr.dm" +#include "code\modules\mob\mob_transformation_simple.dm" +#include "code\modules\mob\say.dm" +#include "code\modules\mob\say_vr.dm" +#include "code\modules\mob\skillset.dm" +#include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" +#include "code\modules\mob\update_icons.dm" +#include "code\modules\mob\_modifiers\aura.dm" +#include "code\modules\mob\_modifiers\changeling.dm" +#include "code\modules\mob\_modifiers\cloning.dm" +#include "code\modules\mob\_modifiers\feysight.dm" +#include "code\modules\mob\_modifiers\fire.dm" +#include "code\modules\mob\_modifiers\medical.dm" +#include "code\modules\mob\_modifiers\modifiers.dm" +#include "code\modules\mob\_modifiers\modifiers_misc.dm" +#include "code\modules\mob\_modifiers\traits.dm" +#include "code\modules\mob\_modifiers\traits_phobias.dm" +#include "code\modules\mob\_modifiers\unholy.dm" +#include "code\modules\mob\dead\corpse.dm" +#include "code\modules\mob\dead\corpse_vr.dm" +#include "code\modules\mob\dead\death.dm" +#include "code\modules\mob\dead\observer\free_vr.dm" +#include "code\modules\mob\dead\observer\login.dm" +#include "code\modules\mob\dead\observer\logout.dm" +#include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\observer_vr.dm" +#include "code\modules\mob\dead\observer\say.dm" +#include "code\modules\mob\freelook\chunk.dm" +#include "code\modules\mob\freelook\eye.dm" +#include "code\modules\mob\freelook\life.dm" +#include "code\modules\mob\freelook\update_triggers.dm" +#include "code\modules\mob\freelook\visualnet.dm" +#include "code\modules\mob\freelook\ai\cameranet.dm" +#include "code\modules\mob\freelook\ai\chunk.dm" +#include "code\modules\mob\freelook\ai\eye.dm" +#include "code\modules\mob\freelook\ai\update_triggers.dm" +#include "code\modules\mob\freelook\mask\chunk.dm" +#include "code\modules\mob\freelook\mask\cultnet.dm" +#include "code\modules\mob\freelook\mask\eye.dm" +#include "code\modules\mob\freelook\mask\update_triggers.dm" +#include "code\modules\mob\language\generic.dm" +#include "code\modules\mob\language\language.dm" +#include "code\modules\mob\language\monkey.dm" +#include "code\modules\mob\language\outsider.dm" +#include "code\modules\mob\language\station.dm" +#include "code\modules\mob\language\station_vr.dm" +#include "code\modules\mob\language\synthetic.dm" +#include "code\modules\mob\living\autohiss.dm" +#include "code\modules\mob\living\butchering.dm" +#include "code\modules\mob\living\damage_procs.dm" +#include "code\modules\mob\living\death.dm" +#include "code\modules\mob\living\default_language.dm" +#include "code\modules\mob\living\inventory.dm" +#include "code\modules\mob\living\life.dm" +#include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_defense.dm" +#include "code\modules\mob\living\living_defines.dm" +#include "code\modules\mob\living\living_defines_vr.dm" +#include "code\modules\mob\living\living_movement.dm" +#include "code\modules\mob\living\living_powers.dm" +#include "code\modules\mob\living\living_vr.dm" +#include "code\modules\mob\living\login.dm" +#include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\organs.dm" +#include "code\modules\mob\living\riding.dm" +#include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\status_indicators.dm" +#include "code\modules\mob\living\bot\bot.dm" +#include "code\modules\mob\living\bot\bot_vr.dm" +#include "code\modules\mob\living\bot\cleanbot.dm" +#include "code\modules\mob\living\bot\ed209bot.dm" +#include "code\modules\mob\living\bot\edCLNbot.dm" +#include "code\modules\mob\living\bot\farmbot.dm" +#include "code\modules\mob\living\bot\floorbot.dm" +#include "code\modules\mob\living\bot\medbot.dm" +#include "code\modules\mob\living\bot\mulebot.dm" +#include "code\modules\mob\living\bot\mulebot_vr.dm" +#include "code\modules\mob\living\bot\secbot.dm" +#include "code\modules\mob\living\bot\SLed209bot.dm" +#include "code\modules\mob\living\carbon\breathe.dm" +#include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\carbon_defense.dm" +#include "code\modules\mob\living\carbon\carbon_defines.dm" +#include "code\modules\mob\living\carbon\carbon_powers.dm" +#include "code\modules\mob\living\carbon\give.dm" +#include "code\modules\mob\living\carbon\lick_wounds.dm" +#include "code\modules\mob\living\carbon\resist.dm" +#include "code\modules\mob\living\carbon\shock.dm" +#include "code\modules\mob\living\carbon\taste.dm" +#include "code\modules\mob\living\carbon\viruses.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" +#include "code\modules\mob\living\carbon\alien\alien_attacks.dm" +#include "code\modules\mob\living\carbon\alien\alien_damage.dm" +#include "code\modules\mob\living\carbon\alien\death.dm" +#include "code\modules\mob\living\carbon\alien\emote.dm" +#include "code\modules\mob\living\carbon\alien\life.dm" +#include "code\modules\mob\living\carbon\alien\progression.dm" +#include "code\modules\mob\living\carbon\alien\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\diona\diona.dm" +#include "code\modules\mob\living\carbon\alien\diona\diona_attacks.dm" +#include "code\modules\mob\living\carbon\alien\diona\diona_powers.dm" +#include "code\modules\mob\living\carbon\alien\diona\life.dm" +#include "code\modules\mob\living\carbon\alien\diona\progression.dm" +#include "code\modules\mob\living\carbon\alien\diona\say_understands.dm" +#include "code\modules\mob\living\carbon\alien\diona\update_icons.dm" +#include "code\modules\mob\living\carbon\alien\larva\larva.dm" +#include "code\modules\mob\living\carbon\alien\larva\life.dm" +#include "code\modules\mob\living\carbon\alien\larva\progression.dm" +#include "code\modules\mob\living\carbon\brain\brain.dm" +#include "code\modules\mob\living\carbon\brain\death.dm" +#include "code\modules\mob\living\carbon\brain\emote.dm" +#include "code\modules\mob\living\carbon\brain\life.dm" +#include "code\modules\mob\living\carbon\brain\login.dm" +#include "code\modules\mob\living\carbon\brain\MMI.dm" +#include "code\modules\mob\living\carbon\brain\robot.dm" +#include "code\modules\mob\living\carbon\brain\say.dm" +#include "code\modules\mob\living\carbon\human\appearance.dm" +#include "code\modules\mob\living\carbon\human\death.dm" +#include "code\modules\mob\living\carbon\human\death_vr.dm" +#include "code\modules\mob\living\carbon\human\emote.dm" +#include "code\modules\mob\living\carbon\human\emote_vr.dm" +#include "code\modules\mob\living\carbon\human\examine.dm" +#include "code\modules\mob\living\carbon\human\examine_vr.dm" +#include "code\modules\mob\living\carbon\human\gradient.dm" +#include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_attackhand.dm" +#include "code\modules\mob\living\carbon\human\human_damage.dm" +#include "code\modules\mob\living\carbon\human\human_defense.dm" +#include "code\modules\mob\living\carbon\human\human_defines.dm" +#include "code\modules\mob\living\carbon\human\human_defines_vr.dm" +#include "code\modules\mob\living\carbon\human\human_helpers.dm" +#include "code\modules\mob\living\carbon\human\human_helpers_vr.dm" +#include "code\modules\mob\living\carbon\human\human_modular_limbs.dm" +#include "code\modules\mob\living\carbon\human\human_movement.dm" +#include "code\modules\mob\living\carbon\human\human_organs.dm" +#include "code\modules\mob\living\carbon\human\human_powers.dm" +#include "code\modules\mob\living\carbon\human\human_powers_vr.dm" +#include "code\modules\mob\living\carbon\human\human_resist.dm" +#include "code\modules\mob\living\carbon\human\human_species.dm" +#include "code\modules\mob\living\carbon\human\human_species_vr.dm" +#include "code\modules\mob\living\carbon\human\human_vr.dm" +#include "code\modules\mob\living\carbon\human\inventory.dm" +#include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\life_vr.dm" +#include "code\modules\mob\living\carbon\human\login.dm" +#include "code\modules\mob\living\carbon\human\logout.dm" +#include "code\modules\mob\living\carbon\human\MedicalSideEffects.dm" +#include "code\modules\mob\living\carbon\human\npcs.dm" +#include "code\modules\mob\living\carbon\human\say.dm" +#include "code\modules\mob\living\carbon\human\stripping.dm" +#include "code\modules\mob\living\carbon\human\unarmed_attack.dm" +#include "code\modules\mob\living\carbon\human\update_icons.dm" +#include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled.dm" +#include "code\modules\mob\living\carbon\human\descriptors\_descriptors.dm" +#include "code\modules\mob\living\carbon\human\descriptors\descriptors_generic.dm" +#include "code\modules\mob\living\carbon\human\descriptors\descriptors_skrell.dm" +#include "code\modules\mob\living\carbon\human\descriptors\descriptors_vox.dm" +#include "code\modules\mob\living\carbon\human\species\species.dm" +#include "code\modules\mob\living\carbon\human\species\species_attack.dm" +#include "code\modules\mob\living\carbon\human\species\species_attack_vr.dm" +#include "code\modules\mob\living\carbon\human\species\species_getters.dm" +#include "code\modules\mob\living\carbon\human\species\species_getters_vr.dm" +#include "code\modules\mob\living\carbon\human\species\species_helpers.dm" +#include "code\modules\mob\living\carbon\human\species\species_hud.dm" +#include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm" +#include "code\modules\mob\living\carbon\human\species\species_shapeshift_vr.dm" +#include "code\modules\mob\living\carbon\human\species\species_vr.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\event.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\replicant.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\shadow.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\skeleton.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\vox.dm" +#include "code\modules\mob\living\carbon\human\species\outsider\vox_vr.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\_defines.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_hud.dm" +#include "code\modules\mob\living\carbon\human\species\shadekin\shadekin_trait.dm" +#include "code\modules\mob\living\carbon\human\species\station\alraune.dm" +#include "code\modules\mob\living\carbon\human\species\station\blank_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\golem.dm" +#include "code\modules\mob\living\carbon\human\species\station\human_subspecies.dm" +#include "code\modules\mob\living\carbon\human\species\station\monkey.dm" +#include "code\modules\mob\living\carbon\human\species\station\monkey_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\prometheans.dm" +#include "code\modules\mob\living\carbon\human\species\station\prometheans_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\station.dm" +#include "code\modules\mob\living\carbon\human\species\station\station_special_abilities_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\station_special_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\station_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\teshari.dm" +#include "code\modules\mob\living\carbon\human\species\station\teshari_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\xenochimera_hud_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\xenochimera_trait_vr.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\_protean_defines.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_blob.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_powers.dm" +#include "code\modules\mob\living\carbon\human\species\station\protean_vr\protean_species.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\negative.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\neutral.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\positive.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\trait.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_objs.dm" +#include "code\modules\mob\living\carbon\human\species\station\traits_vr\weaver_recipies.dm" +#include "code\modules\mob\living\carbon\human\species\virtual_reality\avatar.dm" +#include "code\modules\mob\living\carbon\human\species\virtual_reality\opaque_form.dm" +#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_powers.dm" +#include "code\modules\mob\living\carbon\human\species\xenomorphs\alien_species.dm" +#include "code\modules\mob\living\carbon\human\species\xenomorphs\xenomorphs.dm" +#include "code\modules\mob\living\silicon\death.dm" +#include "code\modules\mob\living\silicon\emote.dm" +#include "code\modules\mob\living\silicon\laws.dm" +#include "code\modules\mob\living\silicon\login.dm" +#include "code\modules\mob\living\silicon\say.dm" +#include "code\modules\mob\living\silicon\silicon.dm" +#include "code\modules\mob\living\silicon\silicon_vr.dm" +#include "code\modules\mob\living\silicon\subystems.dm" +#include "code\modules\mob\living\silicon\ai\ai.dm" +#include "code\modules\mob\living\silicon\ai\ai_movement.dm" +#include "code\modules\mob\living\silicon\ai\ai_remote_control.dm" +#include "code\modules\mob\living\silicon\ai\ai_vr.dm" +#include "code\modules\mob\living\silicon\ai\death.dm" +#include "code\modules\mob\living\silicon\ai\examine.dm" +#include "code\modules\mob\living\silicon\ai\icons.dm" +#include "code\modules\mob\living\silicon\ai\latejoin.dm" +#include "code\modules\mob\living\silicon\ai\laws.dm" +#include "code\modules\mob\living\silicon\ai\life.dm" +#include "code\modules\mob\living\silicon\ai\login.dm" +#include "code\modules\mob\living\silicon\ai\logout.dm" +#include "code\modules\mob\living\silicon\ai\malf.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" +#include "code\modules\mob\living\silicon\decoy\death.dm" +#include "code\modules\mob\living\silicon\decoy\decoy.dm" +#include "code\modules\mob\living\silicon\decoy\life.dm" +#include "code\modules\mob\living\silicon\pai\admin.dm" +#include "code\modules\mob\living\silicon\pai\death.dm" +#include "code\modules\mob\living\silicon\pai\examine.dm" +#include "code\modules\mob\living\silicon\pai\life.dm" +#include "code\modules\mob\living\silicon\pai\pai.dm" +#include "code\modules\mob\living\silicon\pai\pai_vr.dm" +#include "code\modules\mob\living\silicon\pai\personality.dm" +#include "code\modules\mob\living\silicon\pai\recruit.dm" +#include "code\modules\mob\living\silicon\pai\say.dm" +#include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\pai\software_modules.dm" +#include "code\modules\mob\living\silicon\robot\analyzer.dm" +#include "code\modules\mob\living\silicon\robot\component.dm" +#include "code\modules\mob\living\silicon\robot\custom_sprites.dm" +#include "code\modules\mob\living\silicon\robot\death.dm" +#include "code\modules\mob\living\silicon\robot\emote.dm" +#include "code\modules\mob\living\silicon\robot\examine.dm" +#include "code\modules\mob\living\silicon\robot\examine_vr.dm" +#include "code\modules\mob\living\silicon\robot\inventory.dm" +#include "code\modules\mob\living\silicon\robot\laws.dm" +#include "code\modules\mob\living\silicon\robot\life.dm" +#include "code\modules\mob\living\silicon\robot\login.dm" +#include "code\modules\mob\living\silicon\robot\photos.dm" +#include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_animation_vr.dm" +#include "code\modules\mob\living\silicon\robot\robot_damage.dm" +#include "code\modules\mob\living\silicon\robot\robot_items.dm" +#include "code\modules\mob\living\silicon\robot\robot_movement.dm" +#include "code\modules\mob\living\silicon\robot\robot_remote_control.dm" +#include "code\modules\mob\living\silicon\robot\robot_vr.dm" +#include "code\modules\mob\living\silicon\robot\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm" +#include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_items.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm" +#include "code\modules\mob\living\silicon\robot\drone\drone_vr.dm" +#include "code\modules\mob\living\silicon\robot\drone\swarm.dm" +#include "code\modules\mob\living\silicon\robot\drone\swarm_abilities.dm" +#include "code\modules\mob\living\silicon\robot\drone\swarm_items.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\event.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\event_vr.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\station.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\station_vr.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm" +#include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\lost_drone_vr.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\_thinktank.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_icon.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_interactions.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_module.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_storage.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_subtypes.dm" +#include "code\modules\mob\living\simple_mob\appearance.dm" +#include "code\modules\mob\living\simple_mob\butchering.dm" +#include "code\modules\mob\living\simple_mob\combat.dm" +#include "code\modules\mob\living\simple_mob\defense.dm" +#include "code\modules\mob\living\simple_mob\donteatpets_vr.dm" +#include "code\modules\mob\living\simple_mob\hands.dm" +#include "code\modules\mob\living\simple_mob\harvesting.dm" +#include "code\modules\mob\living\simple_mob\life.dm" +#include "code\modules\mob\living\simple_mob\on_click.dm" +#include "code\modules\mob\living\simple_mob\simple_hud.dm" +#include "code\modules\mob\living\simple_mob\simple_mob.dm" +#include "code\modules\mob\living\simple_mob\simple_mob_vr.dm" +#include "code\modules\mob\living\simple_mob\taming.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_powers.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\chicken.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\cow.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\farm animals\goat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\_giant_spider.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\carrier.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\electric.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\frost.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\giant_spider_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\hunter.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\lurker.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\nurse.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\pepper.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\phorogenic.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\thermic.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\tunneler.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\giant_spider\webslinger.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\crab.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\fish_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\jerboa_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\lizard.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\misc.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\mouse_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\passive.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\penguin.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\passive\possum.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\bird_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\cat_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\dog.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\fox_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\pets\parrot.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\diyaab.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\duck.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\fluffy_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\frostfly.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\glitterfly.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hare.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\hooligan_crab.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\kururak.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\leech.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\moth.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\pillbug.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\racoon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\savik.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\shantak.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\sif.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\sif\siffet.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\alien.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bats.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\bear.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\carp_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\gaslamp_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\snake_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\space\worm.dm" +#include "code\modules\mob\living\simple_mob\subtypes\blob\blob.dm" +#include "code\modules\mob\living\simple_mob\subtypes\blob\spore.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\bradley.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Eddy.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\horror .dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Master.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Rickey.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\sally.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\shittytim.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Smiley.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Steve.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\timling.dm" +#include "code\modules\mob\living\simple_mob\subtypes\horror\Willy.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\clown.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\humanoid_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\pirates.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\russian.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs.dm" +#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\illusion\illusion.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\corrupt_maint_drone_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\disbot_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\viscerator.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\wahlem_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\combat_drone.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\mining_drone.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\tank.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\combat_mecha.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\durand.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\hoverpod.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\marauder.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\mecha.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\odysseus.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\phazon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\ripley.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\monitor_ward.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\ward\ward.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\creature.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\faithless.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\_construct.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\artificer.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\harvester.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\shade.dm" +#include "code\modules\mob\living\simple_mob\subtypes\occult\constructs\wraith.dm" +#include "code\modules\mob\living\simple_mob\subtypes\plant\tomato.dm" +#include "code\modules\mob\living\simple_mob\subtypes\plant\tree.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\slime.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\slime_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\feral\feral_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\combat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\consumption.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\defense.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\discipline.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes_vr.dm" +#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\xenobio.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\bee.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\c_pet.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\catgirl.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\cookiegirl.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\corrupt_hounds.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\deathclaw.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\dino.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\dragon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\fennec.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\fennix.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\frog.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\hippo.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\horse.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\jelly.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\lamia.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mimic.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\oregrub.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\otie.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\rabbit.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_drone.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\sect_queen.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\snake.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\softdog.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\solargrub_larva.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\vore.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\weretiger.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\wolf.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\wolfgirl.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\xeno_vore.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\zz_vore_overrides.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\_defines.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_abilities.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_subtypes.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\demon\~defines.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Big.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bigclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bus.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\busclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\c_shift.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Clowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\hespawner.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\honkelemental.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\regularclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\morph\morph.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_procs.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\shadekin.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\types.dm" +#include "code\modules\mob\living\voice\voice.dm" +#include "code\modules\mob\living\voice\voice_vr.dm" +#include "code\modules\mob\new_player\login.dm" +#include "code\modules\mob\new_player\login_vr.dm" +#include "code\modules\mob\new_player\logout.dm" +#include "code\modules\mob\new_player\new_player.dm" +#include "code\modules\mob\new_player\new_player_vr.dm" +#include "code\modules\mob\new_player\news.dm" +#include "code\modules\mob\new_player\poll.dm" +#include "code\modules\mob\new_player\preferences_setup.dm" +#include "code\modules\mob\new_player\preferences_setup_vr.dm" +#include "code\modules\mob\new_player\skill.dm" +#include "code\modules\mob\new_player\sprite_accessories.dm" +#include "code\modules\mob\new_player\sprite_accessories_ear.dm" +#include "code\modules\mob\new_player\sprite_accessories_ear_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_extra.dm" +#include "code\modules\mob\new_player\sprite_accessories_extra_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_tail.dm" +#include "code\modules\mob\new_player\sprite_accessories_tail_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_taur.dm" +#include "code\modules\mob\new_player\sprite_accessories_taur_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_vr.dm" +#include "code\modules\mob\new_player\sprite_accessories_wing.dm" +#include "code\modules\mob\new_player\sprite_accessories_wing_vr.dm" +#include "code\modules\modular_computers\laptop_vendor.dm" +#include "code\modules\modular_computers\computers\modular_computer\core.dm" +#include "code\modules\modular_computers\computers\modular_computer\damage.dm" +#include "code\modules\modular_computers\computers\modular_computer\hardware.dm" +#include "code\modules\modular_computers\computers\modular_computer\interaction.dm" +#include "code\modules\modular_computers\computers\modular_computer\power.dm" +#include "code\modules\modular_computers\computers\modular_computer\ui.dm" +#include "code\modules\modular_computers\computers\modular_computer\variables.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_console.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_laptop.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_tablet.dm" +#include "code\modules\modular_computers\computers\subtypes\dev_telescreen.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_console.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_laptop.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_laptop_vr.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_tablet.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_tablet_vr.dm" +#include "code\modules\modular_computers\computers\subtypes\preset_telescreen.dm" +#include "code\modules\modular_computers\file_system\computer_file.dm" +#include "code\modules\modular_computers\file_system\data.dm" +#include "code\modules\modular_computers\file_system\news_article.dm" +#include "code\modules\modular_computers\file_system\program.dm" +#include "code\modules\modular_computers\file_system\program_events.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\access_decrypter.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\dos.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\hacked_camera.dm" +#include "code\modules\modular_computers\file_system\programs\antagonist\revelation.dm" +#include "code\modules\modular_computers\file_system\programs\command\card.dm" +#include "code\modules\modular_computers\file_system\programs\command\comm.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\alarm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\atmos_control.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\power_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\rcon_console.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\shutoff_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\engineering\supermatter_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\generic\camera.dm" +#include "code\modules\modular_computers\file_system\programs\generic\configurator.dm" +#include "code\modules\modular_computers\file_system\programs\generic\email_client.dm" +#include "code\modules\modular_computers\file_system\programs\generic\file_browser.dm" +#include "code\modules\modular_computers\file_system\programs\generic\game.dm" +#include "code\modules\modular_computers\file_system\programs\generic\news_browser.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntdownloader.dm" +#include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" +#include "code\modules\modular_computers\file_system\programs\generic\nttransfer.dm" +#include "code\modules\modular_computers\file_system\programs\generic\uav.dm" +#include "code\modules\modular_computers\file_system\programs\generic\wordprocessor.dm" +#include "code\modules\modular_computers\file_system\programs\medical\suit_sensors.dm" +#include "code\modules\modular_computers\file_system\programs\research\email_administration.dm" +#include "code\modules\modular_computers\file_system\programs\research\ntmonitor.dm" +#include "code\modules\modular_computers\file_system\programs\security\alarm_monitor.dm" +#include "code\modules\modular_computers\file_system\programs\security\digitalwarrant.dm" +#include "code\modules\modular_computers\file_system\programs\ships\navigation.dm" +#include "code\modules\modular_computers\hardware\_hardware.dm" +#include "code\modules\modular_computers\hardware\battery_module.dm" +#include "code\modules\modular_computers\hardware\card_slot.dm" +#include "code\modules\modular_computers\hardware\hard_drive.dm" +#include "code\modules\modular_computers\hardware\nano_printer.dm" +#include "code\modules\modular_computers\hardware\network_card.dm" +#include "code\modules\modular_computers\hardware\portable_hard_drive.dm" +#include "code\modules\modular_computers\hardware\processor_unit.dm" +#include "code\modules\modular_computers\hardware\tesla_link.dm" +#include "code\modules\modular_computers\NTNet\NTNet.dm" +#include "code\modules\modular_computers\NTNet\NTNet_relay.dm" +#include "code\modules\modular_computers\NTNet\emails\email_account.dm" +#include "code\modules\modular_computers\NTNet\emails\email_message.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\multi-tile\multi-tile.dm" +#include "code\modules\multiz\_stubs.dm" +#include "code\modules\multiz\admin_upload.dm" +#include "code\modules\multiz\basic.dm" +#include "code\modules\multiz\hoist.dm" +#include "code\modules\multiz\ladder_assembly_vr.dm" +#include "code\modules\multiz\ladders.dm" +#include "code\modules\multiz\ladders_vr.dm" +#include "code\modules\multiz\movement.dm" +#include "code\modules\multiz\movement_vr.dm" +#include "code\modules\multiz\pipes.dm" +#include "code\modules\multiz\stairs.dm" +#include "code\modules\multiz\turf.dm" +#include "code\modules\news\news_init.dm" +#include "code\modules\news\newspaper.dm" +#include "code\modules\news\newspaper_layout.dm" +#include "code\modules\nifsoft\nif.dm" +#include "code\modules\nifsoft\nif_softshop.dm" +#include "code\modules\nifsoft\nif_tgui.dm" +#include "code\modules\nifsoft\nifsoft.dm" +#include "code\modules\nifsoft\software\01_vision.dm" +#include "code\modules\nifsoft\software\05_health.dm" +#include "code\modules\nifsoft\software\06_screens.dm" +#include "code\modules\nifsoft\software\10_combat.dm" +#include "code\modules\nifsoft\software\13_soulcatcher.dm" +#include "code\modules\nifsoft\software\14_commlink.dm" +#include "code\modules\nifsoft\software\15_misc.dm" +#include "code\modules\organs\blood.dm" +#include "code\modules\organs\misc.dm" +#include "code\modules\organs\organ.dm" +#include "code\modules\organs\organ_external.dm" +#include "code\modules\organs\organ_external_vr.dm" +#include "code\modules\organs\organ_icon.dm" +#include "code\modules\organs\organ_stump.dm" +#include "code\modules\organs\pain.dm" +#include "code\modules\organs\robolimbs.dm" +#include "code\modules\organs\robolimbs_custom.dm" +#include "code\modules\organs\robolimbs_vr.dm" +#include "code\modules\organs\wound.dm" +#include "code\modules\organs\internal\_organ_internal.dm" +#include "code\modules\organs\internal\appendix.dm" +#include "code\modules\organs\internal\augment.dm" +#include "code\modules\organs\internal\brain.dm" +#include "code\modules\organs\internal\eyes.dm" +#include "code\modules\organs\internal\heart.dm" +#include "code\modules\organs\internal\intestine.dm" +#include "code\modules\organs\internal\kidneys.dm" +#include "code\modules\organs\internal\liver.dm" +#include "code\modules\organs\internal\lungs.dm" +#include "code\modules\organs\internal\spleen.dm" +#include "code\modules\organs\internal\stomach.dm" +#include "code\modules\organs\internal\voicebox.dm" +#include "code\modules\organs\internal\augment\armmounted.dm" +#include "code\modules\organs\internal\augment\bio.dm" +#include "code\modules\organs\internal\robotic\diagnostic.dm" +#include "code\modules\organs\internal\robotic\heatsink.dm" +#include "code\modules\organs\internal\robotic\robotic.dm" +#include "code\modules\organs\subtypes\diona.dm" +#include "code\modules\organs\subtypes\indestructible.dm" +#include "code\modules\organs\subtypes\machine.dm" +#include "code\modules\organs\subtypes\nano.dm" +#include "code\modules\organs\subtypes\replicant.dm" +#include "code\modules\organs\subtypes\shadekin.dm" +#include "code\modules\organs\subtypes\shadekin_vr.dm" +#include "code\modules\organs\subtypes\slime.dm" +#include "code\modules\organs\subtypes\slime_vr.dm" +#include "code\modules\organs\subtypes\standard.dm" +#include "code\modules\organs\subtypes\standard_vr.dm" +#include "code\modules\organs\subtypes\teshari.dm" +#include "code\modules\organs\subtypes\unathi.dm" +#include "code\modules\organs\subtypes\unbreakable.dm" +#include "code\modules\organs\subtypes\unseverable.dm" +#include "code\modules\organs\subtypes\vox.dm" +#include "code\modules\organs\subtypes\vox_vr.dm" +#include "code\modules\organs\subtypes\xenos.dm" +#include "code\modules\overmap\abductor_vr.dm" +#include "code\modules\overmap\bluespace_rift_vr.dm" +#include "code\modules\overmap\champagne.dm" +#include "code\modules\overmap\helpers.dm" +#include "code\modules\overmap\overmap_object.dm" +#include "code\modules\overmap\overmap_planet.dm" +#include "code\modules\overmap\overmap_shuttle.dm" +#include "code\modules\overmap\sectors.dm" +#include "code\modules\overmap\spacetravel.dm" +#include "code\modules\overmap\turfs.dm" +#include "code\modules\overmap\disperser\disperser.dm" +#include "code\modules\overmap\disperser\disperser_charge.dm" +#include "code\modules\overmap\disperser\disperser_circuit.dm" +#include "code\modules\overmap\disperser\disperser_console.dm" +#include "code\modules\overmap\disperser\disperser_fire.dm" +#include "code\modules\overmap\events\event_handler.dm" +#include "code\modules\overmap\events\generation.dm" +#include "code\modules\overmap\events\overmap_event.dm" +#include "code\modules\overmap\ships\landable.dm" +#include "code\modules\overmap\ships\panicbutton.dm" +#include "code\modules\overmap\ships\ship.dm" +#include "code\modules\overmap\ships\computers\computer_shims.dm" +#include "code\modules\overmap\ships\computers\engine_control.dm" +#include "code\modules\overmap\ships\computers\helm.dm" +#include "code\modules\overmap\ships\computers\sensors.dm" +#include "code\modules\overmap\ships\computers\ship.dm" +#include "code\modules\overmap\ships\computers\ship_vr.dm" +#include "code\modules\overmap\ships\computers\shuttle.dm" +#include "code\modules\overmap\ships\engines\engine.dm" +#include "code\modules\overmap\ships\engines\gas_thruster.dm" +#include "code\modules\overmap\ships\engines\gas_thruster_vr.dm" +#include "code\modules\overmap\ships\engines\ion_thruster.dm" +#include "code\modules\paperwork\adminpaper.dm" +#include "code\modules\paperwork\carbonpaper.dm" +#include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\faxmachine.dm" +#include "code\modules\paperwork\faxmachine_vr.dm" +#include "code\modules\paperwork\filingcabinet.dm" +#include "code\modules\paperwork\folders.dm" +#include "code\modules\paperwork\handlabeler.dm" +#include "code\modules\paperwork\paper.dm" +#include "code\modules\paperwork\paper_bundle.dm" +#include "code\modules\paperwork\paper_sticky.dm" +#include "code\modules\paperwork\paperbin.dm" +#include "code\modules\paperwork\paperplane.dm" +#include "code\modules\paperwork\papershredder.dm" +#include "code\modules\paperwork\pen.dm" +#include "code\modules\paperwork\photocopier.dm" +#include "code\modules\paperwork\photography.dm" +#include "code\modules\paperwork\silicon_photography.dm" +#include "code\modules\paperwork\stamps.dm" +#include "code\modules\pda\ai.dm" +#include "code\modules\pda\app.dm" +#include "code\modules\pda\cart.dm" +#include "code\modules\pda\cart_apps.dm" +#include "code\modules\pda\cart_vr.dm" +#include "code\modules\pda\core_apps.dm" +#include "code\modules\pda\messenger.dm" +#include "code\modules\pda\messenger_plugins.dm" +#include "code\modules\pda\pda.dm" +#include "code\modules\pda\pda_subtypes.dm" +#include "code\modules\pda\pda_tgui.dm" +#include "code\modules\pda\pda_vr.dm" +#include "code\modules\pda\radio.dm" +#include "code\modules\pda\utilities.dm" +#include "code\modules\persistence\filth.dm" +#include "code\modules\persistence\graffiti.dm" +#include "code\modules\persistence\noticeboard.dm" +#include "code\modules\persistence\paintings.dm" +#include "code\modules\persistence\serialize.dm" +#include "code\modules\persistence\datum\persistence_datum.dm" +#include "code\modules\persistence\effects\filth.dm" +#include "code\modules\persistence\effects\graffiti.dm" +#include "code\modules\persistence\effects\paper.dm" +#include "code\modules\persistence\effects\paper_sticky.dm" +#include "code\modules\persistence\effects\trash.dm" +#include "code\modules\persistence\storage\smartfridge.dm" +#include "code\modules\persistence\storage\storage.dm" +#include "code\modules\planet\planet.dm" +#include "code\modules\planet\sun.dm" +#include "code\modules\planet\time.dm" +#include "code\modules\planet\virgo3b_vr.dm" +#include "code\modules\planet\virgo4_vr.dm" +#include "code\modules\planet\weather.dm" +#include "code\modules\planet\weather_vr.dm" +#include "code\modules\power\apc.dm" +#include "code\modules\power\apc_vr.dm" +#include "code\modules\power\batteryrack.dm" +#include "code\modules\power\batteryrack_vr.dm" +#include "code\modules\power\breaker_box.dm" +#include "code\modules\power\cable.dm" +#include "code\modules\power\cable_ender.dm" +#include "code\modules\power\cable_heavyduty.dm" +#include "code\modules\power\cell.dm" +#include "code\modules\power\debug_items.dm" +#include "code\modules\power\generator.dm" +#include "code\modules\power\gravitygenerator_vr.dm" +#include "code\modules\power\grid_checker.dm" +#include "code\modules\power\lighting.dm" +#include "code\modules\power\lighting_vr.dm" +#include "code\modules\power\lightswitch_vr.dm" +#include "code\modules\power\port_gen.dm" +#include "code\modules\power\port_gen_vr.dm" +#include "code\modules\power\power.dm" +#include "code\modules\power\powernet.dm" +#include "code\modules\power\smes.dm" +#include "code\modules\power\smes_construction.dm" +#include "code\modules\power\smes_vr.dm" +#include "code\modules\power\solar.dm" +#include "code\modules\power\terminal.dm" +#include "code\modules\power\tracker.dm" +#include "code\modules\power\turbine.dm" +#include "code\modules\power\antimatter\containment_jar.dm" +#include "code\modules\power\antimatter\control.dm" +#include "code\modules\power\antimatter\shielding.dm" +#include "code\modules\power\cells\device_cells.dm" +#include "code\modules\power\cells\device_cells_vr.dm" +#include "code\modules\power\cells\esoteric_cells.dm" +#include "code\modules\power\cells\power_cells.dm" +#include "code\modules\power\fusion\_setup.dm" +#include "code\modules\power\fusion\fusion_circuits.dm" +#include "code\modules\power\fusion\fusion_particle_catcher.dm" +#include "code\modules\power\fusion\fusion_reactions.dm" +#include "code\modules\power\fusion\magpower.dm" +#include "code\modules\power\fusion\core\_core.dm" +#include "code\modules\power\fusion\core\core_control.dm" +#include "code\modules\power\fusion\core\core_field.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_assembly.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_compressor.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_control.dm" +#include "code\modules\power\fusion\fuel_assembly\fuel_injector.dm" +#include "code\modules\power\fusion\gyrotron\gyrotron.dm" +#include "code\modules\power\fusion\gyrotron\gyrotron_control.dm" +#include "code\modules\power\sensors\powernet_sensor.dm" +#include "code\modules\power\sensors\sensor_monitoring.dm" +#include "code\modules\power\singularity\act.dm" +#include "code\modules\power\singularity\collector.dm" +#include "code\modules\power\singularity\containment_field.dm" +#include "code\modules\power\singularity\emitter.dm" +#include "code\modules\power\singularity\emitter_vr.dm" +#include "code\modules\power\singularity\field_generator.dm" +#include "code\modules\power\singularity\generator.dm" +#include "code\modules\power\singularity\investigate.dm" +#include "code\modules\power\singularity\singularity.dm" +#include "code\modules\power\singularity\particle_accelerator\particle.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_chamber.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_control.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_power.dm" +#include "code\modules\power\singularity\particle_accelerator\particle_smasher.dm" +#include "code\modules\power\supermatter\setup_supermatter.dm" +#include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" +#include "code\modules\power\tesla\telsa_construction.dm" +#include "code\modules\power\tesla\tesla_act.dm" +#include "code\modules\projectiles\ammunition.dm" +#include "code\modules\projectiles\broken.dm" +#include "code\modules\projectiles\dnalocking.dm" +#include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\projectile.dm" +#include "code\modules\projectiles\ammunition\magazines.dm" +#include "code\modules\projectiles\ammunition\magazines_vr.dm" +#include "code\modules\projectiles\ammunition\magnetic.dm" +#include "code\modules\projectiles\ammunition\rounds.dm" +#include "code\modules\projectiles\ammunition\smartmag.dm" +#include "code\modules\projectiles\brokenguns\energy.dm" +#include "code\modules\projectiles\brokenguns\launcher.dm" +#include "code\modules\projectiles\brokenguns\magnetic.dm" +#include "code\modules\projectiles\brokenguns\projectile.dm" +#include "code\modules\projectiles\guns\energy.dm" +#include "code\modules\projectiles\guns\launcher.dm" +#include "code\modules\projectiles\guns\magic.dm" +#include "code\modules\projectiles\guns\modular_guns.dm" +#include "code\modules\projectiles\guns\projectile.dm" +#include "code\modules\projectiles\guns\vox.dm" +#include "code\modules\projectiles\guns\energy\bsharpoon_vr.dm" +#include "code\modules\projectiles\guns\energy\crestrose_vr.dm" +#include "code\modules\projectiles\guns\energy\dominator_vr.dm" +#include "code\modules\projectiles\guns\energy\gunsword_vr.dm" +#include "code\modules\projectiles\guns\energy\hooklauncher.dm" +#include "code\modules\projectiles\guns\energy\kinetic_accelerator_vr.dm" +#include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\laser_vr.dm" +#include "code\modules\projectiles\guns\energy\netgun_vr.dm" +#include "code\modules\projectiles\guns\energy\nuclear.dm" +#include "code\modules\projectiles\guns\energy\nuclear_vr.dm" +#include "code\modules\projectiles\guns\energy\particle.dm" +#include "code\modules\projectiles\guns\energy\phase.dm" +#include "code\modules\projectiles\guns\energy\protector_vr.dm" +#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\pummeler_vr.dm" +#include "code\modules\projectiles\guns\energy\sickshot_vr.dm" +#include "code\modules\projectiles\guns\energy\special.dm" +#include "code\modules\projectiles\guns\energy\special_vr.dm" +#include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\energy\stun_vr.dm" +#include "code\modules\projectiles\guns\energy\temperature.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\cell_loaded.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\ml3m_cells.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\multi_cannon_cells.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw.dm" +#include "code\modules\projectiles\guns\energy\cell_loaded_vr\nsfw_cells.dm" +#include "code\modules\projectiles\guns\launcher\bows.dm" +#include "code\modules\projectiles\guns\launcher\crossbow.dm" +#include "code\modules\projectiles\guns\launcher\grenade_launcher.dm" +#include "code\modules\projectiles\guns\launcher\pneumatic.dm" +#include "code\modules\projectiles\guns\launcher\rocket.dm" +#include "code\modules\projectiles\guns\launcher\syringe_gun.dm" +#include "code\modules\projectiles\guns\magic\fireball.dm" +#include "code\modules\projectiles\guns\magnetic\bore.dm" +#include "code\modules\projectiles\guns\magnetic\gasthrower.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic_construction.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic_railgun.dm" +#include "code\modules\projectiles\guns\magnetic\magnetic_railgun_vr.dm" +#include "code\modules\projectiles\guns\projectile\automatic.dm" +#include "code\modules\projectiles\guns\projectile\automatic_vr.dm" +#include "code\modules\projectiles\guns\projectile\boltaction.dm" +#include "code\modules\projectiles\guns\projectile\boltaction_vr.dm" +#include "code\modules\projectiles\guns\projectile\caseless.dm" +#include "code\modules\projectiles\guns\projectile\contender.dm" +#include "code\modules\projectiles\guns\projectile\dartgun.dm" +#include "code\modules\projectiles\guns\projectile\dartgun_vr.dm" +#include "code\modules\projectiles\guns\projectile\pistol.dm" +#include "code\modules\projectiles\guns\projectile\pistol_vr.dm" +#include "code\modules\projectiles\guns\projectile\revolver.dm" +#include "code\modules\projectiles\guns\projectile\revolver_vr.dm" +#include "code\modules\projectiles\guns\projectile\semiauto.dm" +#include "code\modules\projectiles\guns\projectile\shotgun.dm" +#include "code\modules\projectiles\guns\projectile\shotgun_vr.dm" +#include "code\modules\projectiles\guns\projectile\sniper.dm" +#include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm" +#include "code\modules\projectiles\projectile\arc.dm" +#include "code\modules\projectiles\projectile\beams.dm" +#include "code\modules\projectiles\projectile\beams_vr.dm" +#include "code\modules\projectiles\projectile\blob.dm" +#include "code\modules\projectiles\projectile\bullets.dm" +#include "code\modules\projectiles\projectile\bullets_vr.dm" +#include "code\modules\projectiles\projectile\change.dm" +#include "code\modules\projectiles\projectile\energy.dm" +#include "code\modules\projectiles\projectile\energy_vr.dm" +#include "code\modules\projectiles\projectile\explosive.dm" +#include "code\modules\projectiles\projectile\force.dm" +#include "code\modules\projectiles\projectile\hook.dm" +#include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\magnetic.dm" +#include "code\modules\projectiles\projectile\pellets.dm" +#include "code\modules\projectiles\projectile\scatter.dm" +#include "code\modules\projectiles\projectile\special.dm" +#include "code\modules\projectiles\projectile\trace.dm" +#include "code\modules\projectiles\targeting\targeting_client.dm" +#include "code\modules\projectiles\targeting\targeting_gun.dm" +#include "code\modules\projectiles\targeting\targeting_mob.dm" +#include "code\modules\projectiles\targeting\targeting_overlay.dm" +#include "code\modules\projectiles\targeting\targeting_triggers.dm" +#include "code\modules\radiation\radiation.dm" +#include "code\modules\random_map\_random_map_setup.dm" +#include "code\modules\random_map\random_map.dm" +#include "code\modules\random_map\random_map_verbs.dm" +#include "code\modules\random_map\automata\automata.dm" +#include "code\modules\random_map\automata\caves.dm" +#include "code\modules\random_map\building\building.dm" +#include "code\modules\random_map\drop\drop_types.dm" +#include "code\modules\random_map\drop\droppod.dm" +#include "code\modules\random_map\drop\droppod_doors.dm" +#include "code\modules\random_map\drop\supply.dm" +#include "code\modules\random_map\mazes\maze.dm" +#include "code\modules\random_map\mazes\maze_cell.dm" +#include "code\modules\random_map\noise\desert.dm" +#include "code\modules\random_map\noise\noise.dm" +#include "code\modules\random_map\noise\ore.dm" +#include "code\modules\random_map\noise\tundra.dm" +#include "code\modules\reagents\Chemistry-Colours.dm" +#include "code\modules\reagents\Chemistry-Logging.dm" +#include "code\modules\reagents\Chemistry-Metabolism.dm" +#include "code\modules\reagents\holder\distilling.dm" +#include "code\modules\reagents\holder\holder.dm" +#include "code\modules\reagents\hoses\connector.dm" +#include "code\modules\reagents\hoses\hose.dm" +#include "code\modules\reagents\hoses\hose_connector.dm" +#include "code\modules\reagents\machinery\chem_master.dm" +#include "code\modules\reagents\machinery\chemalyzer.dm" +#include "code\modules\reagents\machinery\distillery.dm" +#include "code\modules\reagents\machinery\grinder.dm" +#include "code\modules\reagents\machinery\dispenser\_defines.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge_presets.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge_presets_vr.dm" +#include "code\modules\reagents\machinery\dispenser\cartridge_spawn.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser2.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser2_energy.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser_presets.dm" +#include "code\modules\reagents\machinery\dispenser\dispenser_presets_vr.dm" +#include "code\modules\reagents\machinery\dispenser\reagent_tank.dm" +#include "code\modules\reagents\machinery\dispenser\supply.dm" +#include "code\modules\reagents\reactions\_reactions.dm" +#include "code\modules\reagents\reactions\distilling\distilling.dm" +#include "code\modules\reagents\reactions\fusion\fusion.dm" +#include "code\modules\reagents\reactions\instant\drinks.dm" +#include "code\modules\reagents\reactions\instant\drinks_vr.dm" +#include "code\modules\reagents\reactions\instant\food.dm" +#include "code\modules\reagents\reactions\instant\food_vr.dm" +#include "code\modules\reagents\reactions\instant\instant.dm" +#include "code\modules\reagents\reactions\instant\instant_vr.dm" +#include "code\modules\reagents\reagent_containers\_reagent_containers.dm" +#include "code\modules\reagents\reagent_containers\blood_pack.dm" +#include "code\modules\reagents\reagent_containers\blood_pack_vr.dm" +#include "code\modules\reagents\reagent_containers\borghypo.dm" +#include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\glass.dm" +#include "code\modules\reagents\reagent_containers\glass_vr.dm" +#include "code\modules\reagents\reagent_containers\hypospray.dm" +#include "code\modules\reagents\reagent_containers\hypospray_vr.dm" +#include "code\modules\reagents\reagent_containers\patch.dm" +#include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\pill_vr.dm" +#include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\spray_vr.dm" +#include "code\modules\reagents\reagent_containers\syringes.dm" +#include "code\modules\reagents\reagent_containers\syringes_vr.dm" +#include "code\modules\reagents\reagent_containers\unidentified_hypospray.dm" +#include "code\modules\reagents\reagents\_helpers.dm" +#include "code\modules\reagents\reagents\_reagents.dm" +#include "code\modules\reagents\reagents\core.dm" +#include "code\modules\reagents\reagents\dispenser.dm" +#include "code\modules\reagents\reagents\food_drinks.dm" +#include "code\modules\reagents\reagents\food_drinks_vr.dm" +#include "code\modules\reagents\reagents\medicine.dm" +#include "code\modules\reagents\reagents\medicine_vr.dm" +#include "code\modules\reagents\reagents\modifiers.dm" +#include "code\modules\reagents\reagents\other.dm" +#include "code\modules\reagents\reagents\other_vr.dm" +#include "code\modules\reagents\reagents\toxins.dm" +#include "code\modules\reagents\reagents\vore_vr.dm" +#include "code\modules\recycling\conveyor2.dm" +#include "code\modules\recycling\disposal-construction.dm" +#include "code\modules\recycling\disposal.dm" +#include "code\modules\recycling\sortingmachinery.dm" +#include "code\modules\research\circuitprinter.dm" +#include "code\modules\research\designs.dm" +#include "code\modules\research\destructive_analyzer.dm" +#include "code\modules\research\mechfab_designs.dm" +#include "code\modules\research\message_server.dm" +#include "code\modules\research\prosfab_designs.dm" +#include "code\modules\research\prosfab_designs_vr.dm" +#include "code\modules\research\protolathe.dm" +#include "code\modules\research\rd-readme.dm" +#include "code\modules\research\rdconsole.dm" +#include "code\modules\research\rdconsole_tgui.dm" +#include "code\modules\research\rdmachines.dm" +#include "code\modules\research\research.dm" +#include "code\modules\research\server.dm" +#include "code\modules\research\teleport_vr.dm" +#include "code\modules\research\designs\ai_holders.dm" +#include "code\modules\research\designs\bag_of_holding.dm" +#include "code\modules\research\designs\beakers.dm" +#include "code\modules\research\designs\bio_devices.dm" +#include "code\modules\research\designs\bio_devices_vr.dm" +#include "code\modules\research\designs\circuit_assembly.dm" +#include "code\modules\research\designs\engineering.dm" +#include "code\modules\research\designs\HUDs.dm" +#include "code\modules\research\designs\HUDs_vr.dm" +#include "code\modules\research\designs\implants.dm" +#include "code\modules\research\designs\implants_vr.dm" +#include "code\modules\research\designs\locator_devices.dm" +#include "code\modules\research\designs\medical.dm" +#include "code\modules\research\designs\medical_vr.dm" +#include "code\modules\research\designs\mining_toys.dm" +#include "code\modules\research\designs\misc.dm" +#include "code\modules\research\designs\misc_vr.dm" +#include "code\modules\research\designs\modular_computer.dm" +#include "code\modules\research\designs\pdas.dm" +#include "code\modules\research\designs\power_cells.dm" +#include "code\modules\research\designs\precursor.dm" +#include "code\modules\research\designs\stock_parts.dm" +#include "code\modules\research\designs\subspace_parts.dm" +#include "code\modules\research\designs\tech_disks.dm" +#include "code\modules\research\designs\weapons.dm" +#include "code\modules\research\designs\weapons_vr.dm" +#include "code\modules\research\designs\xenoarch_toys.dm" +#include "code\modules\research\designs\xenobio_toys.dm" +#include "code\modules\research\designs\circuits\ai_modules.dm" +#include "code\modules\research\designs\circuits\ai_modules_vr.dm" +#include "code\modules\research\designs\circuits\circuits.dm" +#include "code\modules\research\designs\circuits\circuits_vr.dm" +#include "code\modules\research\designs\circuits\disks.dm" +#include "code\modules\resleeving\circuitboards.dm" +#include "code\modules\resleeving\computers.dm" +#include "code\modules\resleeving\designer.dm" +#include "code\modules\resleeving\documents.dm" +#include "code\modules\resleeving\implant.dm" +#include "code\modules\resleeving\infocore_records.dm" +#include "code\modules\resleeving\infomorph.dm" +#include "code\modules\resleeving\infomorph_software.dm" +#include "code\modules\resleeving\machines.dm" +#include "code\modules\resleeving\machines_vr.dm" +#include "code\modules\resleeving\resleeving_sickness.dm" +#include "code\modules\resleeving\sleevecard.dm" +#include "code\modules\rogueminer_vr\asteroid.dm" +#include "code\modules\rogueminer_vr\controller.dm" +#include "code\modules\rogueminer_vr\debug.dm" +#include "code\modules\rogueminer_vr\landmarks.dm" +#include "code\modules\rogueminer_vr\roguemines_mobs.dm" +#include "code\modules\rogueminer_vr\wrappers.dm" +#include "code\modules\rogueminer_vr\zone_console.dm" +#include "code\modules\rogueminer_vr\zonemaster.dm" +#include "code\modules\scripting\Errors.dm" +#include "code\modules\scripting\IDE.dm" +#include "code\modules\scripting\Options.dm" +#include "code\modules\scripting\stack.dm" +#include "code\modules\scripting\AST\AST Nodes.dm" +#include "code\modules\scripting\AST\Blocks.dm" +#include "code\modules\scripting\AST\Statements.dm" +#include "code\modules\scripting\AST\Operators\Binary Operators.dm" +#include "code\modules\scripting\AST\Operators\Unary Operators.dm" +#include "code\modules\scripting\Implementations\_Logic.dm" +#include "code\modules\scripting\Implementations\Telecomms.dm" +#include "code\modules\scripting\Interpreter\Evaluation.dm" +#include "code\modules\scripting\Interpreter\Interaction.dm" +#include "code\modules\scripting\Interpreter\Interpreter.dm" +#include "code\modules\scripting\Interpreter\Scope.dm" +#include "code\modules\scripting\Parser\Expressions.dm" +#include "code\modules\scripting\Parser\Keywords.dm" +#include "code\modules\scripting\Parser\Parser.dm" +#include "code\modules\scripting\Scanner\Scanner.dm" +#include "code\modules\scripting\Scanner\Tokens.dm" +#include "code\modules\security levels\keycard authentication.dm" +#include "code\modules\security levels\security levels.dm" +#include "code\modules\shieldgen\directional_shield.dm" +#include "code\modules\shieldgen\emergency_shield.dm" +#include "code\modules\shieldgen\energy_field.dm" +#include "code\modules\shieldgen\energy_shield.dm" +#include "code\modules\shieldgen\handheld_defuser.dm" +#include "code\modules\shieldgen\sheldwallgen.dm" +#include "code\modules\shieldgen\shield_capacitor.dm" +#include "code\modules\shieldgen\shield_diffuser.dm" +#include "code\modules\shieldgen\shield_gen.dm" +#include "code\modules\shieldgen\shield_gen_external.dm" +#include "code\modules\shieldgen\shield_generator.dm" +#include "code\modules\shieldgen\shield_modes.dm" +#include "code\modules\shuttles\antagonist.dm" +#include "code\modules\shuttles\crashes.dm" +#include "code\modules\shuttles\departmental.dm" +#include "code\modules\shuttles\escape_pods.dm" +#include "code\modules\shuttles\landmarks.dm" +#include "code\modules\shuttles\shuttle.dm" +#include "code\modules\shuttles\shuttle_autodock.dm" +#include "code\modules\shuttles\shuttle_console.dm" +#include "code\modules\shuttles\shuttle_console_multi.dm" +#include "code\modules\shuttles\shuttle_emergency.dm" +#include "code\modules\shuttles\shuttle_ferry.dm" +#include "code\modules\shuttles\shuttle_specops.dm" +#include "code\modules\shuttles\shuttle_supply.dm" +#include "code\modules\shuttles\shuttles_multi.dm" +#include "code\modules\shuttles\shuttles_vr.dm" +#include "code\modules\shuttles\shuttles_web.dm" +#include "code\modules\shuttles\web_datums.dm" +#include "code\modules\spells\artifacts.dm" +#include "code\modules\spells\construct_spells.dm" +#include "code\modules\spells\no_clothes.dm" +#include "code\modules\spells\spell_code.dm" +#include "code\modules\spells\spell_projectile.dm" +#include "code\modules\spells\spellbook.dm" +#include "code\modules\spells\spells.dm" +#include "code\modules\spells\aoe_turf\aoe_turf.dm" +#include "code\modules\spells\aoe_turf\blink.dm" +#include "code\modules\spells\aoe_turf\charge.dm" +#include "code\modules\spells\aoe_turf\disable_tech.dm" +#include "code\modules\spells\aoe_turf\knock.dm" +#include "code\modules\spells\aoe_turf\smoke.dm" +#include "code\modules\spells\aoe_turf\summons.dm" +#include "code\modules\spells\aoe_turf\conjure\conjure.dm" +#include "code\modules\spells\aoe_turf\conjure\construct.dm" +#include "code\modules\spells\aoe_turf\conjure\forcewall.dm" +#include "code\modules\spells\general\area_teleport.dm" +#include "code\modules\spells\general\rune_write.dm" +#include "code\modules\spells\targeted\ethereal_jaunt.dm" +#include "code\modules\spells\targeted\genetic.dm" +#include "code\modules\spells\targeted\harvest.dm" +#include "code\modules\spells\targeted\mind_transfer.dm" +#include "code\modules\spells\targeted\shift.dm" +#include "code\modules\spells\targeted\subjugate.dm" +#include "code\modules\spells\targeted\targeted.dm" +#include "code\modules\spells\targeted\equip\equip.dm" +#include "code\modules\spells\targeted\equip\horsemask.dm" +#include "code\modules\spells\targeted\projectile\dumbfire.dm" +#include "code\modules\spells\targeted\projectile\fireball.dm" +#include "code\modules\spells\targeted\projectile\magic_missile.dm" +#include "code\modules\spells\targeted\projectile\projectile.dm" +#include "code\modules\surgery\_defines.dm" +#include "code\modules\surgery\bones.dm" +#include "code\modules\surgery\encased.dm" +#include "code\modules\surgery\external_repair.dm" +#include "code\modules\surgery\face.dm" +#include "code\modules\surgery\generic.dm" +#include "code\modules\surgery\implant.dm" +#include "code\modules\surgery\limb_reattach.dm" +#include "code\modules\surgery\neck.dm" +#include "code\modules\surgery\organs_internal.dm" +#include "code\modules\surgery\other.dm" +#include "code\modules\surgery\robotics.dm" +#include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\~defines.dm" +#include "code\modules\tables\bench.dm" +#include "code\modules\tables\flipping.dm" +#include "code\modules\tables\interactions.dm" +#include "code\modules\tables\presets.dm" +#include "code\modules\tables\presets_vr.dm" +#include "code\modules\tables\rack.dm" +#include "code\modules\tables\rack_vr.dm" +#include "code\modules\tables\tables.dm" +#include "code\modules\tables\update_triggers.dm" +#include "code\modules\telesci\bscyrstal.dm" +#include "code\modules\telesci\construction.dm" +#include "code\modules\telesci\gps_advanced.dm" +#include "code\modules\telesci\quantum_pad.dm" +#include "code\modules\telesci\telepad.dm" +#include "code\modules\telesci\telesci_computer.dm" +#include "code\modules\tension\tension.dm" +#include "code\modules\tgs\includes.dm" +#include "code\modules\tgui\external.dm" +#include "code\modules\tgui\modal.dm" +#include "code\modules\tgui\states.dm" +#include "code\modules\tgui\tgui.dm" +#include "code\modules\tgui\tgui_alert.dm" +#include "code\modules\tgui\tgui_input_list.dm" +#include "code\modules\tgui\tgui_input_text.dm" +#include "code\modules\tgui\tgui_window.dm" +#include "code\modules\tgui\modules\_base.dm" +#include "code\modules\tgui\modules\admin_shuttle_controller.dm" +#include "code\modules\tgui\modules\agentcard.dm" +#include "code\modules\tgui\modules\alarm.dm" +#include "code\modules\tgui\modules\appearance_changer.dm" +#include "code\modules\tgui\modules\appearance_changer_vr.dm" +#include "code\modules\tgui\modules\atmos_control.dm" +#include "code\modules\tgui\modules\camera.dm" +#include "code\modules\tgui\modules\communications.dm" +#include "code\modules\tgui\modules\crew_manifest.dm" +#include "code\modules\tgui\modules\crew_monitor.dm" +#include "code\modules\tgui\modules\gyrotron_control.dm" +#include "code\modules\tgui\modules\law_manager.dm" +#include "code\modules\tgui\modules\overmap.dm" +#include "code\modules\tgui\modules\power_monitor.dm" +#include "code\modules\tgui\modules\rcon.dm" +#include "code\modules\tgui\modules\rustcore_monitor.dm" +#include "code\modules\tgui\modules\rustfuel_control.dm" +#include "code\modules\tgui\modules\shutoff_monitor.dm" +#include "code\modules\tgui\modules\supermatter_monitor.dm" +#include "code\modules\tgui\modules\teleporter.dm" +#include "code\modules\tgui\modules\ntos-only\cardmod.dm" +#include "code\modules\tgui\modules\ntos-only\configurator.dm" +#include "code\modules\tgui\modules\ntos-only\email.dm" +#include "code\modules\tgui\modules\ntos-only\uav.dm" +#include "code\modules\tgui\states\admin.dm" +#include "code\modules\tgui\states\always.dm" +#include "code\modules\tgui\states\conscious.dm" +#include "code\modules\tgui\states\contained.dm" +#include "code\modules\tgui\states\deep_inventory.dm" +#include "code\modules\tgui\states\default.dm" +#include "code\modules\tgui\states\hands.dm" +#include "code\modules\tgui\states\human_adjacent.dm" +#include "code\modules\tgui\states\inventory.dm" +#include "code\modules\tgui\states\inventory_vr.dm" +#include "code\modules\tgui\states\not_incapacitated.dm" +#include "code\modules\tgui\states\notcontained.dm" +#include "code\modules\tgui\states\observer.dm" +#include "code\modules\tgui\states\physical.dm" +#include "code\modules\tgui\states\self.dm" +#include "code\modules\tgui\states\vorepanel_vr.dm" +#include "code\modules\tgui\states\zlevel.dm" +#include "code\modules\tooltip\tooltip.dm" +#include "code\modules\turbolift\_turbolift.dm" +#include "code\modules\turbolift\turbolift.dm" +#include "code\modules\turbolift\turbolift_areas.dm" +#include "code\modules\turbolift\turbolift_console.dm" +#include "code\modules\turbolift\turbolift_console_vr.dm" +#include "code\modules\turbolift\turbolift_door.dm" +#include "code\modules\turbolift\turbolift_door_vr.dm" +#include "code\modules\turbolift\turbolift_floor.dm" +#include "code\modules\turbolift\turbolift_map.dm" +#include "code\modules\turbolift\turbolift_turfs.dm" +#include "code\modules\vchat\vchat_client.dm" +#include "code\modules\vchat\vchat_db.dm" +#include "code\modules\vehicles\bike.dm" +#include "code\modules\vehicles\boat.dm" +#include "code\modules\vehicles\cargo_train.dm" +#include "code\modules\vehicles\construction.dm" +#include "code\modules\vehicles\quad.dm" +#include "code\modules\vehicles\train.dm" +#include "code\modules\vehicles\vehicle.dm" +#include "code\modules\ventcrawl\ventcrawl.dm" +#include "code\modules\ventcrawl\ventcrawl_atmospherics.dm" +#include "code\modules\ventcrawl\ventcrawl_multiz.dm" +#include "code\modules\ventcrawl\ventcrawl_verb.dm" +#include "code\modules\virus2\admin.dm" +#include "code\modules\virus2\analyser.dm" +#include "code\modules\virus2\antibodies.dm" +#include "code\modules\virus2\centrifuge.dm" +#include "code\modules\virus2\curer.dm" +#include "code\modules\virus2\disease2.dm" +#include "code\modules\virus2\diseasesplicer.dm" +#include "code\modules\virus2\dishincubator.dm" +#include "code\modules\virus2\effect.dm" +#include "code\modules\virus2\effect_vr.dm" +#include "code\modules\virus2\helpers.dm" +#include "code\modules\virus2\isolator.dm" +#include "code\modules\virus2\items_devices.dm" +#include "code\modules\vore\hook-defs_vr.dm" +#include "code\modules\vore\trycatch_vr.dm" +#include "code\modules\vore\appearance\preferences_vr.dm" +#include "code\modules\vore\appearance\update_icons_vr.dm" +#include "code\modules\vore\eating\belly_dat_vr.dm" +#include "code\modules\vore\eating\belly_obj_vr.dm" +#include "code\modules\vore\eating\bellymodes_datum_vr.dm" +#include "code\modules\vore\eating\bellymodes_vr.dm" +#include "code\modules\vore\eating\contaminate_vr.dm" +#include "code\modules\vore\eating\digest_act_vr.dm" +#include "code\modules\vore\eating\leave_remains_vr.dm" +#include "code\modules\vore\eating\living_vr.dm" +#include "code\modules\vore\eating\silicon_vr.dm" +#include "code\modules\vore\eating\simple_animal_vr.dm" +#include "code\modules\vore\eating\transforming_vr.dm" +#include "code\modules\vore\eating\vore_vr.dm" +#include "code\modules\vore\eating\vorehooks_vr.dm" +#include "code\modules\vore\eating\vorepanel_vr.dm" +#include "code\modules\vore\fluffstuff\custom_boxes_vr.dm" +#include "code\modules\vore\fluffstuff\custom_clothes_vr.dm" +#include "code\modules\vore\fluffstuff\custom_items_vr.dm" +#include "code\modules\vore\fluffstuff\custom_mecha_vr.dm" +#include "code\modules\vore\fluffstuff\custom_permits_vr.dm" +#include "code\modules\vore\persist\persist_vr.dm" +#include "code\modules\vore\resizing\grav_pull_vr.dm" +#include "code\modules\vore\resizing\holder_micro_vr.dm" +#include "code\modules\vore\resizing\resize_vr.dm" +#include "code\modules\vore\resizing\sizegun_vr.dm" +#include "code\modules\vore\smoleworld\smoleworld_vr.dm" +#include "code\modules\vore\weight\fitness_machines_vr.dm" +#include "code\modules\webhooks\_webhook.dm" +#include "code\modules\webhooks\webhook_ahelp2discord.dm" +#include "code\modules\webhooks\webhook_custom_event.dm" +#include "code\modules\webhooks\webhook_fax2discord.dm" +#include "code\modules\webhooks\webhook_roundend.dm" +#include "code\modules\webhooks\webhook_roundprep.dm" +#include "code\modules\webhooks\webhook_roundstart.dm" +#include "code\modules\xenoarcheaology\anomaly_container.dm" +#include "code\modules\xenoarcheaology\boulder.dm" +#include "code\modules\xenoarcheaology\effect.dm" +#include "code\modules\xenoarcheaology\manuals.dm" +#include "code\modules\xenoarcheaology\misc.dm" +#include "code\modules\xenoarcheaology\sampling.dm" +#include "code\modules\xenoarcheaology\artifacts\artifact.dm" +#include "code\modules\xenoarcheaology\artifacts\artifact_find.dm" +#include "code\modules\xenoarcheaology\artifacts\artifact_vr.dm" +#include "code\modules\xenoarcheaology\artifacts\autocloner.dm" +#include "code\modules\xenoarcheaology\artifacts\crystal.dm" +#include "code\modules\xenoarcheaology\artifacts\gigadrill.dm" +#include "code\modules\xenoarcheaology\artifacts\replicator.dm" +#include "code\modules\xenoarcheaology\artifacts\predefined\_predefined.dm" +#include "code\modules\xenoarcheaology\artifacts\predefined\hungry_statue.dm" +#include "code\modules\xenoarcheaology\effects\animate_anomaly.dm" +#include "code\modules\xenoarcheaology\effects\badfeeling.dm" +#include "code\modules\xenoarcheaology\effects\berserk.dm" +#include "code\modules\xenoarcheaology\effects\cannibal.dm" +#include "code\modules\xenoarcheaology\effects\cellcharge.dm" +#include "code\modules\xenoarcheaology\effects\celldrain.dm" +#include "code\modules\xenoarcheaology\effects\cold.dm" +#include "code\modules\xenoarcheaology\effects\dnaswitch.dm" +#include "code\modules\xenoarcheaology\effects\electric_field.dm" +#include "code\modules\xenoarcheaology\effects\emp.dm" +#include "code\modules\xenoarcheaology\effects\feysight.dm" +#include "code\modules\xenoarcheaology\effects\forcefield.dm" +#include "code\modules\xenoarcheaology\effects\gaia.dm" +#include "code\modules\xenoarcheaology\effects\gasco2.dm" +#include "code\modules\xenoarcheaology\effects\gasnitro.dm" +#include "code\modules\xenoarcheaology\effects\gasoxy.dm" +#include "code\modules\xenoarcheaology\effects\gasphoron.dm" +#include "code\modules\xenoarcheaology\effects\gassleeping.dm" +#include "code\modules\xenoarcheaology\effects\goodfeeling.dm" +#include "code\modules\xenoarcheaology\effects\gravitational_waves.dm" +#include "code\modules\xenoarcheaology\effects\heal.dm" +#include "code\modules\xenoarcheaology\effects\heat.dm" +#include "code\modules\xenoarcheaology\effects\hurt.dm" +#include "code\modules\xenoarcheaology\effects\poltergeist.dm" +#include "code\modules\xenoarcheaology\effects\radiate.dm" +#include "code\modules\xenoarcheaology\effects\resurrect.dm" +#include "code\modules\xenoarcheaology\effects\roboheal.dm" +#include "code\modules\xenoarcheaology\effects\robohurt.dm" +#include "code\modules\xenoarcheaology\effects\sleepy.dm" +#include "code\modules\xenoarcheaology\effects\stun.dm" +#include "code\modules\xenoarcheaology\effects\teleport.dm" +#include "code\modules\xenoarcheaology\effects\vampire.dm" +#include "code\modules\xenoarcheaology\finds\eguns.dm" +#include "code\modules\xenoarcheaology\finds\eguns_vr.dm" +#include "code\modules\xenoarcheaology\finds\find_spawning.dm" +#include "code\modules\xenoarcheaology\finds\finds.dm" +#include "code\modules\xenoarcheaology\finds\finds_defines.dm" +#include "code\modules\xenoarcheaology\finds\fossils.dm" +#include "code\modules\xenoarcheaology\finds\misc.dm" +#include "code\modules\xenoarcheaology\finds\special.dm" +#include "code\modules\xenoarcheaology\finds\talking.dm" +#include "code\modules\xenoarcheaology\tools\ano_device_battery.dm" +#include "code\modules\xenoarcheaology\tools\artifact_analyser.dm" +#include "code\modules\xenoarcheaology\tools\artifact_harvester.dm" +#include "code\modules\xenoarcheaology\tools\artifact_scanner.dm" +#include "code\modules\xenoarcheaology\tools\coolant_tank.dm" +#include "code\modules\xenoarcheaology\tools\equipment.dm" +#include "code\modules\xenoarcheaology\tools\geosample_scanner.dm" +#include "code\modules\xenoarcheaology\tools\suspension_generator.dm" +#include "code\modules\xenoarcheaology\tools\tools.dm" +#include "code\modules\xenoarcheaology\tools\tools_pickaxe.dm" +#include "code\modules\xenoarcheaology\tools\tools_pickaxe_vr.dm" +#include "code\modules\xenoarcheaology\tools\tools_vr.dm" +#include "code\modules\xenobio\items\extracts.dm" +#include "code\modules\xenobio\items\slime_objects.dm" +#include "code\modules\xenobio\items\slimepotions.dm" +#include "code\modules\xenobio\items\weapons.dm" +#include "code\modules\xenobio\machinery\processor.dm" +#include "code\modules\xgm\xgm_gas_data.dm" +#include "code\modules\xgm\xgm_gas_mixture.dm" +#include "code\unit_tests\decl_tests.dm" +#include "code\unit_tests\language_tests.dm" +#include "code\unit_tests\loadout_tests.dm" +#include "code\unit_tests\map_tests.dm" +#include "code\unit_tests\material_tests.dm" +#include "code\unit_tests\mob_tests.dm" +#include "code\unit_tests\recipe_tests.dm" +#include "code\unit_tests\research_tests.dm" +#include "code\unit_tests\sqlite_tests.dm" +#include "code\unit_tests\subsystem_tests.dm" +#include "code\unit_tests\unit_test.dm" +#include "code\unit_tests\unit_test_vr.dm" +#include "code\unit_tests\vore_tests_vr.dm" +#include "code\unit_tests\zas_tests.dm" +#include "code\unit_tests\integrated_circuits\arithmetic.dm" +#include "code\unit_tests\integrated_circuits\circuits.dm" +#include "code\unit_tests\integrated_circuits\converter.dm" +#include "code\unit_tests\integrated_circuits\logic.dm" +#include "code\unit_tests\integrated_circuits\trig.dm" +#include "code\ZAS\Airflow.dm" +#include "code\ZAS\Atom.dm" +#include "code\ZAS\Connection.dm" +#include "code\ZAS\ConnectionGroup.dm" +#include "code\ZAS\ConnectionManager.dm" +#include "code\ZAS\Controller.dm" +#include "code\ZAS\Debug.dm" +#include "code\ZAS\Diagnostic.dm" +#include "code\ZAS\Fire.dm" +#include "code\ZAS\Phoron.dm" +#include "code\ZAS\Turf.dm" +#include "code\ZAS\Variable Settings.dm" +#include "code\ZAS\Zone.dm" +#include "interface\interface.dm" +#include "interface\skin.dmf" +#include "maps\gateway_archive_vr\blackmarketpackers.dm" +#include "maps\offmap_vr\om_ships\abductor.dm" +#include "maps\southern_cross\items\clothing\sc_accessory.dm" +#include "maps\southern_cross\items\clothing\sc_suit.dm" +#include "maps\southern_cross\items\clothing\sc_under.dm" +#include "maps\southern_cross\loadout\loadout_suit.dm" +#include "maps\southern_cross\loadout\loadout_uniform.dm" +#include "maps\southern_cross\loadout\loadout_vr.dm" +#include "maps\submaps\_helpers.dm" +#include "maps\submaps\_readme.dm" +#include "maps\submaps\engine_submaps\engine.dm" +#include "maps\submaps\engine_submaps\engine_areas.dm" +#include "maps\submaps\engine_submaps_vr\tether\_engine_submaps.dm" +#include "maps\submaps\space_submaps\space.dm" +#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm" +#include "maps\submaps\surface_submaps\mountains\mountains.dm" +#include "maps\submaps\surface_submaps\mountains\mountains_areas.dm" +#include "maps\submaps\surface_submaps\mountains\mountains_areas_vr.dm" +#include "maps\submaps\surface_submaps\plains\plains.dm" +#include "maps\submaps\surface_submaps\plains\plains_areas.dm" +#include "maps\submaps\surface_submaps\wilderness\wilderness.dm" +#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" +#include "maps\tether\tether.dm" +#include "maps\~map_system\maps.dm" +// END_INCLUDE +>>>>>>> eb76662be1... Merge pull request #11112 from MisterGrimm/XenomorphOverhaul