Auto-Resleeving

Adds auto-resleeving!

Under normal conditions, this allows one to resleeve their character after they have died in the round. 

The auto-resleever requires a bit of time after death to be used:

-Characters who died due to vore reasons must wait 15 minutes

-Characters who died for other reasons must wait 30 minutes

The auto-resleever only requires power, there is no biomass requirement.

The auto-resleever also works for species that can ordinarily not be resleeved, since the potential for abuse there is minimal.

To use the auto-resleever, one only needs to click it as a ghost. If it is ready to revive you, it will pop up a confirmation dialogue.

Additionally, the automatic transcore notification, and the 'Cancel Transcore Notification' verb has been removed. Ghosts have a 'Notify Transcore' verb, which can be used around 5 minutes after death if they wish to notify medical.

This should eliminate false positives for medical, because no one likes resleeving people who don't need it.

This does not otherwise alter the original resleeving process or machines.

The auto-resleever for the tether is on Z1, just south of the psych office. It also features a return chute for items right next to the door. (I wanted to put it in the resleeving room's cleaning room, but it's really far into medical)

The auto-resleever for the stellar delight is in the resleeving's cleaning room.

I also fixed the access on the tourbus's APC while I was there.
This commit is contained in:
VerySoft
2022-03-25 02:49:10 -04:00
parent 2403db18f3
commit 13e8bf9d8d
11 changed files with 492 additions and 114 deletions
+2 -1
View File
@@ -112,10 +112,11 @@ SUBSYSTEM_DEF(transcore)
if(since_backup < overdue_time)
curr_MR.dead_state = MR_NORMAL
else
if(curr_MR.dead_state != MR_DEAD) //First time switching to dead
/* if(curr_MR.dead_state != MR_DEAD) //First time switching to dead //Remove auto notification! Ghosts have a button to notify, so no more false flags.
if(curr_MR.do_notify)
db.notify(curr_MR)
curr_MR.last_notification = world.time
*/
curr_MR.dead_state = MR_DEAD
if(MC_TICK_CHECK)
+2
View File
@@ -9,6 +9,8 @@
return
for(var/obj/item/W in M)
if(istype(W, /obj/item/weapon/implant/backup) || istype(W, /obj/item/device/nif)) //VOREStation Edit - There's basically no reason to remove either of these
continue //VOREStation Edit
M.drop_from_inventory(W)
log_admin("[key_name(usr)] made [key_name(M)] drop everything!")
+10 -4
View File
@@ -68,8 +68,14 @@
var/datum/transcore_db/db = SStranscore.db_by_mind_name(mind.name)
if(db)
var/datum/transhuman/mind_record/record = db.backed_up[src.mind.name]
if(!(record.dead_state == MR_DEAD))
to_chat(src, "<span class='warning'>Your backup is not past-due yet.</span>")
if(!(record.dead_state == MR_DEAD))
if((world.time - timeofdeath ) > 5 MINUTES) //Allows notify transcore to be used if you have an entry but for some reason weren't marked as dead
record.dead_state = MR_DEAD //Such as if you got scanned but didn't take an implant. It's a little funky, but I mean, you got scanned
db.notify(record) //So you probably will want to let someone know if you die.
record.last_notification = world.time
to_chat(src, "<span class='notice'>New notification has been sent.</span>")
else
to_chat(src, "<span class='warning'>Your backup is not past-due yet.</span>")
else if((world.time - record.last_notification) < 5 MINUTES)
to_chat(src, "<span class='warning'>Too little time has passed since your last notification.</span>")
else
@@ -78,7 +84,7 @@
to_chat(src, "<span class='notice'>New notification has been sent.</span>")
else
to_chat(src,"<span class='warning'>No backup record could be found, sorry.</span>")
/*
/mob/observer/dead/verb/backup_delay()
set category = "Ghost"
set name = "Cancel Transcore Notification"
@@ -97,7 +103,7 @@
to_chat(src, "<span class='notice'>Overdue mind backup notification delayed successfully.</span>")
else
to_chat(src,"<span class='warning'>No backup record could be found, sorry.</span>")
*/
/mob/observer/dead/verb/findghostpod() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
set category = "Ghost"
set name = "Find Ghost Pod"
+4 -3
View File
@@ -485,9 +485,10 @@ This function completely restores a damaged organ to perfect condition.
// remove embedded objects and drop them on the floor
for(var/obj/implanted_object in implants)
if(!istype(implanted_object,/obj/item/weapon/implant) && !istype(implanted_object,/obj/item/device/nif)) // We don't want to remove REAL implants. Just shrapnel etc. //VOREStation Edit - NIFs pls
implanted_object.loc = get_turf(src)
implants -= implanted_object
if(istype(implanted_object,/obj/item/weapon/implant) || istype(implanted_object,/obj/item/device/nif)) // We don't want to remove REAL implants. Just shrapnel etc. //VOREStation Edit - NIFs pls
continue
implanted_object.loc = get_turf(src)
implants -= implanted_object
if(!owner.has_embedded_objects())
owner.clear_alert("embeddedobject")
+173
View File
@@ -0,0 +1,173 @@
/obj/machinery/transhuman/autoresleever
name = "automatic resleever"
desc = "Uses advanced technology to detect when someone needs to be resleeved, and automatically prints and sleeves them into a new body. It even generates its own biomass!"
icon = 'icons/obj/machines/autoresleever.dmi'
icon_state = "autoresleever"
density = TRUE
anchored = TRUE
var/equip_body = FALSE //If true, this will spawn the person with equipment
var/default_job = USELESS_JOB //The job that will be assigned if equip_body is true and the ghost doesn't have a job
var/ghost_spawns = FALSE //If true, allows ghosts who haven't been spawned yet to spawn
var/vore_respawn = 15 MINUTES //The time to wait if you died from vore
var/respawn = 30 MINUTES //The time to wait if you didn't die from vore
var/spawn_slots = -1 //How many people can be spawned from this? If -1 it's unlimited
var/spawntype //The kind of mob that will be spawned, if set.
var/update_i = FALSE
/obj/machinery/transhuman/autoresleever/update_icon()
. = ..()
if(stat)
icon_state = "autoresleever-o"
else
icon_state = "autoresleever"
/obj/machinery/transhuman/autoresleever/power_change()
. = ..()
update_icon()
/obj/machinery/transhuman/autoresleever/attack_ghost(mob/observer/dead/user as mob)
update_icon()
if(spawn_slots == 0)
to_chat(user, "<span class='warning'>There are no more respawn slots.</span>")
return
if(user.mind)
if(user.mind.vore_death)
if(vore_respawn <= world.time - user.timeofdeath)
autoresleeve(user)
else
to_chat(user, "<span class='warning'>You must wait [((vore_respawn - (world.time - user.timeofdeath)) * 0.1) / 60] minutes to use \the [src].</span>")
return
else if(respawn <= world.time - user.timeofdeath)
autoresleeve(user)
else
to_chat(user, "<span class='warning'>You must wait [((respawn - (world.time - user.timeofdeath)) * 0.1) /60] minutes to use \the [src].</span>")
return
else if(spawntype)
if(tgui_alert(user, "This [src] spawns something special, would you like to play as it?", "Creachur", list("No","Yes")) == "Yes")
autoresleeve(user)
else if(ghost_spawns)
if(tgui_alert(user, "Would you like to be spawned here as your presently loaded character?", "Spawn here", list("No","Yes")) == "Yes")
autoresleeve(user)
else
to_chat(user, "<span class='warning'>You need to have been spawned in order to respawn here.</span>")
/obj/machinery/transhuman/autoresleever/attackby(var/mob/user) //Let's not let people mess with this.
update_icon()
if(istype(user,/mob/observer/dead))
attack_ghost(user)
else
return
/obj/machinery/transhuman/autoresleever/proc/autoresleeve(var/mob/observer/dead/ghost)
if(stat)
to_chat(ghost, "<span class='warning'>This machine is not functioning...</span>")
return
if(!istype(ghost,/mob/observer/dead))
return
if(ghost.mind && ghost.mind.current && ghost.mind.current.stat != DEAD)
to_chat(ghost, "<span class='warning'>Your body is still alive, you cannot be resleeved.</span>")
return
var/client/ghost_client = ghost.client
//Name matching is ugly but mind doesn't persist to look at.
var/charjob
var/datum/data/record/record_found
record_found = find_general_record("name",ghost_client.prefs.real_name)
//Found their record, they were spawned previously
if(record_found)
charjob = record_found.fields["real_rank"]
else if(equip_body || ghost_spawns)
charjob = default_job
else
to_chat(ghost, "<span class='warning'>It appears as though your loaded character has not been spawned this round, or has quit the round. If you died as a different character, please load them, and try again.</span>")
return
//For logging later
var/player_key = ghost_client.key
var/picked_ckey = ghost_client.ckey
var/picked_slot = ghost_client.prefs.default_slot
var/spawnloc = get_turf(src)
//Did we actually get a loc to spawn them?
if(!spawnloc)
to_chat(ghost, "<span class='warning'>Could not find a valid location to spawn your character.</span>")
return
if(spawntype)
var/spawnthing = new spawntype(spawnloc)
if(isliving(spawnthing))
var/mob/living/L = spawnthing
L.key = player_key
L.ckey = picked_ckey
log_admin("[L.ckey]'s has been spawned as [L] via \the [src].")
message_admins("[L.ckey]'s has been spawned as [L] via \the [src].")
else
to_chat(ghost, "<span class='warning'>You can't play as a [spawnthing]...</span>")
return
if(spawn_slots == -1)
return
else if(spawn_slots == 0)
return
else
spawn_slots --
return
if(tgui_alert(ghost, "Would you like to be resleeved?", "Resleeve", list("No","Yes")) == "No")
return
var/mob/living/carbon/human/new_character
new_character = new(spawnloc)
//We were able to spawn them, right?
if(!new_character)
to_chat(ghost, "Something went wrong and spawning failed.")
return
//Write the appearance and whatnot out to the character
ghost_client.prefs.copy_to(new_character)
if(new_character.dna)
new_character.dna.ResetUIFrom(new_character)
new_character.sync_organ_dna()
new_character.key = player_key
//Were they any particular special role? If so, copy.
if(new_character.mind)
new_character.mind.loaded_from_ckey = picked_ckey
new_character.mind.loaded_from_slot = picked_slot
var/datum/antagonist/antag_data = get_antag_data(new_character.mind.special_role)
if(antag_data)
antag_data.add_antagonist(new_character.mind)
antag_data.place_mob(new_character)
for(var/lang in ghost_client.prefs.alternate_languages)
var/datum/language/chosen_language = GLOB.all_languages[lang]
if(chosen_language)
if(is_lang_whitelisted(src,chosen_language) || (new_character.species && (chosen_language.name in new_character.species.secondary_langs)))
new_character.add_language(lang)
//If desired, apply equipment.
if(equip_body)
if(charjob)
job_master.EquipRank(new_character, charjob, 1)
new_character.mind.assigned_role = charjob
new_character.mind.role_alt_title = job_master.GetPlayerAltTitle(new_character, charjob)
//A redraw for good measure
new_character.regenerate_icons()
new_character.update_transform()
log_admin("[new_character.ckey]'s character [new_character.real_name] has been auto-resleeved.")
message_admins("[new_character.ckey]'s character [new_character.real_name] has been auto-resleeved.")
if(spawn_slots == -1)
return
else if(spawn_slots == 0)
return
else
spawn_slots --
return
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

