diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm
index 62dfcc37eaa..77e775939fc 100644
--- a/code/game/gamemodes/steal_items.dm
+++ b/code/game/gamemodes/steal_items.dm
@@ -145,8 +145,8 @@
/datum/theft_objective/supermatter_sliver
name = "a supermatter sliver"
typepath = /obj/item/nuke_core/supermatter_sliver
- protected_jobs = list("Chief Engineer", "Engineer", "Atmospheric Technician") //Unlike other steal objectives, all jobs in the department have easy access, and would not be noticed at all stealing this
- location_override = "Engineering. You can use the box and instructions provided to harvest the sliver"
+ protected_jobs = list("Chief Engineer", "Station Engineer", "Life Support Specialist") //Unlike other steal objectives, all jobs in the department have easy access, and would not be noticed at all stealing this
+ location_override = "Engineering. You can use the box and instructions provided to harvest the sliver."
special_equipment = /obj/item/storage/box/syndie_kit/supermatter
job_possession = FALSE //The CE / engineers / atmos techs do not carry around supermater slivers.
diff --git a/code/game/objects/items/theft_items.dm b/code/game/objects/items/theft_items.dm
index 0a32cf90df7..4b8d9e4b51a 100644
--- a/code/game/objects/items/theft_items.dm
+++ b/code/game/objects/items/theft_items.dm
@@ -12,7 +12,6 @@
item_state = "plutoniumcore"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags_2 = RAD_NO_CONTAMINATE_2 //Don't have the item itself become irradiated when it makes radiation.
- var/pulse = 0
var/cooldown = 0
var/pulseicon = "plutonium_core_pulse"
@@ -49,14 +48,42 @@
icon = 'icons/obj/nuke_tools.dmi'
icon_state = "core_container_empty"
item_state = "metal"
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //Don't want people trying to break it open with acid, then destroying the core.
var/obj/item/nuke_core/plutonium/core
+ var/dented = FALSE
+ var/cracked = FALSE
/obj/item/nuke_core_container/Destroy()
QDEL_NULL(core)
return ..()
+/obj/item/nuke_core_container/ex_act(severity)
+ switch(severity)
+ if(EXPLODE_DEVASTATE)
+ if(!cracked)
+ crack_open()
+ if(EXPLODE_HEAVY)
+ if(!dented)
+ dented = TRUE
+
+/obj/item/nuke_core_container/examine(mob/user)
+ . = ..()
+ if(cracked) // Cracked open.
+ . += "It is broken, and can no longer store objects safely."
+ else if(dented) // Not cracked, but dented.
+ . += "[src] looks dented. Perhaps a bigger explosion may break it."
+ else // Not cracked or dented.
+ . += "Fine print on the box reads \"Cybersun Industries secure container, guaranteed thermite proof, assistant proof, and explosive resistant.\""
+
+/obj/item/nuke_core_container/attack_hand(mob/user)
+ if(cracked && core)
+ unload(user)
+ else
+ return ..()
+
+
/obj/item/nuke_core_container/proc/load(obj/item/nuke_core/plutonium/new_core, mob/user)
- if(core || !istype(new_core))
+ if(core || !istype(new_core) || cracked)
return
new_core.forceMove(src)
core = new_core
@@ -64,6 +91,12 @@
to_chat(user, "Container is sealing...")
addtimer(CALLBACK(src, .proc/seal), 10 SECONDS)
+/obj/item/nuke_core_container/proc/unload(mob/user)
+ core.add_fingerprint(user)
+ user.put_in_active_hand(core)
+ core = null
+ icon_state = "core_container_cracked_empty"
+
/obj/item/nuke_core_container/proc/seal()
if(!QDELETED(core))
STOP_PROCESSING(SSobj, core)
@@ -73,7 +106,7 @@
to_chat(loc, "[src] is permanently sealed, [core]'s radiation is contained.")
/obj/item/nuke_core_container/attackby(obj/item/nuke_core/plutonium/core, mob/user)
- if(!istype(core))
+ if(!istype(core) || cracked)
return ..()
if(!user.drop_item())
@@ -82,9 +115,20 @@
else
load(core, user)
+/obj/item/nuke_core_container/proc/crack_open()
+ visible_message("[src] bursts open!")
+ if(core)
+ START_PROCESSING(SSobj, core)
+ icon_state = "core_container_cracked_loaded"
+ else
+ icon_state = "core_container_cracked_empty"
+ name = "broken nuke core container"
+ cracked = TRUE
+
/obj/item/paper/guides/antag/nuke_instructions
info = "How to break into a Nanotrasen nuclear device and remove its plutonium core:
\