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
+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"