here we go again (#2456)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/clipboard
|
||||
/obj/item/clipboard
|
||||
name = "clipboard"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "clipboard"
|
||||
@@ -7,21 +7,21 @@
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
var/obj/item/weapon/pen/haspen //The stored pen.
|
||||
var/obj/item/weapon/paper/toppaper //The topmost piece of paper.
|
||||
var/obj/item/pen/haspen //The stored pen.
|
||||
var/obj/item/paper/toppaper //The topmost piece of paper.
|
||||
slot_flags = SLOT_BELT
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/clipboard/Initialize()
|
||||
/obj/item/clipboard/Initialize()
|
||||
update_icon()
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/clipboard/Destroy()
|
||||
/obj/item/clipboard/Destroy()
|
||||
QDEL_NULL(haspen)
|
||||
QDEL_NULL(toppaper) //let movable/Destroy handle the rest
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/clipboard/update_icon()
|
||||
/obj/item/clipboard/update_icon()
|
||||
cut_overlays()
|
||||
if(toppaper)
|
||||
add_overlay(toppaper.icon_state)
|
||||
@@ -31,8 +31,8 @@
|
||||
add_overlay("clipboard_over")
|
||||
|
||||
|
||||
/obj/item/weapon/clipboard/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/paper))
|
||||
/obj/item/clipboard/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/paper))
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
toppaper = W
|
||||
@@ -43,7 +43,7 @@
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/clipboard/attack_self(mob/user)
|
||||
/obj/item/clipboard/attack_self(mob/user)
|
||||
var/dat = "<title>Clipboard</title>"
|
||||
if(haspen)
|
||||
dat += "<A href='?src=\ref[src];pen=1'>Remove Pen</A><BR><HR>"
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
//The topmost paper. You can't organise contents directly in byond, so this is what we're stuck with. -Pete
|
||||
if(toppaper)
|
||||
var/obj/item/weapon/paper/P = toppaper
|
||||
var/obj/item/paper/P = toppaper
|
||||
dat += "<A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A> - <A href='?src=\ref[src];read=\ref[P]'>[P.name]</A><BR><HR>"
|
||||
|
||||
for(P in src)
|
||||
@@ -64,7 +64,7 @@
|
||||
add_fingerprint(usr)
|
||||
|
||||
|
||||
/obj/item/weapon/clipboard/Topic(href, href_list)
|
||||
/obj/item/clipboard/Topic(href, href_list)
|
||||
..()
|
||||
if(usr.stat || usr.restrained())
|
||||
return
|
||||
@@ -80,8 +80,8 @@
|
||||
if(href_list["addpen"])
|
||||
if(!haspen)
|
||||
var/obj/item/held = usr.get_active_held_item()
|
||||
if(istype(held, /obj/item/weapon/pen))
|
||||
var/obj/item/weapon/pen/W = held
|
||||
if(istype(held, /obj/item/pen))
|
||||
var/obj/item/pen/W = held
|
||||
if(!usr.transferItemToLoc(W, src))
|
||||
return
|
||||
haspen = W
|
||||
@@ -100,14 +100,14 @@
|
||||
usr.put_in_hands(P)
|
||||
if(P == toppaper)
|
||||
toppaper = null
|
||||
var/obj/item/weapon/paper/newtop = locate(/obj/item/weapon/paper) in src
|
||||
var/obj/item/paper/newtop = locate(/obj/item/paper) in src
|
||||
if(newtop && (newtop != P))
|
||||
toppaper = newtop
|
||||
else
|
||||
toppaper = null
|
||||
|
||||
if(href_list["read"])
|
||||
var/obj/item/weapon/paper/P = locate(href_list["read"])
|
||||
var/obj/item/paper/P = locate(href_list["read"])
|
||||
if(istype(P) && P.loc == src)
|
||||
usr.examinate(P)
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
/* For employment contracts and infernal contracts */
|
||||
|
||||
/obj/item/weapon/paper/contract
|
||||
/obj/item/paper/contract
|
||||
throw_range = 3
|
||||
throw_speed = 3
|
||||
var/signed = FALSE
|
||||
var/datum/mind/target
|
||||
flags_1 = NOBLUDGEON_1
|
||||
|
||||
/obj/item/weapon/paper/contract/proc/update_text()
|
||||
/obj/item/paper/contract/proc/update_text()
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper/contract/update_icon()
|
||||
/obj/item/paper/contract/update_icon()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/paper/contract/employment
|
||||
/obj/item/paper/contract/employment
|
||||
icon_state = "paper_words"
|
||||
|
||||
/obj/item/weapon/paper/contract/employment/New(atom/loc, mob/living/nOwner)
|
||||
/obj/item/paper/contract/employment/New(atom/loc, mob/living/nOwner)
|
||||
. = ..()
|
||||
if(!nOwner || !nOwner.mind)
|
||||
qdel(src)
|
||||
@@ -26,12 +26,12 @@
|
||||
update_text()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/contract/employment/update_text()
|
||||
/obj/item/paper/contract/employment/update_text()
|
||||
name = "paper- [target] employment contract"
|
||||
info = "<center>Conditions of Employment</center><BR><BR><BR><BR>This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and Nanotrasen (hereafter referred to as the omnipresent and helpful watcher of humanity).<BR>WITNESSETH:<BR>WHEREAS, SLAVE is a natural born human or humanoid, posessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.<BR>WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.<BR>NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:<BR>In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.<BR>Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.<BR>Should transfership of a soul not be possible, a lien shall be placed instead.<BR>Signed,<BR><i>[target]</i>"
|
||||
|
||||
|
||||
/obj/item/weapon/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user)
|
||||
/obj/item/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user)
|
||||
var/deconvert = FALSE
|
||||
if(M.mind == target && !M.owns_soul())
|
||||
if(user.mind && (user.mind.assigned_role == "Lawyer"))
|
||||
@@ -55,54 +55,54 @@
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal
|
||||
/obj/item/paper/contract/infernal
|
||||
var/contractType = 0
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
var/datum/mind/owner
|
||||
var/datum/antagonist/devil/devil_datum
|
||||
icon_state = "paper_onfire"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/power
|
||||
/obj/item/paper/contract/infernal/power
|
||||
name = "paper- contract for infernal power"
|
||||
contractType = CONTRACT_POWER
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/wealth
|
||||
/obj/item/paper/contract/infernal/wealth
|
||||
name = "paper- contract for unlimited wealth"
|
||||
contractType = CONTRACT_WEALTH
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/prestige
|
||||
/obj/item/paper/contract/infernal/prestige
|
||||
name = "paper- contract for prestige"
|
||||
contractType = CONTRACT_PRESTIGE
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/magic
|
||||
/obj/item/paper/contract/infernal/magic
|
||||
name = "paper- contract for magical power"
|
||||
contractType = CONTRACT_MAGIC
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/revive
|
||||
/obj/item/paper/contract/infernal/revive
|
||||
name = "paper- contract of resurrection"
|
||||
contractType = CONTRACT_REVIVE
|
||||
var/cooldown = FALSE
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/knowledge
|
||||
/obj/item/paper/contract/infernal/knowledge
|
||||
name = "paper- contract for knowledge"
|
||||
contractType = CONTRACT_KNOWLEDGE
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/friend
|
||||
/obj/item/paper/contract/infernal/friend
|
||||
name = "paper- contract for a friend"
|
||||
contractType = CONTRACT_FRIEND
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/unwilling
|
||||
/obj/item/paper/contract/infernal/unwilling
|
||||
name = "paper- infernal contract"
|
||||
contractType = CONTRACT_UNWILLING
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/New(atom/loc, mob/living/nTarget, datum/mind/nOwner)
|
||||
/obj/item/paper/contract/infernal/New(atom/loc, mob/living/nTarget, datum/mind/nOwner)
|
||||
..()
|
||||
owner = nOwner
|
||||
devil_datum = owner.has_antag_datum(ANTAG_DATUM_DEVIL)
|
||||
target = nTarget
|
||||
update_text()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/suicide_act(mob/user)
|
||||
/obj/item/paper/contract/infernal/suicide_act(mob/user)
|
||||
if(signed && (user == target.current) && istype(user, /mob/living/carbon/human/))
|
||||
var/mob/living/carbon/human/H = user
|
||||
H.forcesay("OH GREAT INFERNO! I DEMAND YOU COLLECT YOUR BOUNTY IMMEDIATELY!")
|
||||
@@ -113,77 +113,77 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/update_text()
|
||||
/obj/item/paper/contract/infernal/update_text()
|
||||
info = "This shouldn't be seen. Error DEVIL:6"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/power/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/power/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for infernal power</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for unlimited wealth</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for prestige</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for magic</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for resurrection</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for knowledge</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/friend/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/friend/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for a friend</B></center><BR><BR><BR>I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a friend. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0)
|
||||
/obj/item/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0)
|
||||
info = "<center><B>Contract for slave</B></center><BR><BR><BR>I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.<BR><BR><BR>Signed, "
|
||||
if(blood)
|
||||
info += "<font face=\"Nyala\" color=#600A0A size=6><i>[signature]</i></font>"
|
||||
else
|
||||
info += "<i>[signature]</i>"
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params)
|
||||
/obj/item/paper/contract/infernal/attackby(obj/item/P, mob/living/carbon/human/user, params)
|
||||
add_fingerprint(user)
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
|
||||
attempt_signature(user)
|
||||
else if(istype(P, /obj/item/weapon/stamp))
|
||||
else if(istype(P, /obj/item/stamp))
|
||||
to_chat(user, "<span class='notice'>You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp.</span>")
|
||||
else if(P.is_hot())
|
||||
user.visible_message("<span class='danger'>[user] brings [P] next to [src], but [src] does not catch fire!</span>", "<span class='danger'>The [src] refuses to ignite!</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/attack(mob/M, mob/living/user)
|
||||
/obj/item/paper/contract/infernal/attack(mob/M, mob/living/user)
|
||||
add_fingerprint(user)
|
||||
if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1))
|
||||
user.visible_message("<span class='danger'>[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.</span>", "<span class='danger'>You slice your wrist open and scrawl your name in blood.</span>")
|
||||
@@ -191,7 +191,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0)
|
||||
/obj/item/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0)
|
||||
if(!user.IsAdvancedToolUser() || !user.is_literate())
|
||||
to_chat(user, "<span class='notice'>You don't know how to read or write.</span>")
|
||||
return 0
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/revive/attack(mob/M, mob/living/user)
|
||||
/obj/item/paper/contract/infernal/revive/attack(mob/M, mob/living/user)
|
||||
if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind)
|
||||
if (cooldown)
|
||||
to_chat(user, "<span class='notice'>Give [M] a chance to think through the contract, don't rush them.</span>")
|
||||
@@ -249,11 +249,11 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/revive/proc/resetcooldown()
|
||||
/obj/item/paper/contract/infernal/revive/proc/resetcooldown()
|
||||
cooldown = FALSE
|
||||
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/proc/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE)
|
||||
/obj/item/paper/contract/infernal/proc/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE)
|
||||
signed = TRUE
|
||||
if(user.mind.soulOwner != user.mind) //They already sold their soul to someone else?
|
||||
var/datum/antagonist/devil/ownerDevilInfo = user.mind.soulOwner.has_antag_datum(ANTAG_DATUM_DEVIL)
|
||||
@@ -268,11 +268,11 @@
|
||||
to_chat(user, "<span class='boldnotice'>This does NOT make you an antagonist if you were not already.</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/proc/signIncorrectly(mob/living/carbon/human/user = target.current, blood = FALSE)
|
||||
/obj/item/paper/contract/infernal/proc/signIncorrectly(mob/living/carbon/human/user = target.current, blood = FALSE)
|
||||
signed = 1
|
||||
update_text("your name", blood)
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/power/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE)
|
||||
/obj/item/paper/contract/infernal/power/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE)
|
||||
if(!user.dna)
|
||||
return -1
|
||||
user.dna.add_mutation(HULK)
|
||||
@@ -280,16 +280,16 @@
|
||||
organ.Insert(user)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/wealth/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
/obj/item/paper/contract/infernal/wealth/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
if(!istype(user) || !user.mind) // How in the hell could that happen?
|
||||
return -1
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_wealth(null))
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/prestige/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
/obj/item/paper/contract/infernal/prestige/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
//Basically turns the signer into the captain, and uploads an ion law making them the captain.
|
||||
var/obj/item/worn = user.wear_id
|
||||
var/obj/item/weapon/card/id/id = null
|
||||
var/obj/item/card/id/id = null
|
||||
if(worn)
|
||||
id = worn.GetID()
|
||||
if(id)
|
||||
@@ -298,7 +298,7 @@
|
||||
id.assignment = "Captain"
|
||||
id.update_label()
|
||||
else
|
||||
id = new /obj/item/weapon/card/id/gold(user.loc)
|
||||
id = new /obj/item/card/id/gold(user.loc)
|
||||
id.registered_name = user.real_name
|
||||
id.access = get_all_accesses()+get_all_centcom_access()
|
||||
id.assignment = "Captain"
|
||||
@@ -308,8 +308,8 @@
|
||||
var/obj/item/device/pda/PDA = worn
|
||||
PDA.id = id
|
||||
id.loc = worn
|
||||
else if(istype(worn, /obj/item/weapon/storage/wallet))
|
||||
var/obj/item/weapon/storage/wallet/W = worn
|
||||
else if(istype(worn, /obj/item/storage/wallet))
|
||||
var/obj/item/storage/wallet/W = worn
|
||||
W.front_id = id
|
||||
id.loc = worn
|
||||
worn.update_icon()
|
||||
@@ -319,21 +319,21 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/magic/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
/obj/item/paper/contract/infernal/magic/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
if(!istype(user) || !user.mind)
|
||||
return -1
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless(null))
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null))
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/knowledge/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
/obj/item/paper/contract/infernal/knowledge/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
|
||||
if(!istype(user) || !user.mind)
|
||||
return -1
|
||||
user.dna.add_mutation(XRAY)
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/view_range(null))
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper/contract/infernal/friend/fulfillContract(mob/living/user = target.current, blood = 0)
|
||||
/obj/item/paper/contract/infernal/friend/fulfillContract(mob/living/user = target.current, blood = 0)
|
||||
if(!istype(user) || !user.mind)
|
||||
return -1
|
||||
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_friend(null))
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
. = ..()
|
||||
if(mapload)
|
||||
for(var/obj/item/I in loc)
|
||||
if(istype(I, /obj/item/weapon/paper) || istype(I, /obj/item/weapon/folder) || istype(I, /obj/item/weapon/photo))
|
||||
if(istype(I, /obj/item/paper) || istype(I, /obj/item/folder) || istype(I, /obj/item/photo))
|
||||
I.loc = src
|
||||
|
||||
/obj/structure/filingcabinet/deconstruct(disassembled = TRUE)
|
||||
@@ -46,7 +46,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params)
|
||||
if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/documents))
|
||||
if(istype(P, /obj/item/paper) || istype(P, /obj/item/folder) || istype(P, /obj/item/photo) || istype(P, /obj/item/documents))
|
||||
if(!user.drop_item())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [P] in [src].</span>")
|
||||
@@ -55,7 +55,7 @@
|
||||
sleep(5)
|
||||
icon_state = initial(icon_state)
|
||||
updateUsrDialog()
|
||||
else if(istype(P, /obj/item/weapon/wrench))
|
||||
else if(istype(P, /obj/item/wrench))
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
if(do_after(user, 20, target = src))
|
||||
@@ -124,7 +124,7 @@
|
||||
var/datum/data/record/S = find_record("name", G.fields["name"], GLOB.data_core.security)
|
||||
if(!S)
|
||||
continue
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
|
||||
var/obj/item/paper/P = new /obj/item/paper(src)
|
||||
P.info = "<CENTER><B>Security Record</B></CENTER><BR>"
|
||||
P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]<BR>\nSex: [G.fields["sex"]]<BR>\nAge: [G.fields["age"]]<BR>\nFingerprint: [G.fields["fingerprint"]]<BR>\nPhysical Status: [G.fields["p_stat"]]<BR>\nMental Status: [G.fields["m_stat"]]<BR>"
|
||||
P.info += "<BR>\n<CENTER><B>Security Data</B></CENTER><BR>\nCriminal Status: [S.fields["criminal"]]<BR>\n<BR>\nMinor Crimes: [S.fields["mi_crim"]]<BR>\nDetails: [S.fields["mi_crim_d"]]<BR>\n<BR>\nMajor Crimes: [S.fields["ma_crim"]]<BR>\nDetails: [S.fields["ma_crim_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[S.fields["notes"]]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>"
|
||||
@@ -156,7 +156,7 @@
|
||||
var/datum/data/record/M = find_record("name", G.fields["name"], GLOB.data_core.medical)
|
||||
if(!M)
|
||||
continue
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
|
||||
var/obj/item/paper/P = new /obj/item/paper(src)
|
||||
P.info = "<CENTER><B>Medical Record</B></CENTER><BR>"
|
||||
P.info += "Name: [G.fields["name"]] ID: [G.fields["id"]]<BR>\nSex: [G.fields["sex"]]<BR>\nAge: [G.fields["age"]]<BR>\nFingerprint: [G.fields["fingerprint"]]<BR>\nPhysical Status: [G.fields["p_stat"]]<BR>\nMental Status: [G.fields["m_stat"]]<BR>"
|
||||
P.info += "<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: [M.fields["blood_type"]]<BR>\nDNA: [M.fields["b_dna"]]<BR>\n<BR>\nMinor Disabilities: [M.fields["mi_dis"]]<BR>\nDetails: [M.fields["mi_dis_d"]]<BR>\n<BR>\nMajor Disabilities: [M.fields["ma_dis"]]<BR>\nDetails: [M.fields["ma_dis_d"]]<BR>\n<BR>\nAllergies: [M.fields["alg"]]<BR>\nDetails: [M.fields["alg_d"]]<BR>\n<BR>\nCurrent Diseases: [M.fields["cdi"]] (per disease info placed in log/comment section)<BR>\nDetails: [M.fields["cdi_d"]]<BR>\n<BR>\nImportant Notes:<BR>\n\t[M.fields["notes"]]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>"
|
||||
@@ -205,7 +205,7 @@ GLOBAL_LIST_EMPTY(employmentCabinets)
|
||||
|
||||
|
||||
/obj/structure/filingcabinet/employment/proc/addFile(mob/living/carbon/human/employee)
|
||||
new /obj/item/weapon/paper/contract/employment(src, employee)
|
||||
new /obj/item/paper/contract/employment(src, employee)
|
||||
|
||||
/obj/structure/filingcabinet/employment/attack_hand(mob/user)
|
||||
if(!cooldown)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/folder
|
||||
/obj/item/folder
|
||||
name = "folder"
|
||||
desc = "A folder."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -7,42 +7,42 @@
|
||||
pressure_resistance = 2
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/folder/blue
|
||||
/obj/item/folder/blue
|
||||
desc = "A blue folder."
|
||||
icon_state = "folder_blue"
|
||||
|
||||
/obj/item/weapon/folder/red
|
||||
/obj/item/folder/red
|
||||
desc = "A red folder."
|
||||
icon_state = "folder_red"
|
||||
|
||||
/obj/item/weapon/folder/yellow
|
||||
/obj/item/folder/yellow
|
||||
desc = "A yellow folder."
|
||||
icon_state = "folder_yellow"
|
||||
|
||||
/obj/item/weapon/folder/white
|
||||
/obj/item/folder/white
|
||||
desc = "A white folder."
|
||||
icon_state = "folder_white"
|
||||
|
||||
|
||||
/obj/item/weapon/folder/update_icon()
|
||||
/obj/item/folder/update_icon()
|
||||
cut_overlays()
|
||||
if(contents.len)
|
||||
add_overlay("folder_paper")
|
||||
|
||||
|
||||
/obj/item/weapon/folder/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo) || istype(W, /obj/item/documents))
|
||||
/obj/item/folder/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/paper) || istype(W, /obj/item/photo) || istype(W, /obj/item/documents))
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [W] into [src].</span>")
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/weapon/pen))
|
||||
else if(istype(W, /obj/item/pen))
|
||||
var/n_name = copytext(sanitize(input(user, "What would you like to label the folder?", "Folder Labelling", null) as text), 1, MAX_NAME_LEN)
|
||||
if((in_range(src,user) && user.stat == CONSCIOUS))
|
||||
name = "folder[(n_name ? " - '[n_name]'" : null)]"
|
||||
|
||||
|
||||
/obj/item/weapon/folder/attack_self(mob/user)
|
||||
/obj/item/folder/attack_self(mob/user)
|
||||
var/dat = "<title>[name]</title>"
|
||||
|
||||
for(var/obj/item/I in src)
|
||||
@@ -52,7 +52,7 @@
|
||||
add_fingerprint(usr)
|
||||
|
||||
|
||||
/obj/item/weapon/folder/Topic(href, href_list)
|
||||
/obj/item/folder/Topic(href, href_list)
|
||||
..()
|
||||
if(usr.stat || usr.restrained())
|
||||
return
|
||||
@@ -74,37 +74,37 @@
|
||||
attack_self(usr)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/folder/documents
|
||||
/obj/item/folder/documents
|
||||
name = "folder- 'TOP SECRET'"
|
||||
desc = "A folder stamped \"Top Secret - Property of Nanotrasen Corporation. Unauthorized distribution is punishable by death.\""
|
||||
|
||||
/obj/item/weapon/folder/documents/Initialize()
|
||||
/obj/item/folder/documents/Initialize()
|
||||
. = ..()
|
||||
new /obj/item/documents/nanotrasen(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/folder/syndicate
|
||||
/obj/item/folder/syndicate
|
||||
icon_state = "folder_syndie"
|
||||
name = "folder- 'TOP SECRET'"
|
||||
desc = "A folder stamped \"Top Secret - Property of The Syndicate.\""
|
||||
|
||||
/obj/item/weapon/folder/syndicate/red
|
||||
/obj/item/folder/syndicate/red
|
||||
icon_state = "folder_sred"
|
||||
|
||||
/obj/item/weapon/folder/syndicate/red/Initialize()
|
||||
/obj/item/folder/syndicate/red/Initialize()
|
||||
. = ..()
|
||||
new /obj/item/documents/syndicate/red(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/folder/syndicate/blue
|
||||
/obj/item/folder/syndicate/blue
|
||||
icon_state = "folder_sblue"
|
||||
|
||||
/obj/item/weapon/folder/syndicate/blue/Initialize()
|
||||
/obj/item/folder/syndicate/blue/Initialize()
|
||||
. = ..()
|
||||
new /obj/item/documents/syndicate/blue(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/folder/syndicate/mining/Initialize()
|
||||
/obj/item/folder/syndicate/mining/Initialize()
|
||||
. = ..()
|
||||
new /obj/item/documents/syndicate/mining(src)
|
||||
update_icon()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/hand_labeler
|
||||
/obj/item/hand_labeler
|
||||
name = "hand labeler"
|
||||
desc = "A combined label printer and applicator in a portable device, designed to be easy to operate and use."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -8,7 +8,7 @@
|
||||
var/labels_left = 30
|
||||
var/mode = 0
|
||||
|
||||
/obj/item/weapon/hand_labeler/suicide_act(mob/user)
|
||||
/obj/item/hand_labeler/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is pointing [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!</span>")
|
||||
labels_left = max(labels_left - 1, 0)
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
user.real_name += " (suicide)"
|
||||
// no conflicts with their identification card
|
||||
for(var/atom/A in user.GetAllContents())
|
||||
if(istype(A, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/their_card = A
|
||||
if(istype(A, /obj/item/card/id))
|
||||
var/obj/item/card/id/their_card = A
|
||||
|
||||
// only renames their card, as opposed to tagging everyone's
|
||||
if(their_card.registered_name != old_real_name)
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
return OXYLOSS
|
||||
|
||||
/obj/item/weapon/hand_labeler/afterattack(atom/A, mob/user,proximity)
|
||||
/obj/item/hand_labeler/afterattack(atom/A, mob/user,proximity)
|
||||
if(!proximity) return
|
||||
if(!mode) //if it's off, give up.
|
||||
return
|
||||
@@ -59,7 +59,7 @@
|
||||
labels_left--
|
||||
|
||||
|
||||
/obj/item/weapon/hand_labeler/attack_self(mob/user)
|
||||
/obj/item/hand_labeler/attack_self(mob/user)
|
||||
if(!user.IsAdvancedToolUser())
|
||||
to_chat(user, "<span class='warning'>You don't have the dexterity to use [src]!</span>")
|
||||
return
|
||||
@@ -77,17 +77,17 @@
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You turn off [src].</span>")
|
||||
|
||||
/obj/item/weapon/hand_labeler/attackby(obj/item/I, mob/user, params)
|
||||
/obj/item/hand_labeler/attackby(obj/item/I, mob/user, params)
|
||||
..()
|
||||
if(istype(I, /obj/item/hand_labeler_refill))
|
||||
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
|
||||
qdel(I)
|
||||
labels_left = initial(labels_left) //Yes, it's capped at its initial value
|
||||
|
||||
/obj/item/weapon/hand_labeler/borg
|
||||
/obj/item/hand_labeler/borg
|
||||
name = "cyborg-hand labeler"
|
||||
|
||||
/obj/item/weapon/hand_labeler/borg/afterattack(atom/A, mob/user, proximity)
|
||||
/obj/item/hand_labeler/borg/afterattack(atom/A, mob/user, proximity)
|
||||
..(A, user, proximity)
|
||||
if(!iscyborg(user))
|
||||
return
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm!
|
||||
*/
|
||||
|
||||
/obj/item/weapon/paper
|
||||
/obj/item/paper
|
||||
name = "paper"
|
||||
gender = NEUTER
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -33,7 +33,7 @@
|
||||
var/contact_poison_volume = 0
|
||||
|
||||
|
||||
/obj/item/weapon/paper/pickup(user)
|
||||
/obj/item/paper/pickup(user)
|
||||
if(contact_poison && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
@@ -43,7 +43,7 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/Initialize()
|
||||
/obj/item/paper/Initialize()
|
||||
. = ..()
|
||||
pixel_y = rand(-8, 8)
|
||||
pixel_x = rand(-9, 9)
|
||||
@@ -51,7 +51,7 @@
|
||||
updateinfolinks()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/update_icon()
|
||||
/obj/item/paper/update_icon()
|
||||
|
||||
if(resistance_flags & ON_FIRE)
|
||||
icon_state = "paper_onfire"
|
||||
@@ -62,12 +62,12 @@
|
||||
icon_state = "paper"
|
||||
|
||||
|
||||
/obj/item/weapon/paper/examine(mob/user)
|
||||
/obj/item/paper/examine(mob/user)
|
||||
..()
|
||||
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/paper)
|
||||
assets.send(user)
|
||||
|
||||
if(istype(src, /obj/item/weapon/paper/talisman)) //Talismans cannot be read
|
||||
if(istype(src, /obj/item/paper/talisman)) //Talismans cannot be read
|
||||
if(!iscultist(user) && !user.stat)
|
||||
to_chat(user, "<span class='danger'>There are indecipherable images scrawled on the paper in what looks to be... <i>blood?</i></span>")
|
||||
return
|
||||
@@ -82,7 +82,7 @@
|
||||
to_chat(user, "<span class='notice'>It is too far away.</span>")
|
||||
|
||||
|
||||
/obj/item/weapon/paper/verb/rename()
|
||||
/obj/item/paper/verb/rename()
|
||||
set name = "Rename paper"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -101,11 +101,11 @@
|
||||
name = "paper[(n_name ? text("- '[n_name]'") : null)]"
|
||||
add_fingerprint(usr)
|
||||
|
||||
/obj/item/weapon/paper/suicide_act(mob/user)
|
||||
/obj/item/paper/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] scratches a grid on [user.p_their()] wrist with the paper! It looks like [user.p_theyre()] trying to commit sudoku...</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/paper/attack_self(mob/user)
|
||||
/obj/item/paper/attack_self(mob/user)
|
||||
user.examinate(src)
|
||||
if(rigged && (SSevents.holidays && SSevents.holidays[APRIL_FOOLS]))
|
||||
if(spam_flag == 0)
|
||||
@@ -115,7 +115,7 @@
|
||||
spam_flag = 0
|
||||
|
||||
|
||||
/obj/item/weapon/paper/attack_ai(mob/living/silicon/ai/user)
|
||||
/obj/item/paper/attack_ai(mob/living/silicon/ai/user)
|
||||
var/dist
|
||||
if(istype(user) && user.current) //is AI
|
||||
dist = get_dist(src, user.current)
|
||||
@@ -129,7 +129,7 @@
|
||||
onclose(usr, "[name]")
|
||||
|
||||
|
||||
/obj/item/weapon/paper/proc/addtofield(id, text, links = 0)
|
||||
/obj/item/paper/proc/addtofield(id, text, links = 0)
|
||||
var/locid = 0
|
||||
var/laststart = 1
|
||||
var/textindex = 1
|
||||
@@ -167,14 +167,14 @@
|
||||
updateinfolinks()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/proc/updateinfolinks()
|
||||
/obj/item/paper/proc/updateinfolinks()
|
||||
info_links = info
|
||||
for(var/i in 1 to min(fields, 15))
|
||||
addtofield(i, "<font face=\"[PEN_FONT]\"><A href='?src=\ref[src];write=[i]'>write</A></font>", 1)
|
||||
info_links = info_links + "<font face=\"[PEN_FONT]\"><A href='?src=\ref[src];write=end'>write</A></font>"
|
||||
|
||||
|
||||
/obj/item/weapon/paper/proc/clearpaper()
|
||||
/obj/item/paper/proc/clearpaper()
|
||||
info = null
|
||||
stamps = null
|
||||
LAZYCLEARLIST(stamped)
|
||||
@@ -183,7 +183,7 @@
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/proc/parsepencode(t, obj/item/weapon/pen/P, mob/user, iscrayon = 0)
|
||||
/obj/item/paper/proc/parsepencode(t, obj/item/pen/P, mob/user, iscrayon = 0)
|
||||
if(length(t) < 1) //No input means nothing needs to be parsed
|
||||
return
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
|
||||
return t
|
||||
|
||||
/obj/item/weapon/paper/proc/reload_fields() // Useful if you made the paper programicly and want to include fields. Also runs updateinfolinks() for you.
|
||||
/obj/item/paper/proc/reload_fields() // Useful if you made the paper programicly and want to include fields. Also runs updateinfolinks() for you.
|
||||
fields = 0
|
||||
var/laststart = 1
|
||||
while(1)
|
||||
@@ -250,7 +250,7 @@
|
||||
updateinfolinks()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/proc/openhelp(mob/user)
|
||||
/obj/item/paper/proc/openhelp(mob/user)
|
||||
user << browse({"<HTML><HEAD><TITLE>Paper Help</TITLE></HEAD>
|
||||
<BODY>
|
||||
<b><center>Crayon&Pen commands</center></b><br>
|
||||
@@ -272,7 +272,7 @@
|
||||
</BODY></HTML>"}, "window=paper_help")
|
||||
|
||||
|
||||
/obj/item/weapon/paper/Topic(href, href_list)
|
||||
/obj/item/paper/Topic(href, href_list)
|
||||
..()
|
||||
if(usr.stat || usr.restrained())
|
||||
return
|
||||
@@ -287,12 +287,12 @@
|
||||
return
|
||||
var/obj/item/i = usr.get_active_held_item() //Check to see if he still got that darn pen, also check if he's using a crayon or pen.
|
||||
var/iscrayon = 0
|
||||
if(!istype(i, /obj/item/weapon/pen))
|
||||
if(!istype(i, /obj/item/pen))
|
||||
if(!istype(i, /obj/item/toy/crayon))
|
||||
return
|
||||
iscrayon = 1
|
||||
|
||||
if(!in_range(src, usr) && loc != usr && !istype(loc, /obj/item/weapon/clipboard) && loc.loc != usr && usr.get_active_held_item() != i) //Some check to see if he's allowed to write
|
||||
if(!in_range(src, usr) && loc != usr && !istype(loc, /obj/item/clipboard) && loc.loc != usr && usr.get_active_held_item() != i) //Some check to see if he's allowed to write
|
||||
return
|
||||
|
||||
t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html
|
||||
@@ -307,7 +307,7 @@
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params)
|
||||
/obj/item/paper/attackby(obj/item/P, mob/living/carbon/human/user, params)
|
||||
..()
|
||||
|
||||
if(resistance_flags & ON_FIRE)
|
||||
@@ -316,18 +316,18 @@
|
||||
if(is_blind(user))
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if(user.is_literate())
|
||||
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links]<HR>[stamps]</BODY><div align='right'style='position:fixed;bottom:0;font-style:bold;'><A href='?src=\ref[src];help=1'>\[?\]</A></div></HTML>", "window=[name]")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't know how to read or write.</span>")
|
||||
return
|
||||
if(istype(src, /obj/item/weapon/paper/talisman/))
|
||||
if(istype(src, /obj/item/paper/talisman/))
|
||||
to_chat(user, "<span class='warning'>[P]'s ink fades away shortly after it is written.</span>")
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/stamp))
|
||||
else if(istype(P, /obj/item/stamp))
|
||||
|
||||
if(!in_range(src, user))
|
||||
return
|
||||
@@ -361,14 +361,14 @@
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/paper/fire_act(exposed_temperature, exposed_volume)
|
||||
/obj/item/paper/fire_act(exposed_temperature, exposed_volume)
|
||||
..()
|
||||
if(!(resistance_flags & FIRE_PROOF))
|
||||
icon_state = "paper_onfire"
|
||||
info = "[stars(info)]"
|
||||
|
||||
|
||||
/obj/item/weapon/paper/extinguish()
|
||||
/obj/item/paper/extinguish()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
@@ -376,9 +376,9 @@
|
||||
* Construction paper
|
||||
*/
|
||||
|
||||
/obj/item/weapon/paper/construction
|
||||
/obj/item/paper/construction
|
||||
|
||||
/obj/item/weapon/paper/construction/Initialize()
|
||||
/obj/item/paper/construction/Initialize()
|
||||
. = ..()
|
||||
color = pick("FF0000", "#33cc33", "#ffb366", "#551A8B", "#ff80d5", "#4d94ff")
|
||||
|
||||
@@ -386,17 +386,17 @@
|
||||
* Natural paper
|
||||
*/
|
||||
|
||||
/obj/item/weapon/paper/natural/Initialize()
|
||||
/obj/item/paper/natural/Initialize()
|
||||
. = ..()
|
||||
color = "#FFF5ED"
|
||||
|
||||
/obj/item/weapon/paper/crumpled
|
||||
/obj/item/paper/crumpled
|
||||
name = "paper scrap"
|
||||
icon_state = "scrap"
|
||||
slot_flags = null
|
||||
|
||||
/obj/item/weapon/paper/crumpled/update_icon()
|
||||
/obj/item/paper/crumpled/update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper/crumpled/bloody
|
||||
/obj/item/paper/crumpled/bloody
|
||||
icon_state = "scrap_bloodied"
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/papercutter
|
||||
/obj/item/papercutter
|
||||
name = "paper cutter"
|
||||
desc = "Standard office equipment. Precisely cuts paper using a large blade."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -6,19 +6,19 @@
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
var/obj/item/weapon/paper/storedpaper = null
|
||||
var/obj/item/weapon/hatchet/cutterblade/storedcutter = null
|
||||
var/obj/item/paper/storedpaper = null
|
||||
var/obj/item/hatchet/cutterblade/storedcutter = null
|
||||
var/cuttersecured = TRUE
|
||||
pass_flags = PASSTABLE
|
||||
|
||||
|
||||
/obj/item/weapon/papercutter/New()
|
||||
/obj/item/papercutter/New()
|
||||
..()
|
||||
storedcutter = new /obj/item/weapon/hatchet/cutterblade(src)
|
||||
storedcutter = new /obj/item/hatchet/cutterblade(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/papercutter/suicide_act(mob/user)
|
||||
/obj/item/papercutter/suicide_act(mob/user)
|
||||
if(storedcutter)
|
||||
user.visible_message("<span class='suicide'>[user] is beheading [user.p_them()]self with [src.name]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
if(iscarbon(user))
|
||||
@@ -34,7 +34,7 @@
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
/obj/item/weapon/papercutter/update_icon()
|
||||
/obj/item/papercutter/update_icon()
|
||||
..()
|
||||
cut_overlays()
|
||||
icon_state = (storedcutter ? "[initial(icon_state)]-cutter" : "[initial(icon_state)]")
|
||||
@@ -42,8 +42,8 @@
|
||||
add_overlay("paper")
|
||||
|
||||
|
||||
/obj/item/weapon/papercutter/attackby(obj/item/P, mob/user, params)
|
||||
if(istype(P, /obj/item/weapon/paper) && !storedpaper)
|
||||
/obj/item/papercutter/attackby(obj/item/P, mob/user, params)
|
||||
if(istype(P, /obj/item/paper) && !storedpaper)
|
||||
if(!user.drop_item())
|
||||
return
|
||||
playsound(loc, "pageturn", 60, 1)
|
||||
@@ -52,7 +52,7 @@
|
||||
storedpaper = P
|
||||
update_icon()
|
||||
return
|
||||
if(istype(P, /obj/item/weapon/hatchet/cutterblade) && !storedcutter)
|
||||
if(istype(P, /obj/item/hatchet/cutterblade) && !storedcutter)
|
||||
if(!user.drop_item())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You replace [src]'s [P].</span>")
|
||||
@@ -60,7 +60,7 @@
|
||||
storedcutter = P
|
||||
update_icon()
|
||||
return
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && storedcutter)
|
||||
if(istype(P, /obj/item/screwdriver) && storedcutter)
|
||||
playsound(src, P.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>[storedcutter] has been [cuttersecured ? "unsecured" : "secured"].</span>")
|
||||
cuttersecured = !cuttersecured
|
||||
@@ -68,7 +68,7 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/papercutter/attack_hand(mob/user)
|
||||
/obj/item/papercutter/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
if(!storedcutter)
|
||||
to_chat(user, "<span class='notice'>The cutting blade is gone! You can't use [src] now.</span>")
|
||||
@@ -85,12 +85,12 @@
|
||||
to_chat(user, "<span class='notice'>You neatly cut [storedpaper].</span>")
|
||||
storedpaper = null
|
||||
qdel(storedpaper)
|
||||
new /obj/item/weapon/paperslip(get_turf(src))
|
||||
new /obj/item/weapon/paperslip(get_turf(src))
|
||||
new /obj/item/paperslip(get_turf(src))
|
||||
new /obj/item/paperslip(get_turf(src))
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/papercutter/MouseDrop(atom/over_object)
|
||||
/obj/item/papercutter/MouseDrop(atom/over_object)
|
||||
var/mob/M = usr
|
||||
if(M.incapacitated() || !Adjacent(M))
|
||||
return
|
||||
@@ -104,7 +104,7 @@
|
||||
add_fingerprint(M)
|
||||
|
||||
|
||||
/obj/item/weapon/paperslip
|
||||
/obj/item/paperslip
|
||||
name = "paper slip"
|
||||
desc = "A little slip of paper left over after a larger piece was cut. Whoa."
|
||||
icon_state = "paperslip"
|
||||
@@ -112,13 +112,13 @@
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 50
|
||||
|
||||
/obj/item/weapon/paperslip/New()
|
||||
/obj/item/paperslip/New()
|
||||
..()
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
|
||||
|
||||
/obj/item/weapon/hatchet/cutterblade
|
||||
/obj/item/hatchet/cutterblade
|
||||
name = "paper cutter"
|
||||
desc = "The blade of a paper cutter. Most likely removed for polishing or sharpening."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -6,15 +6,15 @@ diff a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_pr
|
||||
-/////////// Centcom
|
||||
+/////////// CentCom
|
||||
|
||||
/obj/item/weapon/paper/fluff/stations/centcom/disk_memo
|
||||
/obj/item/paper/fluff/stations/centcom/disk_memo
|
||||
name = "memo"
|
||||
info = "GET DAT FUKKEN DISK"
|
||||
|
||||
/obj/item/weapon/paper/fluff/stations/centcom/broken_evac
|
||||
/obj/item/paper/fluff/stations/centcom/broken_evac
|
||||
- info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.<br><br>We apologize for the inconvenience this may cause you.<br><br>Please enjoy the use of this complementary book.<br><br>Sincerely,<br>Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services"
|
||||
+ info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.<br><br>We apologize for the inconvenience this may cause you.<br><br>Please enjoy the use of this complementary book.<br><br>Sincerely,<br>CentCom Operations Demolitions Examination Retribution Bugfixing Underlining Services"
|
||||
|
||||
/obj/item/weapon/paper/fluff/stations/centcom/bulletin
|
||||
/obj/item/paper/fluff/stations/centcom/bulletin
|
||||
name = "paper- 'Official Bulletin'"
|
||||
- info = "<BR>Centcom Security<BR>Port Division<BR>Official Bulletin<BR><BR>Inspector,<BR>There is an emergency shuttle arriving today.<BR><BR>Approval is restricted to Nanotrasen employees only. Deny all other entrants.<BR><BR>Centcom Port Commissioner"
|
||||
+ info = "<BR>CentCom Security<BR>Port Division<BR>Official Bulletin<BR><BR>Inspector,<BR>There is an emergency shuttle arriving today.<BR><BR>Approval is restricted to Nanotrasen employees only. Deny all other entrants.<BR><BR>CentCom Port Commissioner"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/paper_bin
|
||||
/obj/item/paper_bin
|
||||
name = "paper bin"
|
||||
desc = "Contains all the paper you'll never need."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -11,44 +11,44 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
pressure_resistance = 8
|
||||
var/papertype = /obj/item/weapon/paper
|
||||
var/papertype = /obj/item/paper
|
||||
var/total_paper = 30
|
||||
var/list/papers = list()
|
||||
var/obj/item/weapon/pen/bin_pen
|
||||
var/obj/item/pen/bin_pen
|
||||
|
||||
/obj/item/weapon/paper_bin/Initialize(mapload)
|
||||
/obj/item/paper_bin/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
return
|
||||
var/obj/item/weapon/pen/P = locate(/obj/item/weapon/pen) in src.loc
|
||||
var/obj/item/pen/P = locate(/obj/item/pen) in src.loc
|
||||
if(P && !bin_pen)
|
||||
P.loc = src
|
||||
bin_pen = P
|
||||
update_icon()
|
||||
var/static/warned = FALSE
|
||||
if(P.type == /obj/item/weapon/pen && !warned)
|
||||
if(P.type == /obj/item/pen && !warned)
|
||||
warning("one or more paperbins ate a pen duing initialize()")
|
||||
warned = TRUE
|
||||
|
||||
/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume)
|
||||
/obj/item/paper_bin/fire_act(exposed_temperature, exposed_volume)
|
||||
if(!total_paper)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper_bin/Destroy()
|
||||
/obj/item/paper_bin/Destroy()
|
||||
if(papers)
|
||||
for(var/i in papers)
|
||||
qdel(i)
|
||||
papers = null
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/paper_bin/fire_act(exposed_temperature, exposed_volume)
|
||||
/obj/item/paper_bin/fire_act(exposed_temperature, exposed_volume)
|
||||
if(total_paper)
|
||||
total_paper = 0
|
||||
update_icon()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper_bin/MouseDrop(atom/over_object)
|
||||
/obj/item/paper_bin/MouseDrop(atom/over_object)
|
||||
var/mob/living/M = usr
|
||||
if(!istype(M) || M.incapacitated() || !Adjacent(M))
|
||||
return
|
||||
@@ -63,16 +63,16 @@
|
||||
add_fingerprint(M)
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/attack_paw(mob/user)
|
||||
/obj/item/paper_bin/attack_paw(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/attack_hand(mob/user)
|
||||
/obj/item/paper_bin/attack_hand(mob/user)
|
||||
if(user.lying)
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(bin_pen)
|
||||
var/obj/item/weapon/pen/P = bin_pen
|
||||
var/obj/item/pen/P = bin_pen
|
||||
P.loc = user.loc
|
||||
user.put_in_hands(P)
|
||||
to_chat(user, "<span class='notice'>You take [P] out of \the [src].</span>")
|
||||
@@ -82,7 +82,7 @@
|
||||
total_paper--
|
||||
update_icon()
|
||||
// If there's any custom paper on the stack, use that instead of creating a new paper.
|
||||
var/obj/item/weapon/paper/P
|
||||
var/obj/item/paper/P
|
||||
if(papers.len > 0)
|
||||
P = papers[papers.len]
|
||||
papers.Remove(P)
|
||||
@@ -103,17 +103,17 @@
|
||||
add_fingerprint(user)
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/paper))
|
||||
var/obj/item/weapon/paper/P = I
|
||||
/obj/item/paper_bin/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/paper))
|
||||
var/obj/item/paper/P = I
|
||||
if(!user.transferItemToLoc(P, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [P] in [src].</span>")
|
||||
papers.Add(P)
|
||||
total_paper++
|
||||
update_icon()
|
||||
else if(istype(I, /obj/item/weapon/pen) && !bin_pen)
|
||||
var/obj/item/weapon/pen/P = I
|
||||
else if(istype(I, /obj/item/pen) && !bin_pen)
|
||||
var/obj/item/pen/P = I
|
||||
if(!user.transferItemToLoc(P, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [P] in [src].</span>")
|
||||
@@ -122,7 +122,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paper_bin/examine(mob/user)
|
||||
/obj/item/paper_bin/examine(mob/user)
|
||||
..()
|
||||
if(total_paper)
|
||||
to_chat(user, "It contains " + (total_paper > 1 ? "[total_paper] papers" : " one paper")+".")
|
||||
@@ -130,7 +130,7 @@
|
||||
to_chat(user, "It doesn't contain anything.")
|
||||
|
||||
|
||||
/obj/item/weapon/paper_bin/update_icon()
|
||||
/obj/item/paper_bin/update_icon()
|
||||
if(total_paper < 1)
|
||||
icon_state = "paper_bin0"
|
||||
else
|
||||
@@ -139,31 +139,31 @@
|
||||
if(bin_pen)
|
||||
add_overlay(mutable_appearance(bin_pen.icon, bin_pen.icon_state))
|
||||
|
||||
/obj/item/weapon/paper_bin/construction
|
||||
/obj/item/paper_bin/construction
|
||||
name = "construction paper bin"
|
||||
desc = "Contains all the paper you'll never need, IN COLOR!"
|
||||
icon_state = "paper_binc"
|
||||
papertype = /obj/item/weapon/paper/construction
|
||||
papertype = /obj/item/paper/construction
|
||||
|
||||
/obj/item/weapon/paper_bin/bundlenatural
|
||||
/obj/item/paper_bin/bundlenatural
|
||||
name = "natural paper bundle"
|
||||
desc = "A bundle of paper created using traditional methods."
|
||||
icon_state = "paper_bundle"
|
||||
papertype = /obj/item/weapon/paper/natural
|
||||
papertype = /obj/item/paper/natural
|
||||
resistance_flags = FLAMMABLE
|
||||
/obj/item/weapon/paper_bin/bundlenatural/attack_hand(mob/user)
|
||||
/obj/item/paper_bin/bundlenatural/attack_hand(mob/user)
|
||||
..()
|
||||
if(total_paper < 1)
|
||||
qdel(src)
|
||||
/obj/item/weapon/paper_bin/bundlenatural/fire_act(exposed_temperature, exposed_volume)
|
||||
/obj/item/paper_bin/bundlenatural/fire_act(exposed_temperature, exposed_volume)
|
||||
qdel(src)
|
||||
/obj/item/weapon/paper_bin/bundlenatural/attackby(obj/item/weapon/W, mob/user)
|
||||
/obj/item/paper_bin/bundlenatural/attackby(obj/item/W, mob/user)
|
||||
if(W.is_sharp())
|
||||
to_chat(user, "<span class='notice'>You snip \the [src], spilling paper everywhere.</span>")
|
||||
var/turf/T = get_turf(src.loc)
|
||||
while(total_paper > 0)
|
||||
total_paper--
|
||||
var/obj/item/weapon/paper/P
|
||||
var/obj/item/paper/P
|
||||
if(papers.len > 0)
|
||||
P = papers[papers.len]
|
||||
papers -= P
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/paperplane
|
||||
/obj/item/paperplane
|
||||
name = "paper plane"
|
||||
desc = "Paper, folded in the shape of a plane"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -10,9 +10,9 @@
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 50
|
||||
|
||||
var/obj/item/weapon/paper/internalPaper
|
||||
var/obj/item/paper/internalPaper
|
||||
|
||||
/obj/item/weapon/paperplane/Initialize(mapload, obj/item/weapon/paper/newPaper)
|
||||
/obj/item/paperplane/Initialize(mapload, obj/item/paper/newPaper)
|
||||
. = ..()
|
||||
pixel_y = rand(-8, 8)
|
||||
pixel_x = rand(-9, 9)
|
||||
@@ -22,16 +22,16 @@
|
||||
color = newPaper.color
|
||||
newPaper.forceMove(src)
|
||||
else
|
||||
internalPaper = new /obj/item/weapon/paper(src)
|
||||
internalPaper = new /obj/item/paper(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/paperplane/Destroy()
|
||||
/obj/item/paperplane/Destroy()
|
||||
if(internalPaper)
|
||||
qdel(internalPaper)
|
||||
internalPaper = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/paperplane/suicide_act(mob/living/user)
|
||||
/obj/item/paperplane/suicide_act(mob/living/user)
|
||||
user.Stun(200)
|
||||
user.visible_message("<span class='suicide'>[user] jams the [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.adjust_blurriness(6)
|
||||
@@ -39,14 +39,14 @@
|
||||
sleep(10)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/paperplane/update_icon()
|
||||
/obj/item/paperplane/update_icon()
|
||||
cut_overlays()
|
||||
var/list/stamped = internalPaper.stamped
|
||||
if(stamped)
|
||||
for(var/S in stamped)
|
||||
add_overlay("paperplane_[S]")
|
||||
|
||||
/obj/item/weapon/paperplane/attack_self(mob/user)
|
||||
/obj/item/paperplane/attack_self(mob/user)
|
||||
to_chat(user, "<span class='notice'>You unfold [src].</span>")
|
||||
var/atom/movable/internal_paper_tmp = internalPaper
|
||||
internal_paper_tmp.forceMove(loc)
|
||||
@@ -54,13 +54,13 @@
|
||||
qdel(src)
|
||||
user.put_in_hands(internal_paper_tmp)
|
||||
|
||||
/obj/item/weapon/paperplane/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params)
|
||||
/obj/item/paperplane/attackby(obj/item/P, mob/living/carbon/human/user, params)
|
||||
..()
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
|
||||
to_chat(user, "<span class='notice'>You should unfold [src] before changing it.</span>")
|
||||
return
|
||||
|
||||
else if(istype(P, /obj/item/weapon/stamp)) //we don't randomize stamps on a paperplane
|
||||
else if(istype(P, /obj/item/stamp)) //we don't randomize stamps on a paperplane
|
||||
internalPaper.attackby(P, user) //spoofed attack to update internal paper.
|
||||
update_icon()
|
||||
|
||||
@@ -82,10 +82,10 @@
|
||||
add_fingerprint(user)
|
||||
|
||||
|
||||
/obj/item/weapon/paperplane/throw_at(atom/target, range, speed, mob/thrower, spin=FALSE, diagonals_first = FALSE, datum/callback/callback)
|
||||
/obj/item/paperplane/throw_at(atom/target, range, speed, mob/thrower, spin=FALSE, diagonals_first = FALSE, datum/callback/callback)
|
||||
. = ..(target, range, speed, thrower, FALSE, diagonals_first, callback)
|
||||
|
||||
/obj/item/weapon/paperplane/throw_impact(atom/hit_atom)
|
||||
/obj/item/paperplane/throw_impact(atom/hit_atom)
|
||||
if(..() || !ishuman(hit_atom))//if the plane is caught or it hits a nonhuman
|
||||
return
|
||||
var/mob/living/carbon/human/H = hit_atom
|
||||
@@ -98,13 +98,13 @@
|
||||
H.Knockdown(40)
|
||||
H.emote("scream")
|
||||
|
||||
/obj/item/weapon/paper/AltClick(mob/living/carbon/user, obj/item/I)
|
||||
/obj/item/paper/AltClick(mob/living/carbon/user, obj/item/I)
|
||||
if ( istype(user) )
|
||||
if( (!in_range(src, user)) || user.stat || user.restrained() )
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You fold [src] into the shape of a plane!</span>")
|
||||
user.temporarilyRemoveItemFromInventory(src)
|
||||
I = new /obj/item/weapon/paperplane(user, src)
|
||||
I = new /obj/item/paperplane(user, src)
|
||||
user.put_in_hands(I)
|
||||
else
|
||||
to_chat(user, "<span class='notice'> You lack the dexterity to fold \the [src]. </span>")
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/*
|
||||
* Pens
|
||||
*/
|
||||
/obj/item/weapon/pen
|
||||
/obj/item/pen
|
||||
desc = "It's a normal black ink pen."
|
||||
name = "pen"
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -28,31 +28,31 @@
|
||||
var/degrees = 0
|
||||
var/font = PEN_FONT
|
||||
|
||||
/obj/item/weapon/pen/suicide_act(mob/user)
|
||||
/obj/item/pen/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...</span>")
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/pen/blue
|
||||
/obj/item/pen/blue
|
||||
desc = "It's a normal blue ink pen."
|
||||
icon_state = "pen_blue"
|
||||
colour = "blue"
|
||||
|
||||
/obj/item/weapon/pen/red
|
||||
/obj/item/pen/red
|
||||
desc = "It's a normal red ink pen."
|
||||
icon_state = "pen_red"
|
||||
colour = "red"
|
||||
|
||||
/obj/item/weapon/pen/invisible
|
||||
/obj/item/pen/invisible
|
||||
desc = "It's an invisble pen marker."
|
||||
icon_state = "pen"
|
||||
colour = "white"
|
||||
|
||||
/obj/item/weapon/pen/fourcolor
|
||||
/obj/item/pen/fourcolor
|
||||
desc = "It's a fancy four-color ink pen, set to black."
|
||||
name = "four-color pen"
|
||||
colour = "black"
|
||||
|
||||
/obj/item/weapon/pen/fourcolor/attack_self(mob/living/carbon/user)
|
||||
/obj/item/pen/fourcolor/attack_self(mob/living/carbon/user)
|
||||
switch(colour)
|
||||
if("black")
|
||||
colour = "red"
|
||||
@@ -65,13 +65,13 @@
|
||||
to_chat(user, "<span class='notice'>\The [src] will now write in [colour].</span>")
|
||||
desc = "It's a fancy four-color ink pen, set to [colour]."
|
||||
|
||||
/obj/item/weapon/pen/fountain
|
||||
/obj/item/pen/fountain
|
||||
name = "fountain pen"
|
||||
desc = "It's a common fountain pen, with a faux wood body."
|
||||
icon_state = "pen-fountain"
|
||||
font = FOUNTAIN_PEN_FONT
|
||||
|
||||
/obj/item/weapon/pen/fountain/captain
|
||||
/obj/item/pen/fountain/captain
|
||||
name = "captain's fountain pen"
|
||||
desc = "It's an expensive Oak fountain pen. The nib is quite sharp."
|
||||
icon_state = "pen-fountain-o"
|
||||
@@ -89,12 +89,12 @@
|
||||
"Command Blue" = "pen-fountain-cb"
|
||||
)
|
||||
|
||||
/obj/item/weapon/pen/fountain/captain/reskin_obj(mob/M)
|
||||
/obj/item/pen/fountain/captain/reskin_obj(mob/M)
|
||||
..()
|
||||
if(current_skin)
|
||||
desc = "It's an expensive [current_skin] fountain pen. The nib is quite sharp."
|
||||
|
||||
/obj/item/weapon/pen/attack_self(mob/living/carbon/user)
|
||||
/obj/item/pen/attack_self(mob/living/carbon/user)
|
||||
var/deg = input(user, "What angle would you like to rotate the pen head to? (1-360)", "Rotate Pen Head") as null|num
|
||||
if(deg && (deg > 0 && deg <= 360))
|
||||
degrees = deg
|
||||
@@ -105,14 +105,14 @@
|
||||
hidden_uplink.interact(user)
|
||||
|
||||
|
||||
/obj/item/weapon/pen/attackby(obj/item/I, mob/user, params)
|
||||
/obj/item/pen/attackby(obj/item/I, mob/user, params)
|
||||
if(hidden_uplink)
|
||||
return hidden_uplink.attackby(I, user, params)
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/pen/attack(mob/living/M, mob/user,stealth)
|
||||
/obj/item/pen/attack(mob/living/M, mob/user,stealth)
|
||||
if(!istype(M))
|
||||
return
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/pen/afterattack(obj/O, mob/living/user, proximity)
|
||||
/obj/item/pen/afterattack(obj/O, mob/living/user, proximity)
|
||||
//Changing Name/Description of items. Only works if they have the 'unique_rename' var set
|
||||
if(isobj(O) && proximity)
|
||||
if(O.unique_rename)
|
||||
@@ -166,12 +166,12 @@
|
||||
/*
|
||||
* Sleepypens
|
||||
*/
|
||||
/obj/item/weapon/pen/sleepy
|
||||
/obj/item/pen/sleepy
|
||||
origin_tech = "engineering=4;syndicate=2"
|
||||
container_type = OPENCONTAINER_1
|
||||
|
||||
|
||||
/obj/item/weapon/pen/sleepy/attack(mob/living/M, mob/user)
|
||||
/obj/item/pen/sleepy/attack(mob/living/M, mob/user)
|
||||
if(!istype(M))
|
||||
return
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
|
||||
|
||||
/obj/item/weapon/pen/sleepy/New()
|
||||
/obj/item/pen/sleepy/New()
|
||||
create_reagents(45)
|
||||
reagents.add_reagent("chloralhydrate2", 20)
|
||||
reagents.add_reagent("mutetoxin", 15)
|
||||
@@ -191,12 +191,12 @@
|
||||
/*
|
||||
* (Alan) Edaggers
|
||||
*/
|
||||
/obj/item/weapon/pen/edagger
|
||||
/obj/item/pen/edagger
|
||||
origin_tech = "combat=3;syndicate=1"
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off
|
||||
var/on = FALSE
|
||||
|
||||
/obj/item/weapon/pen/edagger/attack_self(mob/living/user)
|
||||
/obj/item/pen/edagger/attack_self(mob/living/user)
|
||||
if(on)
|
||||
on = FALSE
|
||||
force = initial(force)
|
||||
@@ -219,7 +219,7 @@
|
||||
to_chat(user, "<span class='warning'>[src] is now active.</span>")
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/pen/edagger/update_icon()
|
||||
/obj/item/pen/edagger/update_icon()
|
||||
if(on)
|
||||
icon_state = "edagger"
|
||||
item_state = "edagger"
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
power_channel = EQUIP
|
||||
max_integrity = 300
|
||||
integrity_failure = 100
|
||||
var/obj/item/weapon/paper/copy = null //what's in the copier!
|
||||
var/obj/item/weapon/photo/photocopy = null
|
||||
var/obj/item/paper/copy = null //what's in the copier!
|
||||
var/obj/item/photo/photocopy = null
|
||||
var/obj/item/documents/doccopy = null
|
||||
var/copies = 1 //how many copies to print!
|
||||
var/toner = 40 //how much toner is left! woooooo~
|
||||
@@ -67,13 +67,13 @@
|
||||
for(var/i = 0, i < copies, i++)
|
||||
if(toner > 0 && !busy && copy)
|
||||
var/copy_as_paper = 1
|
||||
if(istype(copy, /obj/item/weapon/paper/contract/employment))
|
||||
var/obj/item/weapon/paper/contract/employment/E = copy
|
||||
var/obj/item/weapon/paper/contract/employment/C = new /obj/item/weapon/paper/contract/employment (loc, E.target.current)
|
||||
if(istype(copy, /obj/item/paper/contract/employment))
|
||||
var/obj/item/paper/contract/employment/E = copy
|
||||
var/obj/item/paper/contract/employment/C = new /obj/item/paper/contract/employment (loc, E.target.current)
|
||||
if(C)
|
||||
copy_as_paper = 0
|
||||
if(copy_as_paper)
|
||||
var/obj/item/weapon/paper/c = new /obj/item/weapon/paper (loc)
|
||||
var/obj/item/paper/c = new /obj/item/paper (loc)
|
||||
if(length(copy.info) > 0) //Only print and add content if the copied doc has words on it
|
||||
if(toner > 10) //lots of toner, make it dark
|
||||
c.info = "<font color = #101010>"
|
||||
@@ -102,7 +102,7 @@
|
||||
else if(photocopy)
|
||||
for(var/i = 0, i < copies, i++)
|
||||
if(toner >= 5 && !busy && photocopy) //Was set to = 0, but if there was say 3 toner left and this ran, you would get -2 which would be weird for ink
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc)
|
||||
var/obj/item/photo/p = new /obj/item/photo (loc)
|
||||
var/icon/I = icon(photocopy.icon, photocopy.icon_state)
|
||||
var/icon/img = icon(photocopy.img)
|
||||
if(greytoggle == "Greyscale")
|
||||
@@ -162,7 +162,7 @@
|
||||
temp_img = icon('icons/ass/assdrone.png')
|
||||
else
|
||||
break
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc)
|
||||
var/obj/item/photo/p = new /obj/item/photo (loc)
|
||||
p.desc = "You see [ass]'s ass on the photo."
|
||||
p.pixel_x = rand(-10, 10)
|
||||
p.pixel_y = rand(-10, 10)
|
||||
@@ -214,7 +214,7 @@
|
||||
for(var/datum/picture/t in tempAI.aicamera.aipictures)
|
||||
nametemp += t.fields["name"]
|
||||
find = input("Select image (numbered in order taken)") in nametemp
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (loc)
|
||||
var/obj/item/photo/p = new /obj/item/photo (loc)
|
||||
for(var/datum/picture/q in tempAI.aicamera.aipictures)
|
||||
if(q.fields["name"] == find)
|
||||
selection = q
|
||||
@@ -254,9 +254,9 @@
|
||||
to_chat(user, "<span class='notice'>You take [O] out of [src].</span>")
|
||||
|
||||
/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
if(istype(O, /obj/item/paper))
|
||||
if(copier_empty())
|
||||
if(istype(O, /obj/item/weapon/paper/contract/infernal))
|
||||
if(istype(O, /obj/item/paper/contract/infernal))
|
||||
to_chat(user, "<span class='warning'>[src] smokes, smelling of brimstone!</span>")
|
||||
resistance_flags |= FLAMMABLE
|
||||
fire_act()
|
||||
@@ -268,7 +268,7 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There is already something in [src]!</span>")
|
||||
|
||||
else if(istype(O, /obj/item/weapon/photo))
|
||||
else if(istype(O, /obj/item/photo))
|
||||
if(copier_empty())
|
||||
if(!user.drop_item())
|
||||
return
|
||||
@@ -297,7 +297,7 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>This cartridge is not yet ready for replacement! Use up the rest of the toner.</span>")
|
||||
|
||||
else if(istype(O, /obj/item/weapon/wrench))
|
||||
else if(istype(O, /obj/item/wrench))
|
||||
if(isinspace())
|
||||
to_chat(user, "<span class='warning'>There's nothing to fasten [src] to!</span>")
|
||||
return
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/*
|
||||
* Photo
|
||||
*/
|
||||
/obj/item/weapon/photo
|
||||
/obj/item/photo
|
||||
name = "photo"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "photo"
|
||||
@@ -37,12 +37,12 @@
|
||||
var/sillynewscastervar //Photo objects with this set to 1 will not be ejected by a newscaster. Only gets set to 1 if a silicon puts one of their images into a newscaster
|
||||
|
||||
|
||||
/obj/item/weapon/photo/attack_self(mob/user)
|
||||
/obj/item/photo/attack_self(mob/user)
|
||||
user.examinate(src)
|
||||
|
||||
|
||||
/obj/item/weapon/photo/attackby(obj/item/weapon/P, mob/user, params)
|
||||
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
/obj/item/photo/attackby(obj/item/P, mob/user, params)
|
||||
if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
|
||||
var/txt = sanitize(input(user, "What would you like to write on the back?", "Photo Writing", null) as text)
|
||||
txt = copytext(txt, 1, 128)
|
||||
if(loc == user && user.stat == 0)
|
||||
@@ -50,7 +50,7 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/photo/examine(mob/user)
|
||||
/obj/item/photo/examine(mob/user)
|
||||
..()
|
||||
|
||||
if(in_range(src, user))
|
||||
@@ -59,7 +59,7 @@
|
||||
to_chat(user, "<span class='warning'>You need to get closer to get a good look at this photo!</span>")
|
||||
|
||||
|
||||
/obj/item/weapon/photo/proc/show(mob/user)
|
||||
/obj/item/photo/proc/show(mob/user)
|
||||
user << browse_rsc(img, "tmp_photo.png")
|
||||
user << browse("<html><head><title>[name]</title></head>" \
|
||||
+ "<body style='overflow:hidden;margin:0;text-align:center'>" \
|
||||
@@ -69,7 +69,7 @@
|
||||
onclose(user, "[name]")
|
||||
|
||||
|
||||
/obj/item/weapon/photo/verb/rename()
|
||||
/obj/item/photo/verb/rename()
|
||||
set name = "Rename photo"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -80,7 +80,7 @@
|
||||
name = "photo[(n_name ? text("- '[n_name]'") : null)]"
|
||||
add_fingerprint(usr)
|
||||
|
||||
/obj/item/weapon/photo/proc/photocreate(inicon, inimg, indesc, inblueprints)
|
||||
/obj/item/photo/proc/photocreate(inicon, inimg, indesc, inblueprints)
|
||||
icon = inicon
|
||||
img = inimg
|
||||
desc = indesc
|
||||
@@ -89,14 +89,14 @@
|
||||
/*
|
||||
* Photo album
|
||||
*/
|
||||
/obj/item/weapon/storage/photo_album
|
||||
/obj/item/storage/photo_album
|
||||
name = "photo album"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "album"
|
||||
item_state = "briefcase"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi'
|
||||
can_hold = list(/obj/item/weapon/photo)
|
||||
can_hold = list(/obj/item/photo)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/*
|
||||
@@ -307,7 +307,7 @@
|
||||
|
||||
|
||||
/obj/item/device/camera/proc/printpicture(mob/user, icon/temp, mobs, flag) //Normal camera proc for creating photos
|
||||
var/obj/item/weapon/photo/P = new/obj/item/weapon/photo(get_turf(src))
|
||||
var/obj/item/photo/P = new/obj/item/photo(get_turf(src))
|
||||
if(in_range(src, user)) //needed because of TK
|
||||
user.put_in_hands(P)
|
||||
var/icon/small_img = icon(temp)
|
||||
@@ -404,7 +404,7 @@
|
||||
return q
|
||||
|
||||
/obj/item/device/camera/siliconcam/proc/viewpichelper(obj/item/device/camera/siliconcam/targetloc)
|
||||
var/obj/item/weapon/photo/P = new/obj/item/weapon/photo()
|
||||
var/obj/item/photo/P = new/obj/item/photo()
|
||||
var/datum/picture/selection = selectpicture(targetloc)
|
||||
if(selection)
|
||||
P.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"])
|
||||
@@ -482,7 +482,7 @@
|
||||
if(q.fields["name"] == find)
|
||||
selection = q
|
||||
break
|
||||
var/obj/item/weapon/photo/p = new /obj/item/weapon/photo(C.loc)
|
||||
var/obj/item/photo/p = new /obj/item/photo(C.loc)
|
||||
p.photocreate(selection.fields["icon"], selection.fields["img"], selection.fields["desc"], selection.fields["blueprints"])
|
||||
p.pixel_x = rand(-10, 10)
|
||||
p.pixel_y = rand(-10, 10)
|
||||
@@ -500,10 +500,10 @@
|
||||
flags_1 = 0
|
||||
icon_state = "frame-empty"
|
||||
result_path = /obj/structure/sign/picture_frame
|
||||
var/obj/item/weapon/photo/displayed
|
||||
var/obj/item/photo/displayed
|
||||
|
||||
/obj/item/wallframe/picture/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/photo))
|
||||
if(istype(I, /obj/item/photo))
|
||||
if(!displayed)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
@@ -554,7 +554,7 @@
|
||||
desc = "Every time you look it makes you laugh."
|
||||
icon = 'icons/obj/decals.dmi'
|
||||
icon_state = "frame-empty"
|
||||
var/obj/item/weapon/photo/framed
|
||||
var/obj/item/photo/framed
|
||||
|
||||
/obj/structure/sign/picture_frame/New(loc, dir, building)
|
||||
..()
|
||||
@@ -571,7 +571,7 @@
|
||||
..()
|
||||
|
||||
/obj/structure/sign/picture_frame/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/screwdriver) || istype(I, /obj/item/weapon/wrench))
|
||||
if(istype(I, /obj/item/screwdriver) || istype(I, /obj/item/wrench))
|
||||
to_chat(user, "<span class='notice'>You start unsecuring [name]...</span>")
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 30*I.toolspeed, target = src))
|
||||
@@ -580,9 +580,9 @@
|
||||
deconstruct()
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/weapon/photo))
|
||||
else if(istype(I, /obj/item/photo))
|
||||
if(!framed)
|
||||
var/obj/item/weapon/photo/P = I
|
||||
var/obj/item/photo/P = I
|
||||
if(!user.transferItemToLoc(P, src))
|
||||
return
|
||||
framed = P
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/stamp
|
||||
/obj/item/stamp
|
||||
name = "\improper GRANTED rubber stamp"
|
||||
desc = "A rubber stamp for stamping important documents."
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
@@ -13,97 +13,97 @@
|
||||
pressure_resistance = 2
|
||||
attack_verb = list("stamped")
|
||||
|
||||
/obj/item/weapon/stamp/suicide_act(mob/user)
|
||||
/obj/item/stamp/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] stamps 'VOID' on [user.p_their()] forehead, then promptly falls over, dead.</span>")
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/weapon/stamp/qm
|
||||
/obj/item/stamp/qm
|
||||
name = "quartermaster's rubber stamp"
|
||||
icon_state = "stamp-qm"
|
||||
item_color = "qm"
|
||||
|
||||
/obj/item/weapon/stamp/law
|
||||
/obj/item/stamp/law
|
||||
name = "law office's rubber stamp"
|
||||
icon_state = "stamp-law"
|
||||
item_color = "cargo"
|
||||
|
||||
/obj/item/weapon/stamp/captain
|
||||
/obj/item/stamp/captain
|
||||
name = "captain's rubber stamp"
|
||||
icon_state = "stamp-cap"
|
||||
item_color = "captain"
|
||||
|
||||
/obj/item/weapon/stamp/hop
|
||||
/obj/item/stamp/hop
|
||||
name = "head of personnel's rubber stamp"
|
||||
icon_state = "stamp-hop"
|
||||
item_color = "hop"
|
||||
|
||||
/obj/item/weapon/stamp/hos
|
||||
/obj/item/stamp/hos
|
||||
name = "head of security's rubber stamp"
|
||||
icon_state = "stamp-hos"
|
||||
item_color = "hosred"
|
||||
|
||||
/obj/item/weapon/stamp/ce
|
||||
/obj/item/stamp/ce
|
||||
name = "chief engineer's rubber stamp"
|
||||
icon_state = "stamp-ce"
|
||||
item_color = "chief"
|
||||
|
||||
/obj/item/weapon/stamp/rd
|
||||
/obj/item/stamp/rd
|
||||
name = "research director's rubber stamp"
|
||||
icon_state = "stamp-rd"
|
||||
item_color = "director"
|
||||
|
||||
/obj/item/weapon/stamp/cmo
|
||||
/obj/item/stamp/cmo
|
||||
name = "chief medical officer's rubber stamp"
|
||||
icon_state = "stamp-cmo"
|
||||
item_color = "cmo"
|
||||
|
||||
/obj/item/weapon/stamp/denied
|
||||
/obj/item/stamp/denied
|
||||
name = "\improper DENIED rubber stamp"
|
||||
icon_state = "stamp-deny"
|
||||
item_color = "redcoat"
|
||||
|
||||
/obj/item/weapon/stamp/clown
|
||||
/obj/item/stamp/clown
|
||||
name = "clown's rubber stamp"
|
||||
icon_state = "stamp-clown"
|
||||
item_color = "clown"
|
||||
|
||||
/obj/item/weapon/stamp/attack_paw(mob/user)
|
||||
/obj/item/stamp/attack_paw(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
// Syndicate stamp to forge documents.
|
||||
|
||||
/obj/item/weapon/stamp/chameleon
|
||||
/obj/item/stamp/chameleon
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
|
||||
var/list/stamp_types
|
||||
var/list/stamp_names
|
||||
|
||||
/obj/item/weapon/stamp/chameleon/Initialize()
|
||||
/obj/item/stamp/chameleon/Initialize()
|
||||
. = ..()
|
||||
stamp_types = typesof(/obj/item/weapon/stamp) - type // Get all stamp types except our own
|
||||
stamp_types = typesof(/obj/item/stamp) - type // Get all stamp types except our own
|
||||
|
||||
stamp_names = list()
|
||||
// Generate them into a list
|
||||
for(var/i in stamp_types)
|
||||
var/obj/item/weapon/stamp/stamp_type = i
|
||||
var/obj/item/stamp/stamp_type = i
|
||||
stamp_names += initial(stamp_type.name)
|
||||
|
||||
stamp_names = sortList(stamp_names)
|
||||
|
||||
/obj/item/weapon/stamp/chameleon/emp_act(severity)
|
||||
/obj/item/stamp/chameleon/emp_act(severity)
|
||||
change_to(pick(stamp_types))
|
||||
|
||||
/obj/item/weapon/stamp/chameleon/proc/change_to(obj/item/weapon/stamp/stamp_type)
|
||||
/obj/item/stamp/chameleon/proc/change_to(obj/item/stamp/stamp_type)
|
||||
name = initial(stamp_type.name)
|
||||
icon_state = initial(stamp_type.icon_state)
|
||||
item_color = initial(stamp_type.item_color)
|
||||
|
||||
/obj/item/weapon/stamp/chameleon/attack_self(mob/user)
|
||||
/obj/item/stamp/chameleon/attack_self(mob/user)
|
||||
var/input_stamp = input(user, "Choose a stamp to disguise as.",
|
||||
"Choose a stamp.") as null|anything in stamp_names
|
||||
|
||||
if(user && (src in user.contents) && input_stamp)
|
||||
var/obj/item/weapon/stamp/stamp_type
|
||||
var/obj/item/stamp/stamp_type
|
||||
for(var/i in stamp_types)
|
||||
stamp_type = i
|
||||
if(initial(stamp_type.name) == input_stamp)
|
||||
|
||||
Reference in New Issue
Block a user