From 2068b31fa182deff19428ad073e6c3cf825ccd7c Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 24 Feb 2017 21:09:12 -0500 Subject: [PATCH] CMO Emergency Disk Mind storage for evacuation. --- code/modules/resleeving/computers.dm | 46 +++++ code/modules/resleeving/infocore.dm | 18 +- icons/vore/custom_items_vr.dmi | Bin 30091 -> 30286 bytes maps/virgo-1.dmm | 2 +- nano/templates/sleever.tmpl | 246 ++++++++++++++------------- 5 files changed, 192 insertions(+), 120 deletions(-) diff --git a/code/modules/resleeving/computers.dm b/code/modules/resleeving/computers.dm index 2b32afb3a0..8516075afb 100644 --- a/code/modules/resleeving/computers.dm +++ b/code/modules/resleeving/computers.dm @@ -16,6 +16,7 @@ var/datum/transhuman/infocore/TC //Easy debugging access var/organic_capable = 1 var/synthetic_capable = 1 + var/obj/item/weapon/disk/transcore/disk /obj/machinery/computer/transhuman/resleeving/initialize() ..() @@ -72,6 +73,11 @@ P.connected = src P.name = "[initial(P.name)] #[pods.len]" user << "You connect [P] to [src]." + else if(istype(W, /obj/item/weapon/disk/transcore)) + user.unEquip(W) + disk = W + disk.forceMove(src) + user << "You insert \the [W] into \the [src]." else ..() return @@ -179,6 +185,8 @@ data["spodsLen"] = spods.len data["sleeversLen"] = sleevers.len data["temp"] = temp + data["coredumped"] = transcore.core_dumped + data["emergency"] = disk ? 1 : 0 ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) @@ -210,6 +218,16 @@ else if (href_list["refresh"]) updateUsrDialog() + else if (href_list["coredump"]) + if(disk) + transcore.core_dump(disk) + disk.forceMove(get_turf(src)) + disk = null + + else if (href_list["ejectdisk"]) + disk.forceMove(get_turf(src)) + disk = null + else if (href_list["create"]) if(istype(active_br)) //Tried to grow a synth but no synth pods. @@ -328,3 +346,31 @@ nanomanager.update_uis(src) add_fingerprint(usr) + +// In here because only relevant to computer +/obj/item/weapon/cmo_disk_holder + name = "cmo emergency packet" + desc = "A small paper packet with printing on one side. \"Tear open in case of Code Delta or Emergency Evacuation ONLY. Use in any other case is UNLAWFUL.\"" + icon = 'icons/vore/custom_items_vr.dmi' + icon_state = "cmoemergency" + item_state = "card-id" + +/obj/item/weapon/cmo_disk_holder/attack_self(var/mob/attacker) + playsound(src, 'sound/items/poster_ripped.ogg', 50) + attacker << "You tear open \the [name]." + attacker.unEquip(src) + var/obj/item/weapon/disk/transcore/newdisk = new(get_turf(src)) + attacker.put_in_any_hand_if_possible(newdisk) + qdel(src) + +/obj/item/weapon/disk/transcore + name = "TransCore Dump Disk" + desc = "It has a small label. \n\ + \"1.INSERT DISK INTO RESLEEVING CONSOLE\n\ + 2. BEGIN CORE DUMP PROCEDURE\n\ + 3. ENSURE DISK SAFETY WHEN EJECTED\"" + icon = 'icons/obj/cloning.dmi' + icon_state = "harddisk" + item_state = "card-id" + w_class = ITEMSIZE_SMALL + var/datum/transhuman/mind_record/list/stored = list() diff --git a/code/modules/resleeving/infocore.dm b/code/modules/resleeving/infocore.dm index a1bf07e64b..bc68b6f051 100644 --- a/code/modules/resleeving/infocore.dm +++ b/code/modules/resleeving/infocore.dm @@ -12,6 +12,7 @@ var/datum/transhuman/infocore/transcore = new/datum/transhuman/infocore /datum/transhuman/infocore var/overdue_time = 15 MINUTES var/process_time = 1 MINUTE + var/core_dumped = 0 var/datum/transhuman/mind_record/list/backed_up = list() var/datum/transhuman/mind_record/list/has_left = list() @@ -21,6 +22,7 @@ var/datum/transhuman/infocore/transcore = new/datum/transhuman/infocore process() /datum/transhuman/infocore/proc/process() + if(core_dumped) return for(var/N in backed_up) var/datum/transhuman/mind_record/curr_MR = backed_up[N] if(!curr_MR) @@ -40,7 +42,7 @@ var/datum/transhuman/infocore/transcore = new/datum/transhuman/infocore /datum/transhuman/infocore/proc/m_backup(var/datum/mind/mind) ASSERT(mind) - if(!mind.name) //Name is critical to everything here + if(!mind.name || core_dumped) return 0 var/datum/transhuman/mind_record/MR @@ -56,7 +58,7 @@ var/datum/transhuman/infocore/transcore = new/datum/transhuman/infocore /datum/transhuman/infocore/proc/notify(var/name) ASSERT(name) var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/heads/captain(null) - a.autosay("[name] is past-due for a mind backup. This will be the only notification.", "Backup Monitor", "Medical") + a.autosay("[name] is past-due for a mind backup. This will be the only notification.", "TransCore Oversight", "Medical") qdel(a) /datum/transhuman/infocore/proc/add_backup(var/datum/transhuman/mind_record/MR) @@ -76,6 +78,18 @@ var/datum/transhuman/infocore/transcore = new/datum/transhuman/infocore body_scans[BR.mydna.name] = BR log_debug("Added [BR.mydna.name] to transcore body DB.") +/datum/transhuman/infocore/proc/core_dump(var/obj/item/weapon/disk/transcore/disk) + ASSERT(disk) + var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/heads/captain(null) + a.autosay("An emergency core dump has been initiated!", "TransCore Oversight", "Command") + a.autosay("An emergency core dump has been initiated!", "TransCore Oversight", "Medical") + qdel(a) + + disk.stored += backed_up + backed_up.Cut() + core_dumped = 1 + return disk.stored.len + /////// Mind-backup record /////// /datum/transhuman/mind_record //User visible diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi index 1c141d4c0bf54de831051f9ffb2e8c5a62194f09..eac55b4e65d50349be6b37a4777d371e14c23af5 100644 GIT binary patch delta 9021 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 delta 8824 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 E1B~hrx&QzG diff --git a/maps/virgo-1.dmm b/maps/virgo-1.dmm index 928b05992e..57a287c294 100644 --- a/maps/virgo-1.dmm +++ b/maps/virgo-1.dmm @@ -3819,7 +3819,7 @@ "bvw" = (/obj/structure/table/reinforced,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bvx" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills{pixel_y = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bvy" = (/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) -"bvz" = (/obj/structure/closet/secure_closet/CMO,/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/item/clothing/glasses/sunglasses/omnihud/cmo,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) +"bvz" = (/obj/structure/closet/secure_closet/CMO,/obj/effect/floor_decal/corner/paleblue{dir = 6},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/item/clothing/glasses/sunglasses/omnihud/cmo,/obj/item/weapon/cmo_disk_holder,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/cmo) "bvA" = (/obj/structure/table/steel,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/surgical/scalpel,/obj/machinery/light{dir = 1},/obj/item/weapon/surgical/cautery,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled,/area/medical/morgue) "bvB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) "bvC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/virology) diff --git a/nano/templates/sleever.tmpl b/nano/templates/sleever.tmpl index 97b29819e5..58f99cbacd 100644 --- a/nano/templates/sleever.tmpl +++ b/nano/templates/sleever.tmpl @@ -1,126 +1,138 @@ -{{:data.temp}} +{{if data.coredumped}} +
+ TransCore dump complete. Disk ejected. +
+{{else data.emergency}} +
+ !!WARNING!!
Dump Disk Inserted! This will transfer all minds to the dump disk, and the TransCore will be made unusable until post-shift maintenance! This should only be used in emergencies!