+17 -14
View File
@@ -2075,6 +2075,10 @@
/obj/machinery/computer/transhuman/resleeving{
dir = 8
},
/obj/item/device/radio/intercom{
dir = 4;
pixel_x = 24
},
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck1/resleeving)
"ew" = (
@@ -6726,7 +6730,7 @@
dir = 5
},
/obj/machinery/button/remote/airlock{
desc = "A remote control switch for the medbay foyer.";
desc = "A remote control switch for the cleaning room exit.";
dir = 4;
id = "resleeveexit";
name = "Door Control";
@@ -7381,6 +7385,14 @@
/obj/effect/floor_decal/steeldecal/steel_decals4{
dir = 1
},
/obj/machinery/button/remote/airlock{
desc = "A remote control switch for the cleaning room.";
dir = 4;
id = "resleeveclean";
name = "Door Control";
pixel_x = -27;
pixel_y = -27
},
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck1/resleeving)
"pC" = (
@@ -7970,7 +7982,7 @@
/turf/simulated/floor/carpet,
/area/chapel/main)
"qR" = (
/obj/structure/table/glass,
/obj/machinery/transhuman/autoresleever,
/turf/simulated/floor/tiled/dark,
/area/stellardelight/deck1/resleeving)
"qS" = (
@@ -16013,16 +16025,6 @@
/obj/effect/floor_decal/milspec/color/black,
/turf/simulated/floor/tiled/dark,
/area/security/armoury)
"Ij" = (
/obj/structure/bed/chair{
dir = 1
},
/obj/item/device/radio/intercom{
dir = 8;
pixel_x = -24
},
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck1/resleeving)
"Ik" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -20510,8 +20512,9 @@
/obj/machinery/door/airlock/angled_bay/standard/color{
dir = 8;
door_color = "#ffffff";
id_tag = "resleeveclean";
name = "Cleaning Room";
req_access = null;
req_access = list(5);
stripe_color = "#5a96bb"
},
/turf/simulated/floor/tiled/steel_ridged,
@@ -33859,7 +33862,7 @@ dH
oW
vb
pA
Ij
hv
CG
ZB
hg
+278 -91
View File
@@ -2264,6 +2264,11 @@
/obj/effect/floor_decal/steeldecal/steel_decals4{
dir = 5
},
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
"adS" = (
@@ -2288,6 +2293,11 @@
name = "Mental Health";
req_one_access = list()
},
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
"adV" = (
@@ -2358,6 +2368,11 @@
pixel_x = -26;
pixel_y = -26
},
/obj/structure/cable/green{
d1 = 2;
d2 = 4;
icon_state = "2-4"
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
"adY" = (
@@ -2379,6 +2394,11 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
"adZ" = (
@@ -2552,11 +2572,11 @@
/turf/simulated/floor/carpet/blue,
/area/tether/surfacebase/medical/mentalhealth)
"aem" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/lowernorthhall)
@@ -2824,6 +2844,13 @@
/obj/effect/floor_decal/corner/paleblue/bordercorner2{
dir = 5
},
/obj/structure/disposalpipe/trunk{
dir = 4
},
/obj/machinery/disposal/wall{
dir = 8;
name = "auto-resleeving equipment deposit"
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/lowernorthhall)
"aeE" = (
@@ -3295,6 +3322,17 @@
/obj/effect/floor_decal/steeldecal/steel_decals4{
dir = 4
},
/obj/structure/cable/green{
d1 = 1;
d2 = 4;
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/lowernorthhall)
"afp" = (
@@ -3345,6 +3383,17 @@
/obj/effect/floor_decal/corner/paleblue/bordercorner2{
dir = 4
},
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/lowernorthhall)
"aft" = (
@@ -3381,6 +3430,7 @@
dir = 4;
pixel_x = 24
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"afz" = (
@@ -8206,12 +8256,6 @@
dir = 4
},
/obj/random/junk,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"anG" = (
@@ -11278,11 +11322,13 @@
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/obj/structure/disposalpipe/segment{
dir = 8;
icon_state = "pipe-c"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"asU" = (
@@ -13876,6 +13922,11 @@
/obj/machinery/door/firedoor/glass/hidden/steel{
dir = 1
},
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
"awZ" = (
@@ -15870,12 +15921,12 @@
d2 = 8;
icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"azU" = (
@@ -30423,13 +30474,19 @@
/turf/simulated/floor/tiled,
/area/hallway/lower/first_west)
"bbI" = (
/obj/item/weapon/tool/wrench{
desc = "The lower jaw seems to keep jiggling...";
name = "loose wrench";
toolspeed = 3
/obj/machinery/vending/loadout/uniform,
/obj/machinery/light{
dir = 8
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/effect/floor_decal/borderfloorwhite{
dir = 9
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 9
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"bbJ" = (
/obj/structure/cable/green,
/obj/structure/cable/green{
@@ -30470,9 +30527,15 @@
/turf/simulated/floor,
/area/maintenance/substation/SurfMedsubstation)
"bbM" = (
/obj/random/cigarettes,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/machinery/transhuman/autoresleever,
/obj/effect/floor_decal/borderfloorwhite{
dir = 1
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 1
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"bbN" = (
/obj/structure/cable/green{
d1 = 4;
@@ -30628,9 +30691,19 @@
/turf/simulated/floor,
/area/maintenance/substation/SurfMedsubstation)
"bbZ" = (
/obj/random/junk,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/structure/disposalpipe/trunk{
dir = 2
},
/obj/machinery/disposal/deliveryChute,
/obj/structure/plasticflaps,
/obj/effect/floor_decal/borderfloorwhite{
dir = 1
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 1
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"bca" = (
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/brown/border,
@@ -31706,12 +31779,6 @@
},
/turf/simulated/floor/plating,
/area/maintenance/lower/trash_pit)
"bTE" = (
/obj/structure/railing{
dir = 1
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"bWg" = (
/obj/machinery/vending/loadout/costume{
dir = 4
@@ -31803,12 +31870,11 @@
/turf/simulated/floor/tiled/monotile,
/area/crew_quarters/locker/laundry_arrival)
"cqg" = (
/obj/structure/railing{
dir = 1
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/turf/simulated/wall,
/area/tether/surfacebase/medical/autoresleeving)
"cqZ" = (
/obj/effect/floor_decal/borderfloor{
dir = 8
@@ -32326,6 +32392,10 @@
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"dUK" = (
/obj/structure/disposalpipe/segment,
/turf/simulated/wall,
/area/tether/surfacebase/medical/autoresleeving)
"dYd" = (
/obj/machinery/firealarm{
layer = 3.3;
@@ -32773,10 +32843,24 @@
/turf/simulated/floor/plating,
/area/tether/surfacebase/funny/clownoffice)
"fKm" = (
/obj/random/junk,
/obj/random/maintenance/cargo,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/machinery/firealarm{
dir = 8;
pixel_x = -24
},
/obj/effect/floor_decal/borderfloorwhite{
dir = 8
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"fLB" = (
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 5
@@ -33806,13 +33890,21 @@
/turf/simulated/floor/tiled,
/area/rnd/hallway)
"idk" = (
/obj/item/weapon/tool/wirecutters{
desc = "It gets jammed a lot.";
name = "janky wirecutters";
toolspeed = 2
/obj/machinery/alarm{
dir = 8;
pixel_x = 22
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/effect/floor_decal/borderfloorwhite{
dir = 6
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"iee" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -33895,6 +33987,25 @@
/obj/item/device/radio/beacon,
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_one_hall)
"itj" = (
/obj/structure/cable/green{
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
dir = 4;
name = "east bump";
nightshift_setting = 2;
pixel_x = 24
},
/obj/effect/floor_decal/borderfloorwhite{
dir = 6
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 6
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"iue" = (
/turf/simulated/floor/looking_glass{
dir = 1
@@ -34049,9 +34160,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"jhN" = (
@@ -34822,9 +34930,13 @@
/turf/simulated/floor/tiled,
/area/crew_quarters/visitor_laundry)
"lbd" = (
/obj/random/maintenance/cargo,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/effect/floor_decal/borderfloorwhite/corner,
/obj/effect/floor_decal/corner/paleblue/bordercorner,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 8
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"lbu" = (
/obj/effect/floor_decal/borderfloorwhite,
/obj/effect/floor_decal/corner/paleblue/border,
@@ -35003,6 +35115,25 @@
/obj/machinery/holoposter,
/turf/simulated/wall,
/area/hallway/lower/first_west)
"lBv" = (
/obj/machinery/door/airlock/maintenance/medical{
id_tag = "autor";
name = "Auto-Resleeving";
req_access = list(5)
},
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"lBO" = (
/obj/structure/cable{
d1 = 1;
@@ -35148,9 +35279,32 @@
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_one_hall)
"lPQ" = (
/obj/item/stack/cable_coil/random_belt,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/machinery/button/remote/airlock{
desc = "A remote control door switch.";
id = "autor";
name = "Exit Button";
pixel_x = -26;
pixel_y = -26
},
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/effect/floor_decal/borderfloorwhite{
dir = 10
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 9
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"lQu" = (
/obj/item/weapon/reagent_containers/glass/bucket,
/obj/structure/table/steel,
@@ -36375,9 +36529,22 @@
/turf/simulated/floor/carpet/gaycarpet,
/area/tether/surfacebase/funny/clownoffice)
"oPH" = (
/obj/random/pizzabox,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/machinery/light{
dir = 4
},
/obj/item/device/radio/intercom{
dir = 1;
pixel_y = 24
},
/obj/effect/floor_decal/borderfloorwhite{
dir = 5
},
/obj/effect/floor_decal/corner/paleblue/border{
dir = 5
},
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"oQm" = (
/obj/effect/floor_decal/borderfloor/corner,
/obj/structure/cable{
@@ -36818,6 +36985,15 @@
"qwV" = (
/turf/simulated/wall,
/area/tether/surfacebase/security/brig)
"qBa" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"qBb" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
@@ -37024,12 +37200,12 @@
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"qVi" = (
/obj/structure/railing{
dir = 1
/obj/structure/disposalpipe/segment{
dir = 8;
icon_state = "pipe-c"
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/turf/simulated/wall,
/area/tether/surfacebase/medical/autoresleeving)
"qWk" = (
/obj/machinery/light,
/obj/structure/disposalpipe/segment{
@@ -37649,6 +37825,10 @@
},
/turf/simulated/floor/tiled,
/area/engineering/atmos)
"sOx" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
"sQc" = (
/obj/structure/sign/securearea{
desc = "A warning sign which reads 'HIGH VOLTAGE'";
@@ -38176,10 +38356,17 @@
/turf/simulated/floor/tiled/techfloor,
/area/maintenance/lower/xenoflora)
"utQ" = (
/obj/fiftyspawner/steel,
/obj/random/junk,
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
/obj/structure/disposalpipe/segment,
/obj/effect/floor_decal/borderfloorwhite,
/obj/effect/floor_decal/corner/paleblue/border,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 8
},
/obj/machinery/shower{
dir = 1
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/autoresleeving)
"uuu" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -38318,6 +38505,9 @@
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
"uIU" = (
/turf/simulated/wall,
/area/tether/surfacebase/medical/autoresleeving)
"uKS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -38465,11 +38655,8 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
dir = 5
},
/turf/simulated/floor/plating,
/area/maintenance/lowmedbaymaint)
@@ -53037,11 +53224,11 @@ aan
atP
awE
aeU
aeU
aeU
aeU
aef
aef
uIU
uIU
uIU
lBv
cqg
afE
aef
aef
@@ -53179,11 +53366,11 @@ aan
uHS
awC
aeU
aeU
uIU
bbI
fKm
lPQ
bTE
cqg
akA
aAG
tdg
@@ -53321,10 +53508,10 @@ afb
atO
awC
aeU
aeU
uIU
bbM
lbd
aAI
itj
cqg
jcT
ksK
@@ -53463,10 +53650,10 @@ afb
atO
awp
axO
aeU
uIU
bbZ
utQ
lbd
dUK
qVi
anF
ksK
@@ -53605,11 +53792,11 @@ afb
atO
awG
aed
aeU
uIU
oPH
idk
bbZ
bTE
uIU
sOx
vuO
ksK
tdg
@@ -53747,12 +53934,12 @@ afb
atO
awz
aeU
aeU
uIU
uIU
uIU
uIU
axP
axP
axP
axP
vuO
qBa
ksK
oKn
oKn
+3 -1
View File
@@ -39409,7 +39409,9 @@
alarms_hidden = 1;
dir = 1;
name = "north bump";
pixel_y = 28
pixel_y = 28;
req_access = null;
req_one_access = list(11,67)
},
/obj/structure/cable/green{
icon_state = "0-4"
+2
View File
@@ -440,6 +440,8 @@
name = "\improper Medical Central Hall"
/area/tether/surfacebase/medical/lowerhall
name = "\improper Medical Lower Hall"
/area/tether/surfacebase/medical/autoresleeving
name = "\improper Medical Auto Resleeving"
//North SurfMed3-2 Stairwell
/area/tether/surfacebase/medical/uppernorthstairwell
name = "\improper Medical Stairwell"
+1
View File
@@ -3723,6 +3723,7 @@
#include "code\modules\research\designs\circuits\circuits.dm"
#include "code\modules\research\designs\circuits\circuits_vr.dm"
#include "code\modules\research\designs\circuits\disks.dm"
#include "code\modules\resleeving\autoresleever.dm"
#include "code\modules\resleeving\circuitboards.dm"
#include "code\modules\resleeving\computers.dm"
#include "code\modules\resleeving\designer.dm"