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