+
+ {{:helper.link('DUMP CORE', 'radiation', {'coredump' : data.emergency}, null, 'redButton')}} + {{:helper.link('Eject Disk', 'eject', {'ejectdisk' : data.emergency})}} +{{else}} + {{:data.temp}} - -{{if data.menu == 1}} -

Resleeving Control

-
-
- -
- {{if data.podsLen > 0}} - {{:data.podsLen}} growing vats found. - {{/if}} -
- -
- {{if data.spodsLen > 0}} - {{:data.spodsLen}} SyntFabs found. - {{/if}} -
- -
- {{if data.sleeversLen > 0}} - {{:data.sleeversLen}} resleeving pods found. - {{/if}} -
- - {{if data.podsLen}} - {{for data.pods}} -
{{:value.pod}}, biomass: {{:value.biomass}}
- {{/for}} - {{/if}} - - {{if data.spodsLen}} - {{for data.spods}} -
{{:value.spod}}, S/G: {{:value.steel}}/{{:value.glass}}
- {{/for}} - {{/if}} - - {{if data.sleeversLen}} - {{for data.sleevers}} -
{{:value.sleever}}, occupant: {{:value.occupant}}
- {{/for}} - {{/if}} - - -

Database Functions

-
- {{:helper.link('View Body Records', 'list', {'menu' : 2})}} -
-
- {{:helper.link('View Mind Records', 'list', {'menu' : 3})}} -
- - -{{else data.menu == 2}} -

Current body records

