Allow multiple SStranscore databases (#10450)

* Allow multiple SStranscore databases

* Add key to backup implanter too

* Key passing tweak

* Fix issue Leshana spotted

* Add optimization Leshana spotted

* Fixxy more multitranscore bugs
This commit is contained in:
Aronai Sieyes
2021-05-30 18:53:18 -04:00
committed by GitHub
parent 4a435d542b
commit 5a5a1ea8e9
14 changed files with 214 additions and 92 deletions
+2 -6
View File
@@ -32,12 +32,8 @@ var/global/list/prevent_respawns = list()
qdel(O)
//Resleeving cleanup
if(src.mind.name in SStranscore.backed_up)
var/datum/transhuman/mind_record/MR = SStranscore.backed_up[src.mind.name]
SStranscore.stop_backup(MR)
if(src.mind.name in SStranscore.body_scans) //This uses mind names to avoid people cryo'ing a printed body to delete body scans.
var/datum/transhuman/body_record/BR = SStranscore.body_scans[src.mind.name]
SStranscore.remove_body(BR)
if(mind)
SStranscore.leave_round(src)
//Job slot cleanup
var/job = src.mind.assigned_role
@@ -62,18 +62,22 @@
set name = "Notify Transcore"
set desc = "If your past-due backup notification was missed or ignored, you can use this to send a new one."
if(src.mind && (src.mind.name in SStranscore.backed_up))
var/datum/transhuman/mind_record/record = SStranscore.backed_up[src.mind.name]
if(!mind)
to_chat(src,"<span class='warning'>Your ghost is missing game values that allow this functionality, sorry.</span>")
return
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>")
else if((world.time - record.last_notification) < 10 MINUTES)
to_chat(src, "<span class='warning'>Too little time has passed since your last notification.</span>")
else
SStranscore.notify(record.mindname, TRUE)
db.notify(record.mindname, TRUE)
record.last_notification = world.time
to_chat(src, "<span class='notice'>New notification has been sent.</span>")
else
to_chat(src, "<span class='warning'>No mind record found!</span>")
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"
@@ -38,14 +38,14 @@
for(var/obj/item/organ/external/E in organs)
for(var/obj/item/weapon/implant/I in E.implants)
if(I.implanted)
if(istype(I,/obj/item/weapon/implant/backup))
if(!mind)
holder.icon_state = "hud_backup_nomind"
else if(!(mind.name in SStranscore.body_scans))
holder.icon_state = "hud_backup_nobody"
else
holder.icon_state = "hud_backup_norm"
if(I.implanted && istype(I,/obj/item/weapon/implant/backup))
var/obj/item/weapon/implant/backup/B = I
if(!mind)
holder.icon_state = "hud_backup_nomind"
else if(!(mind.name in B.our_db.body_scans))
holder.icon_state = "hud_backup_nobody"
else
holder.icon_state = "hud_backup_norm"
apply_hud(BACKUP_HUD, holder)