mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-05-13 02:11:44 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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!")
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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 |
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user