mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-28 15:39:57 +01:00
Custodial Additions (#13612)
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
//
|
||||
// Holsters
|
||||
//
|
||||
/obj/item/clothing/accessory/holster
|
||||
name = "shoulder holster"
|
||||
desc = "A handgun holster."
|
||||
@@ -33,9 +36,9 @@
|
||||
playsound(get_turf(src), sound_in, 50)
|
||||
|
||||
if(istype(user))
|
||||
user.stop_aiming(no_message=1)
|
||||
user.stop_aiming(no_message = TRUE)
|
||||
holstered = I
|
||||
user.drop_from_inventory(holstered,src)
|
||||
user.drop_from_inventory(holstered, src)
|
||||
holstered.add_fingerprint(user)
|
||||
w_class = max(w_class, holstered.w_class)
|
||||
user.visible_message("<span class='notice'>[user] holsters \the [holstered].</span>", "<span class='notice'>You holster \the [holstered].</span>")
|
||||
@@ -45,11 +48,11 @@
|
||||
holstered = null
|
||||
update_name()
|
||||
|
||||
/obj/item/clothing/accessory/holster/proc/unholster(mob/user as mob)
|
||||
/obj/item/clothing/accessory/holster/proc/unholster(mob/user)
|
||||
if(!holstered)
|
||||
return
|
||||
|
||||
if(istype(user.get_active_hand(),/obj) && istype(user.get_inactive_hand(),/obj))
|
||||
if(istype(user.get_active_hand(), /obj) && istype(user.get_inactive_hand(), /obj))
|
||||
to_chat(user, "<span class='warning'>You need an empty hand to draw \the [holstered]!</span>")
|
||||
else if (use_check(user))
|
||||
to_chat(user, "<span class='warning'>You can't draw \the [holstered] in your current state!</span>")
|
||||
@@ -57,15 +60,15 @@
|
||||
var/sound_vol = 25
|
||||
if(user.a_intent == I_HURT)
|
||||
sound_vol = 50
|
||||
usr.visible_message(
|
||||
user.visible_message(
|
||||
"<span class='danger'>[user] draws \the [holstered], ready to shoot!</span>",
|
||||
"<span class='warning'>You draw \the [holstered], ready to shoot!</span>"
|
||||
)
|
||||
)
|
||||
else
|
||||
user.visible_message(
|
||||
"<span class='notice'>[user] draws \the [holstered], pointing it at the ground.</span>",
|
||||
"<span class='notice'>You draw \the [holstered], pointing it at the ground.</span>"
|
||||
)
|
||||
)
|
||||
|
||||
if(sound_out)
|
||||
playsound(get_turf(src), sound_out, sound_vol)
|
||||
@@ -75,15 +78,15 @@
|
||||
w_class = initial(w_class)
|
||||
clear_holster()
|
||||
|
||||
/obj/item/clothing/accessory/holster/attack_hand(mob/user as mob)
|
||||
if (has_suit) //if we are part of a suit
|
||||
/obj/item/clothing/accessory/holster/attack_hand(mob/user)
|
||||
if (has_suit) // If we are part of a suit.
|
||||
if (holstered)
|
||||
unholster(user)
|
||||
return
|
||||
|
||||
..(user)
|
||||
|
||||
/obj/item/clothing/accessory/holster/attackby(obj/item/W as obj, mob/user as mob)
|
||||
/obj/item/clothing/accessory/holster/attackby(obj/item/W, mob/user)
|
||||
holster(W, user)
|
||||
|
||||
/obj/item/clothing/accessory/holster/emp_act(severity)
|
||||
@@ -98,24 +101,27 @@
|
||||
else
|
||||
to_chat(user, "It is empty.")
|
||||
|
||||
/obj/item/clothing/accessory/holster/on_attached(obj/item/clothing/under/S, mob/user as mob)
|
||||
/obj/item/clothing/accessory/holster/on_attached(obj/item/clothing/under/S, mob/user)
|
||||
..()
|
||||
has_suit.verbs += /obj/item/clothing/accessory/holster/verb/holster_verb
|
||||
|
||||
/obj/item/clothing/accessory/holster/on_removed(mob/user as mob)
|
||||
/obj/item/clothing/accessory/holster/on_removed(mob/user)
|
||||
if(has_suit)
|
||||
has_suit.verbs -= /obj/item/clothing/accessory/holster/verb/holster_verb
|
||||
..()
|
||||
|
||||
//For the holster hotkey
|
||||
/obj/item/clothing/accessory/holster/verb/holster_verb()
|
||||
/obj/item/clothing/accessory/holster/verb/holster_verb() //For the holster hotkey.
|
||||
set name = "Holster"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living)) return
|
||||
if(usr.stat) return
|
||||
|
||||
//can't we just use src here?
|
||||
if(!istype(usr, /mob/living))
|
||||
return
|
||||
|
||||
if(usr.stat)
|
||||
return
|
||||
|
||||
// Can't we just use src here?
|
||||
var/obj/item/clothing/accessory/holster/H = get_accessory(/obj/item/clothing/accessory/holster)
|
||||
if(!H && istype(src, /obj/item/clothing/suit/armor/tactical)) // This armor is a snowflake and has an integrated holster.
|
||||
var/obj/item/clothing/suit/armor/tactical/tacticool = src
|
||||
@@ -127,7 +133,7 @@
|
||||
if(!H.holstered)
|
||||
var/obj/item/W = usr.get_active_hand()
|
||||
if(!istype(W, /obj/item))
|
||||
to_chat(usr, "<span class='warning'>You need your gun equiped to holster it.</span>")
|
||||
to_chat(usr, "<span class='warning'>You need your gun equipped to holster it.</span>")
|
||||
return
|
||||
H.holster(W, usr)
|
||||
else
|
||||
@@ -145,7 +151,7 @@
|
||||
|
||||
/obj/item/clothing/accessory/holster/hip
|
||||
name = "black hip holster"
|
||||
desc = "<i>No one dared to ask his business, no one dared to make a slip. The stranger there among them had a big iron on his hip.</i>"
|
||||
desc = "A black firearm hip holster."
|
||||
icon_state = "holster_hip"
|
||||
|
||||
/obj/item/clothing/accessory/holster/thigh
|
||||
@@ -171,3 +177,33 @@
|
||||
name = "brown thigh holster"
|
||||
icon_state = "holster_brown_thigh"
|
||||
|
||||
//
|
||||
// Utility Holsters
|
||||
//
|
||||
/obj/item/clothing/accessory/holster/utility
|
||||
name = "utility holster"
|
||||
desc = "A utility holster."
|
||||
var/list/allowed_items = list() // A list of allowed items.
|
||||
|
||||
/obj/item/clothing/accessory/holster/utility/holster(var/obj/item/I, var/mob/living/user)
|
||||
if(!is_type_in_list(I, allowed_items))
|
||||
to_chat(user, "<span class='notice'>\The [I] won't fit in \the [src].</span>")
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
// Custodial Holster
|
||||
/obj/item/clothing/accessory/holster/utility/custodial/armpit/brown
|
||||
name = "brown custodial armpit holster"
|
||||
desc = "A brown utility holster which can't hold actual firearms. This particular one is designed for custodial personnel."
|
||||
desc_fluff = "In a universe where various utility firearms and tools have become more common for diverse applications, it is important that there are ways to store them where \
|
||||
they are kept safe from wear and tear as well as from misuse. Thus as an alternative to regular firearm holsters, specialized utility firearm and tool holsters exist, which \
|
||||
allow non-standard firearms to be stored inside, whilst at the same time keeping individuals from storing actual firearms in one."
|
||||
icon_state = "holster_brown"
|
||||
allowed_items = list(
|
||||
/obj/item/gun/energy/mousegun,
|
||||
/obj/item/gun/energy/mousegun/xenofauna,
|
||||
/obj/item/gun/projectile/revolver/capgun,
|
||||
/obj/item/toy/crossbow,
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana
|
||||
)
|
||||
@@ -91,8 +91,8 @@
|
||||
if(.)
|
||||
return TRUE
|
||||
|
||||
if(load && usr != load)
|
||||
to_chat(usr, SPAN_WARNING("You can't interact with \the [src] unless you're the driver, or you're adjacent to it while it has no driver."))
|
||||
if(load && load != usr)
|
||||
to_chat(usr, SPAN_WARNING("You can't interact with \the [src] while its in use."))
|
||||
return TRUE
|
||||
|
||||
if(href_list["toggle_engine"])
|
||||
|
||||
@@ -1,32 +1,34 @@
|
||||
//
|
||||
// Custodial Truck a.k.a. Pussy Wagon
|
||||
//
|
||||
/obj/vehicle/train/cargo/engine/pussywagon
|
||||
name = "janicart deluxe engine"
|
||||
desc = "The engine for the janicart deluxe trolley, the bread to your butter."
|
||||
name = "\improper C8000 deluxe custodial truck"
|
||||
desc = "A C8000 deluxe custodial truck. The bread to the custodians' butter."
|
||||
desc_info = "Click-drag yourself onto the truck to climb onto it.<br>\
|
||||
- CTRL-click the truck to open the ignition and controls menu.<br>\
|
||||
- ALT-click the truck to remove the key from the ignition.<br>\
|
||||
- Click the truck to open a UI menu.<br>\
|
||||
- Click the resist button or type \"resist\" in the command bar at the bottom of your screen to get off the truck."
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "janicart_off"
|
||||
light_range = 0 // Turn off the light inherited from the parent.
|
||||
move_delay = 3
|
||||
|
||||
mob_offset_y = 7
|
||||
load_offset_x = -13
|
||||
vueui_template = "pussywagon"
|
||||
|
||||
// Unique Variables
|
||||
var/cart_icon = "janicart"
|
||||
|
||||
/obj/item/key/janicart
|
||||
name = "key"
|
||||
desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "keys"
|
||||
w_class = ITEMSIZE_TINY
|
||||
var/ignition = FALSE
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/setup_engine()
|
||||
cell = new /obj/item/cell/high(src)
|
||||
key = null
|
||||
update_icon()
|
||||
turn_off()
|
||||
toggle_ignition()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/vueui_data_change(list/data, mob/user, datum/vueui/ui)
|
||||
data = ..()
|
||||
|
||||
data["has_proper_trolley"] = FALSE
|
||||
if(istype(tow, /obj/vehicle/train/cargo/trolley/pussywagon))
|
||||
data["has_proper_trolley"] = TRUE
|
||||
@@ -41,67 +43,134 @@
|
||||
var/obj/item/reagent_containers/B = PT.bucket
|
||||
data["bucket_capacity"] = B.reagents.total_volume
|
||||
data["max_bucket_capacity"] = B.volume
|
||||
|
||||
return data
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/Topic(href, href_list, datum/topic_state/state)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
return TRUE
|
||||
|
||||
if(href_list["toggle_hoover"])
|
||||
toggle_hoover(usr)
|
||||
if(href_list["empty_hoover"])
|
||||
var/obj/vehicle/train/cargo/trolley/pussywagon/PT = tow
|
||||
PT.empty_hoover(usr)
|
||||
if(href_list["toggle_mops"])
|
||||
if(href_list["toggle_mop"])
|
||||
toggle_mop(usr)
|
||||
SSvueui.check_uis_for_change(src)
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/attackby(obj/item/W as obj, mob/user as mob)
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/key/janicart))
|
||||
if(!key)
|
||||
user.drop_from_inventory(W, src)
|
||||
key = W
|
||||
to_chat(user, SPAN_NOTICE("You slide the key into the ignition."))
|
||||
to_chat(user, SPAN_NOTICE("You slide \the [W] into \the [src]'s ignition."))
|
||||
playsound(src, 'sound/machines/vehicles/pussywagon/key_in.ogg', 50, FALSE)
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("\The [src] already has a key inserted."))
|
||||
to_chat(user, SPAN_NOTICE("There is already a key in [src]'s ignition."))
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/turn_on()
|
||||
if(!key)
|
||||
audible_message("\The [src] whirrs, but the lack of a key causes the engine to shut down.")
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/CtrlClick(mob/user)
|
||||
if(load && load != user)
|
||||
to_chat(user, SPAN_WARNING("You can't interact with \the [src] while its in use."))
|
||||
return
|
||||
var/list/options = list(
|
||||
"Toggle Ignition" = image('icons/mob/screen/radial.dmi', "custodial_key"),
|
||||
"Toggle Mopping" = image('icons/mob/screen/radial.dmi', "custodial_mop"),
|
||||
"Toggle Vacuuming" = image('icons/mob/screen/radial.dmi', "custodial_vacuum")
|
||||
)
|
||||
var/chosen_option = show_radial_menu(user, src, options, radius = 42, require_near = TRUE, tooltips = TRUE)
|
||||
if (!chosen_option)
|
||||
return
|
||||
switch(chosen_option)
|
||||
if("Toggle Ignition")
|
||||
toggle_ignition(user)
|
||||
if("Toggle Mopping")
|
||||
toggle_mop(user)
|
||||
if("Toggle Vacuuming")
|
||||
toggle_hoover(user)
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/AltClick(mob/user)
|
||||
if(Adjacent(user))
|
||||
remove_key(user)
|
||||
else
|
||||
..()
|
||||
update_stats()
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/turn_off()
|
||||
..()
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/remove_key(mob/user)
|
||||
if(!key)
|
||||
to_chat(user, SPAN_NOTICE("There is no key in \the [src]'s ignition."))
|
||||
return
|
||||
|
||||
if(tow)
|
||||
if(load && load != user)
|
||||
to_chat(usr, SPAN_WARNING("You can't remove \the [key] from \the [src] while its in use."))
|
||||
return
|
||||
|
||||
to_chat(user, SPAN_NOTICE("You take out \the [key] out of \the [src]'s ignition."))
|
||||
playsound(src, 'sound/machines/vehicles/pussywagon/key_out.ogg', 50, FALSE)
|
||||
|
||||
user.put_in_hands(key)
|
||||
key = null
|
||||
|
||||
if(ignition)
|
||||
toggle_ignition()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_ignition(mob/user)
|
||||
if(!ignition)
|
||||
if(!key)
|
||||
to_chat(user, SPAN_NOTICE("There is no key in \the [src]'s ignition."))
|
||||
return
|
||||
else
|
||||
if(stat)
|
||||
return FALSE
|
||||
if(powered && cell.charge < charge_use)
|
||||
return FALSE
|
||||
to_chat(user, SPAN_NOTICE("You turn on \the [src]'s ignition."))
|
||||
playsound(src, 'sound/machines/vehicles/pussywagon/button.ogg', 50, FALSE)
|
||||
playsound_in(src, 'sound/machines/vehicles/pussywagon/start.ogg', 50, FALSE, time = 1 SECOND)
|
||||
on = TRUE
|
||||
ignition = TRUE
|
||||
update_stats()
|
||||
update_icon()
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("You turn off \the [src]'s ignition."))
|
||||
if(key)
|
||||
playsound(src, 'sound/machines/vehicles/pussywagon/button.ogg', 50, FALSE)
|
||||
on = FALSE
|
||||
ignition = FALSE
|
||||
update_icon()
|
||||
|
||||
if(tow)
|
||||
if(istype(tow, /obj/vehicle/train/cargo/trolley/pussywagon))
|
||||
var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
|
||||
PW.trolley_off()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_mop(mob/user)
|
||||
if(on && tow)
|
||||
if(istype(tow, /obj/vehicle/train/cargo/trolley/pussywagon))
|
||||
var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
|
||||
PW.engine_off()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_mop(var/mob/user)
|
||||
if(on && tow)
|
||||
if(istype(tow,/obj/vehicle/train/cargo/trolley/pussywagon))
|
||||
var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
|
||||
if(!PW.bucket)
|
||||
to_chat(user, SPAN_WARNING("You must insert a reagent container first!"))
|
||||
to_chat(user, SPAN_NOTICE("You must insert a reagent container first."))
|
||||
return
|
||||
PW.mop_toggle()
|
||||
if(!PW.mopping)
|
||||
to_chat(user, SPAN_NOTICE("You turn on \the [src]'s rotary mop."))
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("You turn off \the [src]'s rotary mop."))
|
||||
PW.toggle_mop()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_hoover(var/mob/user)
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/proc/toggle_hoover(mob/user)
|
||||
if(use_check_and_message(user))
|
||||
return
|
||||
|
||||
if(on && tow)
|
||||
if(istype(tow,/obj/vehicle/train/cargo/trolley/pussywagon))
|
||||
if(istype(tow, /obj/vehicle/train/cargo/trolley/pussywagon))
|
||||
var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
|
||||
PW.hoover_toggle()
|
||||
if(!PW.hoover)
|
||||
to_chat(user, SPAN_NOTICE("You turn on \the [src]'s vacuum cleaner."))
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("You turn off \the [src]'s vacuum cleaner."))
|
||||
PW.toggle_hoover()
|
||||
|
||||
/obj/vehicle/train/cargo/engine/pussywagon/update_icon()
|
||||
cut_overlays()
|
||||
@@ -139,11 +208,11 @@
|
||||
..()
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon
|
||||
name = "janicart deluxe trolley"
|
||||
desc = "The trolley of the janicart deluxe, equipped with dual rotary mop and a NT-X1 Vacuum Cleaner."
|
||||
desc_info = "You can unlatch this from the control console of the janicart."
|
||||
name = "\improper C8000 deluxe custodial trolley"
|
||||
desc = "The trolley of the C8000 deluxe custodial truck, equipped with a dual rotary mop and a industrial vacuum cleaner."
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "jantrolley"
|
||||
light_range = 0 // Turn off the light inherited from the parent.
|
||||
|
||||
var/obj/item/reagent_containers/bucket
|
||||
var/list/hoovered = list()
|
||||
@@ -152,11 +221,10 @@
|
||||
var/mopping = 0
|
||||
var/hoover = 0
|
||||
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/reagent_containers))
|
||||
if(!open)
|
||||
to_chat(user, SPAN_WARNING("\The [src]'s panel isn't open."))
|
||||
to_chat(user, SPAN_WARNING("\The [src]'s maintenance panel isn't open."))
|
||||
return
|
||||
if(!bucket)
|
||||
user.drop_from_inventory(W,src)
|
||||
@@ -166,7 +234,7 @@
|
||||
|
||||
if(W.iswrench())
|
||||
if(!open)
|
||||
to_chat(user, SPAN_WARNING("\The [src]'s panel isn't open."))
|
||||
to_chat(user, SPAN_WARNING("\The [src]'s maintenance panel isn't open."))
|
||||
return
|
||||
if(bucket)
|
||||
bucket.forceMove(user.loc)
|
||||
@@ -186,7 +254,7 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/empty_hoover(var/mob/user)
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/empty_hoover(mob/user)
|
||||
for(var/obj/item/I in hoovered)
|
||||
I.forceMove(user.loc)
|
||||
hoovered -= I
|
||||
@@ -201,7 +269,7 @@
|
||||
tile.clean(bucket)
|
||||
lead.cell.use(charge_use, load)
|
||||
else
|
||||
mop_toggle()
|
||||
toggle_mop()
|
||||
if(hoover)
|
||||
var/current_len = hoovered.len
|
||||
for(var/obj/item/I in tile)
|
||||
@@ -211,35 +279,31 @@
|
||||
vacuum_capacity -= I.w_class
|
||||
lead.cell.use(charge_use)
|
||||
if(!vacuum_capacity)
|
||||
hoover_toggle()
|
||||
toggle_hoover()
|
||||
if(hoovered.len > current_len)
|
||||
playsound(src, 'sound/machines/disposalflush.ogg', 100, 1)
|
||||
playsound(src, 'sound/machines/disposalflush.ogg', 50, TRUE)
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/engine_off()
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/trolley_off()
|
||||
if(mopping)
|
||||
mop_toggle()
|
||||
toggle_mop()
|
||||
if(hoover)
|
||||
hoover_toggle()
|
||||
toggle_hoover()
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/mop_toggle()
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/toggle_mop()
|
||||
if(!mopping)
|
||||
playsound(src, 'sound/machines/hydraulic_long.ogg', 20, TRUE)
|
||||
mopping = 1
|
||||
audible_message("\The [src]'s mop-o-matic rumbles to life.", "You hear something rumble deeply.")
|
||||
playsound(src, 'sound/machines/hydraulic_long.ogg', 100, 1)
|
||||
else
|
||||
mopping = 0
|
||||
audible_message("\The [src]'s mop-o-matic putters before turning off.", "You hear something putter slowly.")
|
||||
update_icon()
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/hoover_toggle()
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/proc/toggle_hoover()
|
||||
if(!hoover)
|
||||
playsound(src, 'sound/machines/hydraulic_long.ogg', 20, TRUE)
|
||||
hoover = 1
|
||||
audible_message("\The [src]'s space hoover rumbles to life.", "You hear something rumble deeply.")
|
||||
playsound(src, 'sound/machines/hydraulic_long.ogg', 100, 1)
|
||||
else
|
||||
hoover = 0
|
||||
audible_message("\The [src]'s space hoover putters before turning off.", "You hear something putter slowly.")
|
||||
update_icon()
|
||||
|
||||
/obj/vehicle/train/cargo/trolley/pussywagon/update_icon()
|
||||
@@ -247,3 +311,10 @@
|
||||
|
||||
if(mopping)
|
||||
add_overlay(image('icons/obj/vehicles.dmi', "[icon_state]_mop_overlay", MOB_LAYER + 1))
|
||||
|
||||
/obj/item/key/janicart
|
||||
name = "\improper C8000 deluxe custodial truck key fob"
|
||||
desc = "A stainless steel key fob with a chromed top attached to a small steel key ring. The key ring has a pink tag hanging on it, with the text \"Pussy Wagon\"."
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "keys"
|
||||
w_class = ITEMSIZE_TINY
|
||||
Reference in New Issue
Block a user