Initial version, from TG

Ports Poison Pen from TG:
https://github.com/tgstation/tgstation/pull/23778
Adds a HoP/Cargotech/QM-only traitor pen that can be used on paper to
poison it.
Picking up poisoned paper without gloves transfers the poison through
your skin, into your bloodstream. Subsequent people to pick it up are
not affected.
The poison is 15 units of the nerve agent, sarin. This is enough to kill
you in a couple of minutes. It is quite obvious.
The pen looks like a normal pen, costs 5 TC, and has 3 uses. It cannot
be used as a direct weapon. It has to be applied to paper to be
effective.

🆑 Kyep
rscadd: Added Poison Pen, a stealthy way of applying a contact-based
poison to paper. Available to Syndicate HoPs, QMs, and Cargo Techs.
/🆑
This commit is contained in:
Kyep
2017-03-01 23:44:31 -08:00
parent 72f904e0cc
commit 04543d1466
3 changed files with 42 additions and 0 deletions
+13
View File
@@ -31,6 +31,8 @@
var/offset_y[0] //usage by the photocopier
var/rigged = 0
var/spam_flag = 0
var/contact_poison // Reagent ID to transfer on contact
var/contact_poison_volume = 0
var/const/deffont = "Verdana"
var/const/signfont = "Times New Roman"
@@ -278,6 +280,8 @@
info += t // Oh, he wants to edit to the end of the file, let him.
updateinfolinks()
i.on_write(src,usr)
show_content(usr, forceshow = 1, infolinks = 1)
update_icon()
@@ -653,3 +657,12 @@
/obj/item/weapon/paper/evilfax/proc/evilpaper_selfdestruct()
visible_message("<span class='danger'>[src] spontaneously catches fire, and burns up!</span>")
qdel(src)
/obj/item/weapon/paper/pickup(user)
if(contact_poison && ishuman(user))
var/mob/living/carbon/human/H = user
var/obj/item/clothing/gloves/G = H.gloves
if(!istype(G) || G.transfer_prints)
H.reagents.add_reagent(contact_poison, contact_poison_volume)
contact_poison = null
..()
+18
View File
@@ -182,3 +182,21 @@
else
icon_state = initial(icon_state) //looks like a normal pen when off.
item_state = initial(item_state)
/obj/item/proc/on_write(obj/item/weapon/paper/P, mob/user)
return
/obj/item/weapon/pen/poison
var/uses_left = 3
/obj/item/weapon/pen/poison/on_write(obj/item/weapon/paper/P, mob/user)
if(P.contact_poison_volume)
to_chat(user, "<span class='warning'>[P] is already coated.</span>")
else if(uses_left)
uses_left--
P.contact_poison = "sarin"
P.contact_poison_volume = 15
add_logs(user, P, "used poison pen on")
to_chat(user, "<span class='warning'>You apply the poison to [P].</span>")
else
to_chat(user, "<span class='warning'>[src] clicks. It seems to be depleted.</span>")