- {{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 1})}} -
- {{for data.bodyrecords}} - {{:helper.link(value.name, 'document', {'view_brec' : value.recref})}} - {{/for}} -
- - -{{else data.menu == 3}} -

Current mind records

- {{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 1})}} -
- {{for data.mindrecords}} - {{:helper.link(value.name, 'document', {'view_mrec' : value.recref})}} - {{/for}} -
- - -{{else data.menu == 4}} -

Selected Body Record

-
{{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 2})}}
- - {{if data.activeBodyRecord}} + + {{if data.menu == 1}} +

Resleeving Control

-
Name:
-
{{:data.activeBodyRecord.real_name}}
-
-
Species:
-
{{:data.activeBodyRecord.speciesname}}
-
-
-
Bio. Sex:
-
{{:data.activeBodyRecord.gender}}
-
-
-
Mind compat.:
-
{{:data.activeBodyRecord.locked}}
-
-
-
Synthetic:
-
{{:data.activeBodyRecord.synthetic}}
-
- - {{:helper.link('Create', 'play', {'create' : data.activeBodyRecord.real_name}, data.activeBodyRecord.cando ? null : 'linkOff')}} - {{else}} -
ERROR: Record not found.
- {{/if}} - - -{{else data.menu == 5}} -

Selected Mind Record

-
{{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 3})}}
- - {{if data.activeMindRecord}}
-
Name:
-
{{:data.activeMindRecord.charname}}
+ {{if data.podsLen > 0}} + {{:data.podsLen}} growing vats found. + {{/if}}
-
-
Backup status:
-
{{:data.activeMindRecord.obviously_dead}}
-
- {{:helper.link('Sleeve', 'play', {'sleeve' : data.activeMindRecord.charname}, data.activeMindRecord.cando ? null : 'linkOff')}} - {{else}} -
ERROR: Record not found.
+
+ {{if data.spodsLen > 0}} + {{:data.spodsLen}} SyntFabs found. + {{/if}} +
+ +
+ {{if data.sleeversLen > 0}} + {{:data.sleeversLen}} resleeving pods found. + {{/if}} +
+ + {{if data.podsLen}} + {{for data.pods}} +
{{:value.pod}}, biomass: {{:value.biomass}}
+ {{/for}} + {{/if}} + + {{if data.spodsLen}} + {{for data.spods}} +
{{:value.spod}}, S/G: {{:value.steel}}/{{:value.glass}}
+ {{/for}} + {{/if}} + + {{if data.sleeversLen}} + {{for data.sleevers}} +
{{:value.sleever}}, occupant: {{:value.occupant}}
+ {{/for}} + {{/if}} + + +

Database Functions

+
+ {{:helper.link('View Body Records', 'list', {'menu' : 2})}} +
+
+ {{:helper.link('View Mind Records', 'list', {'menu' : 3})}} +
+ + + {{else data.menu == 2}} +

Current body records

+ {{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 1})}} +
+ {{for data.bodyrecords}} + {{:helper.link(value.name, 'document', {'view_brec' : value.recref})}} + {{/for}} +
+ + + {{else data.menu == 3}} +

Current mind records

+ {{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 1})}} +
+ {{for data.mindrecords}} + {{:helper.link(value.name, 'document', {'view_mrec' : value.recref})}} + {{/for}} +
+ + + {{else data.menu == 4}} +

Selected Body Record

+
{{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 2})}}
+ + {{if data.activeBodyRecord}} +
+
Name:
+
{{:data.activeBodyRecord.real_name}}
+
+
+
Species:
+
{{:data.activeBodyRecord.speciesname}}
+
+
+
Bio. Sex:
+
{{:data.activeBodyRecord.gender}}
+
+
+
Mind compat.:
+
{{:data.activeBodyRecord.locked}}
+
+
+
Synthetic:
+
{{:data.activeBodyRecord.synthetic}}
+
+ + {{:helper.link('Create', 'play', {'create' : data.activeBodyRecord.real_name}, data.activeBodyRecord.cando ? null : 'linkOff')}} + + {{else}} +
ERROR: Record not found.
+ {{/if}} + + + {{else data.menu == 5}} +

Selected Mind Record

+
{{:helper.link('Back', 'arrowreturn-1-w', {'menu' : 3})}}
+ + {{if data.activeMindRecord}} +
+
Name:
+
{{:data.activeMindRecord.charname}}
+
+
+
Backup status:
+
{{:data.activeMindRecord.obviously_dead}}
+
+ {{:helper.link('Sleeve', 'play', {'sleeve' : data.activeMindRecord.charname}, data.activeMindRecord.cando ? null : 'linkOff')}} + + {{else}} +
ERROR: Record not found.
+ {{/if}} {{/if}} {{/if}} \ No newline at end of file