diff --git a/.gitignore b/.gitignore
index c1c488d24b6..b0cdc822cb3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,6 @@
#ignore other, specific files and folers
data/
-maps/backup/*
-maps/cyberiad.dmm.backup
-nano/debug.html
\ No newline at end of file
+/maps/backup/*
+/maps/cyberiad.dmm.backup
+/nano/debug.html
\ No newline at end of file
diff --git a/COPYING b/COPYING
index 5005fcd90f0..5c2d485924d 100644
--- a/COPYING
+++ b/COPYING
@@ -1,5 +1,5 @@
-Baystation12
-Copyright (C) 2010-2013 Baystation12 and tgstation13.
+Paradise
+Copyright (C) 2010-2014 Paradise, Baystation12 and tgstation13.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 1636a940c04..18666b56217 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -40,6 +40,14 @@
face_atom(A) // change direction to face what you clicked on
+ if(aiCamera.in_camera_mode)
+ aiCamera.camera_mode_off()
+ if(is_component_functioning("camera"))
+ aiCamera.captureimage(A, usr)
+ else
+ src << "Your camera isn't functional."
+ return
+
/*
cyborg restrained() currently does nothing
if(restrained())
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 6d0cb0a80c5..464593bbd47 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -60,6 +60,7 @@
#define ui_alien_head "4:12,1:5" //aliens
#define ui_alien_oclothing "5:14,1:5" //aliens
+#define ui_borg_sensor "5:16,1:5" //borgs
#define ui_inv1 "6:16,1:5" //borgs
#define ui_inv2 "7:16,1:5" //borgs
#define ui_inv3 "8:16,1:5" //borgs
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 52832285b4c..b528832c573 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -132,7 +132,7 @@
//Medical/Security sensors
using = new /obj/screen()
- using.name = "Toggle Sensors"
+ using.name = "Set Sensor Augmentation"
using.icon = 'icons/mob/screen_ai.dmi'
using.icon_state = "ai_sensor"
using.screen_loc = ui_ai_sensor
@@ -140,8 +140,4 @@
adding += using
mymob.client.screen += adding + other
- return
-
- mymob.client.screen += adding + other
-
return
\ No newline at end of file
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 1ec46cea82b..1495714e51c 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -50,6 +50,15 @@
//End of module select
+//Sec/Med HUDs
+ using = new /obj/screen()
+ using.name = "Toggle Sensor Augmentation"
+ using.icon = 'icons/mob/screen_ai.dmi'
+ using.icon_state = "ai_sensor"
+ using.screen_loc = ui_borg_sensor
+ using.layer = 20
+ adding += using
+
//Intent
using = new /obj/screen()
using.name = "act_intent"
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index c2c307e70f8..b31ef842b4f 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -406,6 +406,11 @@
R.uneq_active()
R.hud_used.update_robot_modules_display()
+ if("Toggle Sensor Augmentation")
+ if(isrobot(usr))
+ var/mob/living/silicon/robot/R = usr
+ R.control_hud()
+
if("module1")
if(istype(usr, /mob/living/silicon/robot))
usr:toggle_module(1)
@@ -549,7 +554,7 @@
var/mob/living/silicon/ai/AI = usr
AI.aiCamera.viewpictures()
- if("Toggle Sensors")
+ if("Set Sensor Augmentation")
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.control_hud()
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index e94f02efcf9..a20997140f0 100755
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -667,6 +667,17 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
access = access_security
group = "Security"
+/datum/supply_packs/disabler
+ name = "Disabler Crate"
+ contains = list(/obj/item/weapon/gun/energy/disabler,
+ /obj/item/weapon/gun/energy/disabler,
+ /obj/item/weapon/gun/energy/disabler)
+ cost = 10
+ containertype = /obj/structure/closet/crate/secure/weapon
+ containername = "disabler crate"
+ access = access_security
+ group = "Security"
+
/datum/supply_packs/eweapons
name = "Experimental weapons crate"
contains = list(/obj/item/weapon/flamethrower/full,
diff --git a/code/defines/procs/hud.dm b/code/defines/procs/hud.dm
new file mode 100644
index 00000000000..c225a896cf5
--- /dev/null
+++ b/code/defines/procs/hud.dm
@@ -0,0 +1,82 @@
+/* Using the HUD procs is simple. Call these procs in the life.dm of the intended mob.
+Use the regular_hud_updates() proc before process_med_hud(mob) or process_sec_hud(mob) so
+the HUD updates properly! */
+
+//Medical HUD outputs. Called by the Life() proc of the mob using it, usually.
+proc/process_med_hud(var/mob/M, var/local_scanner, var/mob/Alt)
+ if(!can_process_hud(M))
+ return
+
+ var/datum/arranged_hud_process/P = arrange_hud_process(M, Alt, med_hud_users)
+ for(var/mob/living/carbon/human/patient in P.Mob.in_view(P.Turf))
+ if(P.Mob.see_invisible < patient.invisibility)
+ continue
+
+ if(!local_scanner)
+ if(istype(patient.w_uniform, /obj/item/clothing/under))
+ var/obj/item/clothing/under/U = patient.w_uniform
+ if(U.sensor_mode < 2)
+ continue
+ else
+ continue
+
+ P.Client.images += patient.hud_list[HEALTH_HUD]
+ if(local_scanner)
+ P.Client.images += patient.hud_list[STATUS_HUD]
+
+//Security HUDs. Pass a value for the second argument to enable implant viewing or other special features.
+proc/process_sec_hud(var/mob/M, var/advanced_mode, var/mob/Alt)
+ if(!can_process_hud(M))
+ return
+ var/datum/arranged_hud_process/P = arrange_hud_process(M, Alt, sec_hud_users)
+ for(var/mob/living/carbon/human/perp in P.Mob.in_view(P.Turf))
+ if(P.Mob.see_invisible < perp.invisibility)
+ continue
+
+ P.Client.images += perp.hud_list[ID_HUD]
+ if(advanced_mode)
+ P.Client.images += perp.hud_list[WANTED_HUD]
+ P.Client.images += perp.hud_list[IMPTRACK_HUD]
+ P.Client.images += perp.hud_list[IMPLOYAL_HUD]
+ P.Client.images += perp.hud_list[IMPCHEM_HUD]
+
+datum/arranged_hud_process
+ var/client/Client
+ var/mob/Mob
+ var/turf/Turf
+
+proc/arrange_hud_process(var/mob/M, var/mob/Alt, var/list/hud_list)
+ hud_list |= M
+ var/datum/arranged_hud_process/P = new
+ P.Client = M.client
+ P.Mob = Alt ? Alt : M
+ P.Turf = get_turf(P.Mob)
+ return P
+
+proc/can_process_hud(var/mob/M)
+ if(!M)
+ return 0
+ if(!M.client)
+ return 0
+ if(M.stat != CONSCIOUS)
+ return 0
+ return 1
+
+//Deletes the current HUD images so they can be refreshed with new ones.
+mob/proc/regular_hud_updates() //Used in the life.dm of mobs that can use HUDs.
+ if(client)
+ for(var/image/hud in client.images)
+ if(copytext(hud.icon_state,1,4) == "hud")
+ client.images -= hud
+ med_hud_users -= src
+ sec_hud_users -= src
+
+mob/proc/in_view(var/turf/T)
+ return view(T)
+
+/mob/aiEye/in_view(var/turf/T)
+ var/list/viewed = new
+ for(var/mob/living/carbon/human/H in mob_list)
+ if(get_dist(H, T) <= 7)
+ viewed += H
+ return viewed
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 799f7f7da90..627d24d9355 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -16,6 +16,7 @@ var/global/datum/controller/gameticker/ticker
var/event_time = null
var/event = 0
+ var/login_music // music played in pregame lobby
var/list/datum/mind/minds = list()//The people in the game. Used for objective tracking.
@@ -38,6 +39,10 @@ var/global/datum/controller/gameticker/ticker
var/initialtpass = 0 //holder for inital autotransfer vote timer
/datum/controller/gameticker/proc/pregame()
+ login_music = pick(\
+ 'sound/music/space.ogg',\
+ 'sound/music/Title1.ogg',\
+ 'sound/music/Title2.ogg',)
do
pregame_timeleft = 180
world << "Welcome to the pre-game lobby!"
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index f16bfc65334..36984e5c314 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -20,11 +20,8 @@
if (computer)
computer.table = src
break
-// spawn(100) //Wont the MC just call this process() before and at the 10 second mark anyway?
-// process()
/obj/machinery/optable/ex_act(severity)
-
switch(severity)
if(1.0)
//SN src = null
@@ -76,41 +73,17 @@
/obj/machinery/optable/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
-
- if(O.loc == user) //no you can't pull things out of your ass
- return
- if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.resting) //are you cuffed, dying, lying, stunned or other
- return
- if(O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)) // is the mob anchored, too far away from you, or are you too far away from the source
- return
- if(!ismob(O)) //humans only
- return
- if(istype(O, /mob/living/simple_animal) || istype(O, /mob/living/silicon)) //animals and robutts dont fit
- return
- if(!ishuman(user) && !isrobot(user)) //No ghosts or mice putting people into the sleeper
- return
- if(user.loc==null) // just in case someone manages to get a closet into the blue light dimension, as unlikely as that seems
- return
- if(!istype(user.loc, /turf) || !istype(O.loc, /turf)) // are you in a container/closet/pod/etc?
+ if(usr.stat || !ishuman(usr) || usr.restrained() || !check_table(usr))
return
+
var/mob/living/L = O
- if(!istype(L) || L.buckled)
- return
- for(var/mob/living/carbon/slime/M in range(1,L))
- if(M.Victim == L)
- usr << "[L.name] cannot be operated on while they have \a [M] attached to their head!"
- return
- if(src.victim)
- usr << "\blue The table is already occupied!"
- return
-
- take_victim(L, user)
+ take_victim(L,usr)
return
/obj/machinery/optable/proc/check_victim()
if(locate(/mob/living/carbon/human, src.loc))
var/mob/living/carbon/human/M = locate(/mob/living/carbon/human, src.loc)
- if(M.resting)
+ if(M.lying)
src.victim = M
icon_state = M.pulse ? "table2-active" : "table2-idle"
return 1
@@ -146,11 +119,7 @@
set category = "Object"
set src in oview(1)
- if(usr.stat || !ishuman(usr) || usr.buckled || usr.restrained())
- return
-
- if(src.victim)
- usr << "\blue The table is already occupied!"
+ if(usr.stat || !ishuman(usr) || usr.restrained() || !check_table(usr))
return
take_victim(usr,usr)
@@ -162,5 +131,14 @@
del(W)
return
-/obj/machinery/optable/slime
- icon_state = "table-slime"
+
+/obj/machinery/optable/proc/check_table(mob/living/carbon/patient as mob)
+ if(src.victim)
+ usr << "\blue The table is already occupied!"
+ return 0
+
+ if(patient.buckled)
+ usr << "\blue Unbuckle first!"
+ return 0
+
+ return 1
diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm
index fc32f40e931..19a89339c62 100644
--- a/code/game/machinery/bots/medbot.dm
+++ b/code/game/machinery/bots/medbot.dm
@@ -602,6 +602,5 @@
if((robot.z == src.z) && !robot.blinded)
if((skin == "bezerk") && (!("syndicate" in robot.faction)))
continue
- for(var/obj/I in robot.contents)
- if(istype(I, /obj/item/borg/sight/hud/med))
- robot << "\icon[I] Medical emergency! [crit_patient ? "[crit_patient]" : "A patient"] is in critical condition at [location]!"
\ No newline at end of file
+ if(robot.sensor_mode == 2)
+ robot << "Medical emergency! [crit_patient ? "[crit_patient]" : "A patient"] is in critical condition at [location]!"
\ No newline at end of file
diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm
index bd61055fcf0..995f0a17378 100644
--- a/code/game/machinery/bots/secbot.dm
+++ b/code/game/machinery/bots/secbot.dm
@@ -264,7 +264,7 @@ Auto Patrol: []"},
playsound(loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2)
target.visible_message("[src] is trying to put handcuffs on [target]!",\
"[src] is trying to put handcuffs on [target]!")
- spawn(80)
+ spawn(60)
if( !Adjacent(target) || !isturf(target.loc) ) //if he's in a closet or not adjacent, we cancel cuffing.
return
if(!target.handcuffed)
@@ -483,7 +483,5 @@ Auto Patrol: []"},
if((human.z == src.z) && istype(human.glasses, /obj/item/clothing/glasses/hud/security) || istype(human.glasses, /obj/item/clothing/glasses/sunglasses/sechud) && !human.blinded)
human << "\icon[human.glasses] [src.name] is [arrest_type ? "detaining" : "arresting"] level [threatlevel] threat [target] in [location]"
for(var/mob/living/silicon/robot in world)
- if((robot.z == src.z) && !robot.blinded)
- for(var/obj/I in robot.contents)
- if(istype(I, /obj/item/borg/sight/hud/sec))
- robot << "\icon[I] [src.name] is [arrest_type ? "detaining" : "arresting"] level [threatlevel] threat [target] in [location]"
\ No newline at end of file
+ if((robot.z == src.z) && !robot.blinded && robot.sensor_mode == 1)
+ robot << "[src.name] is [arrest_type ? "detaining" : "arresting"] level [threatlevel] threat [target] in [location]"
\ No newline at end of file
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 4b4fa66350f..7bfab1eddec 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -398,7 +398,7 @@
//user << browse(t, "window=turretid;size=500x250")
//onclose(user, "turretid")
- var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])")
+ var/datum/browser/popup = new(user, "turretid", "Turret Control Panel ([area.name])", 500, 250)
popup.set_content(t)
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
popup.open()
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index f63b3fd114b..a2a5e5228c2 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -109,7 +109,7 @@
icon_state = "mecha_taser"
energy_drain = 20
equip_cooldown = 8
- projectile = /obj/item/projectile/energy/electrode/revolver
+ projectile = /obj/item/projectile/energy/electrode
fire_sound = 'sound/weapons/Taser.ogg'
size = 1
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index ec5506e125b..224de285a1c 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -1,227 +1,148 @@
/obj/item/device/flash
name = "flash"
- desc = "Used for blinding and being an asshole."
+ desc = "A powerful and versatile flashbulb device, with applications ranging from disorienting attackers to acting as visual receptors in robot production."
icon_state = "flash"
item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang)
- throwforce = 5
- w_class = 1.0
- throw_speed = 4
- throw_range = 10
- flags = FPRINT | TABLEPASS| CONDUCT
+ throwforce = 0
+ w_class = 1
+ throw_speed = 3
+ throw_range = 7
+ flags = FPRINT | TABLEPASS | CONDUCT
origin_tech = "magnets=2;combat=1"
var/times_used = 0 //Number of times it's been used.
var/broken = 0 //Is the flash burnt out?
var/last_used = 0 //last world.time it was used.
-/obj/item/device/flash/proc/clown_check(var/mob/user)
+
+/obj/item/device/flash/proc/clown_check(mob/user)
if(user && (M_CLUMSY in user.mutations) && prob(50))
- user << "\red \The [src] slips out of your hand."
- user.drop_item()
+ flash_carbon(user, user, 15, 0)
+ user.visible_message("[user] blinds [user] with the flash!")
return 0
return 1
-/obj/item/device/flash/proc/flash_recharge()
- //capacitor recharges over time
- for(var/i=0, i<3, i++)
- if(last_used+600 > world.time)
- break
- last_used += 600
- times_used -= 2
+
+/obj/item/device/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something.
+ broken = 1
+ icon_state = "[initial(icon_state)]burnt"
+ visible_message("The [src.name] burns out!")
+
+
+/obj/item/device/flash/proc/flash_recharge(var/mob/user)
+ if(prob(times_used * 2)) //if you use it 5 times in a minute it has a 10% chance to break!
+ burn_out()
+ return 0
+
+ var/deciseconds_passed = world.time - last_used
+ for(var/seconds = deciseconds_passed/10, seconds>=10, seconds-=10) //get 1 charge every 10 seconds
+ times_used--
+
last_used = world.time
- times_used = max(0,round(times_used)) //sanity
+ times_used = max(0, times_used) //sanity
-/obj/item/device/flash/attack(mob/living/M as mob, mob/user as mob)
- if(!user || !M) return //sanity
+/obj/item/device/flash/proc/try_use_flash(var/mob/user)
+ flash_recharge(user)
- M.attack_log += text("\[[time_stamp()]\] Has been flashed (attempt) with [src.name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to flash [M.name] ([M.ckey])")
- if(M.ckey)
- msg_admin_attack("[user.name] ([user.ckey]) Used the [src.name] to flash [M.name] ([M.ckey]) (JMP)")
-
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
-
- if(!clown_check(user)) return
if(broken)
- user << "\The [src] is broken."
- return
+ return 0
- flash_recharge()
-
- //spamming the flash before it's fully charged (60seconds) increases the chance of it breaking
- //It will never break on the first use.
- switch(times_used)
- if(0 to 5)
- last_used = world.time
- if(prob(times_used)) //if you use it 5 times in a minute it has a 10% chance to break!
- broken = 1
- user << "The bulb has burnt out!"
- icon_state = "flashburnt"
- return
- times_used++
- else //can only use it 5 times a minute
- user << "*click* *click*"
- return
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
- var/flashfail = 0
+ flick("[initial(icon_state)]2", src)
+ times_used++
+
+ if(user && !clown_check(user))
+ return 0
+
+ return 1
+
+
+/obj/item/device/flash/proc/flash_carbon(var/mob/living/carbon/M, var/mob/user = null, var/power = 5, convert = 1)
+ add_logs(M, user, "flashed", object="the flash")
+ var/safety = M:eyecheck()
+ if(safety <= 0)
+ M.confused += power
+ flick("e_flash", M.flash)
+ if(user && convert)
+ terrible_conversion_proc(M, user)
+ M.Stun(1)
+
+/obj/item/device/flash/attack(mob/living/M, mob/user)
+ if(!try_use_flash(user))
+ return 0
if(iscarbon(M))
- var/safety = M:eyecheck()
- if(safety <= 0)
- M.Weaken(5)
- flick("e_flash", M.flash)
-
- if(ishuman(M) && ishuman(user) && M.stat!=DEAD)
- if(user.mind && user.mind in ticker.mode.head_revolutionaries)
- var/revsafe = 0
- for(var/obj/item/weapon/implant/loyalty/L in M)
- if(L && L.implanted)
- revsafe = 1
- break
- M.mind_initialize() //give them a mind datum if they don't have one.
- if(M.mind.has_been_rev)
- revsafe = 2
- if(!revsafe)
- M.mind.has_been_rev = 1
- ticker.mode.add_revolutionary(M.mind)
- else if(revsafe == 1)
- user << "Something seems to be blocking the flash!"
- else
- user << "This mind seems resistant to the flash!"
- user << "This mind is so vacant that it is not susceptible to influence!"
- else
- flashfail = 1
+ flash_carbon(M, user, 5, 1)
+ user.visible_message("[user] blinds [M] with the flash!")
+ return 1
else if(issilicon(M))
M.Weaken(rand(5,10))
- else
- flashfail = 1
+ add_logs(M, user, "flashed", object="[src.name]")
+ user.visible_message("[user] overloads [M]'s sensors with the flash!")
+ return 1
- if(isrobot(user))
- spawn(0)
- var/atom/movable/overlay/animation = new(user.loc)
- animation.layer = user.layer + 1
- animation.icon_state = "blank"
- animation.icon = 'icons/mob/mob.dmi'
- animation.master = user
- flick("blspell", animation)
- sleep(5)
- del(animation)
-
- if(!flashfail)
- flick("flash2", src)
- if(!issilicon(M))
-
- user.visible_message("[user] blinds [M] with the flash!")
- else
-
- user.visible_message("[user] overloads [M]'s sensors with the flash!")
- else
-
- user.visible_message("[user] fails to blind [M] with the flash!")
-
- return
+ user.visible_message("[user] fails to blind [M] with the flash!")
-
-
-/obj/item/device/flash/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
- if(!user || !clown_check(user)) return
- if(broken)
- user.show_message("The [src.name] is broken", 2)
- return
-
- flash_recharge()
-
- //spamming the flash before it's fully charged (60seconds) increases the chance of it breaking
- //It will never break on the first use.
- switch(times_used)
- if(0 to 5)
- if(prob(2*times_used)) //if you use it 5 times in a minute it has a 10% chance to break!
- broken = 1
- user << "The bulb has burnt out!"
- icon_state = "flashburnt"
- return
- times_used++
- else //can only use it 5 times a minute
- user.show_message("*click* *click*", 2)
- return
- playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
- flick("flash2", src)
- if(user && isrobot(user))
- spawn(0)
- var/atom/movable/overlay/animation = new(user.loc)
- animation.layer = user.layer + 1
- animation.icon_state = "blank"
- animation.icon = 'icons/mob/mob.dmi'
- animation.master = user
- flick("blspell", animation)
- sleep(5)
- del(animation)
-
+/obj/item/device/flash/attack_self(mob/living/carbon/user, flag = 0, emp = 0)
+ if(!try_use_flash(user))
+ return 0
for(var/mob/living/carbon/M in oviewers(3, null))
- if(prob(50))
- if (locate(/obj/item/weapon/cloaking_device, M))
- for(var/obj/item/weapon/cloaking_device/S in M)
- S.active = 0
- S.icon_state = "shield0"
- if(M.alpha < 255)
- var/oldalpha = M.alpha
- if(prob(80))
- M.alpha = 255
- M.visible_message("[M] suddenly becomes fully visible!",\
- "You see a bright flash of light and are suddenly fully visible again.")
- spawn(50)
- M.alpha = oldalpha
- var/safety = M:eyecheck()
- if(!safety)
- if(!M.blinded)
- flick("flash", M.flash)
+ flash_carbon(M, user, 3, 0)
- return
/obj/item/device/flash/emp_act(severity)
- if(broken) return
- flash_recharge()
- switch(times_used)
- if(0 to 5)
- if(prob(2*times_used))
- broken = 1
- icon_state = "flashburnt"
- return
- times_used++
- if(istype(loc, /mob/living/carbon))
- var/mob/living/carbon/M = loc
- var/safety = M.eyecheck()
- if(safety <= 0)
- M.Weaken(5)
- flick("e_flash", M.flash)
- for(var/mob/O in viewers(M, null))
- O.show_message("[M] is blinded by the flash!")
+ if(!try_use_flash())
+ return 0
+ for(var/mob/living/carbon/M in viewers(3, null))
+ flash_carbon(M, null, 10, 0)
+ burn_out()
..()
-/obj/item/device/flash/synthetic
- name = "synthetic flash"
- desc = "When a problem arises, SCIENCE is the solution."
- icon_state = "sflash"
- origin_tech = "magnets=2;combat=1"
- var/construction_cost = list("metal"=750,"glass"=750)
- var/construction_time=100
-/obj/item/device/flash/synthetic/attack(mob/living/M as mob, mob/user as mob)
- ..()
- if(!broken)
- broken = 1
- user << "\red The bulb has burnt out!"
- icon_state = "flashburnt"
+/obj/item/device/flash/proc/terrible_conversion_proc(var/mob/M, var/mob/user)
+ if(ishuman(M) && ishuman(user) && M.stat != DEAD)
+ if(user.mind && ((user.mind in ticker.mode.head_revolutionaries)))
+ if(M.client)
+ if(M.stat == CONSCIOUS)
+ M.mind_initialize() //give them a mind datum if they don't have one.
+ var/resisted
+ if(!isloyal(M))
+ if(user.mind in ticker.mode.head_revolutionaries)
+ if(!ticker.mode.add_revolutionary(M.mind))
+ resisted = 1
+ else
+ resisted = 1
-/obj/item/device/flash/synthetic/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
+ if(resisted)
+ user << "This mind seems resistant to the flash!"
+ else
+ user << "They must be conscious before you can convert them!"
+ else
+ user << "This mind is so vacant that it is not susceptible to influence!"
+
+
+/obj/item/device/flash/cyborg
+ origin_tech = null
+
+/obj/item/device/flash/cyborg/attack(mob/living/M, mob/user)
..()
- if(!broken)
- broken = 1
- user << "\red The bulb has burnt out!"
- icon_state = "flashburnt"
+ cyborg_flash_animation(user)
+
+/obj/item/device/flash/cyborg/attack_self(mob/user)
+ ..()
+ cyborg_flash_animation(user)
+
+/obj/item/device/flash/cyborg/proc/cyborg_flash_animation(var/mob/living/user)
+ var/atom/movable/overlay/animation = new(user.loc)
+ animation.layer = user.layer + 1
+ animation.icon_state = "blank"
+ animation.icon = 'icons/mob/mob.dmi'
+ animation.master = user
+ flick("blspell", animation)
+ sleep(5)
+ del(animation)
+
+/obj/item/device/flash/synthetic //just a regular flash now
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/alien_specific.dm b/code/game/objects/items/weapons/alien_specific.dm
index 7026cf6f74a..ba914f4f8ce 100644
--- a/code/game/objects/items/weapons/alien_specific.dm
+++ b/code/game/objects/items/weapons/alien_specific.dm
@@ -56,7 +56,7 @@
//SKREEEEEEEEEEEE tool
-/obj/item/device/flash/alien
+/obj/item/device/flash/cyborg/alien
name = "eye flash"
desc = "Useful for taking pictures, making friends and flash-frying chips."
icon = 'icons/mob/alien.dmi'
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index fb273ff1ed2..d7e501ea6e1 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -3,29 +3,24 @@
desc = "A stun baton for incapacitating people with."
icon_state = "stunbaton"
item_state = "baton"
- flags = FPRINT | TABLEPASS
slot_flags = SLOT_BELT
+ flags = FPRINT | TABLEPASS
force = 10
throwforce = 7
w_class = 3
origin_tech = "combat=2"
attack_verb = list("beaten")
- var/stunforce = 0
- var/agonyforce = 60
- var/status = 0 //whether the thing is on or not
+ var/stunforce = 7
+ var/status = 0
var/obj/item/weapon/cell/high/bcell = null
- var/mob/foundmob = "" //Used in throwing proc.
- var/hitcost = 1500 //oh god why do power cells carry so much charge? We probably need to make a distinction between "industrial" sized power cells for APCs and power cells for everything else.
- var/allowharm = 1 // Allow or disallow harming with the stunbaton
+ var/hitcost = 1500
/obj/item/weapon/melee/baton/suicide_act(mob/user)
user.visible_message("[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide.")
return (FIRELOSS)
-
-/obj/item/weapon/melee/baton/loaded/New() //this one starts with a cell pre-installed.
+/obj/item/weapon/melee/baton/New()
..()
- bcell = new/obj/item/weapon/cell/high(src)
update_icon()
return
@@ -33,25 +28,22 @@
bcell = locate(/obj/item/weapon/cell) in contents
update_icon()
+/obj/item/weapon/melee/baton/loaded/New() //this one starts with a cell pre-installed.
+ ..()
+ bcell = new(src)
+ update_icon()
+ return
+
/obj/item/weapon/melee/baton/proc/deductcharge(var/chrgdeductamt)
if(bcell)
- if(bcell.rigged)
- bcell.explode()//exploding baton of justice
+ if(bcell.charge < (hitcost+chrgdeductamt)) // If after the deduction the baton doesn't have enough charge for a stun hit it turns off.
+ status = 0
update_icon()
- return
+ playsound(loc, "sparks", 75, 1, -1)
+ if(bcell.use(chrgdeductamt))
+ return 1
else
- bcell.charge -= max(chrgdeductamt,0)
- if(bcell.charge < hitcost)
- status = 0
- update_icon()
-
-/obj/item/weapon/melee/baton/examine()
- set src in view(1)
- ..()
- if(bcell)
- usr <<"The baton is [round(bcell.percent())]% charged."
- if(!bcell)
- usr <<"The baton does not have a power source installed."
+ return 0
/obj/item/weapon/melee/baton/update_icon()
if(status)
@@ -61,16 +53,27 @@
else
icon_state = "[initial(icon_state)]"
+/obj/item/weapon/melee/baton/examine(mob/user)
+ ..()
+ if(bcell)
+ user <<"The baton is [round(bcell.percent())]% charged."
+ if(!bcell)
+ user <<"The baton does not have a power source installed."
+
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/cell))
- if(!bcell)
+ var/obj/item/weapon/cell/C = W
+ if(bcell)
+ user << "[src] already has a cell."
+ else
+ if(C.maxcharge < hitcost)
+ user << "[src] requires a higher capacity cell."
+ return
user.drop_item()
W.loc = src
bcell = W
user << "You install a cell in [src]."
update_icon()
- else
- user << "[src] already has a cell."
else if(istype(W, /obj/item/weapon/screwdriver))
if(bcell)
@@ -85,143 +88,88 @@
return
/obj/item/weapon/melee/baton/attack_self(mob/user)
- if(status && (M_CLUMSY in user.mutations) && prob(50))
- user << "\red You grab the [src] on the wrong side."
- user.Weaken(stunforce*3)
- deductcharge(hitcost)
- return
- if(bcell && bcell.charge)
- if(bcell.charge < hitcost)
- status = 0
- user << "[src] is out of charge."
- else
- status = !status
- user << "[src] is now [status ? "on" : "off"]."
- playsound(loc, "sparks", 75, 1, -1)
- update_icon()
+ if(bcell && bcell.charge > hitcost)
+ status = !status
+ user << "[src] is now [status ? "on" : "off"]."
+ playsound(loc, "sparks", 75, 1, -1)
else
status = 0
if(!bcell)
user << "[src] does not have a power source!"
else
user << "[src] is out of charge."
+ update_icon()
add_fingerprint(user)
-/obj/item/weapon/melee/baton/attack(mob/M, mob/user)
+/obj/item/weapon/melee/baton/attack(mob/M, mob/living/user)
if(status && (M_CLUMSY in user.mutations) && prob(50))
- user << "span class='danger'>You accidentally hit yourself with the [src]!"
- user.Weaken(30)
+ user.visible_message("[user] accidentally hits themself with [src]!", \
+ "You accidentally hit yourself with [src]!")
+ user.Weaken(stunforce*3)
deductcharge(hitcost)
return
if(isrobot(M))
..()
return
+ if(!isliving(M))
+ return
- var/agony = agonyforce
- var/stun = stunforce
var/mob/living/L = M
- var/target_zone = check_zone(user.zone_sel.selecting)
- if(user.a_intent == "harm" && allowharm == 1)
- if (!..()) //item/attack() does it's own messaging and logs
- return 0 // item/attack() will return 1 if they hit, 0 if they missed.
- agony *= 0.5 //whacking someone causes a much poorer contact than prodding them.
- stun *= 0.5
- //we can't really extract the actual hit zone from ..(), unfortunately. Just act like they attacked the area they intended to.
- else
- //copied from human_defense.dm - human defence code should really be refactored some time.
- if (ishuman(L))
- user.lastattacked = L //are these used at all, if we have logs?
- L.lastattacker = user
-
- if (user != L) // Attacking yourself can't miss
- target_zone = get_zone_with_miss_chance(user.zone_sel.selecting, L)
-
- if(!target_zone)
- L.visible_message("\red [user] misses [L] with \the [src]!")
- return 0
-
- var/mob/living/carbon/human/H = L
- var/datum/organ/external/affecting = H.get_organ(target_zone)
- if (affecting)
- if(!status)
- L.visible_message("[L] has been prodded in the [affecting.display_name] with [src] by [user]. Luckily it was off.")
- return 1
- else
- H.visible_message("[L] has been prodded in the [affecting.display_name] with [src] by [user]!")
+ if(user.a_intent != "harm")
+ if(status)
+ baton_stun(L, user)
else
- if(!status)
- L.visible_message("[L] has been prodded with [src] by [user]. Luckily it was off.")
- return 1
- else
- L.visible_message("[L] has been prodded with [src] by [user]!")
+ L.visible_message("[L] has been prodded with [src] by [user]. Luckily it was off.", \
+ "You've been prodded with [src] by [user]. Luckily it was off")
+ return
+ else
+ ..()
+ if(status)
+ baton_stun(L, user)
- //stun effects
- L.stun_effect_act(stun, agony, target_zone, src)
+/obj/item/weapon/melee/baton/proc/baton_stun(mob/living/L, mob/user)
+ user.lastattacked = L
+ L.lastattacker = user
+
+ L.Stun(stunforce)
+ L.Weaken(stunforce)
+ L.apply_effect(STUTTER, stunforce)
+
+ L.visible_message("[L] has been stunned with [src] by [user]!", \
+ "You've been stunned with [src] by [user]!")
playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
- msg_admin_attack("[key_name(user)] stunned [key_name(L)] with the [src].")
- deductcharge(hitcost)
+ if(isrobot(loc))
+ var/mob/living/silicon/robot/R = loc
+ if(R && R.cell)
+ R.cell.use(hitcost)
+ else
+ deductcharge(hitcost)
if(ishuman(L))
var/mob/living/carbon/human/H = L
H.forcesay(hit_appends)
- return 1
-
-
-/obj/item/weapon/melee/baton/throw_impact(atom/hit_atom)
- . = ..()
- if (prob(50))
- if(istype(hit_atom, /mob/living))
- var/mob/living/carbon/human/H = hit_atom
- if(status)
- //stun effects
- if (stunforce)
- H.Stun(stunforce)
- H.Weaken(stunforce)
- H.apply_effect(STUTTER, stunforce)
-
- if (agonyforce)
- //Siemens coefficient?
- //TODO: Merge this with taser effects
- H.apply_effect(agonyforce,AGONY,0)
- H.apply_effect(STUTTER, agonyforce/10)
- H.apply_effect(EYE_BLUR, agonyforce/10)
- H.flash_pain()
-
- deductcharge(hitcost)
-
- if(bcell.charge < hitcost)
- status = 0
- update_icon()
-
-
- for(var/mob/M in player_list) if(M.key == src.fingerprintslast)
- foundmob = M
- break
-
- H.visible_message("[src], thrown by [foundmob.name], strikes [H] and stuns them!")
-
- H.attack_log += "\[[time_stamp()]\] Stunned by thrown [src.name] last touched by ([src.fingerprintslast])"
- log_attack("Flying [src.name], last touched by ([src.fingerprintslast]) stunned [H.name] ([H.ckey])" )
-
- if(!iscarbon(foundmob))
- H.LAssailant = null
- else
- H.LAssailant = foundmob
+ add_logs(L, user, "stunned", object="stunbaton")
/obj/item/weapon/melee/baton/emp_act(severity)
if(bcell)
- bcell.emp_act(severity) //let's not duplicate code everywhere if we don't have to please.
+ deductcharge(1000 / severity)
+ if(bcell.reliability != 100 && prob(50/severity))
+ bcell.reliability -= 10 / severity
..()
//secborg stun baton module
/obj/item/weapon/melee/baton/robot
hitcost = 500
+/obj/item/weapon/melee/baton/robot/New()
+ ..()
+ return
+
/obj/item/weapon/melee/baton/robot/attack_self(mob/user)
//try to find our power cell
var/mob/living/silicon/robot/R = loc
@@ -246,16 +194,6 @@
item_state = "prod"
force = 3
throwforce = 5
- stunforce = 0
- agonyforce = 42 //less than a stunbaton and uses way more charge.
+ stunforce = 5
hitcost = 3750
- attack_verb = list("poked")
- slot_flags = null
-
-/obj/item/weapon/melee/baton/cattleprod/update_icon()
- if(status)
- icon_state = "stunprod_active"
- else if(!bcell)
- icon_state = "stunprod_nocell"
- else
- icon_state = "stunprod"
+ slot_flags = null
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 96d58bf6dc6..4838c848339 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -463,7 +463,6 @@
item_state = "crowbar_red"
/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob)
-
if(hasorgans(M))
var/datum/organ/external/S = M:organs_by_name[user.zone_sel.selecting]
@@ -480,14 +479,27 @@
return
if(S.brute_dam)
- S.heal_damage(15,0,0,1)
- user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src].")
- if(istype(M,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- H.updatehealth()
- return
+ var/obj/item/weapon/weldingtool/WT = src
+ if (WT.remove_fuel(0,user))
+ playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ S.heal_damage(15,0,0,1)
+ user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src].")
+ if(istype(M,/mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ H.updatehealth()
+ if(istype(M,/mob/living/carbon/human/machine) && M.stat == 0) // If an IPC is brought back to life by welding it, which is possible, update the mob list
+ if(M in dead_mob_list)
+ dead_mob_list -= M
+ respawnable_list -= M
+ living_mob_list += M
+ mob_list += M
+ return
+ else
+ user << "\red You need more welding fuel to complete this task."
+ return
else
user << "Nothing to fix!"
+ return
else
return ..()
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 925dbb0fad2..8f76396ed4c 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -93,6 +93,10 @@ var/const/FALLOFF_SOUNDS = 0.5
S.environment = 2
src << S
+/client/proc/playtitlemusic()
+ if(!ticker || !ticker.login_music) return
+ if(prefs.sound & SOUND_LOBBY)
+ src << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS
/proc/get_rand_frequency()
return rand(32000, 55000) //Frequency stuff only works with 45kbps oggs.
diff --git a/code/game/vehicles/spacepods/equipment.dm b/code/game/vehicles/spacepods/equipment.dm
index 0cb0d21fbc2..e8815739966 100644
--- a/code/game/vehicles/spacepods/equipment.dm
+++ b/code/game/vehicles/spacepods/equipment.dm
@@ -1,5 +1,4 @@
/obj/item/device/spacepod_equipment/weaponry/proc/fire_weapons()
-
if(my_atom.next_firetime > world.time)
usr << "Your weapons are recharging."
return
@@ -12,37 +11,39 @@
my_atom.battery.use(shot_cost)
var/olddir
for(var/i = 0; i < shots_per; i++)
- if(olddir != dir)
- switch(dir)
+ if(olddir != my_atom.dir)
+ switch(my_atom.dir)
if(NORTH)
- firstloc = get_step(src, NORTH)
+ firstloc = get_step(my_atom, NORTH)
+ firstloc = get_step(firstloc, NORTH)
secondloc = get_step(firstloc,EAST)
if(SOUTH)
- firstloc = get_turf(src)
+ firstloc = get_step(my_atom, SOUTH)
secondloc = get_step(firstloc,EAST)
if(EAST)
- firstloc = get_turf(src)
+ firstloc = get_step(my_atom, EAST)
firstloc = get_step(firstloc, EAST)
secondloc = get_step(firstloc,NORTH)
if(WEST)
- firstloc = get_turf(src)
+ firstloc = get_step(my_atom, WEST)
secondloc = get_step(firstloc,NORTH)
olddir = dir
- var/obj/item/projectile/projone = new projectile_type(firstloc)
- var/obj/item/projectile/projtwo = new projectile_type(secondloc)
- projone.starting = get_turf(src)
+ var/proj_type = text2path(projectile_type)
+ var/obj/item/projectile/projone = new proj_type(firstloc)
+ var/obj/item/projectile/projtwo = new proj_type(secondloc)
+ projone.starting = get_turf(my_atom)
projone.shot_from = src
projone.firer = usr
projone.def_zone = "chest"
- projtwo.starting = get_turf(src)
+ projtwo.starting = get_turf(my_atom)
projtwo.shot_from = src
projtwo.firer = usr
projtwo.def_zone = "chest"
spawn()
playsound(src, fire_sound, 50, 1)
- projone.dumbfire(dir)
- projtwo.dumbfire(dir)
- sleep(1)
+ projone.dumbfire(my_atom.dir)
+ projtwo.dumbfire(my_atom.dir)
+ sleep(2)
my_atom.next_firetime = world.time + fire_delay
/datum/spacepod/equipment
@@ -70,44 +71,32 @@
var/shot_cost = 0
var/shots_per = 1
var/fire_sound
- var/fire_delay = 10
+ var/fire_delay = 20
/obj/item/device/spacepod_equipment/weaponry/taser
name = "\improper taser system"
desc = "A weak taser system for space pods, fires electrodes that shock upon impact."
icon_state = "pod_taser"
projectile_type = "/obj/item/projectile/energy/electrode"
- shot_cost = 10
+ shot_cost = 250
fire_sound = "sound/weapons/Taser.ogg"
-/obj/item/device/spacepod_equipment/weaponry/taser/proc/fire_weapon_system()
- set category = "Spacepod"
- set name = "Fire Taser System"
- set desc = "Fire the tasers."
- set src = usr.loc
-
- fire_weapons()
-
-/obj/item/device/spacepod_equipment/weaponry/taser/burst
- name = "\improper taser system"
+/obj/item/device/spacepod_equipment/weaponry/burst_taser
+ name = "\improper burst taser system"
desc = "A weak taser system for space pods, this one fires 3 at a time."
icon_state = "pod_b_taser"
- shot_cost = 20
+ projectile_type = "/obj/item/projectile/energy/electrode"
+ shot_cost = 350
shots_per = 3
+ fire_sound = "sound/weapons/Taser.ogg"
+ fire_delay = 40
/obj/item/device/spacepod_equipment/weaponry/laser
name = "\improper laser system"
desc = "A weak laser system for space pods, fires concentrated bursts of energy"
icon_state = "pod_w_laser"
projectile_type = "/obj/item/projectile/beam"
- shot_cost = 15
+ shot_cost = 300
fire_sound = 'sound/weapons/Laser.ogg'
- fire_delay = 25
+ fire_delay = 30
-/obj/item/device/spacepod_equipment/weaponry/laser/proc/fire_weapon_system()
- set category = "Spacepod"
- set name = "Fire Laser System"
- set desc = "Fire the lasers."
- set src = usr.loc
-
- fire_weapons()
\ No newline at end of file
diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index dec4673d13b..e41bfee03fd 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -24,7 +24,9 @@
var/hatch_open = 0
var/next_firetime = 0
var/list/pod_overlays
- var/health = 400
+ var/health = 100
+ var/lights = 0
+ var/lights_power = 6
/obj/spacepod/New()
. = ..()
@@ -140,9 +142,6 @@
W.loc = equipment_system
equipment_system.weapon_system = W
equipment_system.weapon_system.my_atom = src
- var/path = text2path("[W.type]/proc/fire_weapon_system")
- if(path)
- verbs += path//obj/spacepod/proc/fire_weapons
return
@@ -205,18 +204,16 @@
/obj/spacepod/sec
name = "\improper security spacepod"
- desc = "An armed security spacepod."
+ desc = "An armed security spacepod with reinforced armor plating."
icon_state = "pod_mil"
+ health = 150
/obj/spacepod/sec/New()
..()
- var/obj/item/device/spacepod_equipment/weaponry/taser/burst/T = new /obj/item/device/spacepod_equipment/weaponry/taser/burst
+ var/obj/item/device/spacepod_equipment/weaponry/taser/T = new /obj/item/device/spacepod_equipment/weaponry/taser
T.loc = equipment_system
equipment_system.weapon_system = T
- equipment_system.weapon_system.my_atom = T
- var/path = text2path("[T.type]/proc/fire_weapon_system")
- if(path)
- verbs += path//obj/spacepod/proc/fire_weapons
+ equipment_system.weapon_system.my_atom = src
return
/obj/spacepod/random/New()
@@ -368,12 +365,12 @@
src.occupant = null
usr << "You climb out of the pod"
return
-
+
/obj/spacepod/verb/toggleDoors()
set name = "Toggle Nearby Pod Doors"
set category = "Spacepod"
set src = usr.loc
-
+
for(var/obj/machinery/door/poddoor/P in oview(3,src))
if(istype(P, /obj/machinery/door/poddoor/three_tile_hor) || istype(P, /obj/machinery/door/poddoor/three_tile_ver) || istype(P, /obj/machinery/door/poddoor/four_tile_hor) || istype(P, /obj/machinery/door/poddoor/four_tile_ver))
var/mob/living/carbon/human/L = usr
@@ -384,9 +381,30 @@
else
P.close()
return 1
- usr << "Access denied."
+ usr << "Access denied."
return
- usr << "You are not close to any pod doors."
+ usr << "You are not close to any pod doors."
+ return
+
+/obj/spacepod/verb/fireWeapon()
+ set name = "Fire Pod Weapons"
+ set desc = "Fire the weapons."
+ set category = "Spacepod"
+ set src = usr.loc
+ equipment_system.weapon_system.fire_weapons()
+
+obj/spacepod/verb/toggleLights()
+ set name = "Toggle Lights"
+ set category = "Spacepod"
+ set src = usr.loc
+ if (usr != occupant)
+ return
+ lights = !lights
+ if(lights)
+ SetLuminosity(luminosity + lights_power)
+ else
+ SetLuminosity(luminosity - lights_power)
+ occupant << "Toggled lights [lights?"on":"off"]."
return
/obj/spacepod/proc/enter_after(delay as num, var/mob/user as mob, var/numticks = 5)
diff --git a/code/global.dm b/code/global.dm
index 7f4e9487828..3818db51cc1 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -12,6 +12,8 @@ var/global/list/machines = list()
var/global/list/processing_objects = list()
var/global/list/active_diseases = list()
var/global/list/events = list()
+var/global/list/med_hud_users = list()
+var/global/list/sec_hud_users = list()
//items that ask to be called every cycle
var/global/defer_powernet_rebuild = 0 // true if net rebuild will be called manually after an event
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 1ae25534cd8..004e572ddf5 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1618,9 +1618,6 @@
var/obj/pageobj = B.contents[page]
data += "Page [page] - [pageobj.name]
"
- world << data
- world << "Sent by: [usr]"
-
usr << browse(data, "window=[B.name]")
else
usr << "\red The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]"
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index acd0a4585a4..e832922a0ef 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -310,6 +310,7 @@ datum/preferences
dat += "-Color: [UI_style_color]
"
dat += "-Alpha(transparence): [UI_style_alpha]
"
dat += "Play admin midis: [(sound & SOUND_MIDI) ? "Yes" : "No"]
"
+ dat += "Play lobby music: [(sound & SOUND_LOBBY) ? "Yes" : "No"]
"
dat += "Randomized Character Slot: [randomslot ? "Yes" : "No"]
"
dat += "Ghost ears: [(toggles & CHAT_GHOSTEARS) ? "Nearest Creatures" : "All Speech"]
"
dat += "Ghost sight: [(toggles & CHAT_GHOSTSIGHT) ? "Nearest Creatures" : "All Emotes"]
"
@@ -1291,6 +1292,13 @@ datum/preferences
if("hear_midis")
sound ^= SOUND_MIDI
+ if("lobby_music")
+ sound ^= SOUND_LOBBY
+ if(sound & SOUND_LOBBY)
+ user << sound(ticker.login_music, repeat = 0, wait = 0, volume = 85, channel = 1)
+ else
+ user << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1)
+
if("ghost_ears")
toggles ^= CHAT_GHOSTEARS
diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm
index a9b9d9aad9c..196674eefde 100644
--- a/code/modules/client/preferences_toggles.dm
+++ b/code/modules/client/preferences_toggles.dm
@@ -59,6 +59,21 @@
src << "You will [(prefs.toggles & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat."
feedback_add_details("admin_verb","TP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+/client/verb/toggletitlemusic()
+ set name = "Hear/Silence LobbyMusic"
+ set category = "Preferences"
+ set desc = "Toggles hearing the GameLobby music"
+ prefs.sound ^= SOUND_LOBBY
+ prefs.save_preferences(src)
+ if(prefs.sound & SOUND_LOBBY)
+ src << "You will now hear music in the game lobby."
+ if(istype(mob, /mob/new_player))
+ playtitlemusic()
+ else
+ src << "You will no longer hear music in the game lobby."
+ if(istype(mob, /mob/new_player))
+ src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jamsz
+ feedback_add_details("admin_verb","TLobby") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/togglemidis()
set name = "Hear/Silence Midis"
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index 1382b25ef07..09f5db93afe 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -28,24 +28,10 @@
darkness_view = 8
/obj/item/clothing/glasses/hud/health/process_hud(var/mob/M)
- if(!M) return
- if(!M.client) return
- var/client/C = M.client
- for(var/mob/living/carbon/human/patient in view(get_turf(M)))
- if(M.see_invisible < patient.invisibility)
- continue
- C.images += patient.hud_list[HEALTH_HUD]
- C.images += patient.hud_list[STATUS_HUD]
+ process_med_hud(M,1)
/obj/item/clothing/glasses/hud/health_advanced/process_hud(var/mob/M)
- if(!M) return
- if(!M.client) return
- var/client/C = M.client
- for(var/mob/living/carbon/human/patient in view(get_turf(M)))
- if(M.see_invisible < patient.invisibility)
- continue
- C.images += patient.hud_list[HEALTH_HUD]
- C.images += patient.hud_list[STATUS_HUD]
+ process_sec_hud(M,1)
/obj/item/clothing/glasses/hud/security
diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm
index 070d89ffa9d..8eaf1c3ee7b 100644
--- a/code/modules/customitems/item_spawning.dm
+++ b/code/modules/customitems/item_spawning.dm
@@ -8,7 +8,7 @@
if (M.internals)
M.internals.icon_state = "internal1"
- M.generate_name()
+ //M.generate_name()
if( M.species.name=="Tajaran" || M.species.name=="Unathi" )
if(M.mind.assigned_role == "Cyborg" || M.mind.assigned_role == "Clown")
diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm
index fa09d87f22a..1e7a9da9a76 100644
--- a/code/modules/mob/living/carbon/brain/say.dm
+++ b/code/modules/mob/living/carbon/brain/say.dm
@@ -1,6 +1,9 @@
/mob/living/carbon/brain/say(var/message)
if (silent)
return
+
+ if (stat == 2) // Dead.
+ return say_dead(message)
if(!(container && (istype(container, /obj/item/device/mmi) || istype(container, /obj/item/device/mmi/posibrain))))
return //No MMI, can't speak, bucko./N
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 882d972ddd7..7d307c92aac 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -219,8 +219,6 @@
"\blue [M] gives [src] a [pick("hug","warm embrace")].", \
"\blue You hug [src].", \
)
- if(prob(10))
- src.emote("fart")
/mob/living/carbon/proc/eyecheck()
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index f18ab76d718..55e894b90bf 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -5,13 +5,13 @@
canmove = 0
icon = null
invisibility = 101
+ if(!(species.flags & IS_SYNTHETIC))
+ animation = new(loc)
+ animation.icon_state = "blank"
+ animation.icon = 'icons/mob/mob.dmi'
+ animation.master = src
- animation = new(loc)
- animation.icon_state = "blank"
- animation.icon = 'icons/mob/mob.dmi'
- animation.master = src
-
- playsound(src.loc, 'sound/effects/gib.ogg', 100, 1, 10)
+ playsound(src.loc, 'sound/effects/gib.ogg', 100, 1, 10)
for(var/datum/organ/external/E in src.organs)
if(istype(E, /datum/organ/external/chest))
@@ -20,9 +20,15 @@
if(prob(100 - E.get_damage()))
// Override the current limb status and don't cause an explosion
E.droplimb(1,1)
-
- flick("gibbed-h", animation)
- hgibs(loc, viruses, dna)
+
+ if(!(species.flags & IS_SYNTHETIC))
+ flick("gibbed-h", animation)
+ hgibs(loc, viruses, dna)
+ else
+ new /obj/effect/decal/cleanable/robot_debris(src.loc)
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(3, 1, src)
+ s.start()
spawn(15)
if(animation) del(animation)
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index a59a0c8d636..28afe49ab45 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -635,8 +635,11 @@
// Needed for M_TOXIC_FART
if("fart")
if(world.time-lastFart >= 600)
- playsound(src.loc, 'sound/effects/fart.ogg', 50, 1, -3) //Admins voted no to fun
- message = "[src] [pick("passes wind","farts")]."
+// playsound(src.loc, 'sound/effects/fart.ogg', 50, 1, -3) //Admins still vote no to fun
+ if(M_TOXIC_FARTS in mutations)
+ message = "[src] unleashes a [pick("horrible","terrible","foul","disgusting","awful")] fart."
+ else
+ message = "[src] [pick("passes wind","farts")]."
m_type = 2
var/turf/location = get_turf(src)
@@ -644,38 +647,31 @@
if(M_SUPER_FART in mutations)
aoe_range+=3 //Was 5
- // If we're wearing a suit, don't blast or gas those around us.
+ /* // If we're wearing a suit, don't blast or gas those around us.
var/wearing_suit=0
var/wearing_mask=0
if(wear_suit && wear_suit.body_parts_covered & LOWER_TORSO)
wearing_suit=1
if (internal != null && wear_mask && (wear_mask.flags & MASKINTERNALS))
- wearing_mask=1
+ wearing_mask=1 */
// Process toxic farts first.
if(M_TOXIC_FARTS in mutations)
- if(wearing_suit)
- if(!wearing_mask)
- src << "\red You gas yourself!"
- reagents.add_reagent("space_drugs", rand(10,20))
- else
- // Was /turf/, now /mob/
-
- for(var/mob/M in range(location,aoe_range))
- if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS))
- continue
- if(!airborne_can_reach(location,M,aoe_range))
- continue
- // Now, we don't have this:
- //new /obj/effects/fart_cloud(T,L)
- // But:
- // <[REDACTED]> so, what it does is...imagine a 3x3 grid with the person in the center. When someone uses the emote *fart (it's not a spell style ability and has no cooldown), then anyone in the 8 tiles AROUND the person who uses it
- // <[REDACTED]> gets between 1 and 10 units of jenkem added to them...we obviously don't have Jenkem, but Space Drugs do literally the same exact thing as Jenkem
- // <[REDACTED]> the user, of course, isn't impacted because it's not an actual smoke cloud
- // So, let's give 'em space drugs.
- if (M == src)
- continue
- M.reagents.add_reagent("space_drugs",rand(1,10))
+ for(var/mob/M in range(location,aoe_range))
+ if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS))
+ continue
+ if(!airborne_can_reach(location,M,aoe_range))
+ continue
+ // Now, we don't have this:
+ //new /obj/effects/fart_cloud(T,L)
+ // But:
+ // <[REDACTED]> so, what it does is...imagine a 3x3 grid with the person in the center. When someone uses the emote *fart (it's not a spell style ability and has no cooldown), then anyone in the 8 tiles AROUND the person who uses it
+ // <[REDACTED]> gets between 1 and 10 units of jenkem added to them...we obviously don't have Jenkem, but Space Drugs do literally the same exact thing as Jenkem
+ // <[REDACTED]> the user, of course, isn't impacted because it's not an actual smoke cloud
+ // So, let's give 'em space drugs.
+ if (M == src)
+ continue
+ M.reagents.add_reagent("space_drugs",rand(1,10))
/*
var/datum/effect/effect/system/smoke_spread/chem/fart/S = new /datum/effect/effect/system/smoke_spread/chem/fart
S.attach(location)
@@ -686,23 +682,21 @@
S.start()
*/
if(M_SUPER_FART in mutations)
- playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
visible_message("\red [name] hunches down and grits their teeth!")
if(do_after(usr,30))
visible_message("\red [name] unleashes a [pick("tremendous","gigantic","colossal")] fart!","You hear a [pick("tremendous","gigantic","colossal")] fart.")
//playsound(L.loc, 'superfart.ogg', 50, 0)
- if(!wearing_suit)
- for(var/mob/living/V in range(location,aoe_range))
- shake_camera(V,10,5)
- if (V == src)
- continue
- if(!airborne_can_reach(get_turf(src), get_turf(V)))
- continue
- V << "\red You are sent flying!"
- V.Weaken(5) // why the hell was this set to 12 christ
- step_away(V,location,15)
- step_away(V,location,15)
- step_away(V,location,15)
+ for(var/mob/living/V in range(location,aoe_range))
+ shake_camera(V,10,5)
+ if (V == src)
+ continue
+ if(!airborne_can_reach(get_turf(src), get_turf(V)))
+ continue
+ V << "\red You are sent flying!"
+ V.Weaken(5) // why the hell was this set to 12 christ
+ step_away(V,location,15)
+ step_away(V,location,15)
+ step_away(V,location,15)
else
usr << "\red You were interrupted and couldn't fart! Rude!"
lastFart=world.time
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index d4bd758201d..3f8953c397a 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -474,30 +474,15 @@
return istype(H.glasses, /obj/item/clothing/glasses/hud/health) || istype(H.glasses, /obj/item/clothing/glasses/hud/health_advanced)
else
return 0
- else if(istype(M, /mob/living/silicon/robot))
- var/mob/living/silicon/robot/R = M
+ else if(istype(M, /mob/living/silicon))
+ var/mob/living/silicon/R = M
switch(hudtype)
if("security")
- for(var/obj/I in R.contents)
- if(istype(I, /obj/item/borg/sight/hud/sec))
- return 1
+ if(R.sensor_mode == 1)
+ return 1
if("medical")
- for(var/obj/I in R.contents)
- if(istype(I, /obj/item/borg/sight/hud/med))
- return 1
- else
- return 0
- else if(istype(M, /mob/living/silicon/ai))
- var/mob/living/silicon/ai/A = M
- switch(hudtype)
- if("security")
- for(var/obj/I in A.contents)
- if(istype(I, /obj/item/borg/sight/hud/sec))
- return 1
- if("medical")
- for(var/obj/I in A.contents)
- if(istype(I, /obj/item/borg/sight/hud/med))
- return 1
+ if(R.sensor_mode == 2)
+ return 1
else
return 0
else
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 250e17f4101..904cc91cdc9 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1555,7 +1555,7 @@
//Check for ID
var/obj/item/weapon/card/id/idcard = get_idcard()
- if(judgebot.idcheck && !idcard && name=="Unknown")
+ if(judgebot.idcheck && !idcard)
threatcount += 4
//Check for weapons
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 1f2b53fe5f4..046fad8d152 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1672,6 +1672,9 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
proc/handle_decay()
var/decaytime = world.time - timeofdeath
+
+ if(species.flags & IS_SYNTHETIC)
+ return
if(decaytime <= 6000) //10 minutes for decaylevel1 -- stinky
return
diff --git a/code/modules/mob/living/carbon/metroid/hud.dm b/code/modules/mob/living/carbon/metroid/hud.dm
index cfaa7f4f169..c5282b9a839 100644
--- a/code/modules/mob/living/carbon/metroid/hud.dm
+++ b/code/modules/mob/living/carbon/metroid/hud.dm
@@ -1,2 +1,2 @@
-/mob/living/carbon/slime/proc/regular_hud_updates()
+/mob/living/carbon/slime/regular_hud_updates()
return
\ No newline at end of file
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 113f00e1fb9..73c5f3b1857 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -64,12 +64,13 @@
src <<"\red You have been hit by [P]!"
del P
return
-*/
+
if(istype(P, /obj/item/projectile/energy/electrode) || istype(P, /obj/item/projectile/bullet/stunshot))
stun_effect_act(0, P.agony, def_zone, P)
src <<"\red You have been hit by [P]!"
del P
return
+*/
//Armor
var/absorb = run_armor_check(def_zone, P.flag)
@@ -81,7 +82,7 @@
if(!P.nodamage)
apply_damage(P.damage, P.damage_type, def_zone, absorb, 0, P, sharp=proj_sharp, edge=proj_edge)
-
+
P.on_hit(src, absorb, def_zone)
if(istype(P, /obj/item/projectile/beam/lightning))
if(P.damage >= 200)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index ecdfd40b84c..64f5c33dbc6 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -10,11 +10,11 @@ var/list/department_radio_keys = list(
":s" = "Security", "#s" = "Security", ".s" = "Security",
":w" = "whisper", "#w" = "whisper", ".w" = "whisper",
":b" = "binary", "#b" = "binary", ".b" = "binary",
- ":d" = "drone", "#d" = "drone", ".d" = "drone",
+ ":d" = "drone", "#d" = "drone", ".d" = "drone",
":a" = "alientalk", "#a" = "alientalk", ".a" = "alientalk",
":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate",
":u" = "Supply", "#u" = "Supply", ".u" = "Supply",
- ":z" = "Service", "#z" = "Service", ".z" = "Service",
+ ":z" = "Service", "#z" = "Service", ".z" = "Service",
":g" = "changeling", "#g" = "changeling", ".g" = "changeling",
@@ -28,14 +28,14 @@ var/list/department_radio_keys = list(
":E" = "Engineering", "#E" = "Engineering", ".E" = "Engineering",
":S" = "Security", "#S" = "Security", ".S" = "Security",
":W" = "whisper", "#W" = "whisper", ".W" = "whisper",
- ":D" = "drone", "#D" = "drone", ".D" = "drone",
+ ":D" = "drone", "#D" = "drone", ".D" = "drone",
":B" = "binary", "#B" = "binary", ".B" = "binary",
":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk",
":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate",
":U" = "Supply", "#U" = "Supply", ".U" = "Supply",
":Z" = "Service", "#Z" = "Service", ".Z" = "Service",
":G" = "changeling", "#G" = "changeling", ".G" = "changeling"
-
+
/* //kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
":ê" = "right hand", "#ê" = "right hand", ".ê" = "right hand",
@@ -185,8 +185,8 @@ var/list/department_radio_keys = list(
if (!(istype(src,/mob/living/carbon/human) && !isAI(src) && !isrobot(src) || istype(src,/mob/living/carbon/monkey) || istype(src, /mob/living/simple_animal/parrot) || isrobot(src) && (message_mode=="department") || isAI(src) && (message_mode=="department") || (message_mode in radiochannels)))
message_mode = null //only humans can use headsets
- if(src.stunned > 2 || (traumatic_shock > 61 && prob(50)))
- message_mode = null //Stunned people shouldn't be able to physically turn on their radio/hold down the button to speak into it
+ if(traumatic_shock > 61 && prob(50))
+ message_mode = null //people in shock will have a high chance of not being able to speak on radio; needed since people don't instantly pass out at 100 damage.
message = capitalize(message)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 08cca9e9c04..47c5f3c496c 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -830,23 +830,10 @@ var/list/ai_list = list()
lightNearbyCamera()
/mob/living/silicon/ai/proc/control_hud()
- set name = "Toggle Sensors"
- set desc = "Toggles your sensors to display security records, medical records or nothing."
+ set name = "Set Sensor Augmentation"
+ set desc = "Augment visual feed with internal sensor overlays."
set category = "AI Commands"
-
- if(stat != 0)
- return
-
- var/hud = input("Please select a sensor module!", "Toggle Sensors", "None", null) in list("None","Security","Medical")
- for(var/obj/item/borg/sight/hud/H in contents)
- del(H)
- switch(hud)
- if("Security")
- sechud = new/obj/item/borg/sight/hud/sec(src)
- if("Medical")
- healthhud = new/obj/item/borg/sight/hud/med(src)
- else
- return
+ toggle_sensor_mode()
// Handled camera lighting, when toggled.
// It will get the nearest camera from the eyeobj, lighting it.
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index bd54abad2c4..a4a0d5bdc28 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -1,7 +1,4 @@
/mob/living/silicon/ai/Life()
- if(client)
- handle_regular_hud_updates()
-
if (src.stat == 2)
return
else //I'm not removing that shitton of tabs, unneeded as they are. -- Urist
@@ -176,6 +173,13 @@
sleep(50)
theAPC = null
+ regular_hud_updates()
+ switch(src.sensor_mode)
+ if (SEC_HUD)
+ process_sec_hud(src,1,src.eyeobj)
+ if (MED_HUD)
+ process_med_hud(src,1,src.eyeobj)
+
/mob/living/silicon/ai/updatehealth()
if(status_flags & GODMODE)
health = 100
@@ -184,12 +188,4 @@
if(fire_res_on_core)
health = 100 - getOxyLoss() - getToxLoss() - getBruteLoss()
else
- health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
-
-/mob/living/silicon/ai/proc/handle_regular_hud_updates()
- for(var/image/hud in client.images) //COPIED FROM the human handle_regular_hud_updates() proc
- if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe
- client.images.Remove(hud)
-
- var/obj/item/borg/sight/hud/hud = (locate(/obj/item/borg/sight/hud) in src)
- if(hud && hud.hud) hud.hud.process_hud(src)
\ No newline at end of file
+ health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm
deleted file mode 100644
index 8aecc924366..00000000000
--- a/code/modules/mob/living/silicon/pai/hud.dm
+++ /dev/null
@@ -1,110 +0,0 @@
-/mob/living/silicon/pai/proc/regular_hud_updates()
- if(client)
- for(var/image/hud in client.images)
- if(copytext(hud.icon_state,1,4) == "hud")
- client.images -= hud
-
-/mob/living/silicon/pai/proc/securityHUD()
- if(client)
- var/image/holder
- var/turf/T = get_turf_or_move(src.loc)
- for(var/mob/living/carbon/human/perp in view(T))
- if(src.see_invisible < perp.invisibility)
- continue
- var/perpname = "wot"
- holder = perp.hud_list[ID_HUD]
- if(perp.wear_id)
- var/obj/item/weapon/card/id/I = perp.wear_id.GetID()
- if(I)
- perpname = I.registered_name
- holder.icon_state = "hud[ckey(perp:wear_id:GetJobName())]"
- client.images += holder
- else
- perpname = perp.name
- holder.icon_state = "hudunknown"
- client.images += holder
- else
- holder.icon_state = "hudunknown"
- client.images += holder
-
- for(var/datum/data/record/E in data_core.general)
- if(E.fields["name"] == perpname)
- holder = perp.hud_list[WANTED_HUD]
- for(var/datum/data/record/R in data_core.security)
- if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
- holder.icon_state = "hudwanted"
- client.images += holder
- break
- else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
- holder.icon_state = "hudprisoner"
- client.images += holder
- break
- else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Parolled"))
- holder.icon_state = "hudparolled"
- client.images += holder
- break
- else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Released"))
- holder.icon_state = "hudreleased"
- client.images += holder
- break
-
-/mob/living/silicon/pai/proc/medicalHUD()
- if(client)
- var/image/holder
- var/turf/T = get_turf_or_move(src.loc)
- for(var/mob/living/carbon/human/patient in view(T))
- if(src.see_invisible < patient.invisibility)
- continue
- var/foundVirus = 0
-
- for (var/ID in patient.virus2)
- if (ID in virusDB)
- foundVirus = 1
- break
-
- holder = patient.hud_list[HEALTH_HUD]
- if(patient.stat == 2)
- holder.icon_state = "hudhealth-100"
- client.images += holder
- else
- holder.icon_state = "hud[RoundHealth(patient.health)]"
- client.images += holder
-
- holder = patient.hud_list[STATUS_HUD]
- if(patient.stat == 2)
- holder.icon_state = "huddead"
- else if(patient.status_flags & XENO_HOST)
- holder.icon_state = "hudxeno"
- else if(foundVirus)
- holder.icon_state = "hudill"
- else if(patient.has_brain_worms())
- var/mob/living/simple_animal/borer/B = patient.has_brain_worms()
- if(B.controlling)
- holder.icon_state = "hudbrainworm"
- else
- holder.icon_state = "hudhealthy"
- else
- holder.icon_state = "hudhealthy"
- client.images += holder
-
-/mob/living/silicon/pai/proc/RoundHealth(health)
- switch(health)
- if(100 to INFINITY)
- return "health100"
- if(70 to 100)
- return "health80"
- if(50 to 70)
- return "health60"
- if(30 to 50)
- return "health40"
- if(20 to 30)
- return "health25"
- if(5 to 15)
- return "health10"
- if(1 to 5)
- return "health1"
- if(-99 to 0)
- return "health0"
- else
- return "health-100"
- return "0"
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm
index 0054b32f57f..5ddbc0efe38 100644
--- a/code/modules/mob/living/silicon/pai/life.dm
+++ b/code/modules/mob/living/silicon/pai/life.dm
@@ -10,9 +10,9 @@
regular_hud_updates()
if(src.secHUD == 1)
- src.securityHUD()
+ process_sec_hud(src, 1)
if(src.medHUD == 1)
- src.medicalHUD()
+ process_med_hud(src, 1)
if(silence_time)
if(world.timeofday >= silence_time)
silence_time = null
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 7a30a91b8f4..e60aa9d2c90 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -177,12 +177,17 @@
src.see_in_dark = 8
src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
- for(var/image/hud in client.images) //COPIED FROM the human handle_regular_hud_updates() proc
- if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe
- client.images.Remove(hud)
+ regular_hud_updates()
var/obj/item/borg/sight/hud/hud = (locate(/obj/item/borg/sight/hud) in src)
- if(hud && hud.hud) hud.hud.process_hud(src)
+ if(hud && hud.hud)
+ hud.hud.process_hud(src)
+ else
+ switch(src.sensor_mode)
+ if (SEC_HUD)
+ process_sec_hud(src,1)
+ if (MED_HUD)
+ process_med_hud(src,1)
if (src.healths)
if (src.stat != 2)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 29c1d27e26e..7329eb5b677 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -460,23 +460,10 @@
src << "\red You enable [C.name]."
/mob/living/silicon/robot/verb/control_hud()
- set name = "Toggle Sensors"
- set desc = "Toggles your sensors to display security records, medical records or nothing."
+ set name = "Set Sensor Augmentation"
+ set desc = "Augment visual feed with internal sensor overlays."
set category = "Robot Commands"
-
- if(stat != 0)
- return
-
- var/hud = input("Please select a sensor module!", "Toggle Sensors", "None", null) in list("None","Security","Medical")
- for(var/obj/item/borg/sight/hud/H in contents)
- del(H)
- switch(hud)
- if("Security")
- sechud = new/obj/item/borg/sight/hud/sec(src)
- if("Medical")
- healthhud = new/obj/item/borg/sight/hud/med(src)
- else
- return
+ toggle_sensor_mode()
/mob/living/silicon/robot/blob_act()
if (stat != 2)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 38fd15f0cd3..7f97febc907 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -24,7 +24,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.emag = new /obj/item/toy/sword(src)
src.emag.name = "Placeholder Emag Item"
// src.jetpack = new /obj/item/toy/sword(src)
@@ -62,7 +62,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/weapon/melee/baton/loaded(src)
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/wrench(src)
@@ -80,7 +80,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.modules += new /obj/item/weapon/reagent_containers/borghypo/surgeon(src)
src.modules += new /obj/item/weapon/scalpel(src)
@@ -119,7 +119,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.modules += new /obj/item/device/reagent_scanner/adv(src)
src.modules += new /obj/item/roller_holder(src)
@@ -164,7 +164,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/rcd/borg(src)
@@ -187,7 +187,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/extinguisher(src)
src.modules += new /obj/item/weapon/weldingtool/largetank(src)
@@ -228,7 +228,7 @@
New()
src.modules += new /obj/item/device/flashlight/seclite(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
src.modules += new /obj/item/weapon/melee/baton/robot(src)
src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src)
@@ -244,7 +244,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/weapon/soap/nanotrasen(src)
src.modules += new /obj/item/weapon/storage/bag/trash(src)
src.modules += new /obj/item/weapon/mop(src)
@@ -264,7 +264,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
src.modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src)
@@ -291,7 +291,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/weapon/pen/robopen(src)
src.modules += new /obj/item/weapon/form_printer(src)
src.modules += new /obj/item/device/taperecorder(src)
@@ -312,7 +312,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/weapon/screwdriver(src)
@@ -326,7 +326,7 @@
name = "NT advanced combat module"
/obj/item/weapon/robot_module/deathsquad/New()
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/device/flashlight(src)
src.modules += new /obj/item/borg/sight/thermal(src)
src.modules += new /obj/item/weapon/melee/energy/sword/cyborg(src)
@@ -340,7 +340,7 @@
name = "syndicate robot module"
/obj/item/weapon/robot_module/syndicate/New()
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/device/flashlight(src)
src.modules += new /obj/item/weapon/melee/energy/sword/cyborg(src)
src.modules += new /obj/item/weapon/gun/energy/crossbow/cyborg(src)
@@ -356,7 +356,7 @@
New()
src.modules += new /obj/item/device/flashlight(src)
- src.modules += new /obj/item/device/flash(src)
+ src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/borg/sight/thermal(src)
src.modules += new /obj/item/weapon/gun/energy/laser/cyborg(src)
src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src)
@@ -371,7 +371,7 @@
New()
src.modules += new /obj/item/weapon/melee/energy/alien/claws(src)
- src.modules += new /obj/item/device/flash/alien(src)
+ src.modules += new /obj/item/device/flash/cyborg/alien(src)
src.modules += new /obj/item/borg/sight/thermal/alien(src)
var/obj/item/weapon/reagent_containers/spray/alien/stun/S = new /obj/item/weapon/reagent_containers/spray/alien/stun(src)
S.reagents.add_reagent("stoxin",250) //nerfed to sleeptoxin to make it less instant drop.
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index bf980fe365e..6f88c99c71e 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -17,6 +17,9 @@
var/speak_exclamation = "declares"
var/speak_query = "queries"
var/pose //Yes, now AIs can pose too.
+ var/sensor_mode = 0 //Determines the current HUD.
+ #define SEC_HUD 1 //Security HUD mode
+ #define MED_HUD 2 //Medical HUD mode
/mob/living/silicon/proc/cancelAlarm()
return
@@ -254,3 +257,16 @@
set category = "IC"
flavor_text = copytext(sanitize(input(usr, "Please enter your new flavour text.", "Flavour text", null) as text), 1)
+
+/mob/living/silicon/proc/toggle_sensor_mode()
+ var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security", "Medical","Disable")
+ switch(sensor_type)
+ if ("Security")
+ sensor_mode = SEC_HUD
+ src << "Security records overlay enabled."
+ if ("Medical")
+ sensor_mode = MED_HUD
+ src << "Life signs monitor overlay enabled."
+ if ("Disable")
+ sensor_mode = 0
+ src << "Sensor augmentations disabled."
diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm
index 6c4230439ea..a32e373fccd 100644
--- a/code/modules/mob/new_player/login.dm
+++ b/code/modules/mob/new_player/login.dm
@@ -33,3 +33,4 @@
spawn(40)
if(client)
handle_privacy_poll()
+ client.playtitlemusic()
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index c688127ad2b..1223913f0ce 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -633,6 +633,12 @@ obj/structure/cable/proc/cableColor(var/colorC)
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
H.updatehealth()
+ if(istype(M,/mob/living/carbon/human/machine) && M.stat == 0) // If an IPC is brought back to life by welding it, which is possible, update the mob list
+ if(M in dead_mob_list)
+ dead_mob_list -= M
+ respawnable_list -= M
+ living_mob_list += M
+ mob_list += M
return
else
user << "Nothing to fix!"
diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm
index a7f59cbecdf..e11a604b45e 100644
--- a/code/modules/projectiles/guns/energy/pulse.dm
+++ b/code/modules/projectiles/guns/energy/pulse.dm
@@ -19,7 +19,7 @@
charge_cost = 100
fire_sound = 'sound/weapons/Taser.ogg'
user << "\red [src.name] is now set to stun."
- projectile_type = "/obj/item/projectile/energy/electrode/revolver"
+ projectile_type = "/obj/item/projectile/energy/electrode"
if(0)
mode = 1
charge_cost = 100
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 06ae671bd87..6826924c6e5 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -232,3 +232,13 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
power_supply.give(5000)
playsound(src.loc, 'sound/weapons/shotgunpump.ogg', 60, 1)
return
+
+
+/obj/item/weapon/gun/energy/disabler
+ name = "disabler"
+ desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse."
+ icon_state = "disabler"
+ item_state = null
+ projectile_type = "/obj/item/projectile/energy/disabler"
+ cell_type = "/obj/item/weapon/cell"
+ charge_cost = 500
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 487ba361f9d..41e3764fdfe 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -6,7 +6,7 @@
item_state = null //so the human update icon uses the icon_state instead.
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
- cell_type = "/obj/item/weapon/cell"
+ cell_type = "/obj/item/weapon/cell/crap"
/obj/item/weapon/gun/energy/taser/cyborg
name = "taser gun"
@@ -29,7 +29,7 @@
/obj/item/weapon/gun/energy/taser/cyborg/process() //Every [recharge_time] ticks, recharge a shot for the cyborg
return 1
-
+
/obj/item/weapon/gun/energy/taser/cyborg/process_chambered()
if(in_chamber)
return 1
@@ -46,9 +46,9 @@
name = "stun revolver"
desc = "A high-tech revolver that fires stun cartridges. The stun cartridges can be recharged using a conventional energy weapon recharger."
icon_state = "stunrevolver"
- fire_sound = 'sound/weapons/Taser.ogg'
+ fire_sound = "sound/weapons/gunshot.ogg"
origin_tech = "combat=3;materials=3;powerstorage=2"
- projectile_type = "/obj/item/projectile/energy/electrode/revolver"
+ projectile_type = "/obj/item/projectile/energy/electrode"
cell_type = "/obj/item/weapon/cell"
@@ -77,10 +77,10 @@
/obj/item/weapon/gun/energy/crossbow/process()
charge_tick++
- if(charge_tick < 4)
+ if(charge_tick < 4)
return 0
charge_tick = 0
- if(!power_supply)
+ if(!power_supply)
return 0
power_supply.give(1000)
return 1
@@ -92,8 +92,8 @@
desc = "An energy-based crossbow that draws power from the cyborg's internal energy cell directly."
/obj/item/weapon/gun/energy/crossbow/cyborg/process()
- return 1
-
+ return 1
+
/obj/item/weapon/gun/energy/crossbow/cyborg/process_chambered()
if(in_chamber)
return 1
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index 15e8b3af1fa..c5be6dcd6fa 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -10,13 +10,9 @@
name = "electrode"
icon_state = "spark"
nodamage = 1
- /*
- stun = 10
- weaken = 10
- stutter = 10
- */
- agony = 40
- damage_type = HALLOSS
+ stun = 5
+ weaken = 5
+ stutter = 5
hitsound = 'sound/weapons/tase.ogg'
//Damage will be handled on the MOB side, to prevent window shattering.
@@ -74,3 +70,15 @@
damage = 20
damage_type = TOX
irradiate = 20
+
+/obj/item/projectile/energy/disabler
+ name = "disabler beam"
+ icon_state = "omnilaser"
+ damage = 34
+ damage_type = HALLOSS
+ var/range = 8
+
+/obj/item/projectile/energy/disabler/Range()
+ range--
+ if(range <= 0)
+ del(src)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index b97908a76ab..f4736a33fdd 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -251,6 +251,7 @@
icon_state = "virusfoodtank"
amount_per_transfer_from_this = 10
anchored = 1
+ density = 0
New()
..()
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 85ad55e083c..eea7cdb687f 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1579,6 +1579,16 @@ datum/design/adv_reagent_scanner
reliability_base = 74
build_path = "/obj/item/device/reagent_scanner/adv"
+datum/design/cyborg_analyzer
+ name = "Cyborg Analyzer"
+ desc = "A hand-held scanner able to diagnose robotic injuries."
+ id = "cyborg_analyzer"
+ req_tech = list("programming" = 2, "biotech" = 2, "magnets" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30, "$glass" = 20)
+ reliability_base = 74
+ build_path = "/obj/item/device/robotanalyzer"
+
datum/design/mmi
name = "Man-Machine Interface"
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity."
@@ -1602,7 +1612,7 @@ datum/design/mmi_radio
category = "Misc"
datum/design/synthetic_flash
- name = "Synthetic Flash"
+ name = "Flash"
desc = "When a problem arises, SCIENCE is the solution."
id = "sflash"
req_tech = list("magnets" = 3, "combat" = 2)
diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm
index 669ae3d17b0..1ba21f79667 100644
--- a/code/modules/research/xenoarchaeology/artifact/artifact.dm
+++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm
@@ -44,6 +44,25 @@
/obj/structure/boulder/New()
icon_state = "boulder[rand(1,4)]"
excavation_level = rand(5,50)
+
+/obj/structure/boulder/Bumped(AM)
+ . = ..()
+ if(istype(AM,/mob/living/carbon/human))
+ var/mob/living/carbon/human/H = AM
+ if((istype(H.l_hand,/obj/item/weapon/pickaxe)) && (!H.hand))
+ attackby(H.l_hand,H)
+ else if((istype(H.r_hand,/obj/item/weapon/pickaxe)) && H.hand)
+ attackby(H.r_hand,H)
+
+ else if(istype(AM,/mob/living/silicon/robot))
+ var/mob/living/silicon/robot/R = AM
+ if(istype(R.module_active,/obj/item/weapon/pickaxe))
+ attackby(R.module_active,R)
+
+ else if(istype(AM,/obj/mecha))
+ var/obj/mecha/M = AM
+ if(istype(M.selected,/obj/item/mecha_parts/mecha_equipment/tool/drill))
+ M.selected.action(src)
/obj/structure/boulder/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/device/core_sampler))
diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm
index daec3c36eca..13a90e1ab2d 100644
--- a/code/modules/surgery/face.dm
+++ b/code/modules/surgery/face.dm
@@ -128,6 +128,8 @@
if (target.op_stage.face == 3)
var/datum/organ/external/head/h = affected
h.disfigured = 0
+ h.update_icon()
+ target.regenerate_icons()
target.op_stage.face = 0
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm
index 43d5c3c44d2..3c49a9e8c0a 100644
--- a/code/modules/surgery/headreattach.dm
+++ b/code/modules/surgery/headreattach.dm
@@ -26,20 +26,28 @@
min_duration = 80
max_duration = 100
-
+
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
return ..() && !(affected.status & ORGAN_CUT_AWAY)
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("[user] starts peeling back tattered flesh where [target]'s head used to be with \the [tool].", \
- "You start peeling back tattered flesh where [target]'s head used to be with \the [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("[user] starts peeling back tattered flesh where [target]'s head used to be with \the [tool].", \
+ "You start peeling back tattered flesh where [target]'s head used to be with \the [tool].")
+ else
+ user.visible_message("[user] starts peeling back metal where [target]'s head used to be with \the [tool].", \
+ "You start peeling back metal where [target]'s head used to be with \the [tool].")
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("\blue [user] peels back tattered flesh where [target]'s head used to be with \the [tool].", \
- "\blue You peel back tattered flesh where [target]'s head used to be with \the [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("\blue [user] peels back tattered flesh where [target]'s head used to be with \the [tool].", \
+ "\blue You peel back tattered flesh where [target]'s head used to be with \the [tool].")
+ else
+ user.visible_message("\blue [user] peels back metal where [target]'s head used to be with \the [tool].", \
+ "\blue You peel back metal where [target]'s head used to be with \the [tool].")
affected.status |= ORGAN_CUT_AWAY
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -47,7 +55,7 @@
if (affected.parent)
affected = affected.parent
user.visible_message("\red [user]'s hand slips, ripping [target]'s [affected.display_name] open!", \
- "\red Your hand slips, ripping [target]'s [affected.display_name] open!")
+ "\red Your hand slips, ripping [target]'s [affected.display_name] open!")
affected.createwound(CUT, 10)
@@ -72,16 +80,25 @@
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
- user.visible_message("\blue [user] has finished repositioning flesh and tissue to something anatomically recognizable where [target]'s head used to be with \the [tool].", \
- "\blue You have finished repositioning flesh and tissue to something anatomically recognizable where [target]'s head used to be with \the [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("\blue [user] has finished repositioning flesh and tissue to something anatomically recognizable where [target]'s head used to be with \the [tool].", \
+ "\blue You have finished repositioning flesh and tissue to something anatomically recognizable where [target]'s head used to be with \the [tool].")
+ else
+ user.visible_message("\blue [user] has finished repositioning metal to something recognizable where [target]'s head used to be with \the [tool].", \
+ "\blue You have finished repositioning metal to something anatomically recognizable where [target]'s head used to be with \the [tool].")
+
target.op_stage.head_reattach = 1
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
if (affected.parent)
affected = affected.parent
+ if(!(target.species.flags & IS_SYNTHETIC))
user.visible_message("\red [user]'s hand slips, further rending flesh on [target]'s neck!", \
"\red Your hand slips, further rending flesh on [target]'s neck!")
+ else
+ user.visible_message("\red [user]'s hand slips, further rending metal on [target]'s neck!", \
+ "\red Your hand slips, further rending metal on [target]'s neck!")
target.apply_damage(10, BRUTE, affected)
/datum/surgery_step/head/suture
@@ -99,8 +116,12 @@
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
// var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("[user] is stapling and suturing flesh into place in [target]'s esophagal and vocal region with \the [tool].", \
- "You start to staple and suture flesh into place in [target]'s esophagal and vocal region with \the [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("[user] is stapling and suturing flesh into place in [target]'s esophagal and vocal region with \the [tool].", \
+ "You start to staple and suture flesh into place in [target]'s esophagal and vocal region with \the [tool].")
+ else
+ user.visible_message("[user] is stapling and suturing metal into place in [target]'s esophagal and vocal region with \the [tool].", \
+ "You start to staple and suture metal into place in [target]'s esophagal and vocal region with \the [tool].")
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -175,15 +196,19 @@
user.visible_message("\blue [user] has attached [target]'s head to the body.", \
"\blue You have attached [target]'s head to the body.")
affected.status = 0
+ if(istype(target,/mob/living/carbon/human/machine))
+ affected.status = 128
affected.amputated = 0
affected.destspawn = 0
var/obj/item/weapon/organ/head/B = tool
if (B.brainmob.mind)
B.brainmob.mind.transfer_to(target)
+ affected.setAmputatedTree()
+ target.handle_organs()
target.update_body()
- target.updatehealth()
target.UpdateDamageIcon()
-
+ target.regenerate_icons()
+ target.updatehealth()
del(B)
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm
index d79437ace40..94aac677711 100644
--- a/code/modules/surgery/robolimbs.dm
+++ b/code/modules/surgery/robolimbs.dm
@@ -37,14 +37,22 @@
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("[user] starts cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \
- "You start cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("[user] starts cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \
+ "You start cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].")
+ else
+ user.visible_message("[user] starts cutting away metal where [target]'s [affected.display_name] used to be with \the [tool].", \
+ "You start cutting away metal where [target]'s [affected.display_name] used to be with \the [tool].")
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("\blue [user] cuts away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \
- "\blue You cut away flesh where [target]'s [affected.display_name] used to be with \the [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("\blue [user] cuts away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \
+ "\blue You cut away flesh where [target]'s [affected.display_name] used to be with \the [tool].")
+ else
+ user.visible_message("\blue [user] cuts away metal where [target]'s [affected.display_name] used to be with \the [tool].", \
+ "\blue You cut away metal where [target]'s [affected.display_name] used to be with \the [tool].")
affected.status |= ORGAN_CUT_AWAY
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -52,7 +60,7 @@
if (affected.parent)
affected = affected.parent
user.visible_message("\red [user]'s hand slips, cutting [target]'s [affected.display_name] open!", \
- "\red Your hand slips, cutting [target]'s [affected.display_name] open!")
+ "\red Your hand slips, cutting [target]'s [affected.display_name] open!")
affected.createwound(CUT, 10)
@@ -71,22 +79,34 @@
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("[user] is beginning reposition flesh and nerve endings where where [target]'s [affected.display_name] used to be with [tool].", \
- "You start repositioning flesh and nerve endings where where [target]'s [affected.display_name] used to be with [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("[user] is beginning to reposition flesh and nerve endings where where [target]'s [affected.display_name] used to be with [tool].", \
+ "You start repositioning flesh and nerve endings where where [target]'s [affected.display_name] used to be with [tool].")
+ else
+ user.visible_message("[user] is beginning to reposition metal and wire endings where where [target]'s [affected.display_name] used to be with [tool].", \
+ "You start repositioning metal and wire endings where where [target]'s [affected.display_name] used to be with [tool].")
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
- user.visible_message("\blue [user] has finished repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].", \
- "\blue You have finished repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("\blue [user] has finished repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].", \
+ "\blue You have finished repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].")
+ else
+ user.visible_message("\blue [user] has finished repositioning metal and wire endings where [target]'s [affected.display_name] used to be with [tool].", \
+ "\blue You have finished repositioning metal and wire endings where [target]'s [affected.display_name] used to be with [tool].")
affected.open = 3
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
if (affected.parent)
affected = affected.parent
- user.visible_message("\red [user]'s hand slips, tearing flesh on [target]'s [affected.display_name]!", \
- "\red Your hand slips, tearing flesh on [target]'s [affected.display_name]!")
+ if(!(target.species.flags & IS_SYNTHETIC))
+ user.visible_message("\red [user]'s hand slips, tearing flesh on [target]'s [affected.display_name]!", \
+ "\red Your hand slips, tearing flesh on [target]'s [affected.display_name]!")
+ else
+ user.visible_message("\red [user]'s hand slips, tearing metal on [target]'s [affected.display_name]!", \
+ "\red Your hand slips, tearing metal on [target]'s [affected.display_name]!")
target.apply_damage(10, BRUTE, affected, sharp=1)
@@ -108,7 +128,7 @@
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts adjusting area around [target]'s [affected.display_name] with \the [tool].", \
- "You start adjusting area around [target]'s [affected.display_name] with \the [tool]..")
+ "You start adjusting area around [target]'s [affected.display_name] with \the [tool].")
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/setup.dm b/code/setup.dm
index 8073c8c7648..227480126f7 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -698,7 +698,7 @@ var/list/TAGGERLOCATIONS = list("Disposals",
#define SOUND_ADMINHELP 1
#define SOUND_MIDI 2
#define SOUND_AMBIENCE 4
-#define SOUND_LOBBY 8 //Removed, can be replaced with any other sound bitflag as needed.
+#define SOUND_LOBBY 8
#define SOUND_STREAMING 16
#define SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_STREAMING)
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index 758e6dc1877..f206f2c013c 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index d6e8c0595fd..9050acacb72 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -8398,7 +8398,7 @@
"dfz" = (/turf/simulated/shuttle/plating{name = "Vox plating"; nitrogen = 100; oxygen = 0},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/vox/station)
"dfA" = (/obj/structure/closet{name = "Loot Closet"},/turf/simulated/shuttle/plating{name = "Vox plating"; nitrogen = 100; oxygen = 0},/area/shuttle/vox/station)
"dfB" = (/turf/simulated/shuttle/plating{name = "Vox plating"; nitrogen = 100; oxygen = 0},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/vox/station)
-"dfC" = (/obj/effect/landmark/start,/obj/machinery/media/jukebox/lobby,/turf/unsimulated/floor,/area/start)
+"dfC" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start)
"dfD" = (/turf/unsimulated/wall/splashscreen,/area/start)
"dfE" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/flashbang/clusterbang,/turf/simulated/floor/engine,/area/shuttle/gamma/space)
"dfF" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/chem_grenade/incendiary{name = "Incendiary Grenade"},/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine,/area/shuttle/gamma/space)
diff --git a/baystation12.dme b/paradise.dme
similarity index 98%
rename from baystation12.dme
rename to paradise.dme
index a108d27664c..2689cc3ae6a 100644
--- a/baystation12.dme
+++ b/paradise.dme
@@ -1,1640 +1,1640 @@
-// 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 .
-#define FILE_DIR "code"
-#define FILE_DIR "code/TriDimension"
-#define FILE_DIR "code/unused"
-#define FILE_DIR "code/unused/goonheist"
-#define FILE_DIR "code/WorkInProgress"
-#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
-#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle"
-#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
-#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen"
-#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
-#define FILE_DIR "code/WorkInProgress/IndexLP"
-#define FILE_DIR "code/WorkInProgress/Susan"
-#define FILE_DIR "html"
-#define FILE_DIR "icons"
-#define FILE_DIR "icons/48x48"
-#define FILE_DIR "icons/ass"
-#define FILE_DIR "icons/effects"
-#define FILE_DIR "icons/mecha"
-#define FILE_DIR "icons/misc"
-#define FILE_DIR "icons/mob"
-#define FILE_DIR "icons/mob/human_races"
-#define FILE_DIR "icons/mob/in-hand"
-#define FILE_DIR "icons/mob/in-hand/left"
-#define FILE_DIR "icons/mob/in-hand/right"
-#define FILE_DIR "icons/mob/otherHuman"
-#define FILE_DIR "icons/mob/species"
-#define FILE_DIR "icons/mob/species/armalis"
-#define FILE_DIR "icons/mob/species/skrell"
-#define FILE_DIR "icons/mob/species/tajaran"
-#define FILE_DIR "icons/mob/species/unathi"
-#define FILE_DIR "icons/mob/species/vox"
-#define FILE_DIR "icons/mob/spirits"
-#define FILE_DIR "icons/NTOS"
-#define FILE_DIR "icons/NTOS/battery_icons"
-#define FILE_DIR "icons/obj"
-#define FILE_DIR "icons/obj/assemblies"
-#define FILE_DIR "icons/obj/atmospherics"
-#define FILE_DIR "icons/obj/clothing"
-#define FILE_DIR "icons/obj/clothing/species"
-#define FILE_DIR "icons/obj/clothing/species/skrell"
-#define FILE_DIR "icons/obj/clothing/species/tajaran"
-#define FILE_DIR "icons/obj/clothing/species/unathi"
-#define FILE_DIR "icons/obj/doors"
-#define FILE_DIR "icons/obj/flora"
-#define FILE_DIR "icons/obj/machines"
-#define FILE_DIR "icons/obj/pipes"
-#define FILE_DIR "icons/obj/power_cond"
-#define FILE_DIR "icons/pda_icons"
-#define FILE_DIR "icons/pods"
-#define FILE_DIR "icons/spideros_icons"
-#define FILE_DIR "icons/stamp_icons"
-#define FILE_DIR "icons/Testing"
-#define FILE_DIR "icons/turf"
-#define FILE_DIR "icons/vehicles"
-#define FILE_DIR "icons/vending_icons"
-#define FILE_DIR "maps"
-#define FILE_DIR "maps/overmap"
-#define FILE_DIR "maps/overmap/bearcat"
-#define FILE_DIR "nano"
-#define FILE_DIR "nano/images"
-#define FILE_DIR "sound"
-#define FILE_DIR "sound/AI"
-#define FILE_DIR "sound/ambience"
-#define FILE_DIR "sound/effects"
-#define FILE_DIR "sound/effects/turret"
-#define FILE_DIR "sound/effects/wind"
-#define FILE_DIR "sound/hallucinations"
-#define FILE_DIR "sound/items"
-#define FILE_DIR "sound/machines"
-#define FILE_DIR "sound/mecha"
-#define FILE_DIR "sound/misc"
-#define FILE_DIR "sound/music"
-#define FILE_DIR "sound/piano"
-#define FILE_DIR "sound/turntable"
-#define FILE_DIR "sound/violin"
-#define FILE_DIR "sound/voice"
-#define FILE_DIR "sound/voice/complionator"
-#define FILE_DIR "sound/voice/Serithi"
-#define FILE_DIR "sound/vox"
-#define FILE_DIR "sound/vox_fem"
-#define FILE_DIR "sound/weapons"
-// END_FILE_DIR
-// BEGIN_PREFERENCES
-#define DEBUG
-// END_PREFERENCES
-// BEGIN_INCLUDE
-#include "code\global.dm"
-#include "code\hub.dm"
-#include "code\names.dm"
-#include "code\setup.dm"
-#include "code\stylesheet.dm"
-#include "code\world.dm"
-#include "code\__HELPERS\experimental.dm"
-#include "code\__HELPERS\files.dm"
-#include "code\__HELPERS\game.dm"
-#include "code\__HELPERS\global_lists.dm"
-#include "code\__HELPERS\icons.dm"
-#include "code\__HELPERS\lists.dm"
-#include "code\__HELPERS\logging.dm"
-#include "code\__HELPERS\maths.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\text.dm"
-#include "code\__HELPERS\time.dm"
-#include "code\__HELPERS\timed_alerts.dm"
-#include "code\__HELPERS\type2type.dm"
-#include "code\__HELPERS\unsorted.dm"
-#include "code\_hooks\area.dm"
-#include "code\_hooks\hooks.dm"
-#include "code\_hooks\mob.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\overmind.dm"
-#include "code\_onclick\telekinesis.dm"
-#include "code\_onclick\hud\_defines.dm"
-#include "code\_onclick\hud\ai.dm"
-#include "code\_onclick\hud\alien.dm"
-#include "code\_onclick\hud\alien_larva.dm"
-#include "code\_onclick\hud\hud.dm"
-#include "code\_onclick\hud\human.dm"
-#include "code\_onclick\hud\monkey.dm"
-#include "code\_onclick\hud\other_mobs.dm"
-#include "code\_onclick\hud\robot.dm"
-#include "code\_onclick\hud\screen_objects.dm"
-#include "code\ATMOSPHERICS\atmospherics.dm"
-#include "code\ATMOSPHERICS\chiller.dm"
-#include "code\ATMOSPHERICS\datum_pipe_network.dm"
-#include "code\ATMOSPHERICS\datum_pipeline.dm"
-#include "code\ATMOSPHERICS\he_pipes.dm"
-#include "code\ATMOSPHERICS\pipes.dm"
-#include "code\ATMOSPHERICS\components\portables_connector.dm"
-#include "code\ATMOSPHERICS\components\tvalve.dm"
-#include "code\ATMOSPHERICS\components\valve.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\pump.dm"
-#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.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\generator_input.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\oxygen_generator.dm"
-#include "code\ATMOSPHERICS\components\unary\thermal_plate.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\controllers\_DynamicAreaLighting_TG.dm"
-#include "code\controllers\configuration.dm"
-#include "code\controllers\emergency_shuttle_controller.dm"
-#include "code\controllers\failsafe.dm"
-#include "code\controllers\garbage.dm"
-#include "code\controllers\hooks-defs.dm"
-#include "code\controllers\hooks.dm"
-#include "code\controllers\lighting_controller.dm"
-#include "code\controllers\master_controller.dm"
-#include "code\controllers\shuttle_controller.dm"
-#include "code\controllers\verbs.dm"
-#include "code\controllers\voting.dm"
-#include "code\datums\ai_laws.dm"
-#include "code\datums\browser.dm"
-#include "code\datums\computerfiles.dm"
-#include "code\datums\datacore.dm"
-#include "code\datums\datumvars.dm"
-#include "code\datums\mind.dm"
-#include "code\datums\mixed.dm"
-#include "code\datums\modules.dm"
-#include "code\datums\organs.dm"
-#include "code\datums\recipe.dm"
-#include "code\datums\spell.dm"
-#include "code\datums\sun.dm"
-#include "code\datums\supplypacks.dm"
-#include "code\datums\uplink_item.dm"
-#include "code\datums\crafting\crafting.dm"
-#include "code\datums\crafting\recipes.dm"
-#include "code\datums\helper_datums\construction_datum.dm"
-#include "code\datums\helper_datums\events.dm"
-#include "code\datums\helper_datums\global_iterator.dm"
-#include "code\datums\helper_datums\teleport.dm"
-#include "code\datums\helper_datums\topic_input.dm"
-#include "code\datums\spells\area_teleport.dm"
-#include "code\datums\spells\charge.dm"
-#include "code\datums\spells\conjure.dm"
-#include "code\datums\spells\construct_spells.dm"
-#include "code\datums\spells\dumbfire.dm"
-#include "code\datums\spells\emplosion.dm"
-#include "code\datums\spells\ethereal_jaunt.dm"
-#include "code\datums\spells\explosion.dm"
-#include "code\datums\spells\genetic.dm"
-#include "code\datums\spells\horsemask.dm"
-#include "code\datums\spells\inflict_handler.dm"
-#include "code\datums\spells\knock.dm"
-#include "code\datums\spells\mind_transfer.dm"
-#include "code\datums\spells\projectile.dm"
-#include "code\datums\spells\trigger.dm"
-#include "code\datums\spells\turf_teleport.dm"
-#include "code\datums\spells\wizard.dm"
-#include "code\datums\visibility_networks\chunk.dm"
-#include "code\datums\visibility_networks\dictionary.dm"
-#include "code\datums\visibility_networks\update_triggers.dm"
-#include "code\datums\visibility_networks\visibility_interface.dm"
-#include "code\datums\visibility_networks\visibility_network.dm"
-#include "code\datums\wires\airlock.dm"
-#include "code\datums\wires\alarm.dm"
-#include "code\datums\wires\apc.dm"
-#include "code\datums\wires\camera.dm"
-#include "code\datums\wires\explosive.dm"
-#include "code\datums\wires\mulebot.dm"
-#include "code\datums\wires\particle_accelerator.dm"
-#include "code\datums\wires\radio.dm"
-#include "code\datums\wires\robot.dm"
-#include "code\datums\wires\syndicatebomb.dm"
-#include "code\datums\wires\vending.dm"
-#include "code\datums\wires\wires.dm"
-#include "code\defines\obj.dm"
-#include "code\defines\vox_sounds.dm"
-#include "code\defines\obj\weapon.dm"
-#include "code\defines\procs\AStar.dm"
-#include "code\defines\procs\captain_announce.dm"
-#include "code\defines\procs\command_alert.dm"
-#include "code\defines\procs\dbcore.dm"
-#include "code\defines\procs\sd_Alert.dm"
-#include "code\defines\procs\statistics.dm"
-#include "code\game\asteroid.dm"
-#include "code\game\atoms.dm"
-#include "code\game\atoms_movable.dm"
-#include "code\game\communications.dm"
-#include "code\game\response_team.dm"
-#include "code\game\shuttle_engines.dm"
-#include "code\game\skincmd.dm"
-#include "code\game\smoothwall.dm"
-#include "code\game\sound.dm"
-#include "code\game\supplyshuttle.dm"
-#include "code\game\area\ai_monitored.dm"
-#include "code\game\area\areas.dm"
-#include "code\game\area\Dynamic areas.dm"
-#include "code\game\area\Space Station 13 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\goon_disabilities.dm"
-#include "code\game\dna\genes\goon_powers.dm"
-#include "code\game\dna\genes\monkey.dm"
-#include "code\game\dna\genes\powers.dm"
-#include "code\game\dna\genes\vg_disabilities.dm"
-#include "code\game\dna\genes\vg_powers.dm"
-#include "code\game\gamemodes\antag_spawner.dm"
-#include "code\game\gamemodes\events.dm"
-#include "code\game\gamemodes\factions.dm"
-#include "code\game\gamemodes\game_mode.dm"
-#include "code\game\gamemodes\gameticker.dm"
-#include "code\game\gamemodes\intercept_report.dm"
-#include "code\game\gamemodes\objective.dm"
-#include "code\game\gamemodes\scoreboard.dm"
-#include "code\game\gamemodes\setupgame.dm"
-#include "code\game\gamemodes\steal_items.dm"
-#include "code\game\gamemodes\autotraitor\autotraitor.dm"
-#include "code\game\gamemodes\blob\blob.dm"
-#include "code\game\gamemodes\blob\blob_finish.dm"
-#include "code\game\gamemodes\blob\blob_report.dm"
-#include "code\game\gamemodes\blob\overmind.dm"
-#include "code\game\gamemodes\blob\powers.dm"
-#include "code\game\gamemodes\blob\theblob.dm"
-#include "code\game\gamemodes\blob\blobs\core.dm"
-#include "code\game\gamemodes\blob\blobs\factory.dm"
-#include "code\game\gamemodes\blob\blobs\node.dm"
-#include "code\game\gamemodes\blob\blobs\resource.dm"
-#include "code\game\gamemodes\blob\blobs\shield.dm"
-#include "code\game\gamemodes\borer\borer.dm"
-#include "code\game\gamemodes\changeling\changeling.dm"
-#include "code\game\gamemodes\changeling\changeling_powers.dm"
-#include "code\game\gamemodes\changeling\modularchangling.dm"
-#include "code\game\gamemodes\changeling\traitor_chan.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\ritual.dm"
-#include "code\game\gamemodes\cult\runes.dm"
-#include "code\game\gamemodes\cult\talisman.dm"
-#include "code\game\gamemodes\events\biomass.dm"
-#include "code\game\gamemodes\events\black_hole.dm"
-#include "code\game\gamemodes\events\clang.dm"
-#include "code\game\gamemodes\events\ninja_abilities.dm"
-#include "code\game\gamemodes\events\ninja_equipment.dm"
-#include "code\game\gamemodes\events\power_failure.dm"
-#include "code\game\gamemodes\events\space_ninja.dm"
-#include "code\game\gamemodes\events\spacevines.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\malfunction\Malf_Modules.dm"
-#include "code\game\gamemodes\malfunction\malfunction.dm"
-#include "code\game\gamemodes\meteor\meteor.dm"
-#include "code\game\gamemodes\meteor\meteors.dm"
-#include "code\game\gamemodes\mutiny\auth_key.dm"
-#include "code\game\gamemodes\mutiny\directive.dm"
-#include "code\game\gamemodes\mutiny\emergency_authentication_device.dm"
-#include "code\game\gamemodes\mutiny\key_pinpointer.dm"
-#include "code\game\gamemodes\mutiny\mutiny.dm"
-#include "code\game\gamemodes\mutiny\mutiny_admin.dm"
-#include "code\game\gamemodes\mutiny\mutiny_fluff.dm"
-#include "code\game\gamemodes\mutiny\mutiny_hooks.dm"
-#include "code\game\gamemodes\mutiny\directives\alien_fraud_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\bluespace_contagion_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\financial_crisis_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\ipc_virus_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\research_to_ripleys_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\tau_ceti_needs_women_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\terminations_directive.dm"
-#include "code\game\gamemodes\mutiny\directives\vox_heist.dm"
-#include "code\game\gamemodes\nations\flag_pinpointer.dm"
-#include "code\game\gamemodes\nations\flagprocs.dm"
-#include "code\game\gamemodes\nations\nationdatums.dm"
-#include "code\game\gamemodes\nations\nations.dm"
-#include "code\game\gamemodes\ninja\ninja.dm"
-#include "code\game\gamemodes\nuclear\nuclear.dm"
-#include "code\game\gamemodes\nuclear\nuclearbomb.dm"
-#include "code\game\gamemodes\nuclear\pinpointer.dm"
-#include "code\game\gamemodes\revolution\revolution.dm"
-#include "code\game\gamemodes\revolution\rp_revolution.dm"
-#include "code\game\gamemodes\traitor\traitor.dm"
-#include "code\game\gamemodes\vampire\hud.dm"
-#include "code\game\gamemodes\vampire\vampire.dm"
-#include "code\game\gamemodes\vampire\vampire_powers.dm"
-#include "code\game\gamemodes\vox\vox.dm"
-#include "code\game\gamemodes\vox\heist\heist.dm"
-#include "code\game\gamemodes\vox\trade\trade.dm"
-#include "code\game\gamemodes\wizard\artefact.dm"
-#include "code\game\gamemodes\wizard\raginmages.dm"
-#include "code\game\gamemodes\wizard\rightandwrong.dm"
-#include "code\game\gamemodes\wizard\soulstone.dm"
-#include "code\game\gamemodes\wizard\spellbook.dm"
-#include "code\game\gamemodes\wizard\wizard.dm"
-#include "code\game\gamemodes\xenos\xenos.dm"
-#include "code\game\jobs\access.dm"
-#include "code\game\jobs\job_controller.dm"
-#include "code\game\jobs\job_objective.dm"
-#include "code\game\jobs\jobprocs.dm"
-#include "code\game\jobs\jobs.dm"
-#include "code\game\jobs\whitelist.dm"
-#include "code\game\jobs\job\civilian.dm"
-#include "code\game\jobs\job\engineering.dm"
-#include "code\game\jobs\job\job.dm"
-#include "code\game\jobs\job\medical.dm"
-#include "code\game\jobs\job\science.dm"
-#include "code\game\jobs\job\security.dm"
-#include "code\game\jobs\job\silicon.dm"
-#include "code\game\jobs\job\supervisor.dm"
-#include "code\game\jobs\job\support.dm"
-#include "code\game\jobs\job\support_chaplain.dm"
-#include "code\game\jobs\job_objectives\science.dm"
-#include "code\game\machinery\adv_med.dm"
-#include "code\game\machinery\ai_slipper.dm"
-#include "code\game\machinery\alarm.dm"
-#include "code\game\machinery\atmo_control.dm"
-#include "code\game\machinery\autolathe.dm"
-#include "code\game\machinery\Beacon.dm"
-#include "code\game\machinery\bees_apiary.dm"
-#include "code\game\machinery\bees_items.dm"
-#include "code\game\machinery\biogenerator.dm"
-#include "code\game\machinery\buttons.dm"
-#include "code\game\machinery\cell_charger.dm"
-#include "code\game\machinery\cloning.dm"
-#include "code\game\machinery\constructable_frame.dm"
-#include "code\game\machinery\cryo.dm"
-#include "code\game\machinery\cryopod.dm"
-#include "code\game\machinery\deployable.dm"
-#include "code\game\machinery\door_control.dm"
-#include "code\game\machinery\doppler_array.dm"
-#include "code\game\machinery\flasher.dm"
-#include "code\game\machinery\floodlight.dm"
-#include "code\game\machinery\Freezer.dm"
-#include "code\game\machinery\hologram.dm"
-#include "code\game\machinery\holosign.dm"
-#include "code\game\machinery\hydroponics.dm"
-#include "code\game\machinery\igniter.dm"
-#include "code\game\machinery\iv_drip.dm"
-#include "code\game\machinery\lightswitch.dm"
-#include "code\game\machinery\machinery.dm"
-#include "code\game\machinery\magnet.dm"
-#include "code\game\machinery\mass_driver.dm"
-#include "code\game\machinery\metaldetector.dm"
-#include "code\game\machinery\navbeacon.dm"
-#include "code\game\machinery\newscaster.dm"
-#include "code\game\machinery\OpTable.dm"
-#include "code\game\machinery\overview.dm"
-#include "code\game\machinery\PDApainter.dm"
-#include "code\game\machinery\portable_turret.dm"
-#include "code\game\machinery\recharger.dm"
-#include "code\game\machinery\rechargestation.dm"
-#include "code\game\machinery\recycler.dm"
-#include "code\game\machinery\requests_console.dm"
-#include "code\game\machinery\robot_fabricator.dm"
-#include "code\game\machinery\seed_extractor.dm"
-#include "code\game\machinery\shieldgen.dm"
-#include "code\game\machinery\Sleeper.dm"
-#include "code\game\machinery\slotmachine.dm"
-#include "code\game\machinery\spaceheater.dm"
-#include "code\game\machinery\status_display.dm"
-#include "code\game\machinery\suit_storage_unit.dm"
-#include "code\game\machinery\supply_display.dm"
-#include "code\game\machinery\syndicatebeacon.dm"
-#include "code\game\machinery\syndicatebomb.dm"
-#include "code\game\machinery\telepad.dm"
-#include "code\game\machinery\teleporter.dm"
-#include "code\game\machinery\transformer.dm"
-#include "code\game\machinery\turrets.dm"
-#include "code\game\machinery\vending.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\canister.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\scrubber.dm"
-#include "code\game\machinery\atmoalter\zvent.dm"
-#include "code\game\machinery\bots\bots.dm"
-#include "code\game\machinery\bots\cleanbot.dm"
-#include "code\game\machinery\bots\ed209bot.dm"
-#include "code\game\machinery\bots\floorbot.dm"
-#include "code\game\machinery\bots\medbot.dm"
-#include "code\game\machinery\bots\mulebot.dm"
-#include "code\game\machinery\bots\secbot.dm"
-#include "code\game\machinery\camera\camera.dm"
-#include "code\game\machinery\camera\camera_assembly.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\atmos_alert.dm"
-#include "code\game\machinery\computer\buildandrepair.dm"
-#include "code\game\machinery\computer\camera.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\HolodeckControl.dm"
-#include "code\game\machinery\computer\hologram.dm"
-#include "code\game\machinery\computer\honkputer.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\power.dm"
-#include "code\game\machinery\computer\prisoner.dm"
-#include "code\game\machinery\computer\prisonshuttle.dm"
-#include "code\game\machinery\computer\robot.dm"
-#include "code\game\machinery\computer\salvage_ship.dm"
-#include "code\game\machinery\computer\security.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\store.dm"
-#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
-#include "code\game\machinery\computer\telecrystalconsoles.dm"
-#include "code\game\machinery\computer\telescience.dm"
-#include "code\game\machinery\computer\xenos_shuttle.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\alarmlock.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\firedoor.dm"
-#include "code\game\machinery\doors\multi_tile.dm"
-#include "code\game\machinery\doors\poddoor.dm"
-#include "code\game\machinery\doors\shutters.dm"
-#include "code\game\machinery\doors\spacepod.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\simple_docking_controller.dm"
-#include "code\game\machinery\kitchen\gibber.dm"
-#include "code\game\machinery\kitchen\icecream_vat.dm"
-#include "code\game\machinery\kitchen\juicer.dm"
-#include "code\game\machinery\kitchen\microwave.dm"
-#include "code\game\machinery\kitchen\monkeyrecycler.dm"
-#include "code\game\machinery\kitchen\processor.dm"
-#include "code\game\machinery\kitchen\smartfridge.dm"
-#include "code\game\machinery\pipe\construction.dm"
-#include "code\game\machinery\pipe\pipe_dispenser.dm"
-#include "code\game\machinery\telecomms\broadcaster.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\telecomunications.dm"
-#include "code\game\machinery\telecomms\telemonitor.dm"
-#include "code\game\machinery\telecomms\traffic_control.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\mecha.dm"
-#include "code\game\mecha\mecha_construction_paths.dm"
-#include "code\game\mecha\mecha_control_console.dm"
-#include "code\game\mecha\mecha_parts.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\gygax.dm"
-#include "code\game\mecha\combat\honker.dm"
-#include "code\game\mecha\combat\marauder.dm"
-#include "code\game\mecha\combat\phazon.dm"
-#include "code\game\mecha\combat\recitence.dm"
-#include "code\game\mecha\equipment\mecha_equipment.dm"
-#include "code\game\mecha\equipment\tools\medical_tools.dm"
-#include "code\game\mecha\equipment\tools\tools.dm"
-#include "code\game\mecha\equipment\weapons\weapons.dm"
-#include "code\game\mecha\medical\medical.dm"
-#include "code\game\mecha\medical\odysseus.dm"
-#include "code\game\mecha\working\ripley.dm"
-#include "code\game\mecha\working\working.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\objs.dm"
-#include "code\game\objects\structures.dm"
-#include "code\game\objects\weapons.dm"
-#include "code\game\objects\closets\walllocker.dm"
-#include "code\game\objects\effects\aliens.dm"
-#include "code\game\objects\effects\anomalies.dm"
-#include "code\game\objects\effects\bump_teleporter.dm"
-#include "code\game\objects\effects\effect_system.dm"
-#include "code\game\objects\effects\gibs.dm"
-#include "code\game\objects\effects\glowshroom.dm"
-#include "code\game\objects\effects\landmarks.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\spiders.dm"
-#include "code\game\objects\effects\step_triggers.dm"
-#include "code\game\objects\effects\decals\cleanable.dm"
-#include "code\game\objects\effects\decals\contraband.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\posters\bs12.dm"
-#include "code\game\objects\effects\decals\posters\tgposters.dm"
-#include "code\game\objects\effects\spawners\bombspawner.dm"
-#include "code\game\objects\effects\spawners\gibspawner.dm"
-#include "code\game\objects\effects\spawners\vaultspawner.dm"
-#include "code\game\objects\items\apc_frame.dm"
-#include "code\game\objects\items\blueprints.dm"
-#include "code\game\objects\items\bluespace_crystal.dm"
-#include "code\game\objects\items\bodybag.dm"
-#include "code\game\objects\items\candle.dm"
-#include "code\game\objects\items\contraband.dm"
-#include "code\game\objects\items\crayons.dm"
-#include "code\game\objects\items\flag.dm"
-#include "code\game\objects\items\latexballoon.dm"
-#include "code\game\objects\items\shooting_range.dm"
-#include "code\game\objects\items\toys.dm"
-#include "code\game\objects\items\trash.dm"
-#include "code\game\objects\items\devices\aicard.dm"
-#include "code\game\objects\items\devices\chameleonproj.dm"
-#include "code\game\objects\items\devices\debugger.dm"
-#include "code\game\objects\items\devices\flash.dm"
-#include "code\game\objects\items\devices\flashlight.dm"
-#include "code\game\objects\items\devices\gps.dm"
-#include "code\game\objects\items\devices\handtv.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_freezer.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\suit_cooling.dm"
-#include "code\game\objects\items\devices\taperecorder.dm"
-#include "code\game\objects\items\devices\traitordevices.dm"
-#include "code\game\objects\items\devices\transfer_valve.dm"
-#include "code\game\objects\items\devices\uplinks.dm"
-#include "code\game\objects\items\devices\violin.dm"
-#include "code\game\objects\items\devices\whistle.dm"
-#include "code\game\objects\items\devices\PDA\cart.dm"
-#include "code\game\objects\items\devices\PDA\chatroom.dm"
-#include "code\game\objects\items\devices\PDA\PDA.dm"
-#include "code\game\objects\items\devices\PDA\radio.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\headset.dm"
-#include "code\game\objects\items\devices\radio\intercom.dm"
-#include "code\game\objects\items\devices\radio\radio.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\stacks\medical.dm"
-#include "code\game\objects\items\stacks\nanopaste.dm"
-#include "code\game\objects\items\stacks\rods.dm"
-#include "code\game\objects\items\stacks\stack.dm"
-#include "code\game\objects\items\stacks\sheets\glass.dm"
-#include "code\game\objects\items\stacks\sheets\leather.dm"
-#include "code\game\objects\items\stacks\sheets\light.dm"
-#include "code\game\objects\items\stacks\sheets\mineral.dm"
-#include "code\game\objects\items\stacks\sheets\sheet_types.dm"
-#include "code\game\objects\items\stacks\sheets\sheets.dm"
-#include "code\game\objects\items\stacks\tiles\light.dm"
-#include "code\game\objects\items\stacks\tiles\plasteel.dm"
-#include "code\game\objects\items\stacks\tiles\tile_types.dm"
-#include "code\game\objects\items\weapons\AI_modules.dm"
-#include "code\game\objects\items\weapons\alien_specific.dm"
-#include "code\game\objects\items\weapons\cards_ids.dm"
-#include "code\game\objects\items\weapons\cash.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\dice.dm"
-#include "code\game\objects\items\weapons\dna_injector.dm"
-#include "code\game\objects\items\weapons\dnascrambler.dm"
-#include "code\game\objects\items\weapons\explosives.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\hydroponics.dm"
-#include "code\game\objects\items\weapons\kitchen.dm"
-#include "code\game\objects\items\weapons\manuals.dm"
-#include "code\game\objects\items\weapons\mop.dm"
-#include "code\game\objects\items\weapons\ninja_manuscript.dm"
-#include "code\game\objects\items\weapons\paint.dm"
-#include "code\game\objects\items\weapons\paiwire.dm"
-#include "code\game\objects\items\weapons\power_cells.dm"
-#include "code\game\objects\items\weapons\RCD.dm"
-#include "code\game\objects\items\weapons\RCS.dm"
-#include "code\game\objects\items\weapons\RSF.dm"
-#include "code\game\objects\items\weapons\scrolls.dm"
-#include "code\game\objects\items\weapons\shards.dm"
-#include "code\game\objects\items\weapons\shields.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\table_rack_parts.dm"
-#include "code\game\objects\items\weapons\teleportation.dm"
-#include "code\game\objects\items\weapons\tools.dm"
-#include "code\game\objects\items\weapons\twohanded.dm"
-#include "code\game\objects\items\weapons\vending_items.dm"
-#include "code\game\objects\items\weapons\weaponry.dm"
-#include "code\game\objects\items\weapons\wires.dm"
-#include "code\game\objects\items\weapons\grenades\bananade.dm"
-#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
-#include "code\game\objects\items\weapons\grenades\clowngrenade.dm"
-#include "code\game\objects\items\weapons\grenades\emgrenade.dm"
-#include "code\game\objects\items\weapons\grenades\flashbang.dm"
-#include "code\game\objects\items\weapons\grenades\ghettobomb.dm"
-#include "code\game\objects\items\weapons\grenades\grenade.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\syndieminibomb.dm"
-#include "code\game\objects\items\weapons\implants\deadman.dm"
-#include "code\game\objects\items\weapons\implants\implant.dm"
-#include "code\game\objects\items\weapons\implants\implantcase.dm"
-#include "code\game\objects\items\weapons\implants\implantchair.dm"
-#include "code\game\objects\items\weapons\implants\implanter.dm"
-#include "code\game\objects\items\weapons\implants\implantfreedom.dm"
-#include "code\game\objects\items\weapons\implants\implantpad.dm"
-#include "code\game\objects\items\weapons\implants\implantuplink.dm"
-#include "code\game\objects\items\weapons\melee\energy.dm"
-#include "code\game\objects\items\weapons\melee\misc.dm"
-#include "code\game\objects\items\weapons\storage\backpack.dm"
-#include "code\game\objects\items\weapons\storage\bags.dm"
-#include "code\game\objects\items\weapons\storage\belt.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\briefcase.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\lockbox.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\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\tanks.dm"
-#include "code\game\objects\items\weapons\tanks\watertank.dm"
-#include "code\game\objects\random\random.dm"
-#include "code\game\objects\storage\coat.dm"
-#include "code\game\objects\structures\barsign.dm"
-#include "code\game\objects\structures\bedsheet_bin.dm"
-#include "code\game\objects\structures\coathanger.dm"
-#include "code\game\objects\structures\displaycase.dm"
-#include "code\game\objects\structures\door_assembly.dm"
-#include "code\game\objects\structures\electricchair.dm"
-#include "code\game\objects\structures\engicart.dm"
-#include "code\game\objects\structures\extinguisher.dm"
-#include "code\game\objects\structures\false_walls.dm"
-#include "code\game\objects\structures\flora.dm"
-#include "code\game\objects\structures\fullwindow.dm"
-#include "code\game\objects\structures\girders.dm"
-#include "code\game\objects\structures\grille.dm"
-#include "code\game\objects\structures\inflatable.dm"
-#include "code\game\objects\structures\janicart.dm"
-#include "code\game\objects\structures\kitchen_spike.dm"
-#include "code\game\objects\structures\ladders.dm"
-#include "code\game\objects\structures\lamarr_cage.dm"
-#include "code\game\objects\structures\lattice.dm"
-#include "code\game\objects\structures\mineral_doors.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\musician.dm"
-#include "code\game\objects\structures\noticeboard.dm"
-#include "code\game\objects\structures\safe.dm"
-#include "code\game\objects\structures\segway.dm"
-#include "code\game\objects\structures\signs.dm"
-#include "code\game\objects\structures\tables_racks.dm"
-#include "code\game\objects\structures\tank_dispenser.dm"
-#include "code\game\objects\structures\target_stake.dm"
-#include "code\game\objects\structures\watercloset.dm"
-#include "code\game\objects\structures\windoor_assembly.dm"
-#include "code\game\objects\structures\window.dm"
-#include "code\game\objects\structures\crates_lockers\closets.dm"
-#include "code\game\objects\structures\crates_lockers\crates.dm"
-#include "code\game\objects\structures\crates_lockers\crittercrate.dm"
-#include "code\game\objects\structures\crates_lockers\largecrate.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\fireaxe.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\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\wardrobe.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\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\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\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\stools.dm"
-#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm"
-#include "code\game\objects\structures\transit_tubes\station.dm"
-#include "code\game\objects\structures\transit_tubes\transit_tube.dm"
-#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm"
-#include "code\game\structure\structure.dm"
-#include "code\game\turfs\simulated.dm"
-#include "code\game\turfs\turf.dm"
-#include "code\game\turfs\unsimulated.dm"
-#include "code\game\turfs\simulated\floor.dm"
-#include "code\game\turfs\simulated\floor_types.dm"
-#include "code\game\turfs\simulated\walls.dm"
-#include "code\game\turfs\simulated\walls_mineral.dm"
-#include "code\game\turfs\simulated\walls_misc.dm"
-#include "code\game\turfs\simulated\walls_reinforced.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\floor.dm"
-#include "code\game\turfs\unsimulated\walls.dm"
-#include "code\game\vehicles\spacepods\construction.dm"
-#include "code\game\vehicles\spacepods\equipment.dm"
-#include "code\game\vehicles\spacepods\parts.dm"
-#include "code\game\vehicles\spacepods\spacepod.dm"
-#include "code\game\verbs\atom_verbs.dm"
-#include "code\game\verbs\ooc.dm"
-#include "code\game\verbs\suicide.dm"
-#include "code\game\verbs\who.dm"
-#include "code\js\byjax.dm"
-#include "code\js\menus.dm"
-#include "code\modules\admin\admin.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_verbs.dm"
-#include "code\modules\admin\banappearance.dm"
-#include "code\modules\admin\banjob.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\NewBan.dm"
-#include "code\modules\admin\newbanjob.dm"
-#include "code\modules\admin\player_notes.dm"
-#include "code\modules\admin\player_panel.dm"
-#include "code\modules\admin\secrets.dm"
-#include "code\modules\admin\topic.dm"
-#include "code\modules\admin\ToRban.dm"
-#include "code\modules\admin\DB ban\functions.dm"
-#include "code\modules\admin\permissionverbs\permissionedit.dm"
-#include "code\modules\admin\verbs\adminhelp.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\atmosdebug.dm"
-#include "code\modules\admin\verbs\BrokenInhands.dm"
-#include "code\modules\admin\verbs\cinematic.dm"
-#include "code\modules\admin\verbs\custom_event.dm"
-#include "code\modules\admin\verbs\deadsay.dm"
-#include "code\modules\admin\verbs\debug.dm"
-#include "code\modules\admin\verbs\diagnostics.dm"
-#include "code\modules\admin\verbs\getlogs.dm"
-#include "code\modules\admin\verbs\honksquad.dm"
-#include "code\modules\admin\verbs\mapping.dm"
-#include "code\modules\admin\verbs\massmodvar.dm"
-#include "code\modules\admin\verbs\modifyvariables.dm"
-#include "code\modules\admin\verbs\one_click_antag.dm"
-#include "code\modules\admin\verbs\onlyone.dm"
-#include "code\modules\admin\verbs\onlyoneteam.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\striketeam.dm"
-#include "code\modules\admin\verbs\striketeam_syndicate.dm"
-#include "code\modules\admin\verbs\tripAI.dm"
-#include "code\modules\admin\verbs\vox_raiders.dm"
-#include "code\modules\assembly\assembly.dm"
-#include "code\modules\assembly\bomb.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\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\loot.dm"
-#include "code\modules\awaymissions\pamphlet.dm"
-#include "code\modules\awaymissions\trigger.dm"
-#include "code\modules\client\client defines.dm"
-#include "code\modules\client\client procs.dm"
-#include "code\modules\client\preferences.dm"
-#include "code\modules\client\preferences_mysql.dm"
-#include "code\modules\client\preferences_toggles.dm"
-#include "code\modules\clothing\clothing.dm"
-#include "code\modules\clothing\glasses\glasses.dm"
-#include "code\modules\clothing\glasses\hud.dm"
-#include "code\modules\clothing\gloves\boxing.dm"
-#include "code\modules\clothing\gloves\color.dm"
-#include "code\modules\clothing\gloves\miscellaneous.dm"
-#include "code\modules\clothing\gloves\ninja.dm"
-#include "code\modules\clothing\head\collectable.dm"
-#include "code\modules\clothing\head\hardhat.dm"
-#include "code\modules\clothing\head\helmet.dm"
-#include "code\modules\clothing\head\jobs.dm"
-#include "code\modules\clothing\head\misc.dm"
-#include "code\modules\clothing\head\misc_special.dm"
-#include "code\modules\clothing\head\soft_caps.dm"
-#include "code\modules\clothing\masks\boxing.dm"
-#include "code\modules\clothing\masks\breath.dm"
-#include "code\modules\clothing\masks\gasmask.dm"
-#include "code\modules\clothing\masks\miscellaneous.dm"
-#include "code\modules\clothing\shoes\colour.dm"
-#include "code\modules\clothing\shoes\magboots.dm"
-#include "code\modules\clothing\shoes\miscellaneous.dm"
-#include "code\modules\clothing\spacesuits\alien.dm"
-#include "code\modules\clothing\spacesuits\breaches.dm"
-#include "code\modules\clothing\spacesuits\captain.dm"
-#include "code\modules\clothing\spacesuits\ert.dm"
-#include "code\modules\clothing\spacesuits\miscellaneous.dm"
-#include "code\modules\clothing\spacesuits\ninja.dm"
-#include "code\modules\clothing\spacesuits\rig.dm"
-#include "code\modules\clothing\spacesuits\syndi.dm"
-#include "code\modules\clothing\spacesuits\void.dm"
-#include "code\modules\clothing\suits\alien.dm"
-#include "code\modules\clothing\suits\armor.dm"
-#include "code\modules\clothing\suits\bio.dm"
-#include "code\modules\clothing\suits\jobs.dm"
-#include "code\modules\clothing\suits\labcoat.dm"
-#include "code\modules\clothing\suits\miscellaneous.dm"
-#include "code\modules\clothing\suits\utility.dm"
-#include "code\modules\clothing\suits\wiz_robe.dm"
-#include "code\modules\clothing\under\chameleon.dm"
-#include "code\modules\clothing\under\color.dm"
-#include "code\modules\clothing\under\miscellaneous.dm"
-#include "code\modules\clothing\under\shorts.dm"
-#include "code\modules\clothing\under\syndicate.dm"
-#include "code\modules\clothing\under\ties.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\customitems\item_defines.dm"
-#include "code\modules\customitems\item_spawning.dm"
-#include "code\modules\customitems\definitions\base.dm"
-#include "code\modules\DetectiveWork\detective_work.dm"
-#include "code\modules\DetectiveWork\evidence.dm"
-#include "code\modules\DetectiveWork\footprints_and_rag.dm"
-#include "code\modules\DetectiveWork\scanner.dm"
-#include "code\modules\economy\Accounts.dm"
-#include "code\modules\economy\Accounts_DB.dm"
-#include "code\modules\economy\ATM.dm"
-#include "code\modules\economy\Economy.dm"
-#include "code\modules\economy\Economy_Events.dm"
-#include "code\modules\economy\Economy_Events_Mundane.dm"
-#include "code\modules\economy\Economy_TradeDestinations.dm"
-#include "code\modules\economy\EFTPOS.dm"
-#include "code\modules\economy\Job_Departments.dm"
-#include "code\modules\economy\POS.dm"
-#include "code\modules\economy\utils.dm"
-#include "code\modules\events\blob.dm"
-#include "code\modules\events\borers.dm"
-#include "code\modules\events\cargobonus.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\electrical_storm.dm"
-#include "code\modules\events\event.dm"
-#include "code\modules\events\event_dynamic.dm"
-#include "code\modules\events\event_manager.dm"
-#include "code\modules\events\grid_check.dm"
-#include "code\modules\events\infestation.dm"
-#include "code\modules\events\ion_storm.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\organ_failure.dm"
-#include "code\modules\events\prison_break.dm"
-#include "code\modules\events\radiation_storm.dm"
-#include "code\modules\events\rogue_drones.dm"
-#include "code\modules\events\space_ninja.dm"
-#include "code\modules\events\spacevine.dm"
-#include "code\modules\events\tear.dm"
-#include "code\modules\events\viral_infection.dm"
-#include "code\modules\events\viral_outbreak.dm"
-#include "code\modules\events\wallrot.dm"
-#include "code\modules\events\sayuevents\meaty_ores.dm"
-#include "code\modules\events\sayuevents\spooky.dm"
-#include "code\modules\events\sayuevents\undead.dm"
-#include "code\modules\events\sayuevents\wormholes.dm"
-#include "code\modules\events\tgevents\alien_infestation.dm"
-#include "code\modules\events\tgevents\anomaly.dm"
-#include "code\modules\events\tgevents\anomaly_bluespace.dm"
-#include "code\modules\events\tgevents\anomaly_flux.dm"
-#include "code\modules\events\tgevents\anomaly_grav.dm"
-#include "code\modules\events\tgevents\anomaly_pyro.dm"
-#include "code\modules\events\tgevents\anomaly_vortex.dm"
-#include "code\modules\events\tgevents\brand_intelligence.dm"
-#include "code\modules\events\tgevents\dust.dm"
-#include "code\modules\events\tgevents\false_alarm.dm"
-#include "code\modules\events\tgevents\immovable_rod.dm"
-#include "code\modules\events\tgevents\mass_hallucination.dm"
-#include "code\modules\events\tgevents\spider_infestation.dm"
-#include "code\modules\events\tgevents\vent_clog.dm"
-#include "code\modules\ext_scripts\irc.dm"
-#include "code\modules\ext_scripts\python.dm"
-#include "code\modules\flufftext\Dreaming.dm"
-#include "code\modules\flufftext\Hallucination.dm"
-#include "code\modules\flufftext\TextFilters.dm"
-#include "code\modules\food\cereal_maker.dm"
-#include "code\modules\food\cooker.dm"
-#include "code\modules\food\customizables.dm"
-#include "code\modules\food\deep_fryer.dm"
-#include "code\modules\food\food_grill.dm"
-#include "code\modules\food\icecream_vat.dm"
-#include "code\modules\food\oven.dm"
-#include "code\modules\food\recipes_microwave.dm"
-#include "code\modules\genetics\side_effects.dm"
-#include "code\modules\hydroponics\grown_inedible.dm"
-#include "code\modules\hydroponics\hydro_tools.dm"
-#include "code\modules\hydroponics\seed_datums.dm"
-#include "code\modules\hydroponics\seed_machines.dm"
-#include "code\modules\hydroponics\seed_mobs.dm"
-#include "code\modules\hydroponics\seeds.dm"
-#include "code\modules\hydroponics\vines.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\media\jukebox.dm"
-#include "code\modules\media\machinery.dm"
-#include "code\modules\media\mediamanager.dm"
-#include "code\modules\media\broadcast\receiver.dm"
-#include "code\modules\media\broadcast\transmitter.dm"
-#include "code\modules\media\broadcast\receivers\radio.dm"
-#include "code\modules\media\broadcast\transmitters\broadcast.dm"
-#include "code\modules\mining\abandonedcrates.dm"
-#include "code\modules\mining\alloys.dm"
-#include "code\modules\mining\coins.dm"
-#include "code\modules\mining\equipment_locker.dm"
-#include "code\modules\mining\machine_input_output_plates.dm"
-#include "code\modules\mining\machine_processing.dm"
-#include "code\modules\mining\machine_stacking.dm"
-#include "code\modules\mining\machine_unloading.dm"
-#include "code\modules\mining\manufacturing.dm"
-#include "code\modules\mining\materials.dm"
-#include "code\modules\mining\mine_areas.dm"
-#include "code\modules\mining\mine_items.dm"
-#include "code\modules\mining\mine_turfs.dm"
-#include "code\modules\mining\minerals.dm"
-#include "code\modules\mining\mining_recipes.dm"
-#include "code\modules\mining\mint.dm"
-#include "code\modules\mining\money_bag.dm"
-#include "code\modules\mining\ore.dm"
-#include "code\modules\mining\ore_datum.dm"
-#include "code\modules\mining\satchel_ore_boxdm.dm"
-#include "code\modules\mining\security_recipes.dm"
-#include "code\modules\mining\surprise.dm"
-#include "code\modules\mining\drilling\distribution.dm"
-#include "code\modules\mining\drilling\drill.dm"
-#include "code\modules\mining\drilling\scanner.dm"
-#include "code\modules\mining\laborcamp\laborminerals.dm"
-#include "code\modules\mining\laborcamp\laborshuttle.dm"
-#include "code\modules\mining\laborcamp\laborstacker.dm"
-#include "code\modules\mining\surprises\tg.dm"
-#include "code\modules\mining\surprises\vg.dm"
-#include "code\modules\mob\abilities.dm"
-#include "code\modules\mob\death.dm"
-#include "code\modules\mob\emote.dm"
-#include "code\modules\mob\holder.dm"
-#include "code\modules\mob\inventory.dm"
-#include "code\modules\mob\language.dm"
-#include "code\modules\mob\login.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_grab.dm"
-#include "code\modules\mob\mob_helpers.dm"
-#include "code\modules\mob\mob_movement.dm"
-#include "code\modules\mob\mob_transformation_simple.dm"
-#include "code\modules\mob\say.dm"
-#include "code\modules\mob\transform_procs.dm"
-#include "code\modules\mob\update_icons.dm"
-#include "code\modules\mob\camera\camera.dm"
-#include "code\modules\mob\dead\death.dm"
-#include "code\modules\mob\dead\observer\logout.dm"
-#include "code\modules\mob\dead\observer\observer.dm"
-#include "code\modules\mob\dead\observer\say.dm"
-#include "code\modules\mob\dead\observer\spells.dm"
-#include "code\modules\mob\living\damage_procs.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\login.dm"
-#include "code\modules\mob\living\logout.dm"
-#include "code\modules\mob\living\say.dm"
-#include "code\modules\mob\living\carbon\_defines.dm"
-#include "code\modules\mob\living\carbon\carbon.dm"
-#include "code\modules\mob\living\carbon\carbon_defenses.dm"
-#include "code\modules\mob\living\carbon\carbon_defines.dm"
-#include "code\modules\mob\living\carbon\give.dm"
-#include "code\modules\mob\living\carbon\shock.dm"
-#include "code\modules\mob\living\carbon\species.dm"
-#include "code\modules\mob\living\carbon\alien\alien.dm"
-#include "code\modules\mob\living\carbon\alien\alien_defenses.dm"
-#include "code\modules\mob\living\carbon\alien\death.dm"
-#include "code\modules\mob\living\carbon\alien\login.dm"
-#include "code\modules\mob\living\carbon\alien\logout.dm"
-#include "code\modules\mob\living\carbon\alien\powers.dm"
-#include "code\modules\mob\living\carbon\alien\say.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\life.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\login.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm"
-#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm"
-#include "code\modules\mob\living\carbon\alien\larva\death.dm"
-#include "code\modules\mob\living\carbon\alien\larva\emote.dm"
-#include "code\modules\mob\living\carbon\alien\larva\inventory.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\powers.dm"
-#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm"
-#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm"
-#include "code\modules\mob\living\carbon\alien\special\facehugger.dm"
-#include "code\modules\mob\living\carbon\brain\brain.dm"
-#include "code\modules\mob\living\carbon\brain\brain_item.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\posibrain.dm"
-#include "code\modules\mob\living\carbon\brain\say.dm"
-#include "code\modules\mob\living\carbon\human\death.dm"
-#include "code\modules\mob\living\carbon\human\emote.dm"
-#include "code\modules\mob\living\carbon\human\examine.dm"
-#include "code\modules\mob\living\carbon\human\human.dm"
-#include "code\modules\mob\living\carbon\human\human_attackalien.dm"
-#include "code\modules\mob\living\carbon\human\human_attackhand.dm"
-#include "code\modules\mob\living\carbon\human\human_attackpaw.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_movement.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\login.dm"
-#include "code\modules\mob\living\carbon\human\say.dm"
-#include "code\modules\mob\living\carbon\human\update_icons.dm"
-#include "code\modules\mob\living\carbon\human\whisper.dm"
-#include "code\modules\mob\living\carbon\human\plasmaman\species.dm"
-#include "code\modules\mob\living\carbon\metroid\death.dm"
-#include "code\modules\mob\living\carbon\metroid\emote.dm"
-#include "code\modules\mob\living\carbon\metroid\examine.dm"
-#include "code\modules\mob\living\carbon\metroid\hud.dm"
-#include "code\modules\mob\living\carbon\metroid\life.dm"
-#include "code\modules\mob\living\carbon\metroid\login.dm"
-#include "code\modules\mob\living\carbon\metroid\metroid.dm"
-#include "code\modules\mob\living\carbon\metroid\powers.dm"
-#include "code\modules\mob\living\carbon\metroid\say.dm"
-#include "code\modules\mob\living\carbon\metroid\subtypes.dm"
-#include "code\modules\mob\living\carbon\metroid\update_icons.dm"
-#include "code\modules\mob\living\carbon\monkey\death.dm"
-#include "code\modules\mob\living\carbon\monkey\diona.dm"
-#include "code\modules\mob\living\carbon\monkey\emote.dm"
-#include "code\modules\mob\living\carbon\monkey\examine.dm"
-#include "code\modules\mob\living\carbon\monkey\inventory.dm"
-#include "code\modules\mob\living\carbon\monkey\life.dm"
-#include "code\modules\mob\living\carbon\monkey\login.dm"
-#include "code\modules\mob\living\carbon\monkey\monkey.dm"
-#include "code\modules\mob\living\carbon\monkey\powers.dm"
-#include "code\modules\mob\living\carbon\monkey\update_icons.dm"
-#include "code\modules\mob\living\silicon\death.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\ai\ai.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\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\say.dm"
-#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm"
-#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm"
-#include "code\modules\mob\living\silicon\ai\freelook\eye.dm"
-#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm"
-#include "code\modules\mob\living\silicon\ai\freelook\update_triggers.dm"
-#include "code\modules\mob\living\silicon\ai\freelook\visibility_interface.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\death.dm"
-#include "code\modules\mob\living\silicon\pai\examine.dm"
-#include "code\modules\mob\living\silicon\pai\hud.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\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\robot\component.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\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_damage.dm"
-#include "code\modules\mob\living\silicon\robot\robot_items.dm"
-#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
-#include "code\modules\mob\living\silicon\robot\robot_movement.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\simple_animal\bees.dm"
-#include "code\modules\mob\living\simple_animal\borer.dm"
-#include "code\modules\mob\living\simple_animal\constructs.dm"
-#include "code\modules\mob\living\simple_animal\corpse.dm"
-#include "code\modules\mob\living\simple_animal\parrot.dm"
-#include "code\modules\mob\living\simple_animal\powers.dm"
-#include "code\modules\mob\living\simple_animal\shade.dm"
-#include "code\modules\mob\living\simple_animal\simple_animal.dm"
-#include "code\modules\mob\living\simple_animal\tribbles.dm"
-#include "code\modules\mob\living\simple_animal\vox.dm"
-#include "code\modules\mob\living\simple_animal\worm.dm"
-#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
-#include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
-#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
-#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm"
-#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
-#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
-#include "code\modules\mob\living\simple_animal\friendly\slime.dm"
-#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm"
-#include "code\modules\mob\living\simple_animal\friendly\tomato.dm"
-#include "code\modules\mob\living\simple_animal\hostile\alien.dm"
-#include "code\modules\mob\living\simple_animal\hostile\bat.dm"
-#include "code\modules\mob\living\simple_animal\hostile\bear.dm"
-#include "code\modules\mob\living\simple_animal\hostile\carp.dm"
-#include "code\modules\mob\living\simple_animal\hostile\creature.dm"
-#include "code\modules\mob\living\simple_animal\hostile\faithless.dm"
-#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm"
-#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"
-#include "code\modules\mob\living\simple_animal\hostile\hostile.dm"
-#include "code\modules\mob\living\simple_animal\hostile\mimic.dm"
-#include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm"
-#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm"
-#include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
-#include "code\modules\mob\living\simple_animal\hostile\russian.dm"
-#include "code\modules\mob\living\simple_animal\hostile\statue.dm"
-#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm"
-#include "code\modules\mob\living\simple_animal\hostile\tree.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm"
-#include "code\modules\mob\new_player\login.dm"
-#include "code\modules\mob\new_player\logout.dm"
-#include "code\modules\mob\new_player\new_player.dm"
-#include "code\modules\mob\new_player\poll.dm"
-#include "code\modules\mob\new_player\preferences_setup.dm"
-#include "code\modules\mob\new_player\sprite_accessories.dm"
-#include "code\modules\mob\spirit\cultnet.dm"
-#include "code\modules\mob\spirit\movement.dm"
-#include "code\modules\mob\spirit\spirit.dm"
-#include "code\modules\mob\spirit\viewpoint.dm"
-#include "code\modules\mob\spirit\mask\mask.dm"
-#include "code\modules\mob\spirit\mask\respawn.dm"
-#include "code\modules\nano\_JSON.dm"
-#include "code\modules\nano\JSON Reader.dm"
-#include "code\modules\nano\JSON Writer.dm"
-#include "code\modules\nano\nanoexternal.dm"
-#include "code\modules\nano\nanomanager.dm"
-#include "code\modules\nano\nanomapgen.dm"
-#include "code\modules\nano\nanoui.dm"
-#include "code\modules\organs\blood.dm"
-#include "code\modules\organs\organ.dm"
-#include "code\modules\organs\organ_external.dm"
-#include "code\modules\organs\organ_internal.dm"
-#include "code\modules\organs\pain.dm"
-#include "code\modules\organs\skeleton.dm"
-#include "code\modules\organs\wound.dm"
-#include "code\modules\paperwork\carbonpaper.dm"
-#include "code\modules\paperwork\clipboard.dm"
-#include "code\modules\paperwork\faxmachine.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\paperbin.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\power\apc.dm"
-#include "code\modules\power\cable.dm"
-#include "code\modules\power\cable_heavyduty.dm"
-#include "code\modules\power\cable_logic.dm"
-#include "code\modules\power\cell.dm"
-#include "code\modules\power\engine.dm"
-#include "code\modules\power\generator.dm"
-#include "code\modules\power\generator_type2.dm"
-#include "code\modules\power\gravitygenerator.dm"
-#include "code\modules\power\lighting.dm"
-#include "code\modules\power\port_gen.dm"
-#include "code\modules\power\power.dm"
-#include "code\modules\power\smes.dm"
-#include "code\modules\power\solar.dm"
-#include "code\modules\power\switch.dm"
-#include "code\modules\power\terminal.dm"
-#include "code\modules\power\tracker.dm"
-#include "code\modules\power\turbine.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\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\projectiles\ammunition.dm"
-#include "code\modules\projectiles\gun.dm"
-#include "code\modules\projectiles\projectile.dm"
-#include "code\modules\projectiles\targeting.dm"
-#include "code\modules\projectiles\ammunition\boxes.dm"
-#include "code\modules\projectiles\ammunition\bullets.dm"
-#include "code\modules\projectiles\ammunition\magazines.dm"
-#include "code\modules\projectiles\guns\alien.dm"
-#include "code\modules\projectiles\guns\energy.dm"
-#include "code\modules\projectiles\guns\magic.dm"
-#include "code\modules\projectiles\guns\projectile.dm"
-#include "code\modules\projectiles\guns\energy\laser.dm"
-#include "code\modules\projectiles\guns\energy\nuclear.dm"
-#include "code\modules\projectiles\guns\energy\pulse.dm"
-#include "code\modules\projectiles\guns\energy\special.dm"
-#include "code\modules\projectiles\guns\energy\stun.dm"
-#include "code\modules\projectiles\guns\energy\temperature.dm"
-#include "code\modules\projectiles\guns\magic\staff.dm"
-#include "code\modules\projectiles\guns\magic\wand.dm"
-#include "code\modules\projectiles\guns\projectile\automatic.dm"
-#include "code\modules\projectiles\guns\projectile\crossbow.dm"
-#include "code\modules\projectiles\guns\projectile\launcher.dm"
-#include "code\modules\projectiles\guns\projectile\pistol.dm"
-#include "code\modules\projectiles\guns\projectile\pneumatic.dm"
-#include "code\modules\projectiles\guns\projectile\revolver.dm"
-#include "code\modules\projectiles\guns\projectile\rocket.dm"
-#include "code\modules\projectiles\guns\projectile\shotgun.dm"
-#include "code\modules\projectiles\projectile\animate.dm"
-#include "code\modules\projectiles\projectile\beams.dm"
-#include "code\modules\projectiles\projectile\bullets.dm"
-#include "code\modules\projectiles\projectile\change.dm"
-#include "code\modules\projectiles\projectile\energy.dm"
-#include "code\modules\projectiles\projectile\force.dm"
-#include "code\modules\projectiles\projectile\magic.dm"
-#include "code\modules\projectiles\projectile\special.dm"
-#include "code\modules\reagents\Chemistry-Colours.dm"
-#include "code\modules\reagents\Chemistry-Holder.dm"
-#include "code\modules\reagents\Chemistry-Machinery.dm"
-#include "code\modules\reagents\Chemistry-Readme.dm"
-#include "code\modules\reagents\Chemistry-Reagents-Antidepressants.dm"
-#include "code\modules\reagents\Chemistry-Reagents.dm"
-#include "code\modules\reagents\Chemistry-Recipes.dm"
-#include "code\modules\reagents\dartgun.dm"
-#include "code\modules\reagents\grenade_launcher.dm"
-#include "code\modules\reagents\reagent_containers.dm"
-#include "code\modules\reagents\reagent_dispenser.dm"
-#include "code\modules\reagents\syringe_gun.dm"
-#include "code\modules\reagents\reagent_containers\blood_pack.dm"
-#include "code\modules\reagents\reagent_containers\borghydro.dm"
-#include "code\modules\reagents\reagent_containers\dropper.dm"
-#include "code\modules\reagents\reagent_containers\drugs.dm"
-#include "code\modules\reagents\reagent_containers\food.dm"
-#include "code\modules\reagents\reagent_containers\glass.dm"
-#include "code\modules\reagents\reagent_containers\hypospray.dm"
-#include "code\modules\reagents\reagent_containers\pill.dm"
-#include "code\modules\reagents\reagent_containers\robodropper.dm"
-#include "code\modules\reagents\reagent_containers\spray.dm"
-#include "code\modules\reagents\reagent_containers\syringes.dm"
-#include "code\modules\reagents\reagent_containers\food\cans.dm"
-#include "code\modules\reagents\reagent_containers\food\condiment.dm"
-#include "code\modules\reagents\reagent_containers\food\drinks.dm"
-#include "code\modules\reagents\reagent_containers\food\sandwich.dm"
-#include "code\modules\reagents\reagent_containers\food\snacks.dm"
-#include "code\modules\reagents\reagent_containers\food\drinks\bottle.dm"
-#include "code\modules\reagents\reagent_containers\food\drinks\drinkingglass.dm"
-#include "code\modules\reagents\reagent_containers\food\drinks\jar.dm"
-#include "code\modules\reagents\reagent_containers\food\drinks\bottle\robot.dm"
-#include "code\modules\reagents\reagent_containers\food\snacks\grown.dm"
-#include "code\modules\reagents\reagent_containers\food\snacks\meat.dm"
-#include "code\modules\reagents\reagent_containers\glass\bottle.dm"
-#include "code\modules\reagents\reagent_containers\glass\bottle\robot.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\message_server.dm"
-#include "code\modules\research\protolathe.dm"
-#include "code\modules\research\rd-readme.dm"
-#include "code\modules\research\rdconsole.dm"
-#include "code\modules\research\rdmachines.dm"
-#include "code\modules\research\research.dm"
-#include "code\modules\research\server.dm"
-#include "code\modules\research\xenoarchaeology\areas.dm"
-#include "code\modules\research\xenoarchaeology\chemistry.dm"
-#include "code\modules\research\xenoarchaeology\geosample.dm"
-#include "code\modules\research\xenoarchaeology\manuals.dm"
-#include "code\modules\research\xenoarchaeology\master_controller.dm"
-#include "code\modules\research\xenoarchaeology\misc.dm"
-#include "code\modules\research\xenoarchaeology\readme.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact_autocloner.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact_crystal.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact_gigadrill.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact_hoverpod.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact_replicator.dm"
-#include "code\modules\research\xenoarchaeology\artifact\artifact_unknown.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effect.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_affect_cold.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_badfeeling.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_cellcharge.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_celldrain.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_dnaswitch.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_emp.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_forcefield.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasco2.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasnitro.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasoxy.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasplasma.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gassleeping.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_goodfeeling.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heal.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heat.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_hurt.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_radiate.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_roboheal.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_robohurt.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_sleepy.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_stun.dm"
-#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_teleport.dm"
-#include "code\modules\research\xenoarchaeology\finds\finds.dm"
-#include "code\modules\research\xenoarchaeology\finds\finds_defines.dm"
-#include "code\modules\research\xenoarchaeology\finds\finds_fossils.dm"
-#include "code\modules\research\xenoarchaeology\finds\finds_misc.dm"
-#include "code\modules\research\xenoarchaeology\finds\finds_special.dm"
-#include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm"
-#include "code\modules\research\xenoarchaeology\genetics\prehistoric_animals.dm"
-#include "code\modules\research\xenoarchaeology\genetics\prehistoric_plants.dm"
-#include "code\modules\research\xenoarchaeology\genetics\prehistoric_seeds.dm"
-#include "code\modules\research\xenoarchaeology\genetics\reconstitutor.dm"
-#include "code\modules\research\xenoarchaeology\machinery\artifact_analyser.dm"
-#include "code\modules\research\xenoarchaeology\machinery\artifact_harvester.dm"
-#include "code\modules\research\xenoarchaeology\machinery\artifact_scanner.dm"
-#include "code\modules\research\xenoarchaeology\machinery\coolant.dm"
-#include "code\modules\research\xenoarchaeology\machinery\geosample_scanner.dm"
-#include "code\modules\research\xenoarchaeology\tools\ano_device_battery.dm"
-#include "code\modules\research\xenoarchaeology\tools\anomaly_suit.dm"
-#include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm"
-#include "code\modules\research\xenoarchaeology\tools\gearbelt.dm"
-#include "code\modules\research\xenoarchaeology\tools\suspension_generator.dm"
-#include "code\modules\research\xenoarchaeology\tools\tools.dm"
-#include "code\modules\research\xenoarchaeology\tools\tools_anoscanner.dm"
-#include "code\modules\research\xenoarchaeology\tools\tools_coresampler.dm"
-#include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm"
-#include "code\modules\research\xenoarchaeology\tools\tools_locater.dm"
-#include "code\modules\research\xenoarchaeology\tools\tools_pickaxe.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\shuttles\antagonist.dm"
-#include "code\modules\shuttles\departmental.dm"
-#include "code\modules\shuttles\escape_pods.dm"
-#include "code\modules\shuttles\shuttle.dm"
-#include "code\modules\shuttles\shuttle_console.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\store\items.dm"
-#include "code\modules\store\store.dm"
-#include "code\modules\supermatter\supermatter.dm"
-#include "code\modules\surgery\bones.dm"
-#include "code\modules\surgery\braincore.dm"
-#include "code\modules\surgery\eye.dm"
-#include "code\modules\surgery\face.dm"
-#include "code\modules\surgery\generic.dm"
-#include "code\modules\surgery\headreattach.dm"
-#include "code\modules\surgery\implant.dm"
-#include "code\modules\surgery\other.dm"
-#include "code\modules\surgery\ribcage.dm"
-#include "code\modules\surgery\robolimbs.dm"
-#include "code\modules\surgery\surgery.dm"
-#include "code\modules\vehicles\ambulance.dm"
-#include "code\modules\vehicles\cargo_train.dm"
-#include "code\modules\vehicles\janicart.dm"
-#include "code\modules\vehicles\train.dm"
-#include "code\modules\vehicles\vehicle.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\helpers.dm"
-#include "code\modules\virus2\isolator.dm"
-#include "code\modules\virus2\items_devices.dm"
-#include "code\WorkInProgress\autopsy.dm"
-#include "code\WorkInProgress\buildmode.dm"
-#include "code\WorkInProgress\explosion_particles.dm"
-#include "code\WorkInProgress\fireworks.dm"
-#include "code\WorkInProgress\periodic_news.dm"
-#include "code\WorkInProgress\Apples\artifacts.dm"
-#include "code\WorkInProgress\Cael_Aislinn\sculpture.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\falsewall.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_animals.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_plants.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_temple.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_tribe.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_turfs.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm"
-#include "code\WorkInProgress\Cael_Aislinn\Rust\areas.dm"
-#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\circuits_and_designs.dm"
-#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\energy_field.dm"
-#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_capacitor.dm"
-#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_gen.dm"
-#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_gen_external.dm"
-#include "code\WorkInProgress\Chinsky\ashtray.dm"
-#include "code\WorkInProgress\Chinsky\guestpass.dm"
-#include "code\WorkInProgress\Cib\MedicalSideEffects.dm"
-#include "code\WorkInProgress\computer3\bios.dm"
-#include "code\WorkInProgress\computer3\buildandrepair.dm"
-#include "code\WorkInProgress\computer3\component.dm"
-#include "code\WorkInProgress\computer3\computer.dm"
-#include "code\WorkInProgress\computer3\computer3_notes.dm"
-#include "code\WorkInProgress\computer3\file.dm"
-#include "code\WorkInProgress\computer3\laptop.dm"
-#include "code\WorkInProgress\computer3\lapvend.dm"
-#include "code\WorkInProgress\computer3\networking.dm"
-#include "code\WorkInProgress\computer3\NTOS.dm"
-#include "code\WorkInProgress\computer3\program.dm"
-#include "code\WorkInProgress\computer3\program_disks.dm"
-#include "code\WorkInProgress\computer3\server.dm"
-#include "code\WorkInProgress\computer3\storage.dm"
-#include "code\WorkInProgress\computer3\computers\arcade.dm"
-#include "code\WorkInProgress\computer3\computers\atmos_alert.dm"
-#include "code\WorkInProgress\computer3\computers\camera.dm"
-#include "code\WorkInProgress\computer3\computers\card.dm"
-#include "code\WorkInProgress\computer3\computers\communications.dm"
-#include "code\WorkInProgress\computer3\computers\crew.dm"
-#include "code\WorkInProgress\computer3\computers\customs.dm"
-#include "code\WorkInProgress\computer3\computers\HolodeckControl.dm"
-#include "code\WorkInProgress\computer3\computers\law.dm"
-#include "code\WorkInProgress\computer3\computers\medical.dm"
-#include "code\WorkInProgress\computer3\computers\Operating.dm"
-#include "code\WorkInProgress\computer3\computers\power.dm"
-#include "code\WorkInProgress\computer3\computers\prisoner.dm"
-#include "code\WorkInProgress\computer3\computers\robot.dm"
-#include "code\WorkInProgress\computer3\computers\security.dm"
-#include "code\WorkInProgress\computer3\computers\welcome.dm"
-#include "code\WorkInProgress\Mini\atmos_control.dm"
-#include "code\WorkInProgress\Ported\policetape.dm"
-#include "code\WorkInProgress\Sayu\belt.dm"
-#include "code\WorkInProgress\Sayu\cargoprofile.dm"
-#include "code\WorkInProgress\Sayu\grenades.dm"
-#include "code\WorkInProgress\Sayu\programmable.dm"
-#include "code\WorkInProgress\Sayu\random_items.dm"
-#include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm"
-#include "code\WorkInProgress\ZomgPonies\karma.dm"
-#include "code\WorkInProgress\ZomgPonies\clothing\civilian.dm"
-#include "code\WorkInProgress\ZomgPonies\mobs\pony.dm"
-#include "code\WorkInProgress\ZomgPonies\oldcode\turntable.dm"
-#include "code\WorkInProgress\ZomgPonies\powerarmor\powerarmor.dm"
-#include "code\WorkInProgress\ZomgPonies\powerarmor\powerarmorcomponents.dm"
-#include "code\ZAS\_docs.dm"
-#include "code\ZAS\_gas_mixture.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\Plasma.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\cyberiad.dmm"
-#include "maps\RandomZLevels\clown3.dmm"
-// 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 .
+#define FILE_DIR "code"
+#define FILE_DIR "code/TriDimension"
+#define FILE_DIR "code/unused"
+#define FILE_DIR "code/unused/goonheist"
+#define FILE_DIR "code/WorkInProgress"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
+#define FILE_DIR "code/WorkInProgress/IndexLP"
+#define FILE_DIR "code/WorkInProgress/Susan"
+#define FILE_DIR "html"
+#define FILE_DIR "icons"
+#define FILE_DIR "icons/48x48"
+#define FILE_DIR "icons/ass"
+#define FILE_DIR "icons/effects"
+#define FILE_DIR "icons/mecha"
+#define FILE_DIR "icons/misc"
+#define FILE_DIR "icons/mob"
+#define FILE_DIR "icons/mob/human_races"
+#define FILE_DIR "icons/mob/in-hand"
+#define FILE_DIR "icons/mob/in-hand/left"
+#define FILE_DIR "icons/mob/in-hand/right"
+#define FILE_DIR "icons/mob/otherHuman"
+#define FILE_DIR "icons/mob/species"
+#define FILE_DIR "icons/mob/species/armalis"
+#define FILE_DIR "icons/mob/species/skrell"
+#define FILE_DIR "icons/mob/species/tajaran"
+#define FILE_DIR "icons/mob/species/unathi"
+#define FILE_DIR "icons/mob/species/vox"
+#define FILE_DIR "icons/mob/spirits"
+#define FILE_DIR "icons/NTOS"
+#define FILE_DIR "icons/NTOS/battery_icons"
+#define FILE_DIR "icons/obj"
+#define FILE_DIR "icons/obj/assemblies"
+#define FILE_DIR "icons/obj/atmospherics"
+#define FILE_DIR "icons/obj/clothing"
+#define FILE_DIR "icons/obj/clothing/species"
+#define FILE_DIR "icons/obj/clothing/species/skrell"
+#define FILE_DIR "icons/obj/clothing/species/tajaran"
+#define FILE_DIR "icons/obj/clothing/species/unathi"
+#define FILE_DIR "icons/obj/doors"
+#define FILE_DIR "icons/obj/flora"
+#define FILE_DIR "icons/obj/machines"
+#define FILE_DIR "icons/obj/pipes"
+#define FILE_DIR "icons/obj/power_cond"
+#define FILE_DIR "icons/pda_icons"
+#define FILE_DIR "icons/pods"
+#define FILE_DIR "icons/spideros_icons"
+#define FILE_DIR "icons/stamp_icons"
+#define FILE_DIR "icons/Testing"
+#define FILE_DIR "icons/turf"
+#define FILE_DIR "icons/vehicles"
+#define FILE_DIR "icons/vending_icons"
+#define FILE_DIR "maps"
+#define FILE_DIR "maps/overmap"
+#define FILE_DIR "maps/overmap/bearcat"
+#define FILE_DIR "nano"
+#define FILE_DIR "nano/images"
+#define FILE_DIR "sound"
+#define FILE_DIR "sound/AI"
+#define FILE_DIR "sound/ambience"
+#define FILE_DIR "sound/effects"
+#define FILE_DIR "sound/effects/turret"
+#define FILE_DIR "sound/effects/wind"
+#define FILE_DIR "sound/hallucinations"
+#define FILE_DIR "sound/items"
+#define FILE_DIR "sound/machines"
+#define FILE_DIR "sound/mecha"
+#define FILE_DIR "sound/misc"
+#define FILE_DIR "sound/music"
+#define FILE_DIR "sound/piano"
+#define FILE_DIR "sound/turntable"
+#define FILE_DIR "sound/violin"
+#define FILE_DIR "sound/voice"
+#define FILE_DIR "sound/voice/complionator"
+#define FILE_DIR "sound/voice/Serithi"
+#define FILE_DIR "sound/vox"
+#define FILE_DIR "sound/vox_fem"
+#define FILE_DIR "sound/weapons"
+// END_FILE_DIR
+// BEGIN_PREFERENCES
+#define DEBUG
+// END_PREFERENCES
+// BEGIN_INCLUDE
+#include "code\global.dm"
+#include "code\hub.dm"
+#include "code\names.dm"
+#include "code\setup.dm"
+#include "code\stylesheet.dm"
+#include "code\world.dm"
+#include "code\__HELPERS\experimental.dm"
+#include "code\__HELPERS\files.dm"
+#include "code\__HELPERS\game.dm"
+#include "code\__HELPERS\global_lists.dm"
+#include "code\__HELPERS\icons.dm"
+#include "code\__HELPERS\lists.dm"
+#include "code\__HELPERS\logging.dm"
+#include "code\__HELPERS\maths.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\text.dm"
+#include "code\__HELPERS\time.dm"
+#include "code\__HELPERS\timed_alerts.dm"
+#include "code\__HELPERS\type2type.dm"
+#include "code\__HELPERS\unsorted.dm"
+#include "code\_hooks\area.dm"
+#include "code\_hooks\hooks.dm"
+#include "code\_hooks\mob.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\overmind.dm"
+#include "code\_onclick\telekinesis.dm"
+#include "code\_onclick\hud\_defines.dm"
+#include "code\_onclick\hud\ai.dm"
+#include "code\_onclick\hud\alien.dm"
+#include "code\_onclick\hud\alien_larva.dm"
+#include "code\_onclick\hud\hud.dm"
+#include "code\_onclick\hud\human.dm"
+#include "code\_onclick\hud\monkey.dm"
+#include "code\_onclick\hud\other_mobs.dm"
+#include "code\_onclick\hud\robot.dm"
+#include "code\_onclick\hud\screen_objects.dm"
+#include "code\ATMOSPHERICS\atmospherics.dm"
+#include "code\ATMOSPHERICS\chiller.dm"
+#include "code\ATMOSPHERICS\datum_pipe_network.dm"
+#include "code\ATMOSPHERICS\datum_pipeline.dm"
+#include "code\ATMOSPHERICS\he_pipes.dm"
+#include "code\ATMOSPHERICS\pipes.dm"
+#include "code\ATMOSPHERICS\components\portables_connector.dm"
+#include "code\ATMOSPHERICS\components\tvalve.dm"
+#include "code\ATMOSPHERICS\components\valve.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\pump.dm"
+#include "code\ATMOSPHERICS\components\binary_devices\volume_pump.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\generator_input.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\oxygen_generator.dm"
+#include "code\ATMOSPHERICS\components\unary\thermal_plate.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\controllers\_DynamicAreaLighting_TG.dm"
+#include "code\controllers\configuration.dm"
+#include "code\controllers\emergency_shuttle_controller.dm"
+#include "code\controllers\failsafe.dm"
+#include "code\controllers\garbage.dm"
+#include "code\controllers\hooks-defs.dm"
+#include "code\controllers\hooks.dm"
+#include "code\controllers\lighting_controller.dm"
+#include "code\controllers\master_controller.dm"
+#include "code\controllers\shuttle_controller.dm"
+#include "code\controllers\verbs.dm"
+#include "code\controllers\voting.dm"
+#include "code\datums\ai_laws.dm"
+#include "code\datums\browser.dm"
+#include "code\datums\computerfiles.dm"
+#include "code\datums\datacore.dm"
+#include "code\datums\datumvars.dm"
+#include "code\datums\mind.dm"
+#include "code\datums\mixed.dm"
+#include "code\datums\modules.dm"
+#include "code\datums\organs.dm"
+#include "code\datums\recipe.dm"
+#include "code\datums\spell.dm"
+#include "code\datums\sun.dm"
+#include "code\datums\supplypacks.dm"
+#include "code\datums\uplink_item.dm"
+#include "code\datums\crafting\crafting.dm"
+#include "code\datums\crafting\recipes.dm"
+#include "code\datums\helper_datums\construction_datum.dm"
+#include "code\datums\helper_datums\events.dm"
+#include "code\datums\helper_datums\global_iterator.dm"
+#include "code\datums\helper_datums\teleport.dm"
+#include "code\datums\helper_datums\topic_input.dm"
+#include "code\datums\spells\area_teleport.dm"
+#include "code\datums\spells\charge.dm"
+#include "code\datums\spells\conjure.dm"
+#include "code\datums\spells\construct_spells.dm"
+#include "code\datums\spells\dumbfire.dm"
+#include "code\datums\spells\emplosion.dm"
+#include "code\datums\spells\ethereal_jaunt.dm"
+#include "code\datums\spells\explosion.dm"
+#include "code\datums\spells\genetic.dm"
+#include "code\datums\spells\horsemask.dm"
+#include "code\datums\spells\inflict_handler.dm"
+#include "code\datums\spells\knock.dm"
+#include "code\datums\spells\mind_transfer.dm"
+#include "code\datums\spells\projectile.dm"
+#include "code\datums\spells\trigger.dm"
+#include "code\datums\spells\turf_teleport.dm"
+#include "code\datums\spells\wizard.dm"
+#include "code\datums\visibility_networks\chunk.dm"
+#include "code\datums\visibility_networks\dictionary.dm"
+#include "code\datums\visibility_networks\update_triggers.dm"
+#include "code\datums\visibility_networks\visibility_interface.dm"
+#include "code\datums\visibility_networks\visibility_network.dm"
+#include "code\datums\wires\airlock.dm"
+#include "code\datums\wires\alarm.dm"
+#include "code\datums\wires\apc.dm"
+#include "code\datums\wires\camera.dm"
+#include "code\datums\wires\explosive.dm"
+#include "code\datums\wires\mulebot.dm"
+#include "code\datums\wires\particle_accelerator.dm"
+#include "code\datums\wires\radio.dm"
+#include "code\datums\wires\robot.dm"
+#include "code\datums\wires\syndicatebomb.dm"
+#include "code\datums\wires\vending.dm"
+#include "code\datums\wires\wires.dm"
+#include "code\defines\obj.dm"
+#include "code\defines\vox_sounds.dm"
+#include "code\defines\obj\weapon.dm"
+#include "code\defines\procs\AStar.dm"
+#include "code\defines\procs\captain_announce.dm"
+#include "code\defines\procs\command_alert.dm"
+#include "code\defines\procs\dbcore.dm"
+#include "code\defines\procs\hud.dm"
+#include "code\defines\procs\sd_Alert.dm"
+#include "code\defines\procs\statistics.dm"
+#include "code\game\asteroid.dm"
+#include "code\game\atoms.dm"
+#include "code\game\atoms_movable.dm"
+#include "code\game\communications.dm"
+#include "code\game\response_team.dm"
+#include "code\game\shuttle_engines.dm"
+#include "code\game\skincmd.dm"
+#include "code\game\smoothwall.dm"
+#include "code\game\sound.dm"
+#include "code\game\supplyshuttle.dm"
+#include "code\game\area\ai_monitored.dm"
+#include "code\game\area\areas.dm"
+#include "code\game\area\Dynamic areas.dm"
+#include "code\game\area\Space Station 13 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\goon_disabilities.dm"
+#include "code\game\dna\genes\goon_powers.dm"
+#include "code\game\dna\genes\monkey.dm"
+#include "code\game\dna\genes\powers.dm"
+#include "code\game\dna\genes\vg_disabilities.dm"
+#include "code\game\dna\genes\vg_powers.dm"
+#include "code\game\gamemodes\antag_spawner.dm"
+#include "code\game\gamemodes\events.dm"
+#include "code\game\gamemodes\factions.dm"
+#include "code\game\gamemodes\game_mode.dm"
+#include "code\game\gamemodes\gameticker.dm"
+#include "code\game\gamemodes\intercept_report.dm"
+#include "code\game\gamemodes\objective.dm"
+#include "code\game\gamemodes\scoreboard.dm"
+#include "code\game\gamemodes\setupgame.dm"
+#include "code\game\gamemodes\steal_items.dm"
+#include "code\game\gamemodes\autotraitor\autotraitor.dm"
+#include "code\game\gamemodes\blob\blob.dm"
+#include "code\game\gamemodes\blob\blob_finish.dm"
+#include "code\game\gamemodes\blob\blob_report.dm"
+#include "code\game\gamemodes\blob\overmind.dm"
+#include "code\game\gamemodes\blob\powers.dm"
+#include "code\game\gamemodes\blob\theblob.dm"
+#include "code\game\gamemodes\blob\blobs\core.dm"
+#include "code\game\gamemodes\blob\blobs\factory.dm"
+#include "code\game\gamemodes\blob\blobs\node.dm"
+#include "code\game\gamemodes\blob\blobs\resource.dm"
+#include "code\game\gamemodes\blob\blobs\shield.dm"
+#include "code\game\gamemodes\borer\borer.dm"
+#include "code\game\gamemodes\changeling\changeling.dm"
+#include "code\game\gamemodes\changeling\changeling_powers.dm"
+#include "code\game\gamemodes\changeling\modularchangling.dm"
+#include "code\game\gamemodes\changeling\traitor_chan.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\ritual.dm"
+#include "code\game\gamemodes\cult\runes.dm"
+#include "code\game\gamemodes\cult\talisman.dm"
+#include "code\game\gamemodes\events\biomass.dm"
+#include "code\game\gamemodes\events\black_hole.dm"
+#include "code\game\gamemodes\events\clang.dm"
+#include "code\game\gamemodes\events\ninja_abilities.dm"
+#include "code\game\gamemodes\events\ninja_equipment.dm"
+#include "code\game\gamemodes\events\power_failure.dm"
+#include "code\game\gamemodes\events\space_ninja.dm"
+#include "code\game\gamemodes\events\spacevines.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\malfunction\Malf_Modules.dm"
+#include "code\game\gamemodes\malfunction\malfunction.dm"
+#include "code\game\gamemodes\meteor\meteor.dm"
+#include "code\game\gamemodes\meteor\meteors.dm"
+#include "code\game\gamemodes\mutiny\auth_key.dm"
+#include "code\game\gamemodes\mutiny\directive.dm"
+#include "code\game\gamemodes\mutiny\emergency_authentication_device.dm"
+#include "code\game\gamemodes\mutiny\key_pinpointer.dm"
+#include "code\game\gamemodes\mutiny\mutiny.dm"
+#include "code\game\gamemodes\mutiny\mutiny_admin.dm"
+#include "code\game\gamemodes\mutiny\mutiny_fluff.dm"
+#include "code\game\gamemodes\mutiny\mutiny_hooks.dm"
+#include "code\game\gamemodes\mutiny\directives\alien_fraud_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\bluespace_contagion_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\financial_crisis_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\ipc_virus_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\research_to_ripleys_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\tau_ceti_needs_women_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\terminations_directive.dm"
+#include "code\game\gamemodes\mutiny\directives\vox_heist.dm"
+#include "code\game\gamemodes\nations\flag_pinpointer.dm"
+#include "code\game\gamemodes\nations\flagprocs.dm"
+#include "code\game\gamemodes\nations\nationdatums.dm"
+#include "code\game\gamemodes\nations\nations.dm"
+#include "code\game\gamemodes\ninja\ninja.dm"
+#include "code\game\gamemodes\nuclear\nuclear.dm"
+#include "code\game\gamemodes\nuclear\nuclearbomb.dm"
+#include "code\game\gamemodes\nuclear\pinpointer.dm"
+#include "code\game\gamemodes\revolution\revolution.dm"
+#include "code\game\gamemodes\revolution\rp_revolution.dm"
+#include "code\game\gamemodes\traitor\traitor.dm"
+#include "code\game\gamemodes\vampire\hud.dm"
+#include "code\game\gamemodes\vampire\vampire.dm"
+#include "code\game\gamemodes\vampire\vampire_powers.dm"
+#include "code\game\gamemodes\vox\vox.dm"
+#include "code\game\gamemodes\vox\heist\heist.dm"
+#include "code\game\gamemodes\vox\trade\trade.dm"
+#include "code\game\gamemodes\wizard\artefact.dm"
+#include "code\game\gamemodes\wizard\raginmages.dm"
+#include "code\game\gamemodes\wizard\rightandwrong.dm"
+#include "code\game\gamemodes\wizard\soulstone.dm"
+#include "code\game\gamemodes\wizard\spellbook.dm"
+#include "code\game\gamemodes\wizard\wizard.dm"
+#include "code\game\gamemodes\xenos\xenos.dm"
+#include "code\game\jobs\access.dm"
+#include "code\game\jobs\job_controller.dm"
+#include "code\game\jobs\job_objective.dm"
+#include "code\game\jobs\jobprocs.dm"
+#include "code\game\jobs\jobs.dm"
+#include "code\game\jobs\whitelist.dm"
+#include "code\game\jobs\job\civilian.dm"
+#include "code\game\jobs\job\engineering.dm"
+#include "code\game\jobs\job\job.dm"
+#include "code\game\jobs\job\medical.dm"
+#include "code\game\jobs\job\science.dm"
+#include "code\game\jobs\job\security.dm"
+#include "code\game\jobs\job\silicon.dm"
+#include "code\game\jobs\job\supervisor.dm"
+#include "code\game\jobs\job\support.dm"
+#include "code\game\jobs\job\support_chaplain.dm"
+#include "code\game\jobs\job_objectives\science.dm"
+#include "code\game\machinery\adv_med.dm"
+#include "code\game\machinery\ai_slipper.dm"
+#include "code\game\machinery\alarm.dm"
+#include "code\game\machinery\atmo_control.dm"
+#include "code\game\machinery\autolathe.dm"
+#include "code\game\machinery\Beacon.dm"
+#include "code\game\machinery\bees_apiary.dm"
+#include "code\game\machinery\bees_items.dm"
+#include "code\game\machinery\biogenerator.dm"
+#include "code\game\machinery\buttons.dm"
+#include "code\game\machinery\cell_charger.dm"
+#include "code\game\machinery\cloning.dm"
+#include "code\game\machinery\constructable_frame.dm"
+#include "code\game\machinery\cryo.dm"
+#include "code\game\machinery\cryopod.dm"
+#include "code\game\machinery\deployable.dm"
+#include "code\game\machinery\door_control.dm"
+#include "code\game\machinery\doppler_array.dm"
+#include "code\game\machinery\flasher.dm"
+#include "code\game\machinery\floodlight.dm"
+#include "code\game\machinery\Freezer.dm"
+#include "code\game\machinery\hologram.dm"
+#include "code\game\machinery\holosign.dm"
+#include "code\game\machinery\hydroponics.dm"
+#include "code\game\machinery\igniter.dm"
+#include "code\game\machinery\iv_drip.dm"
+#include "code\game\machinery\lightswitch.dm"
+#include "code\game\machinery\machinery.dm"
+#include "code\game\machinery\magnet.dm"
+#include "code\game\machinery\mass_driver.dm"
+#include "code\game\machinery\metaldetector.dm"
+#include "code\game\machinery\navbeacon.dm"
+#include "code\game\machinery\newscaster.dm"
+#include "code\game\machinery\OpTable.dm"
+#include "code\game\machinery\overview.dm"
+#include "code\game\machinery\PDApainter.dm"
+#include "code\game\machinery\portable_turret.dm"
+#include "code\game\machinery\recharger.dm"
+#include "code\game\machinery\rechargestation.dm"
+#include "code\game\machinery\recycler.dm"
+#include "code\game\machinery\requests_console.dm"
+#include "code\game\machinery\robot_fabricator.dm"
+#include "code\game\machinery\seed_extractor.dm"
+#include "code\game\machinery\shieldgen.dm"
+#include "code\game\machinery\Sleeper.dm"
+#include "code\game\machinery\slotmachine.dm"
+#include "code\game\machinery\spaceheater.dm"
+#include "code\game\machinery\status_display.dm"
+#include "code\game\machinery\suit_storage_unit.dm"
+#include "code\game\machinery\supply_display.dm"
+#include "code\game\machinery\syndicatebeacon.dm"
+#include "code\game\machinery\syndicatebomb.dm"
+#include "code\game\machinery\telepad.dm"
+#include "code\game\machinery\teleporter.dm"
+#include "code\game\machinery\transformer.dm"
+#include "code\game\machinery\turrets.dm"
+#include "code\game\machinery\vending.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\canister.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\scrubber.dm"
+#include "code\game\machinery\atmoalter\zvent.dm"
+#include "code\game\machinery\bots\bots.dm"
+#include "code\game\machinery\bots\cleanbot.dm"
+#include "code\game\machinery\bots\ed209bot.dm"
+#include "code\game\machinery\bots\floorbot.dm"
+#include "code\game\machinery\bots\medbot.dm"
+#include "code\game\machinery\bots\mulebot.dm"
+#include "code\game\machinery\bots\secbot.dm"
+#include "code\game\machinery\camera\camera.dm"
+#include "code\game\machinery\camera\camera_assembly.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\atmos_alert.dm"
+#include "code\game\machinery\computer\buildandrepair.dm"
+#include "code\game\machinery\computer\camera.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\HolodeckControl.dm"
+#include "code\game\machinery\computer\hologram.dm"
+#include "code\game\machinery\computer\honkputer.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\power.dm"
+#include "code\game\machinery\computer\prisoner.dm"
+#include "code\game\machinery\computer\prisonshuttle.dm"
+#include "code\game\machinery\computer\robot.dm"
+#include "code\game\machinery\computer\salvage_ship.dm"
+#include "code\game\machinery\computer\security.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\store.dm"
+#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
+#include "code\game\machinery\computer\telecrystalconsoles.dm"
+#include "code\game\machinery\computer\telescience.dm"
+#include "code\game\machinery\computer\xenos_shuttle.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\alarmlock.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\firedoor.dm"
+#include "code\game\machinery\doors\multi_tile.dm"
+#include "code\game\machinery\doors\poddoor.dm"
+#include "code\game\machinery\doors\shutters.dm"
+#include "code\game\machinery\doors\spacepod.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\simple_docking_controller.dm"
+#include "code\game\machinery\kitchen\gibber.dm"
+#include "code\game\machinery\kitchen\icecream_vat.dm"
+#include "code\game\machinery\kitchen\juicer.dm"
+#include "code\game\machinery\kitchen\microwave.dm"
+#include "code\game\machinery\kitchen\monkeyrecycler.dm"
+#include "code\game\machinery\kitchen\processor.dm"
+#include "code\game\machinery\kitchen\smartfridge.dm"
+#include "code\game\machinery\pipe\construction.dm"
+#include "code\game\machinery\pipe\pipe_dispenser.dm"
+#include "code\game\machinery\telecomms\broadcaster.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\telecomunications.dm"
+#include "code\game\machinery\telecomms\telemonitor.dm"
+#include "code\game\machinery\telecomms\traffic_control.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\mecha.dm"
+#include "code\game\mecha\mecha_construction_paths.dm"
+#include "code\game\mecha\mecha_control_console.dm"
+#include "code\game\mecha\mecha_parts.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\gygax.dm"
+#include "code\game\mecha\combat\honker.dm"
+#include "code\game\mecha\combat\marauder.dm"
+#include "code\game\mecha\combat\phazon.dm"
+#include "code\game\mecha\combat\recitence.dm"
+#include "code\game\mecha\equipment\mecha_equipment.dm"
+#include "code\game\mecha\equipment\tools\medical_tools.dm"
+#include "code\game\mecha\equipment\tools\tools.dm"
+#include "code\game\mecha\equipment\weapons\weapons.dm"
+#include "code\game\mecha\medical\medical.dm"
+#include "code\game\mecha\medical\odysseus.dm"
+#include "code\game\mecha\working\ripley.dm"
+#include "code\game\mecha\working\working.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\objs.dm"
+#include "code\game\objects\structures.dm"
+#include "code\game\objects\weapons.dm"
+#include "code\game\objects\closets\walllocker.dm"
+#include "code\game\objects\effects\aliens.dm"
+#include "code\game\objects\effects\anomalies.dm"
+#include "code\game\objects\effects\bump_teleporter.dm"
+#include "code\game\objects\effects\effect_system.dm"
+#include "code\game\objects\effects\gibs.dm"
+#include "code\game\objects\effects\glowshroom.dm"
+#include "code\game\objects\effects\landmarks.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\spiders.dm"
+#include "code\game\objects\effects\step_triggers.dm"
+#include "code\game\objects\effects\decals\cleanable.dm"
+#include "code\game\objects\effects\decals\contraband.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\posters\bs12.dm"
+#include "code\game\objects\effects\decals\posters\tgposters.dm"
+#include "code\game\objects\effects\spawners\bombspawner.dm"
+#include "code\game\objects\effects\spawners\gibspawner.dm"
+#include "code\game\objects\effects\spawners\vaultspawner.dm"
+#include "code\game\objects\items\apc_frame.dm"
+#include "code\game\objects\items\blueprints.dm"
+#include "code\game\objects\items\bluespace_crystal.dm"
+#include "code\game\objects\items\bodybag.dm"
+#include "code\game\objects\items\candle.dm"
+#include "code\game\objects\items\contraband.dm"
+#include "code\game\objects\items\crayons.dm"
+#include "code\game\objects\items\flag.dm"
+#include "code\game\objects\items\latexballoon.dm"
+#include "code\game\objects\items\shooting_range.dm"
+#include "code\game\objects\items\toys.dm"
+#include "code\game\objects\items\trash.dm"
+#include "code\game\objects\items\devices\aicard.dm"
+#include "code\game\objects\items\devices\chameleonproj.dm"
+#include "code\game\objects\items\devices\debugger.dm"
+#include "code\game\objects\items\devices\flash.dm"
+#include "code\game\objects\items\devices\flashlight.dm"
+#include "code\game\objects\items\devices\gps.dm"
+#include "code\game\objects\items\devices\handtv.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_freezer.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\suit_cooling.dm"
+#include "code\game\objects\items\devices\taperecorder.dm"
+#include "code\game\objects\items\devices\traitordevices.dm"
+#include "code\game\objects\items\devices\transfer_valve.dm"
+#include "code\game\objects\items\devices\uplinks.dm"
+#include "code\game\objects\items\devices\violin.dm"
+#include "code\game\objects\items\devices\whistle.dm"
+#include "code\game\objects\items\devices\PDA\cart.dm"
+#include "code\game\objects\items\devices\PDA\chatroom.dm"
+#include "code\game\objects\items\devices\PDA\PDA.dm"
+#include "code\game\objects\items\devices\PDA\radio.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\headset.dm"
+#include "code\game\objects\items\devices\radio\intercom.dm"
+#include "code\game\objects\items\devices\radio\radio.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\stacks\medical.dm"
+#include "code\game\objects\items\stacks\nanopaste.dm"
+#include "code\game\objects\items\stacks\rods.dm"
+#include "code\game\objects\items\stacks\stack.dm"
+#include "code\game\objects\items\stacks\sheets\glass.dm"
+#include "code\game\objects\items\stacks\sheets\leather.dm"
+#include "code\game\objects\items\stacks\sheets\light.dm"
+#include "code\game\objects\items\stacks\sheets\mineral.dm"
+#include "code\game\objects\items\stacks\sheets\sheet_types.dm"
+#include "code\game\objects\items\stacks\sheets\sheets.dm"
+#include "code\game\objects\items\stacks\tiles\light.dm"
+#include "code\game\objects\items\stacks\tiles\plasteel.dm"
+#include "code\game\objects\items\stacks\tiles\tile_types.dm"
+#include "code\game\objects\items\weapons\AI_modules.dm"
+#include "code\game\objects\items\weapons\alien_specific.dm"
+#include "code\game\objects\items\weapons\cards_ids.dm"
+#include "code\game\objects\items\weapons\cash.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\dice.dm"
+#include "code\game\objects\items\weapons\dna_injector.dm"
+#include "code\game\objects\items\weapons\dnascrambler.dm"
+#include "code\game\objects\items\weapons\explosives.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\hydroponics.dm"
+#include "code\game\objects\items\weapons\kitchen.dm"
+#include "code\game\objects\items\weapons\manuals.dm"
+#include "code\game\objects\items\weapons\mop.dm"
+#include "code\game\objects\items\weapons\ninja_manuscript.dm"
+#include "code\game\objects\items\weapons\paint.dm"
+#include "code\game\objects\items\weapons\paiwire.dm"
+#include "code\game\objects\items\weapons\power_cells.dm"
+#include "code\game\objects\items\weapons\RCD.dm"
+#include "code\game\objects\items\weapons\RCS.dm"
+#include "code\game\objects\items\weapons\RSF.dm"
+#include "code\game\objects\items\weapons\scrolls.dm"
+#include "code\game\objects\items\weapons\shards.dm"
+#include "code\game\objects\items\weapons\shields.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\table_rack_parts.dm"
+#include "code\game\objects\items\weapons\teleportation.dm"
+#include "code\game\objects\items\weapons\tools.dm"
+#include "code\game\objects\items\weapons\twohanded.dm"
+#include "code\game\objects\items\weapons\vending_items.dm"
+#include "code\game\objects\items\weapons\weaponry.dm"
+#include "code\game\objects\items\weapons\wires.dm"
+#include "code\game\objects\items\weapons\grenades\bananade.dm"
+#include "code\game\objects\items\weapons\grenades\chem_grenade.dm"
+#include "code\game\objects\items\weapons\grenades\clowngrenade.dm"
+#include "code\game\objects\items\weapons\grenades\emgrenade.dm"
+#include "code\game\objects\items\weapons\grenades\flashbang.dm"
+#include "code\game\objects\items\weapons\grenades\ghettobomb.dm"
+#include "code\game\objects\items\weapons\grenades\grenade.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\syndieminibomb.dm"
+#include "code\game\objects\items\weapons\implants\deadman.dm"
+#include "code\game\objects\items\weapons\implants\implant.dm"
+#include "code\game\objects\items\weapons\implants\implantcase.dm"
+#include "code\game\objects\items\weapons\implants\implantchair.dm"
+#include "code\game\objects\items\weapons\implants\implanter.dm"
+#include "code\game\objects\items\weapons\implants\implantfreedom.dm"
+#include "code\game\objects\items\weapons\implants\implantpad.dm"
+#include "code\game\objects\items\weapons\implants\implantuplink.dm"
+#include "code\game\objects\items\weapons\melee\energy.dm"
+#include "code\game\objects\items\weapons\melee\misc.dm"
+#include "code\game\objects\items\weapons\storage\backpack.dm"
+#include "code\game\objects\items\weapons\storage\bags.dm"
+#include "code\game\objects\items\weapons\storage\belt.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\briefcase.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\lockbox.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\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\tanks.dm"
+#include "code\game\objects\items\weapons\tanks\watertank.dm"
+#include "code\game\objects\random\random.dm"
+#include "code\game\objects\storage\coat.dm"
+#include "code\game\objects\structures\barsign.dm"
+#include "code\game\objects\structures\bedsheet_bin.dm"
+#include "code\game\objects\structures\coathanger.dm"
+#include "code\game\objects\structures\displaycase.dm"
+#include "code\game\objects\structures\door_assembly.dm"
+#include "code\game\objects\structures\electricchair.dm"
+#include "code\game\objects\structures\engicart.dm"
+#include "code\game\objects\structures\extinguisher.dm"
+#include "code\game\objects\structures\false_walls.dm"
+#include "code\game\objects\structures\flora.dm"
+#include "code\game\objects\structures\fullwindow.dm"
+#include "code\game\objects\structures\girders.dm"
+#include "code\game\objects\structures\grille.dm"
+#include "code\game\objects\structures\inflatable.dm"
+#include "code\game\objects\structures\janicart.dm"
+#include "code\game\objects\structures\kitchen_spike.dm"
+#include "code\game\objects\structures\ladders.dm"
+#include "code\game\objects\structures\lamarr_cage.dm"
+#include "code\game\objects\structures\lattice.dm"
+#include "code\game\objects\structures\mineral_doors.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\musician.dm"
+#include "code\game\objects\structures\noticeboard.dm"
+#include "code\game\objects\structures\safe.dm"
+#include "code\game\objects\structures\segway.dm"
+#include "code\game\objects\structures\signs.dm"
+#include "code\game\objects\structures\tables_racks.dm"
+#include "code\game\objects\structures\tank_dispenser.dm"
+#include "code\game\objects\structures\target_stake.dm"
+#include "code\game\objects\structures\watercloset.dm"
+#include "code\game\objects\structures\windoor_assembly.dm"
+#include "code\game\objects\structures\window.dm"
+#include "code\game\objects\structures\crates_lockers\closets.dm"
+#include "code\game\objects\structures\crates_lockers\crates.dm"
+#include "code\game\objects\structures\crates_lockers\crittercrate.dm"
+#include "code\game\objects\structures\crates_lockers\largecrate.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\fireaxe.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\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\wardrobe.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\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\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\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\stools.dm"
+#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm"
+#include "code\game\objects\structures\transit_tubes\station.dm"
+#include "code\game\objects\structures\transit_tubes\transit_tube.dm"
+#include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm"
+#include "code\game\structure\structure.dm"
+#include "code\game\turfs\simulated.dm"
+#include "code\game\turfs\turf.dm"
+#include "code\game\turfs\unsimulated.dm"
+#include "code\game\turfs\simulated\floor.dm"
+#include "code\game\turfs\simulated\floor_types.dm"
+#include "code\game\turfs\simulated\walls.dm"
+#include "code\game\turfs\simulated\walls_mineral.dm"
+#include "code\game\turfs\simulated\walls_misc.dm"
+#include "code\game\turfs\simulated\walls_reinforced.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\floor.dm"
+#include "code\game\turfs\unsimulated\walls.dm"
+#include "code\game\vehicles\spacepods\construction.dm"
+#include "code\game\vehicles\spacepods\equipment.dm"
+#include "code\game\vehicles\spacepods\parts.dm"
+#include "code\game\vehicles\spacepods\spacepod.dm"
+#include "code\game\verbs\atom_verbs.dm"
+#include "code\game\verbs\ooc.dm"
+#include "code\game\verbs\suicide.dm"
+#include "code\game\verbs\who.dm"
+#include "code\js\byjax.dm"
+#include "code\js\menus.dm"
+#include "code\modules\admin\admin.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_verbs.dm"
+#include "code\modules\admin\banappearance.dm"
+#include "code\modules\admin\banjob.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\NewBan.dm"
+#include "code\modules\admin\newbanjob.dm"
+#include "code\modules\admin\player_notes.dm"
+#include "code\modules\admin\player_panel.dm"
+#include "code\modules\admin\secrets.dm"
+#include "code\modules\admin\topic.dm"
+#include "code\modules\admin\ToRban.dm"
+#include "code\modules\admin\DB ban\functions.dm"
+#include "code\modules\admin\permissionverbs\permissionedit.dm"
+#include "code\modules\admin\verbs\adminhelp.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\atmosdebug.dm"
+#include "code\modules\admin\verbs\BrokenInhands.dm"
+#include "code\modules\admin\verbs\cinematic.dm"
+#include "code\modules\admin\verbs\custom_event.dm"
+#include "code\modules\admin\verbs\deadsay.dm"
+#include "code\modules\admin\verbs\debug.dm"
+#include "code\modules\admin\verbs\diagnostics.dm"
+#include "code\modules\admin\verbs\getlogs.dm"
+#include "code\modules\admin\verbs\honksquad.dm"
+#include "code\modules\admin\verbs\mapping.dm"
+#include "code\modules\admin\verbs\massmodvar.dm"
+#include "code\modules\admin\verbs\modifyvariables.dm"
+#include "code\modules\admin\verbs\one_click_antag.dm"
+#include "code\modules\admin\verbs\onlyone.dm"
+#include "code\modules\admin\verbs\onlyoneteam.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\striketeam.dm"
+#include "code\modules\admin\verbs\striketeam_syndicate.dm"
+#include "code\modules\admin\verbs\tripAI.dm"
+#include "code\modules\admin\verbs\vox_raiders.dm"
+#include "code\modules\assembly\assembly.dm"
+#include "code\modules\assembly\bomb.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\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\loot.dm"
+#include "code\modules\awaymissions\pamphlet.dm"
+#include "code\modules\awaymissions\trigger.dm"
+#include "code\modules\client\client defines.dm"
+#include "code\modules\client\client procs.dm"
+#include "code\modules\client\preferences.dm"
+#include "code\modules\client\preferences_mysql.dm"
+#include "code\modules\client\preferences_toggles.dm"
+#include "code\modules\clothing\clothing.dm"
+#include "code\modules\clothing\glasses\glasses.dm"
+#include "code\modules\clothing\glasses\hud.dm"
+#include "code\modules\clothing\gloves\boxing.dm"
+#include "code\modules\clothing\gloves\color.dm"
+#include "code\modules\clothing\gloves\miscellaneous.dm"
+#include "code\modules\clothing\gloves\ninja.dm"
+#include "code\modules\clothing\head\collectable.dm"
+#include "code\modules\clothing\head\hardhat.dm"
+#include "code\modules\clothing\head\helmet.dm"
+#include "code\modules\clothing\head\jobs.dm"
+#include "code\modules\clothing\head\misc.dm"
+#include "code\modules\clothing\head\misc_special.dm"
+#include "code\modules\clothing\head\soft_caps.dm"
+#include "code\modules\clothing\masks\boxing.dm"
+#include "code\modules\clothing\masks\breath.dm"
+#include "code\modules\clothing\masks\gasmask.dm"
+#include "code\modules\clothing\masks\miscellaneous.dm"
+#include "code\modules\clothing\shoes\colour.dm"
+#include "code\modules\clothing\shoes\magboots.dm"
+#include "code\modules\clothing\shoes\miscellaneous.dm"
+#include "code\modules\clothing\spacesuits\alien.dm"
+#include "code\modules\clothing\spacesuits\breaches.dm"
+#include "code\modules\clothing\spacesuits\captain.dm"
+#include "code\modules\clothing\spacesuits\ert.dm"
+#include "code\modules\clothing\spacesuits\miscellaneous.dm"
+#include "code\modules\clothing\spacesuits\ninja.dm"
+#include "code\modules\clothing\spacesuits\rig.dm"
+#include "code\modules\clothing\spacesuits\syndi.dm"
+#include "code\modules\clothing\spacesuits\void.dm"
+#include "code\modules\clothing\suits\alien.dm"
+#include "code\modules\clothing\suits\armor.dm"
+#include "code\modules\clothing\suits\bio.dm"
+#include "code\modules\clothing\suits\jobs.dm"
+#include "code\modules\clothing\suits\labcoat.dm"
+#include "code\modules\clothing\suits\miscellaneous.dm"
+#include "code\modules\clothing\suits\utility.dm"
+#include "code\modules\clothing\suits\wiz_robe.dm"
+#include "code\modules\clothing\under\chameleon.dm"
+#include "code\modules\clothing\under\color.dm"
+#include "code\modules\clothing\under\miscellaneous.dm"
+#include "code\modules\clothing\under\shorts.dm"
+#include "code\modules\clothing\under\syndicate.dm"
+#include "code\modules\clothing\under\ties.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\customitems\item_defines.dm"
+#include "code\modules\customitems\item_spawning.dm"
+#include "code\modules\customitems\definitions\base.dm"
+#include "code\modules\DetectiveWork\detective_work.dm"
+#include "code\modules\DetectiveWork\evidence.dm"
+#include "code\modules\DetectiveWork\footprints_and_rag.dm"
+#include "code\modules\DetectiveWork\scanner.dm"
+#include "code\modules\economy\Accounts.dm"
+#include "code\modules\economy\Accounts_DB.dm"
+#include "code\modules\economy\ATM.dm"
+#include "code\modules\economy\Economy.dm"
+#include "code\modules\economy\Economy_Events.dm"
+#include "code\modules\economy\Economy_Events_Mundane.dm"
+#include "code\modules\economy\Economy_TradeDestinations.dm"
+#include "code\modules\economy\EFTPOS.dm"
+#include "code\modules\economy\Job_Departments.dm"
+#include "code\modules\economy\POS.dm"
+#include "code\modules\economy\utils.dm"
+#include "code\modules\events\blob.dm"
+#include "code\modules\events\borers.dm"
+#include "code\modules\events\cargobonus.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\electrical_storm.dm"
+#include "code\modules\events\event.dm"
+#include "code\modules\events\event_dynamic.dm"
+#include "code\modules\events\event_manager.dm"
+#include "code\modules\events\grid_check.dm"
+#include "code\modules\events\infestation.dm"
+#include "code\modules\events\ion_storm.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\organ_failure.dm"
+#include "code\modules\events\prison_break.dm"
+#include "code\modules\events\radiation_storm.dm"
+#include "code\modules\events\rogue_drones.dm"
+#include "code\modules\events\space_ninja.dm"
+#include "code\modules\events\spacevine.dm"
+#include "code\modules\events\tear.dm"
+#include "code\modules\events\viral_infection.dm"
+#include "code\modules\events\viral_outbreak.dm"
+#include "code\modules\events\wallrot.dm"
+#include "code\modules\events\sayuevents\meaty_ores.dm"
+#include "code\modules\events\sayuevents\spooky.dm"
+#include "code\modules\events\sayuevents\undead.dm"
+#include "code\modules\events\sayuevents\wormholes.dm"
+#include "code\modules\events\tgevents\alien_infestation.dm"
+#include "code\modules\events\tgevents\anomaly.dm"
+#include "code\modules\events\tgevents\anomaly_bluespace.dm"
+#include "code\modules\events\tgevents\anomaly_flux.dm"
+#include "code\modules\events\tgevents\anomaly_grav.dm"
+#include "code\modules\events\tgevents\anomaly_pyro.dm"
+#include "code\modules\events\tgevents\anomaly_vortex.dm"
+#include "code\modules\events\tgevents\brand_intelligence.dm"
+#include "code\modules\events\tgevents\dust.dm"
+#include "code\modules\events\tgevents\false_alarm.dm"
+#include "code\modules\events\tgevents\immovable_rod.dm"
+#include "code\modules\events\tgevents\mass_hallucination.dm"
+#include "code\modules\events\tgevents\spider_infestation.dm"
+#include "code\modules\events\tgevents\vent_clog.dm"
+#include "code\modules\ext_scripts\irc.dm"
+#include "code\modules\ext_scripts\python.dm"
+#include "code\modules\flufftext\Dreaming.dm"
+#include "code\modules\flufftext\Hallucination.dm"
+#include "code\modules\flufftext\TextFilters.dm"
+#include "code\modules\food\cereal_maker.dm"
+#include "code\modules\food\cooker.dm"
+#include "code\modules\food\customizables.dm"
+#include "code\modules\food\deep_fryer.dm"
+#include "code\modules\food\food_grill.dm"
+#include "code\modules\food\icecream_vat.dm"
+#include "code\modules\food\oven.dm"
+#include "code\modules\food\recipes_microwave.dm"
+#include "code\modules\genetics\side_effects.dm"
+#include "code\modules\hydroponics\grown_inedible.dm"
+#include "code\modules\hydroponics\hydro_tools.dm"
+#include "code\modules\hydroponics\seed_datums.dm"
+#include "code\modules\hydroponics\seed_machines.dm"
+#include "code\modules\hydroponics\seed_mobs.dm"
+#include "code\modules\hydroponics\seeds.dm"
+#include "code\modules\hydroponics\vines.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\media\jukebox.dm"
+#include "code\modules\media\machinery.dm"
+#include "code\modules\media\mediamanager.dm"
+#include "code\modules\media\broadcast\receiver.dm"
+#include "code\modules\media\broadcast\transmitter.dm"
+#include "code\modules\media\broadcast\receivers\radio.dm"
+#include "code\modules\media\broadcast\transmitters\broadcast.dm"
+#include "code\modules\mining\abandonedcrates.dm"
+#include "code\modules\mining\alloys.dm"
+#include "code\modules\mining\coins.dm"
+#include "code\modules\mining\equipment_locker.dm"
+#include "code\modules\mining\machine_input_output_plates.dm"
+#include "code\modules\mining\machine_processing.dm"
+#include "code\modules\mining\machine_stacking.dm"
+#include "code\modules\mining\machine_unloading.dm"
+#include "code\modules\mining\manufacturing.dm"
+#include "code\modules\mining\materials.dm"
+#include "code\modules\mining\mine_areas.dm"
+#include "code\modules\mining\mine_items.dm"
+#include "code\modules\mining\mine_turfs.dm"
+#include "code\modules\mining\minerals.dm"
+#include "code\modules\mining\mining_recipes.dm"
+#include "code\modules\mining\mint.dm"
+#include "code\modules\mining\money_bag.dm"
+#include "code\modules\mining\ore.dm"
+#include "code\modules\mining\ore_datum.dm"
+#include "code\modules\mining\satchel_ore_boxdm.dm"
+#include "code\modules\mining\security_recipes.dm"
+#include "code\modules\mining\surprise.dm"
+#include "code\modules\mining\drilling\distribution.dm"
+#include "code\modules\mining\drilling\drill.dm"
+#include "code\modules\mining\drilling\scanner.dm"
+#include "code\modules\mining\laborcamp\laborminerals.dm"
+#include "code\modules\mining\laborcamp\laborshuttle.dm"
+#include "code\modules\mining\laborcamp\laborstacker.dm"
+#include "code\modules\mining\surprises\tg.dm"
+#include "code\modules\mining\surprises\vg.dm"
+#include "code\modules\mob\abilities.dm"
+#include "code\modules\mob\death.dm"
+#include "code\modules\mob\emote.dm"
+#include "code\modules\mob\holder.dm"
+#include "code\modules\mob\inventory.dm"
+#include "code\modules\mob\language.dm"
+#include "code\modules\mob\login.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_grab.dm"
+#include "code\modules\mob\mob_helpers.dm"
+#include "code\modules\mob\mob_movement.dm"
+#include "code\modules\mob\mob_transformation_simple.dm"
+#include "code\modules\mob\say.dm"
+#include "code\modules\mob\transform_procs.dm"
+#include "code\modules\mob\update_icons.dm"
+#include "code\modules\mob\camera\camera.dm"
+#include "code\modules\mob\dead\death.dm"
+#include "code\modules\mob\dead\observer\logout.dm"
+#include "code\modules\mob\dead\observer\observer.dm"
+#include "code\modules\mob\dead\observer\say.dm"
+#include "code\modules\mob\dead\observer\spells.dm"
+#include "code\modules\mob\living\damage_procs.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\login.dm"
+#include "code\modules\mob\living\logout.dm"
+#include "code\modules\mob\living\say.dm"
+#include "code\modules\mob\living\carbon\_defines.dm"
+#include "code\modules\mob\living\carbon\carbon.dm"
+#include "code\modules\mob\living\carbon\carbon_defenses.dm"
+#include "code\modules\mob\living\carbon\carbon_defines.dm"
+#include "code\modules\mob\living\carbon\give.dm"
+#include "code\modules\mob\living\carbon\shock.dm"
+#include "code\modules\mob\living\carbon\species.dm"
+#include "code\modules\mob\living\carbon\alien\alien.dm"
+#include "code\modules\mob\living\carbon\alien\alien_defenses.dm"
+#include "code\modules\mob\living\carbon\alien\death.dm"
+#include "code\modules\mob\living\carbon\alien\login.dm"
+#include "code\modules\mob\living\carbon\alien\logout.dm"
+#include "code\modules\mob\living\carbon\alien\powers.dm"
+#include "code\modules\mob\living\carbon\alien\say.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\empress.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\life.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\login.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm"
+#include "code\modules\mob\living\carbon\alien\larva\death.dm"
+#include "code\modules\mob\living\carbon\alien\larva\emote.dm"
+#include "code\modules\mob\living\carbon\alien\larva\inventory.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\powers.dm"
+#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm"
+#include "code\modules\mob\living\carbon\alien\special\facehugger.dm"
+#include "code\modules\mob\living\carbon\brain\brain.dm"
+#include "code\modules\mob\living\carbon\brain\brain_item.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\posibrain.dm"
+#include "code\modules\mob\living\carbon\brain\say.dm"
+#include "code\modules\mob\living\carbon\human\death.dm"
+#include "code\modules\mob\living\carbon\human\emote.dm"
+#include "code\modules\mob\living\carbon\human\examine.dm"
+#include "code\modules\mob\living\carbon\human\human.dm"
+#include "code\modules\mob\living\carbon\human\human_attackalien.dm"
+#include "code\modules\mob\living\carbon\human\human_attackhand.dm"
+#include "code\modules\mob\living\carbon\human\human_attackpaw.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_movement.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\login.dm"
+#include "code\modules\mob\living\carbon\human\say.dm"
+#include "code\modules\mob\living\carbon\human\update_icons.dm"
+#include "code\modules\mob\living\carbon\human\whisper.dm"
+#include "code\modules\mob\living\carbon\human\plasmaman\species.dm"
+#include "code\modules\mob\living\carbon\metroid\death.dm"
+#include "code\modules\mob\living\carbon\metroid\emote.dm"
+#include "code\modules\mob\living\carbon\metroid\examine.dm"
+#include "code\modules\mob\living\carbon\metroid\hud.dm"
+#include "code\modules\mob\living\carbon\metroid\life.dm"
+#include "code\modules\mob\living\carbon\metroid\login.dm"
+#include "code\modules\mob\living\carbon\metroid\metroid.dm"
+#include "code\modules\mob\living\carbon\metroid\powers.dm"
+#include "code\modules\mob\living\carbon\metroid\say.dm"
+#include "code\modules\mob\living\carbon\metroid\subtypes.dm"
+#include "code\modules\mob\living\carbon\metroid\update_icons.dm"
+#include "code\modules\mob\living\carbon\monkey\death.dm"
+#include "code\modules\mob\living\carbon\monkey\diona.dm"
+#include "code\modules\mob\living\carbon\monkey\emote.dm"
+#include "code\modules\mob\living\carbon\monkey\examine.dm"
+#include "code\modules\mob\living\carbon\monkey\inventory.dm"
+#include "code\modules\mob\living\carbon\monkey\life.dm"
+#include "code\modules\mob\living\carbon\monkey\login.dm"
+#include "code\modules\mob\living\carbon\monkey\monkey.dm"
+#include "code\modules\mob\living\carbon\monkey\powers.dm"
+#include "code\modules\mob\living\carbon\monkey\update_icons.dm"
+#include "code\modules\mob\living\silicon\death.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\ai\ai.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\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\say.dm"
+#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm"
+#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm"
+#include "code\modules\mob\living\silicon\ai\freelook\eye.dm"
+#include "code\modules\mob\living\silicon\ai\freelook\read_me.dm"
+#include "code\modules\mob\living\silicon\ai\freelook\update_triggers.dm"
+#include "code\modules\mob\living\silicon\ai\freelook\visibility_interface.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\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\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\robot\component.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\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_damage.dm"
+#include "code\modules\mob\living\silicon\robot\robot_items.dm"
+#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
+#include "code\modules\mob\living\silicon\robot\robot_movement.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\simple_animal\bees.dm"
+#include "code\modules\mob\living\simple_animal\borer.dm"
+#include "code\modules\mob\living\simple_animal\constructs.dm"
+#include "code\modules\mob\living\simple_animal\corpse.dm"
+#include "code\modules\mob\living\simple_animal\parrot.dm"
+#include "code\modules\mob\living\simple_animal\powers.dm"
+#include "code\modules\mob\living\simple_animal\shade.dm"
+#include "code\modules\mob\living\simple_animal\simple_animal.dm"
+#include "code\modules\mob\living\simple_animal\tribbles.dm"
+#include "code\modules\mob\living\simple_animal\vox.dm"
+#include "code\modules\mob\living\simple_animal\worm.dm"
+#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
+#include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
+#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
+#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm"
+#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
+#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
+#include "code\modules\mob\living\simple_animal\friendly\slime.dm"
+#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm"
+#include "code\modules\mob\living\simple_animal\friendly\tomato.dm"
+#include "code\modules\mob\living\simple_animal\hostile\alien.dm"
+#include "code\modules\mob\living\simple_animal\hostile\bat.dm"
+#include "code\modules\mob\living\simple_animal\hostile\bear.dm"
+#include "code\modules\mob\living\simple_animal\hostile\carp.dm"
+#include "code\modules\mob\living\simple_animal\hostile\creature.dm"
+#include "code\modules\mob\living\simple_animal\hostile\faithless.dm"
+#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm"
+#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"
+#include "code\modules\mob\living\simple_animal\hostile\hostile.dm"
+#include "code\modules\mob\living\simple_animal\hostile\mimic.dm"
+#include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm"
+#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm"
+#include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
+#include "code\modules\mob\living\simple_animal\hostile\russian.dm"
+#include "code\modules\mob\living\simple_animal\hostile\statue.dm"
+#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm"
+#include "code\modules\mob\living\simple_animal\hostile\tree.dm"
+#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm"
+#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm"
+#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm"
+#include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm"
+#include "code\modules\mob\new_player\login.dm"
+#include "code\modules\mob\new_player\logout.dm"
+#include "code\modules\mob\new_player\new_player.dm"
+#include "code\modules\mob\new_player\poll.dm"
+#include "code\modules\mob\new_player\preferences_setup.dm"
+#include "code\modules\mob\new_player\sprite_accessories.dm"
+#include "code\modules\mob\spirit\cultnet.dm"
+#include "code\modules\mob\spirit\movement.dm"
+#include "code\modules\mob\spirit\spirit.dm"
+#include "code\modules\mob\spirit\viewpoint.dm"
+#include "code\modules\mob\spirit\mask\mask.dm"
+#include "code\modules\mob\spirit\mask\respawn.dm"
+#include "code\modules\nano\_JSON.dm"
+#include "code\modules\nano\JSON Reader.dm"
+#include "code\modules\nano\JSON Writer.dm"
+#include "code\modules\nano\nanoexternal.dm"
+#include "code\modules\nano\nanomanager.dm"
+#include "code\modules\nano\nanomapgen.dm"
+#include "code\modules\nano\nanoui.dm"
+#include "code\modules\organs\blood.dm"
+#include "code\modules\organs\organ.dm"
+#include "code\modules\organs\organ_external.dm"
+#include "code\modules\organs\organ_internal.dm"
+#include "code\modules\organs\pain.dm"
+#include "code\modules\organs\skeleton.dm"
+#include "code\modules\organs\wound.dm"
+#include "code\modules\paperwork\carbonpaper.dm"
+#include "code\modules\paperwork\clipboard.dm"
+#include "code\modules\paperwork\faxmachine.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\paperbin.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\power\apc.dm"
+#include "code\modules\power\cable.dm"
+#include "code\modules\power\cable_heavyduty.dm"
+#include "code\modules\power\cable_logic.dm"
+#include "code\modules\power\cell.dm"
+#include "code\modules\power\engine.dm"
+#include "code\modules\power\generator.dm"
+#include "code\modules\power\generator_type2.dm"
+#include "code\modules\power\gravitygenerator.dm"
+#include "code\modules\power\lighting.dm"
+#include "code\modules\power\port_gen.dm"
+#include "code\modules\power\power.dm"
+#include "code\modules\power\smes.dm"
+#include "code\modules\power\solar.dm"
+#include "code\modules\power\switch.dm"
+#include "code\modules\power\terminal.dm"
+#include "code\modules\power\tracker.dm"
+#include "code\modules\power\turbine.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\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\projectiles\ammunition.dm"
+#include "code\modules\projectiles\gun.dm"
+#include "code\modules\projectiles\projectile.dm"
+#include "code\modules\projectiles\targeting.dm"
+#include "code\modules\projectiles\ammunition\boxes.dm"
+#include "code\modules\projectiles\ammunition\bullets.dm"
+#include "code\modules\projectiles\ammunition\magazines.dm"
+#include "code\modules\projectiles\guns\alien.dm"
+#include "code\modules\projectiles\guns\energy.dm"
+#include "code\modules\projectiles\guns\magic.dm"
+#include "code\modules\projectiles\guns\projectile.dm"
+#include "code\modules\projectiles\guns\energy\laser.dm"
+#include "code\modules\projectiles\guns\energy\nuclear.dm"
+#include "code\modules\projectiles\guns\energy\pulse.dm"
+#include "code\modules\projectiles\guns\energy\special.dm"
+#include "code\modules\projectiles\guns\energy\stun.dm"
+#include "code\modules\projectiles\guns\energy\temperature.dm"
+#include "code\modules\projectiles\guns\magic\staff.dm"
+#include "code\modules\projectiles\guns\magic\wand.dm"
+#include "code\modules\projectiles\guns\projectile\automatic.dm"
+#include "code\modules\projectiles\guns\projectile\crossbow.dm"
+#include "code\modules\projectiles\guns\projectile\launcher.dm"
+#include "code\modules\projectiles\guns\projectile\pistol.dm"
+#include "code\modules\projectiles\guns\projectile\pneumatic.dm"
+#include "code\modules\projectiles\guns\projectile\revolver.dm"
+#include "code\modules\projectiles\guns\projectile\rocket.dm"
+#include "code\modules\projectiles\guns\projectile\shotgun.dm"
+#include "code\modules\projectiles\projectile\animate.dm"
+#include "code\modules\projectiles\projectile\beams.dm"
+#include "code\modules\projectiles\projectile\bullets.dm"
+#include "code\modules\projectiles\projectile\change.dm"
+#include "code\modules\projectiles\projectile\energy.dm"
+#include "code\modules\projectiles\projectile\force.dm"
+#include "code\modules\projectiles\projectile\magic.dm"
+#include "code\modules\projectiles\projectile\special.dm"
+#include "code\modules\reagents\Chemistry-Colours.dm"
+#include "code\modules\reagents\Chemistry-Holder.dm"
+#include "code\modules\reagents\Chemistry-Machinery.dm"
+#include "code\modules\reagents\Chemistry-Readme.dm"
+#include "code\modules\reagents\Chemistry-Reagents-Antidepressants.dm"
+#include "code\modules\reagents\Chemistry-Reagents.dm"
+#include "code\modules\reagents\Chemistry-Recipes.dm"
+#include "code\modules\reagents\dartgun.dm"
+#include "code\modules\reagents\grenade_launcher.dm"
+#include "code\modules\reagents\reagent_containers.dm"
+#include "code\modules\reagents\reagent_dispenser.dm"
+#include "code\modules\reagents\syringe_gun.dm"
+#include "code\modules\reagents\reagent_containers\blood_pack.dm"
+#include "code\modules\reagents\reagent_containers\borghydro.dm"
+#include "code\modules\reagents\reagent_containers\dropper.dm"
+#include "code\modules\reagents\reagent_containers\drugs.dm"
+#include "code\modules\reagents\reagent_containers\food.dm"
+#include "code\modules\reagents\reagent_containers\glass.dm"
+#include "code\modules\reagents\reagent_containers\hypospray.dm"
+#include "code\modules\reagents\reagent_containers\pill.dm"
+#include "code\modules\reagents\reagent_containers\robodropper.dm"
+#include "code\modules\reagents\reagent_containers\spray.dm"
+#include "code\modules\reagents\reagent_containers\syringes.dm"
+#include "code\modules\reagents\reagent_containers\food\cans.dm"
+#include "code\modules\reagents\reagent_containers\food\condiment.dm"
+#include "code\modules\reagents\reagent_containers\food\drinks.dm"
+#include "code\modules\reagents\reagent_containers\food\sandwich.dm"
+#include "code\modules\reagents\reagent_containers\food\snacks.dm"
+#include "code\modules\reagents\reagent_containers\food\drinks\bottle.dm"
+#include "code\modules\reagents\reagent_containers\food\drinks\drinkingglass.dm"
+#include "code\modules\reagents\reagent_containers\food\drinks\jar.dm"
+#include "code\modules\reagents\reagent_containers\food\drinks\bottle\robot.dm"
+#include "code\modules\reagents\reagent_containers\food\snacks\grown.dm"
+#include "code\modules\reagents\reagent_containers\food\snacks\meat.dm"
+#include "code\modules\reagents\reagent_containers\glass\bottle.dm"
+#include "code\modules\reagents\reagent_containers\glass\bottle\robot.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\message_server.dm"
+#include "code\modules\research\protolathe.dm"
+#include "code\modules\research\rd-readme.dm"
+#include "code\modules\research\rdconsole.dm"
+#include "code\modules\research\rdmachines.dm"
+#include "code\modules\research\research.dm"
+#include "code\modules\research\server.dm"
+#include "code\modules\research\xenoarchaeology\areas.dm"
+#include "code\modules\research\xenoarchaeology\chemistry.dm"
+#include "code\modules\research\xenoarchaeology\geosample.dm"
+#include "code\modules\research\xenoarchaeology\manuals.dm"
+#include "code\modules\research\xenoarchaeology\master_controller.dm"
+#include "code\modules\research\xenoarchaeology\misc.dm"
+#include "code\modules\research\xenoarchaeology\readme.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact_autocloner.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact_crystal.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact_gigadrill.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact_hoverpod.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact_replicator.dm"
+#include "code\modules\research\xenoarchaeology\artifact\artifact_unknown.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effect.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_affect_cold.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_badfeeling.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_cellcharge.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_celldrain.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_dnaswitch.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_emp.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_forcefield.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasco2.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasnitro.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasoxy.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasplasma.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gassleeping.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_goodfeeling.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heal.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heat.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_hurt.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_radiate.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_roboheal.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_robohurt.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_sleepy.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_stun.dm"
+#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_teleport.dm"
+#include "code\modules\research\xenoarchaeology\finds\finds.dm"
+#include "code\modules\research\xenoarchaeology\finds\finds_defines.dm"
+#include "code\modules\research\xenoarchaeology\finds\finds_fossils.dm"
+#include "code\modules\research\xenoarchaeology\finds\finds_misc.dm"
+#include "code\modules\research\xenoarchaeology\finds\finds_special.dm"
+#include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm"
+#include "code\modules\research\xenoarchaeology\genetics\prehistoric_animals.dm"
+#include "code\modules\research\xenoarchaeology\genetics\prehistoric_plants.dm"
+#include "code\modules\research\xenoarchaeology\genetics\prehistoric_seeds.dm"
+#include "code\modules\research\xenoarchaeology\genetics\reconstitutor.dm"
+#include "code\modules\research\xenoarchaeology\machinery\artifact_analyser.dm"
+#include "code\modules\research\xenoarchaeology\machinery\artifact_harvester.dm"
+#include "code\modules\research\xenoarchaeology\machinery\artifact_scanner.dm"
+#include "code\modules\research\xenoarchaeology\machinery\coolant.dm"
+#include "code\modules\research\xenoarchaeology\machinery\geosample_scanner.dm"
+#include "code\modules\research\xenoarchaeology\tools\ano_device_battery.dm"
+#include "code\modules\research\xenoarchaeology\tools\anomaly_suit.dm"
+#include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm"
+#include "code\modules\research\xenoarchaeology\tools\gearbelt.dm"
+#include "code\modules\research\xenoarchaeology\tools\suspension_generator.dm"
+#include "code\modules\research\xenoarchaeology\tools\tools.dm"
+#include "code\modules\research\xenoarchaeology\tools\tools_anoscanner.dm"
+#include "code\modules\research\xenoarchaeology\tools\tools_coresampler.dm"
+#include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm"
+#include "code\modules\research\xenoarchaeology\tools\tools_locater.dm"
+#include "code\modules\research\xenoarchaeology\tools\tools_pickaxe.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\shuttles\antagonist.dm"
+#include "code\modules\shuttles\departmental.dm"
+#include "code\modules\shuttles\escape_pods.dm"
+#include "code\modules\shuttles\shuttle.dm"
+#include "code\modules\shuttles\shuttle_console.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\store\items.dm"
+#include "code\modules\store\store.dm"
+#include "code\modules\supermatter\supermatter.dm"
+#include "code\modules\surgery\bones.dm"
+#include "code\modules\surgery\braincore.dm"
+#include "code\modules\surgery\eye.dm"
+#include "code\modules\surgery\face.dm"
+#include "code\modules\surgery\generic.dm"
+#include "code\modules\surgery\headreattach.dm"
+#include "code\modules\surgery\implant.dm"
+#include "code\modules\surgery\other.dm"
+#include "code\modules\surgery\ribcage.dm"
+#include "code\modules\surgery\robolimbs.dm"
+#include "code\modules\surgery\surgery.dm"
+#include "code\modules\vehicles\ambulance.dm"
+#include "code\modules\vehicles\cargo_train.dm"
+#include "code\modules\vehicles\janicart.dm"
+#include "code\modules\vehicles\train.dm"
+#include "code\modules\vehicles\vehicle.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\helpers.dm"
+#include "code\modules\virus2\isolator.dm"
+#include "code\modules\virus2\items_devices.dm"
+#include "code\WorkInProgress\autopsy.dm"
+#include "code\WorkInProgress\buildmode.dm"
+#include "code\WorkInProgress\explosion_particles.dm"
+#include "code\WorkInProgress\fireworks.dm"
+#include "code\WorkInProgress\periodic_news.dm"
+#include "code\WorkInProgress\Apples\artifacts.dm"
+#include "code\WorkInProgress\Cael_Aislinn\sculpture.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\falsewall.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_animals.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_plants.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_temple.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_tribe.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_turfs.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm"
+#include "code\WorkInProgress\Cael_Aislinn\Rust\areas.dm"
+#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\circuits_and_designs.dm"
+#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\energy_field.dm"
+#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_capacitor.dm"
+#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_gen.dm"
+#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_gen_external.dm"
+#include "code\WorkInProgress\Chinsky\ashtray.dm"
+#include "code\WorkInProgress\Chinsky\guestpass.dm"
+#include "code\WorkInProgress\Cib\MedicalSideEffects.dm"
+#include "code\WorkInProgress\computer3\bios.dm"
+#include "code\WorkInProgress\computer3\buildandrepair.dm"
+#include "code\WorkInProgress\computer3\component.dm"
+#include "code\WorkInProgress\computer3\computer.dm"
+#include "code\WorkInProgress\computer3\computer3_notes.dm"
+#include "code\WorkInProgress\computer3\file.dm"
+#include "code\WorkInProgress\computer3\laptop.dm"
+#include "code\WorkInProgress\computer3\lapvend.dm"
+#include "code\WorkInProgress\computer3\networking.dm"
+#include "code\WorkInProgress\computer3\NTOS.dm"
+#include "code\WorkInProgress\computer3\program.dm"
+#include "code\WorkInProgress\computer3\program_disks.dm"
+#include "code\WorkInProgress\computer3\server.dm"
+#include "code\WorkInProgress\computer3\storage.dm"
+#include "code\WorkInProgress\computer3\computers\arcade.dm"
+#include "code\WorkInProgress\computer3\computers\atmos_alert.dm"
+#include "code\WorkInProgress\computer3\computers\camera.dm"
+#include "code\WorkInProgress\computer3\computers\card.dm"
+#include "code\WorkInProgress\computer3\computers\communications.dm"
+#include "code\WorkInProgress\computer3\computers\crew.dm"
+#include "code\WorkInProgress\computer3\computers\customs.dm"
+#include "code\WorkInProgress\computer3\computers\HolodeckControl.dm"
+#include "code\WorkInProgress\computer3\computers\law.dm"
+#include "code\WorkInProgress\computer3\computers\medical.dm"
+#include "code\WorkInProgress\computer3\computers\Operating.dm"
+#include "code\WorkInProgress\computer3\computers\power.dm"
+#include "code\WorkInProgress\computer3\computers\prisoner.dm"
+#include "code\WorkInProgress\computer3\computers\robot.dm"
+#include "code\WorkInProgress\computer3\computers\security.dm"
+#include "code\WorkInProgress\computer3\computers\welcome.dm"
+#include "code\WorkInProgress\Mini\atmos_control.dm"
+#include "code\WorkInProgress\Ported\policetape.dm"
+#include "code\WorkInProgress\Sayu\belt.dm"
+#include "code\WorkInProgress\Sayu\cargoprofile.dm"
+#include "code\WorkInProgress\Sayu\grenades.dm"
+#include "code\WorkInProgress\Sayu\programmable.dm"
+#include "code\WorkInProgress\Sayu\random_items.dm"
+#include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm"
+#include "code\WorkInProgress\ZomgPonies\karma.dm"
+#include "code\WorkInProgress\ZomgPonies\clothing\civilian.dm"
+#include "code\WorkInProgress\ZomgPonies\mobs\pony.dm"
+#include "code\WorkInProgress\ZomgPonies\oldcode\turntable.dm"
+#include "code\WorkInProgress\ZomgPonies\powerarmor\powerarmor.dm"
+#include "code\WorkInProgress\ZomgPonies\powerarmor\powerarmorcomponents.dm"
+#include "code\ZAS\_docs.dm"
+#include "code\ZAS\_gas_mixture.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\Plasma.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\cyberiad.dmm"
+#include "maps\RandomZLevels\clown3.dmm"
+// END_INCLUDE
diff --git a/baystation12.otr b/paradise.otr
similarity index 100%
rename from baystation12.otr
rename to paradise.otr