diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 2a4a3d3a14b..ac914c9d3f6 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -466,6 +466,13 @@ var/list/uplink_items = list()
/datum/uplink_item/stealthy_weapons
category = "Stealthy and Inconspicuous Weapons"
+/datum/uplink_item/stealthy_weapons/edagger
+ name = "Energy Dagger"
+ desc = "A dagger made of energy that looks and functions as a pen when off."
+ reference = "EDP"
+ item = /obj/item/weapon/pen/edagger
+ cost = 2
+
/datum/uplink_item/stealthy_weapons/sleepy_pen
name = "Sleepy Pen"
desc = "A syringe disguised as a functional pen. It's filled with a potent anaesthetic. \The pen holds two doses of the mixture. The pen can be refilled."
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 3b20fcc2cb5..3ab57ea1437 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -2,7 +2,7 @@
* Contains:
* Pens
* Sleepy Pens
- * Parapens
+ * Edaggers
*/
@@ -15,6 +15,7 @@
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "pen"
item_state = "pen"
+ icon_override = 'icons/mob/in-hand/tools.dmi'
slot_flags = SLOT_BELT | SLOT_EARS
throwforce = 0
w_class = 1.0
@@ -67,12 +68,16 @@
if(!istype(M))
return
- if(M.can_inject(user, 1))
- user << "You stab [M] with the pen."
-// M << "You feel a tiny prick!"
- . = 1
+ if(!force)
+ if(M.can_inject(user, 1))
+ user << "You stab [M] with the pen."
+// M << "You feel a tiny prick!"
+ . = 1
- add_logs(M, user, "stabbed", object="[name]")
+ add_logs(M, user, "stabbed", object="[name]")
+
+ else
+ . = ..()
/*
* Sleepypens
@@ -95,3 +100,45 @@
create_reagents(100)
reagents.add_reagent("ketamine", 100)
..()
+
+
+/*
+ * (Alan) Edaggers
+ */
+/obj/item/weapon/pen/edagger
+ origin_tech = "combat=3;syndicate=5"
+ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off
+ var/on = 0
+
+/obj/item/weapon/pen/edagger/attack_self(mob/living/user)
+ if(on)
+ on = 0
+ force = initial(force)
+ sharp = 0
+ edge = 0
+ w_class = initial(w_class)
+ name = initial(name)
+ hitsound = initial(hitsound)
+ throwforce = initial(throwforce)
+ playsound(user, 'sound/weapons/saberoff.ogg', 5, 1)
+ user << "[src] can now be concealed."
+ else
+ on = 1
+ force = 18
+ sharp = 1
+ edge = 1
+ w_class = 3
+ name = "energy dagger"
+ hitsound = 'sound/weapons/blade1.ogg'
+ throwforce = 35
+ playsound(user, 'sound/weapons/saberon.ogg', 5, 1)
+ user << "[src] is now active."
+ update_icon()
+
+/obj/item/weapon/pen/edagger/update_icon()
+ if(on)
+ icon_state = "edagger"
+ item_state = "edagger"
+ else
+ icon_state = initial(icon_state) //looks like a normal pen when off.
+ item_state = initial(item_state)
\ No newline at end of file
diff --git a/icons/mob/in-hand/tools.dmi b/icons/mob/in-hand/tools.dmi
index e0e19f58c99..81f3aa57f46 100644
Binary files a/icons/mob/in-hand/tools.dmi and b/icons/mob/in-hand/tools.dmi differ
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index db997a08628..5453f33ffd6 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