mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-24 09:02:27 +00:00
Buy the morphic chameleon stamp (or Stmap) now and get a new pen which fakes signatures for free. Attempts to improve the value of said chameleon stamp as it feels rather expensive for what it do.
141 lines
3.7 KiB
Plaintext
141 lines
3.7 KiB
Plaintext
/* Pens!
|
|
* Contains:
|
|
* Pens
|
|
* Sleepy Pens
|
|
* Parapens
|
|
*/
|
|
|
|
|
|
/*
|
|
* Pens
|
|
*/
|
|
/obj/item/weapon/pen
|
|
desc = "It's a normal black ink pen."
|
|
name = "pen"
|
|
icon = 'icons/obj/bureaucracy.dmi'
|
|
icon_state = "pen"
|
|
item_state = "pen"
|
|
flags = FPRINT | TABLEPASS
|
|
slot_flags = SLOT_BELT | SLOT_EARS
|
|
throwforce = 0
|
|
w_class = 1.0
|
|
throw_speed = 7
|
|
throw_range = 15
|
|
matter = list("metal" = 10)
|
|
var/colour = "black" //what colour the ink is!
|
|
pressure_resistance = 2
|
|
|
|
|
|
/obj/item/weapon/pen/blue
|
|
desc = "It's a normal blue ink pen."
|
|
icon_state = "pen_blue"
|
|
colour = "blue"
|
|
|
|
/obj/item/weapon/pen/red
|
|
desc = "It's a normal red ink pen."
|
|
icon_state = "pen_red"
|
|
colour = "red"
|
|
|
|
/obj/item/weapon/pen/invisible
|
|
desc = "It's an invisble pen marker."
|
|
icon_state = "pen"
|
|
colour = "white"
|
|
|
|
|
|
/obj/item/weapon/pen/attack(mob/M as mob, mob/user as mob)
|
|
if(!ismob(M))
|
|
return
|
|
user << "<span class='warning'>You stab [M] with the pen.</span>"
|
|
// M << "\red You feel a tiny prick!" //That's a whole lot of meta!
|
|
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been stabbed with [name] by [user.name] ([user.ckey])</font>")
|
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [name] to stab [M.name] ([M.ckey])</font>")
|
|
msg_admin_attack("[user.name] ([user.ckey]) Used the [name] to stab [M.name] ([M.ckey]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
|
return
|
|
|
|
|
|
/*
|
|
* Sleepy Pens
|
|
*/
|
|
/obj/item/weapon/pen/sleepypen
|
|
desc = "It's a black ink pen with a sharp point and a carefully engraved \"Waffle Co.\""
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
slot_flags = SLOT_BELT
|
|
origin_tech = "materials=2;syndicate=5"
|
|
|
|
|
|
/obj/item/weapon/pen/sleepypen/New()
|
|
var/datum/reagents/R = new/datum/reagents(30) //Used to be 300
|
|
reagents = R
|
|
R.my_atom = src
|
|
R.add_reagent("chloralhydrate", 22) //Used to be 100 sleep toxin//30 Chloral seems to be fatal, reducing it to 22./N
|
|
..()
|
|
return
|
|
|
|
|
|
/obj/item/weapon/pen/sleepypen/attack(mob/M as mob, mob/user as mob)
|
|
if(!(istype(M,/mob)))
|
|
return
|
|
..()
|
|
if(reagents.total_volume)
|
|
if(M.reagents) reagents.trans_to(M, 50) //used to be 150
|
|
return
|
|
|
|
|
|
/*
|
|
* Parapens
|
|
*/
|
|
/obj/item/weapon/pen/paralysis
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
slot_flags = SLOT_BELT
|
|
origin_tech = "materials=2;syndicate=5"
|
|
|
|
|
|
/obj/item/weapon/pen/paralysis/attack(mob/living/M as mob, mob/user as mob)
|
|
|
|
if(!(istype(M,/mob)))
|
|
return
|
|
|
|
..()
|
|
|
|
|
|
if(M.can_inject(user,1))
|
|
if(reagents.total_volume)
|
|
if(M.reagents) reagents.trans_to(M, 50)
|
|
return
|
|
|
|
|
|
/obj/item/weapon/pen/paralysis/New()
|
|
var/datum/reagents/R = new/datum/reagents(50)
|
|
reagents = R
|
|
R.my_atom = src
|
|
R.add_reagent("zombiepowder", 10)
|
|
R.add_reagent("cryptobiolin", 15)
|
|
..()
|
|
return
|
|
|
|
/*
|
|
* Chameleon pen
|
|
*/
|
|
/obj/item/weapon/pen/chameleon
|
|
var/signature = ""
|
|
|
|
/obj/item/weapon/pen/chameleon/attack_self(mob/user as mob)
|
|
/*
|
|
// Limit signatures to official crew members
|
|
var/personnel_list[] = list()
|
|
for(var/datum/data/record/t in data_core.locked) //Look in data core locked.
|
|
personnel_list.Add(t.fields["name"])
|
|
personnel_list.Add("Anonymous")
|
|
|
|
var/new_signature = input("Enter new signature pattern.", "New Signature") as null|anything in personnel_list
|
|
if(new_signature)
|
|
signature = new_signature
|
|
*/
|
|
signature = trim_strip_html_properly(input("Enter new signature. Leave blank for 'Anonymous'", "New Signature", signature))
|
|
|
|
/obj/item/weapon/pen/proc/get_signature(var/mob/user)
|
|
return (user && user.real_name) ? user.real_name : "Anonymous"
|
|
|
|
/obj/item/weapon/pen/chameleon/get_signature(var/mob/user)
|
|
return signature ? signature : "Anonymous"
|