diff --git a/code/datums/uplink/devices and tools.dm b/code/datums/uplink/devices and tools.dm
index c49011d12f9..dbe5cc8b940 100644
--- a/code/datums/uplink/devices and tools.dm
+++ b/code/datums/uplink/devices and tools.dm
@@ -9,6 +9,12 @@
item_cost = 2
path = /obj/item/weapon/storage/toolbox/syndicate
+/datum/uplink_item/item/tools/advancedpinpointer
+ name = "Advanced pinpointer"
+ item_cost = 15
+ path = /obj/item/weapon/pinpointer/advpinpointer
+ desc = "An advanced pinpointer that can find any target with DNA along with various other items."
+
/datum/uplink_item/item/tools/money
name = "Operations Funding"
item_cost = 2
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index a8c5db43057..05a1f0f3bba 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -141,13 +141,13 @@
return 1
else if(istype(O,/obj/item/weapon/crowbar))
user.visible_message( \
- "\The [user] begins [src.anchored ? "securing" : "unsecuring"] the microwave.", \
- "You attempt to [src.anchored ? "secure" : "unsecure"] the microwave."
+ "\The [user] begins [src.anchored ? "unsecuring" : "securing"] the microwave.", \
+ "You attempt to [src.anchored ? "unsecure" : "secure"] the microwave."
)
if (do_after(user,20))
user.visible_message( \
- "\The [user] [src.anchored ? "secures" : "unsecures"] the microwave.", \
- "You [src.anchored ? "secure" : "unsecure"] the microwave."
+ "\The [user] [src.anchored ? "unsecures" : "secures"] the microwave.", \
+ "You [src.anchored ? "unsecure" : "secure"] the microwave."
)
src.anchored = !src.anchored
else
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index 354e2551955..36f49a4c63c 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -11,6 +11,7 @@ var/bomb_set
var/lighthack = 0
var/timeleft = 120
var/timing = 0
+ var/alerted = 0
var/r_code = "ADMIN"
var/code = ""
var/yes_code = 0
@@ -290,6 +291,10 @@ var/bomb_set
update_icon()
else
secure_device()
+
+ if(alerted == 0)
+ set_security_level(SEC_LEVEL_DELTA)
+ alerted = 1
if (href_list["safety"])
if (wires.IsIndexCut(NUCLEARBOMB_WIRE_SAFETY))
usr << "Nothing happens, something might be wrong with the wiring."
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index ce11af8ccbc..a7c8f69e32d 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -346,6 +346,26 @@ the implant may become unstable and either pre-maturely inject the subject or si
H << "You feel a surge of loyalty towards [company_name]."
return 1
+ emp_act(severity)
+ if (malfunction)
+ return
+ malfunction = MALFUNCTION_TEMPORARY
+
+ activate("emp")
+ if(severity == 1)
+ if(prob(50))
+ meltdown()
+ else if (prob(50))
+ malfunction = MALFUNCTION_PERMANENT
+ processing_objects.Remove(src)
+ return
+ spawn(20)
+ malfunction--
+
+ implanted(mob/source as mob)
+ //mobname = source.real_name
+ processing_objects.Add(src)
+ return 1
/obj/item/weapon/implant/adrenalin
name = "adrenalin"
diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm
index 692d40897c3..e5409eef9c2 100644
--- a/code/game/objects/items/weapons/storage/lockbox.dm
+++ b/code/game/objects/items/weapons/storage/lockbox.dm
@@ -99,3 +99,36 @@
New()
..()
new /obj/item/weapon/gun/energy/lawgiver(src)
+
+/obj/item/weapon/storage/lockbox/medal
+ name = "medal box"
+ desc = "A locked box used to store medals."
+ icon_state = "medalbox+l"
+ item_state = "syringe_kit"
+ w_class = 3
+ max_w_class = 2
+ req_access = list(access_captain)
+ icon_locked = "medalbox+l"
+ icon_closed = "medalbox"
+ icon_broken = "medalbox+b"
+
+/obj/item/weapon/storage/lockbox/medal/New()
+ ..()
+ new /obj/item/clothing/accessory/medal
+ new /obj/item/clothing/accessory/medal
+ new /obj/item/clothing/accessory/medal/conduct
+ new /obj/item/clothing/accessory/medal/conduct
+ new /obj/item/clothing/accessory/medal/conduct
+ new /obj/item/clothing/accessory/medal/conduct
+ new /obj/item/clothing/accessory/medal/bronze_heart
+ new /obj/item/clothing/accessory/medal/bronze_heart
+ new /obj/item/clothing/accessory/medal/nobel_science
+ new /obj/item/clothing/accessory/medal/nobel_science
+ new /obj/item/clothing/accessory/medal/silver
+ new /obj/item/clothing/accessory/medal/iron/merit
+ new /obj/item/clothing/accessory/medal/silver/valor
+ new /obj/item/clothing/accessory/medal/silver/security
+ new /obj/item/clothing/accessory/medal/silver/security
+ new /obj/item/clothing/accessory/medal/gold
+
+
diff --git a/html/changelogs/Printer16- SmallChanges.yml b/html/changelogs/Printer16- SmallChanges.yml
new file mode 100644
index 00000000000..16088b65880
--- /dev/null
+++ b/html/changelogs/Printer16- SmallChanges.yml
@@ -0,0 +1,10 @@
+author: Printer16
+
+delete-after: True
+
+changes:
+ - rscadd: "Arming a nuclear device to explode (Saftey off and timer counting down) now raises the code to delta."
+ - rscadd: "Traitors can now buy an advanced pinpointer."
+ - rscadd: "Added the medal box back."
+ - tweak: "Loyalty implants now have a chance to melt when exposed to EMP's."
+ - bugfix: "Microwaves now display a proper message when crowbared."
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 44546067a03..6b22cffe5ee 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm
index b0c818c045a..97c3273762c 100644
--- a/maps/exodus-1.dmm
+++ b/maps/exodus-1.dmm
@@ -3923,7 +3923,7 @@
"bxw" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/lab)
"bxx" = (/obj/item/device/radio/intercom/locked{frequency = 1343; locked_frequency = 1343; name = "Private AI Channel"; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled/dark{name = "cooled dark floor"; temperature = 278},/area/turret_protected/ai_upload)
"bxy" = (/obj/machinery/light{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/porta_turret{dir = 8},/turf/simulated/floor/bluegrid{name = "cooled mainframe floor"; temperature = 278},/area/turret_protected/ai_upload)
-"bxz" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
+"bxz" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/obj/item/weapon/storage/lockbox/medal,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bxA" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/camera/network/command{c_tag = "Bridge - Captain's Quarters"; dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bxB" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bxC" = (/obj/structure/table/standard,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light_switch{pixel_x = 27},/obj/structure/reagent_dispensers/acid{density = 0; pixel_y = -32},/turf/simulated/floor/tiled/white,/area/rnd/lab)