Merge remote-tracking branch 'upstream/master' into tgui_wires

# Conflicts:
#	code/__defines/misc.dm
This commit is contained in:
ShadowLarkens
2020-07-24 17:06:18 -07:00
184 changed files with 23073 additions and 12448 deletions

View File

@@ -20,6 +20,8 @@ var/global/list/image/splatter_cache=list()
var/synthblood = 0
var/list/datum/disease2/disease/virus2 = list()
var/amount = 5
generic_filth = TRUE
persistent = FALSE
/obj/effect/decal/cleanable/blood/reveal_blood()
if(!fluorescent)

View File

@@ -5,6 +5,8 @@
icon_state = "gib1"
basecolor = SYNTH_BLOOD_COLOUR
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
generic_filth = FALSE
persistent = FALSE
/obj/effect/decal/cleanable/blood/gibs/robot/update_icon()
color = "#FFFFFF"
@@ -39,6 +41,8 @@
/obj/effect/decal/cleanable/blood/oil
basecolor = SYNTH_BLOOD_COLOUR
generic_filth = FALSE
persistent = FALSE
/obj/effect/decal/cleanable/blood/oil/dry()
return

View File

@@ -1,7 +1,22 @@
/obj/effect/decal/cleanable
plane = DIRTY_PLANE
var/persistent = FALSE
var/generic_filth = FALSE
var/age = 0
var/list/random_icon_states = list()
/obj/effect/decal/cleanable/Initialize(var/ml, var/_age)
if(!isnull(_age))
age = _age
if(random_icon_states && length(src.random_icon_states) > 0)
src.icon_state = pick(src.random_icon_states)
SSpersistence.track_value(src, /datum/persistent/filth)
. = ..()
/obj/effect/decal/cleanable/Destroy()
SSpersistence.forget_value(src, /datum/persistent/filth)
. = ..()
/obj/effect/decal/cleanable/clean_blood(var/ignore = 0)
if(!ignore)
qdel(src)

View File

@@ -262,6 +262,21 @@ steam.start() -- spawns the effect
projectiles -= proj
*/
// Burnt Food Smoke (Specialty for Cooking Failures)
/obj/effect/effect/smoke/bad/burntfood
color = "#000000"
time_to_live = 600
/obj/effect/effect/smoke/bad/burntfood/process()
for(var/mob/living/L in get_turf(src))
affect(L)
/obj/effect/effect/smoke/bad/burntfood/affect(var/mob/living/L) // This stuff is extra-vile.
if (!..())
return 0
if(L.needs_to_breathe())
L.emote("cough")
/////////////////////////////////////////////
// 'Elemental' smoke
/////////////////////////////////////////////
@@ -376,6 +391,9 @@ steam.start() -- spawns the effect
/datum/effect/effect/system/smoke_spread/bad
smoke_type = /obj/effect/effect/smoke/bad
/datum/effect/effect/system/smoke_spread/bad/burntfood
smoke_type = /obj/effect/effect/smoke/bad/burntfood
/datum/effect/effect/system/smoke_spread/noxious
smoke_type = /obj/effect/effect/smoke/bad/noxious

View File

@@ -10,7 +10,7 @@
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
var/can_use = 1
var/obj/effect/dummy/chameleon/active_dummy = null
var/saved_item = /obj/item/weapon/cigbutt
var/saved_item = /obj/item/trash/cigbutt
var/saved_icon = 'icons/obj/clothing/masks.dmi'
var/saved_icon_state = "cigbutt"
var/saved_overlays

View File

@@ -7,6 +7,20 @@
w_class = ITEMSIZE_SMALL
desc = "This is rubbish."
drop_sound = 'sound/items/drop/wrapper.ogg'
var/age = 0
/obj/item/trash/New(var/newloc, var/_age)
..(newloc)
if(!isnull(_age))
age = _age
/obj/item/trash/Initialize()
SSpersistence.track_value(src, /datum/persistent/filth/trash)
. = ..()
/obj/item/trash/Destroy()
SSpersistence.forget_value(src, /datum/persistent/filth/trash)
. = ..()
/obj/item/trash/raisins
name = "\improper 4no raisins"
@@ -91,5 +105,22 @@
name = "bread tube"
icon_state = "tastybread"
// Aurora Food Port
/obj/item/trash/brownies
name = "brownie tray"
icon_state = "brownies"
/obj/item/trash/snacktray
name = "snacktray"
icon_state = "snacktray"
/obj/item/trash/dipbowl
name = "dip bowl"
icon_state = "dipbowl"
/obj/item/trash/chipbasket
name = "empty basket"
icon_state = "chipbasket_empty"
/obj/item/trash/attack(mob/M as mob, mob/living/user as mob)
return

View File

@@ -150,7 +150,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/examine(mob/user)
. = ..()
if(!is_pipe)
var/smoke_percent = round((smoketime / max_smoketime) * 100)
switch(smoke_percent)
@@ -283,7 +283,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
w_class = ITEMSIZE_TINY
slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("burnt", "singed")
type_butt = /obj/item/weapon/cigbutt
type_butt = /obj/item/trash/cigbutt
chem_volume = 15
max_smoketime = 300
smoketime = 300
@@ -341,7 +341,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
name = "premium cigar"
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
icon_state = "cigar2"
type_butt = /obj/item/weapon/cigbutt/cigarbutt
type_butt = /obj/item/trash/cigbutt/cigarbutt
throw_speed = 0.5
item_state = "cigar"
max_smoketime = 1500
@@ -369,7 +369,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
chem_volume = 30
nicotine_amt = 10
/obj/item/weapon/cigbutt
/obj/item/trash/cigbutt
name = "cigarette butt"
desc = "A manky old cigarette butt."
icon = 'icons/obj/clothing/masks.dmi'
@@ -379,12 +379,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
slot_flags = SLOT_EARS
throwforce = 1
/obj/item/weapon/cigbutt/Initialize()
/obj/item/trash/cigbutt/Initialize()
. = ..()
randpixel_xy()
transform = turn(transform,rand(0,360))
/obj/item/weapon/cigbutt/cigarbutt
/obj/item/trash/cigbutt/cigarbutt
name = "cigar butt"
desc = "A manky old cigar butt."
icon_state = "cigarbutt"

View File

@@ -121,16 +121,6 @@
/obj/item/weapon/stock_parts/motor = 2,
/obj/item/stack/cable_coil = 5)
/obj/item/weapon/circuitboard/microwave
name = T_BOARD("microwave")
build_path = /obj/machinery/microwave
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/recharger
name = T_BOARD("recharger")
build_path = /obj/machinery/recharger
@@ -250,13 +240,3 @@
/obj/item/weapon/stock_parts/spring = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/weapon/circuitboard/microwave/advanced
name = T_BOARD("deluxe microwave")
build_path = /obj/machinery/microwave/advanced
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)

View File

@@ -0,0 +1,74 @@
/obj/item/weapon/circuitboard/microwave
name = T_BOARD("microwave")
desc = "The circuitboard for a microwave."
build_path = /obj/machinery/microwave
board_type = new /datum/frame/frame_types/microwave
contain_parts = 0
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/capacitor = 3, // Original Capacitor count was 1
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/oven
name = T_BOARD("oven")
desc = "The circuitboard for an oven."
build_path = /obj/machinery/appliance/cooker/oven
board_type = new /datum/frame/frame_types/oven
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/fryer
name = T_BOARD("deep fryer")
desc = "The circuitboard for a deep fryer."
build_path = /obj/machinery/appliance/cooker/fryer
board_type = new /datum/frame/frame_types/fryer
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/grill
name = T_BOARD("grill")
desc = "The circuitboard for an industrial grill."
build_path = /obj/machinery/appliance/cooker/grill
board_type = new /datum/frame/frame_types/grill
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/cerealmaker
name = T_BOARD("cereal maker")
desc = "The circuitboard for a cereal maker."
build_path = /obj/machinery/appliance/mixer/cereal
board_type = new /datum/frame/frame_types/cerealmaker
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/candymachine
name = T_BOARD("candy machine")
desc = "The circuitboard for a candy machine."
build_path = /obj/machinery/appliance/mixer/candy
board_type = new /datum/frame/frame_types/candymachine
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/microwave/advanced
name = T_BOARD("deluxe microwave")
build_path = /obj/machinery/microwave/advanced
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)

View File

@@ -46,7 +46,7 @@ var/global/list/ashtray_cache = list()
/obj/item/weapon/material/ashtray/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (health <= 0)
return
if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match))
if (istype(W,/obj/item/trash/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match))
if (contents.len >= max_butts)
to_chat(user, "\The [src] is full.")
return

View File

@@ -209,7 +209,7 @@
throwforce = 2
slot_flags = SLOT_BELT
storage_slots = 6
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter, /obj/item/weapon/cigbutt)
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter, /obj/item/trash/cigbutt)
icon_type = "cigarette"
starts_with = list(/obj/item/clothing/mask/smokable/cigarette = 6)
var/brand = "\improper Trans-Stellar Duty-free"
@@ -316,7 +316,7 @@
throwforce = 2
slot_flags = SLOT_BELT
storage_slots = 7
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/weapon/cigbutt/cigarbutt)
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/trash/cigbutt/cigarbutt)
icon_type = "cigar"
starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 7)

View File

@@ -126,7 +126,7 @@
return 1
/obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user)
if(!istype(W, /obj/item/weapon/paper))
if(!istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/paper/sticky) || !user.unEquip(W))
return
user.drop_from_inventory(W)
var/obj/item/weapon/ducttape/tape = new(get_turf(src))

View File

@@ -48,7 +48,6 @@ var/list/random_useful_
if(prob(70)) // Misc. junk
if(!random_junk_)
random_junk_ = subtypesof(/obj/item/trash)
random_junk_ += typesof(/obj/item/weapon/cigbutt)
random_junk_ += /obj/effect/decal/cleanable/spiderling_remains
random_junk_ += /obj/effect/decal/remains/mouse
random_junk_ += /obj/effect/decal/remains/robot

View File

@@ -34,6 +34,36 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/remains/robot)
/obj/random/crate //Random 'standard' crates for variety in maintenance spawns.
name = "random crate"
desc = "This is a random crate"
icon = 'icons/obj/closets/bases/crate.dmi'
icon_state = "base"
/obj/random/crate/item_to_spawn() //General crates, excludes some more high-grade and medical brands
return pick (/obj/structure/closet/crate/plastic,
/obj/structure/closet/crate/aether,
/obj/structure/closet/crate/centauri,
/obj/structure/closet/crate/einstein,
/obj/structure/closet/crate/focalpoint,
/obj/structure/closet/crate/gilthari,
/obj/structure/closet/crate/grayson,
/obj/structure/closet/crate/nanotrasen,
/obj/structure/closet/crate/nanothreads,
/obj/structure/closet/crate/oculum,
/obj/structure/closet/crate/ward,
/obj/structure/closet/crate/xion,
/obj/structure/closet/crate/zenghu,
/obj/structure/closet/crate/allico,
/obj/structure/closet/crate/carp,
/obj/structure/closet/crate/galaksi,
/obj/structure/closet/crate/thinktronic,
/obj/structure/closet/crate/ummarcar,
/obj/structure/closet/crate/unathi,
/obj/structure/closet/crate/hydroponics,
/obj/structure/closet/crate/engineering,
/obj/structure/closet/crate)
/obj/random/obstruction //Large objects to block things off in maintenance
name = "random obstruction"
desc = "This is a random obstruction."

View File

@@ -542,8 +542,8 @@
/obj/item/device/assembly/mousetrap/armed,
/obj/effect/decal/cleanable/spiderling_remains,
/obj/effect/decal/cleanable/ash,
/obj/item/weapon/cigbutt,
/obj/item/weapon/cigbutt/cigarbutt,
/obj/item/trash/cigbutt,
/obj/item/trash/cigbutt/cigarbutt,
/obj/effect/decal/remains/mouse)
/obj/random/janusmodule

View File

@@ -761,8 +761,210 @@
"lid_stripes" = COLOR_NT_RED
)
// Freezers
/decl/closet_appearance/crate/freezer
color = COLOR_OFF_WHITE
/decl/closet_appearance/crate/freezer/centauri
color = COLOR_BABY_BLUE
extra_decals = list(
"centauri" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/freezer/nanotrasen
color = COLOR_BABY_BLUE
extra_decals = list(
"nano" = COLOR_OFF_WHITE
)
// Corporate Branding
/decl/closet_appearance/crate/aether
color = COLOR_YELLOW_GRAY
decals = list(
"crate_stripes" = COLOR_BLUE_LIGHT,
"aether" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/allico
color = COLOR_LIGHT_VIOLET
decals = list(
"crate_stripe" = COLOR_AMBER
)
/decl/closet_appearance/crate/carp
color = COLOR_PURPLE
decals = list(
"toptext" = COLOR_OFF_WHITE,
"crate_reticle" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/centauri
color = COLOR_BABY_BLUE
decals = list(
"crate_stripe" = COLOR_LUMINOL
)
extra_decals = list(
"centauri" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/cybersolutions
color = COLOR_ALUMINIUM
extra_decals = list(
"hazard" = COLOR_DARK_GOLD,
"toptext" = COLOR_DARK_GOLD
)
/decl/closet_appearance/crate/einstein
color = COLOR_DARK_BLUE_GRAY
extra_decals = list(
"crate_stripe_left" = COLOR_BEIGE,
"crate_stripe_right" = COLOR_BEIGE,
"einstein" = COLOR_OFF_WHITE,
"hazard" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/focalpoint
color = COLOR_GOLD
extra_decals = list(
"crate_stripe_left" = COLOR_NAVY_BLUE,
"crate_stripe_right" = COLOR_NAVY_BLUE,
"focal" = COLOR_OFF_WHITE,
"hazard" = COLOR_NAVY_BLUE
)
/decl/closet_appearance/crate/galaksi
color = COLOR_OFF_WHITE
decals = list(
"lid_stripes" = COLOR_HULL,
"galaksi" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/gilthari
color = COLOR_GRAY20
extra_decals = list(
"crate_stripe_left" = COLOR_GOLD,
"crate_stripe_right" = COLOR_GOLD,
"gilthari" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/grayson
color = COLOR_STEEL
extra_decals = list(
"crate_stripe_left" = COLOR_MAROON,
"crate_stripe_right" = COLOR_MAROON,
"grayson" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/heph
color = COLOR_GRAY20
extra_decals = list(
"crate_stripe_left" = COLOR_NT_RED,
"crate_stripe_right" = COLOR_NT_RED,
"heph" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/morpheus
color = COLOR_ALUMINIUM
extra_decals = list(
"hazard" = COLOR_GUNMETAL,
"toptext" = COLOR_GUNMETAL
)
/decl/closet_appearance/crate/nanotrasen
color = COLOR_NT_RED
extra_decals = list(
"crate_stripe_left" = COLOR_OFF_WHITE,
"crate_stripe_right" = COLOR_OFF_WHITE,
"nano" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/nanotrasenclothing
color = COLOR_NT_RED
extra_decals = list(
"crate_stripe_left" = COLOR_SEDONA,
"crate_stripe_right" = COLOR_SEDONA,
"nano" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/nanotrasenmedical
color = COLOR_OFF_WHITE
extra_decals = list(
"crate_stripe" = COLOR_NT_RED,
"nano" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/oculum
color = COLOR_SURGERY_BLUE
decals = list(
"crate_stripe_left" = COLOR_OFF_WHITE,
"crate_stripe_right" = COLOR_OFF_WHITE,
"oculum" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/saare
color = COLOR_ALUMINIUM
extra_decals = list(
"hazard" = COLOR_RED,
"xion" = COLOR_GRAY40
)
/decl/closet_appearance/crate/thinktronic
color = COLOR_PALE_PURPLE_GRAY
decals = list(
"toptext" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/ummarcar
color = COLOR_BEIGE
decals = list(
"crate_stripes" = COLOR_OFF_WHITE,
"toptext" = COLOR_GRAY20
)
/decl/closet_appearance/crate/unathiimport
color = COLOR_SILVER
decals = list(
"crate_stripe" = COLOR_RED,
"crate_reticle" = COLOR_RED_GRAY
)
/decl/closet_appearance/crate/veymed
color = COLOR_OFF_WHITE
decals = list(
"crate_stripe" = COLOR_PALE_BTL_GREEN
)
extra_decals = list(
"lid_stripes" = COLOR_RED,
"crate_cross" = COLOR_GREEN
)
/decl/closet_appearance/crate/ward
color = COLOR_OFF_WHITE
extra_decals = list(
"crate_stripe_left" = COLOR_COMMAND_BLUE,
"crate_stripe_right" = COLOR_COMMAND_BLUE,
"hazard" = COLOR_OFF_WHITE,
"wt" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/xion
color = COLOR_ORANGE
extra_decals = list(
"crate_stripes" = COLOR_OFF_WHITE,
"xion" = COLOR_OFF_WHITE,
"hazard" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/zenghu
color = COLOR_OFF_WHITE
extra_decals = list(
"crate_stripes" = COLOR_RED,
"zenghu" = COLOR_OFF_WHITE
)
// Secure Crates
/decl/closet_appearance/crate/secure
can_lock = TRUE
@@ -775,7 +977,8 @@
extra_decals = list(
"crate_stripe_left" = COLOR_OFF_WHITE,
"crate_stripe_right" = COLOR_OFF_WHITE,
"toxin" = COLOR_OFF_WHITE
"toxin" = COLOR_OFF_WHITE,
"nano" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/weapon
@@ -789,16 +992,61 @@
"hazard" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/heph
color = COLOR_GRAY20
// Secure corporate branding
/decl/closet_appearance/crate/secure/aether
color = COLOR_YELLOW_GRAY
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_NT_RED,
"crate_stripe_right" = COLOR_NT_RED,
"hazard" = COLOR_OFF_WHITE,
"heph" = COLOR_OFF_WHITE
"crate_stripes" = COLOR_BLUE_LIGHT,
"aether" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/bishop
color = COLOR_OFF_WHITE
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_SKY_BLUE,
"crate_stripe_right" = COLOR_SKY_BLUE,
"bishop" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/cybersolutions
color = COLOR_ALUMINIUM
decals = list(
"crate_bracing"
)
extra_decals = list(
"hazard" = COLOR_DARK_GOLD,
"toptext" = COLOR_DARK_GOLD
)
/decl/closet_appearance/crate/secure/einstein
color = COLOR_DARK_BLUE_GRAY
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_BEIGE,
"crate_stripe_right" = COLOR_BEIGE,
"einstein" = COLOR_OFF_WHITE,
"hazard" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/focalpoint
color = COLOR_GOLD
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_NAVY_BLUE,
"crate_stripe_right" = COLOR_NAVY_BLUE,
"focal" = COLOR_OFF_WHITE,
"hazard" = COLOR_NAVY_BLUE
)
/decl/closet_appearance/crate/secure/gilthari
@@ -813,16 +1061,15 @@
"gilthari" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/ward
color = COLOR_OFF_WHITE
/decl/closet_appearance/crate/secure/grayson
color = COLOR_STEEL
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_COMMAND_BLUE,
"crate_stripe_right" = COLOR_COMMAND_BLUE,
"hazard" = COLOR_OFF_WHITE,
"wt" = COLOR_OFF_WHITE
"crate_stripe_left" = COLOR_MAROON,
"crate_stripe_right" = COLOR_MAROON,
"grayson" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/hedberg
@@ -837,6 +1084,18 @@
"hedberg" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/heph
color = COLOR_GRAY20
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_NT_RED,
"crate_stripe_right" = COLOR_NT_RED,
"hazard" = COLOR_OFF_WHITE,
"heph" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/lawson
color = COLOR_SAN_MARINO_BLUE
decals = list(
@@ -849,6 +1108,103 @@
"lawson" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/morpheus
color = COLOR_ALUMINIUM
decals = list(
"crate_bracing"
)
extra_decals = list(
"hazard" = COLOR_GUNMETAL,
"toptext" = COLOR_GUNMETAL
)
/decl/closet_appearance/crate/secure/nanotrasen
color = COLOR_NT_RED
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_OFF_WHITE,
"crate_stripe_right" = COLOR_OFF_WHITE,
"nano" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/nanotrasenmedical
color = COLOR_OFF_WHITE
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe" = COLOR_NT_RED,
"nano" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/saare
color = COLOR_ALUMINIUM
decals = list(
"crate_bracing"
)
extra_decals = list(
"hazard" = COLOR_RED,
"xion" = COLOR_GRAY40
)
/decl/closet_appearance/crate/secure/solgov
color = COLOR_SAN_MARINO_BLUE
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_OFF_WHITE,
"crate_stripes" = COLOR_OFF_WHITE,
"hazard" = COLOR_OFF_WHITE,
"scg" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/veymed
color = COLOR_OFF_WHITE
decals = list(
"crate_bracing",
"crate_stripe" = COLOR_PALE_BTL_GREEN
)
extra_decals = list(
"lid_stripes" = COLOR_RED,
"crate_cross" = COLOR_GREEN
)
/decl/closet_appearance/crate/secure/ward
color = COLOR_OFF_WHITE
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripe_left" = COLOR_COMMAND_BLUE,
"crate_stripe_right" = COLOR_COMMAND_BLUE,
"hazard" = COLOR_OFF_WHITE,
"wt" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/xion
color = COLOR_ORANGE
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripes" = COLOR_OFF_WHITE,
"xion" = COLOR_OFF_WHITE,
"hazard" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/zenghu
color = COLOR_OFF_WHITE
decals = list(
"crate_bracing"
)
extra_decals = list(
"crate_stripes" = COLOR_RED,
"zenghu" = COLOR_OFF_WHITE
)
/decl/closet_appearance/crate/secure/hydroponics
extra_decals = list(
"crate_stripe_left" = COLOR_GREEN_GRAY,
@@ -869,6 +1225,7 @@
extra_decals = null
/decl/closet_appearance/large_crate/critter
color = COLOR_BEIGE
decals = list(
"airholes"
)
@@ -882,6 +1239,42 @@
"text" = COLOR_GREEN_GRAY
)
/decl/closet_appearance/large_crate/aether
color = COLOR_YELLOW_GRAY
decals = list(
"crate_bracing"
)
extra_decals = list(
"text" = COLOR_BLUE_LIGHT
)
/decl/closet_appearance/large_crate/einstein
color = COLOR_DARK_BLUE_GRAY
decals = list(
"crate_bracing"
)
extra_decals = list(
"text" = COLOR_BEIGE
)
/decl/closet_appearance/large_crate/nanotrasen
color = COLOR_NT_RED
decals = list(
"crate_bracing"
)
extra_decals = list(
"text" = COLOR_OFF_WHITE
)
/decl/closet_appearance/large_crate/xion
color = COLOR_ORANGE
decals = list(
"crate_bracing"
)
extra_decals = list(
"text" = COLOR_OFF_WHITE
)
/decl/closet_appearance/large_crate/secure
can_lock = TRUE
@@ -895,6 +1288,46 @@
"text_upper" = COLOR_OFF_WHITE
)
/decl/closet_appearance/large_crate/secure/aether
color = COLOR_YELLOW_GRAY
decals = list(
"crate_bracing"
)
extra_decals = list(
"marking" = COLOR_OFF_WHITE,
"text_upper" = COLOR_BLUE_LIGHT
)
/decl/closet_appearance/large_crate/secure/einstein
color = COLOR_DARK_BLUE_GRAY
decals = list(
"crate_bracing"
)
extra_decals = list(
"marking" = COLOR_OFF_WHITE,
"text_upper" = COLOR_BEIGE
)
/decl/closet_appearance/large_crate/secure/heph
color = COLOR_GRAY20
decals = list(
"crate_bracing"
)
extra_decals = list(
"marking" = COLOR_NT_RED,
"text_upper" = COLOR_NT_RED
)
/decl/closet_appearance/large_crate/secure/xion
color = COLOR_ORANGE
decals = list(
"crate_bracing"
)
extra_decals = list(
"marking" = COLOR_OFF_WHITE,
"text_upper" = COLOR_OFF_WHITE
)
// Cabinets.
/decl/closet_appearance/cabinet
base_icon = 'icons/obj/closets/bases/cabinet.dmi'

View File

@@ -4,7 +4,9 @@
starts_with = list(
/obj/item/weapon/reagent_containers/food/condiment/flour = 7,
/obj/item/weapon/reagent_containers/food/condiment/sugar = 2)
/obj/item/weapon/reagent_containers/food/condiment/sugar = 2,
/obj/item/weapon/reagent_containers/food/condiment/spacespice = 2
)
/obj/structure/closet/secure_closet/freezer/kitchen/mining
req_access = list()

View File

@@ -6,6 +6,7 @@
icon = 'icons/obj/closets/bases/crate.dmi'
closet_appearance = /decl/closet_appearance/crate
climbable = 1
dir = 4 //Spawn facing 'forward' by default.
var/points_per_crate = 5
var/rigged = 0
@@ -65,6 +66,26 @@
update_icon()
return 1
/obj/structure/closet/crate/verb/rotate_clockwise()
set name = "Rotate Crate Clockwise"
set category = "Object"
set src in oview(1)
if (usr.stat || usr.restrained() || anchored)
return
src.set_dir(turn(src.dir, 270))
/obj/structure/closet/crate/verb/rotate_counterclockwise()
set category = "Object"
set name = "Rotate Crate Counterclockwise"
set src in view(1)
if (usr.stat || usr.restrained() || anchored)
return
src.set_dir(turn(src.dir, 90))
/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(opened)
if(isrobot(user))
@@ -274,6 +295,14 @@
var/target_temp = T0C - 40
var/cooling_power = 40
/obj/structure/closet/crate/freezer/centauri
desc = "A freezer stamped with the logo of Centauri Provisions."
closet_appearance = /decl/closet_appearance/crate/freezer/centauri
/obj/structure/closet/crate/freezer/nanotrasen
desc = "A freezer stamped with the logo of NanoTrasen."
closet_appearance = /decl/closet_appearance/crate/freezer/nanotrasen
/obj/structure/closet/crate/freezer/return_air()
var/datum/gas_mixture/gas = (..())
if(!gas) return null
@@ -303,6 +332,11 @@
organ.preserved = 0
..()
/obj/structure/closet/crate/weapon
name = "weapons crate"
desc = "A barely secured weapons crate."
closet_appearance = /decl/closet_appearance/crate/secure/weapon
/obj/structure/closet/crate/freezer/rations //Fpr use in the escape shuttle
name = "emergency rations"
desc = "A crate of emergency rations."
@@ -310,14 +344,12 @@
starts_with = list(
/obj/random/mre = 6)
/obj/structure/closet/crate/bin
name = "large bin"
desc = "A large bin."
closet_appearance = null
icon = 'icons/obj/closets/largebin.dmi'
/obj/structure/closet/crate/radiation
name = "radioactive gear crate"
desc = "A crate with a radiation sign on it."
@@ -327,27 +359,145 @@
/obj/item/clothing/suit/radiation = 4,
/obj/item/clothing/head/radiation = 4)
//TSCs
/obj/structure/closet/crate/aether
desc = "A crate painted in the colours of Aether Atmospherics and Recycling."
closet_appearance = /decl/closet_appearance/crate/aether
/obj/structure/closet/crate/centauri
desc = "A crate decorated with the logo of Centauri Provisions."
closet_appearance = /decl/closet_appearance/crate/centauri
/obj/structure/closet/crate/einstein
desc = "A crate labelled with an Einstein Engines sticker."
closet_appearance = /decl/closet_appearance/crate/einstein
/obj/structure/closet/crate/focalpoint
desc = "A crate marked with the decal of Focal Point Energistics."
closet_appearance = /decl/closet_appearance/crate/focalpoint
/obj/structure/closet/crate/gilthari
desc = "A crate embossed with the logo of Gilthari Exports."
closet_appearance = /decl/closet_appearance/crate/gilthari
/obj/structure/closet/crate/grayson
desc = "A bare metal crate spraypainted with Grayson Manufactories decals."
closet_appearance = /decl/closet_appearance/crate/grayson
/obj/structure/closet/crate/heph
desc = "A sturdy crate marked with the logo of Hephaestus Industries."
closet_appearance = /decl/closet_appearance/crate/heph
/obj/structure/closet/crate/morpheus
desc = "A crate crudely imprinted with 'MORPHEUS CYBERKINETICS'."
closet_appearance = /decl/closet_appearance/crate/morpheus
/obj/structure/closet/crate/nanotrasen
desc = "A crate emblazoned with the standard NanoTrasen livery."
closet_appearance = /decl/closet_appearance/crate/nanotrasen
/obj/structure/closet/crate/nanothreads
desc = "A crate emblazoned with the NanoThreads Garments livery, a subsidary of the NanoTrasen Corporation."
closet_appearance = /decl/closet_appearance/crate/nanotrasenclothing
/obj/structure/closet/crate/nanocare
desc = "A crate emblazoned with the NanoCare Medical livery, a subsidary of the NanoTrasen Corporation."
closet_appearance = /decl/closet_appearance/crate/nanotrasenmedical
/obj/structure/closet/crate/oculum
desc = "A crate minimally decorated with the logo of media giant Oculum Broadcast."
closet_appearance = /decl/closet_appearance/crate/oculum
/obj/structure/closet/crate/veymed
desc = "A sterile crate extensively detailed in Veymed colours."
closet_appearance = /decl/closet_appearance/crate/veymed
/obj/structure/closet/crate/ward
desc = "A crate decaled with the logo of Ward-Takahashi."
closet_appearance = /decl/closet_appearance/crate/ward
/obj/structure/closet/crate/xion
desc = "A crate painted in Xion Manufacturing Group orange."
closet_appearance = /decl/closet_appearance/crate/xion
/obj/structure/closet/crate/zenghu
desc = "A sterile crate marked with the logo of Zeng-Hu Pharmaceuticals."
closet_appearance = /decl/closet_appearance/crate/zenghu
// Brands/subsidiaries
/obj/structure/closet/crate/allico
desc = "A crate painted in the distinctive cheerful colours of AlliCo. Ltd."
closet_appearance = /decl/closet_appearance/crate/allico
/obj/structure/closet/crate/carp
desc = "A crate painted with the garish livery of Consolidated Agricultural Resources Plc."
closet_appearance = /decl/closet_appearance/crate/carp
/obj/structure/closet/crate/hedberg
name = "weapons crate"
desc = "A weapons crate stamped with the logo of Hedberg-Hammarstrom and the lock conspicuously absent."
closet_appearance = /decl/closet_appearance/crate/secure/hedberg
/obj/structure/closet/crate/galaksi
desc = "A crate printed with the markings of Ward-Takahashi's Galaksi Appliance branding."
closet_appearance = /decl/closet_appearance/crate/galaksi
/obj/structure/closet/crate/thinktronic
desc = "A crate printed with the markings of Thinktronic Systems."
closet_appearance = /decl/closet_appearance/crate/thinktronic
/obj/structure/closet/crate/ummarcar
desc = "A flimsy crate marked labelled 'UmMarcar Office Supply'."
closet_appearance = /decl/closet_appearance/crate/ummarcar
/obj/structure/closet/crate/unathi
name = "import crate"
desc = "A crate painted with the markings of Moghes Imported Sissalik Jerky."
closet_appearance = /decl/closet_appearance/crate/unathiimport
// Secure Crates
/obj/structure/closet/crate/secure/weapon
name = "weapons crate"
desc = "A secure weapons crate."
closet_appearance = /decl/closet_appearance/crate/secure/weapon
/obj/structure/closet/crate/secure/aether
desc = "A secure crate painted in the colours of Aether Atmospherics and Recycling."
closet_appearance = /decl/closet_appearance/crate/secure/aether
/obj/structure/closet/crate/secure/bishop
desc = "A secure crate finely decorated with the emblem of Bishop Cybernetics."
closet_appearance = /decl/closet_appearance/crate/secure/bishop
/obj/structure/closet/crate/secure/cybersolutions
desc = "An unadorned secure metal crate labelled 'Cyber Solutions'."
closet_appearance = /decl/closet_appearance/crate/secure/cybersolutions
/obj/structure/closet/crate/secure/einstein
desc = "A secure crate labelled with an Einstein Engines sticker."
closet_appearance = /decl/closet_appearance/crate/secure/einstein
/obj/structure/closet/crate/secure/focalpoint
desc = "A secure crate marked with the decal of Focal Point Energistics."
closet_appearance = /decl/closet_appearance/crate/secure/focalpoint
/obj/structure/closet/crate/secure/gilthari
desc = "A secure crate embossed with the logo of Gilthari Exports."
closet_appearance = /decl/closet_appearance/crate/secure/gilthari
/obj/structure/closet/crate/secure/grayson
desc = "A secure bare metal crate spraypainted with Grayson Manufactories decals."
closet_appearance = /decl/closet_appearance/crate/secure/grayson
/obj/structure/closet/crate/secure/hedberg
name = "weapons crate"
desc = "A secure weapons crate stamped with the logo of Hedberg-Hammarstrom."
closet_appearance = /decl/closet_appearance/crate/secure/hedberg
/obj/structure/closet/crate/secure/gilthari
name = "weapons crate"
desc = "A secure weapons crate embossed with the logo of Gilthari Exports."
closet_appearance = /decl/closet_appearance/crate/secure/gilthari
/obj/structure/closet/crate/secure/ward
name = "weapons crate"
desc = "A secure weapons crate decaled with the logo of Ward-Takahashi."
closet_appearance = /decl/closet_appearance/crate/secure/ward
/obj/structure/closet/crate/secure/heph
name = "weapons crate"
desc = "A secure weapons crate marked with the logo of Hephaestus Industries."
@@ -358,9 +508,47 @@
desc = "A secure weapons crate marked with the logo of Lawson Arms."
closet_appearance = /decl/closet_appearance/crate/secure/lawson
/obj/structure/closet/crate/secure/morpheus
desc = "A secure crate crudely imprinted with 'MORPHEUS CYBERKINETICS'."
closet_appearance = /decl/closet_appearance/crate/secure/morpheus
/obj/structure/closet/crate/secure/nanotrasen
desc = "A secure crate emblazoned with the standard NanoTrasen livery."
closet_appearance = /decl/closet_appearance/crate/secure/nanotrasen
/obj/structure/closet/crate/secure/nanocare
desc = "A secure crate emblazoned with the NanoCare Medical livery, a subsidary of the NanoTrasen Corporation."
closet_appearance = /decl/closet_appearance/crate/secure/nanotrasenmedical
/obj/structure/closet/crate/secure/scg
name = "weapons crate"
desc = "A secure crate in the official colours of the Solar Confederate Government."
closet_appearance = /decl/closet_appearance/crate/secure/solgov
/obj/structure/closet/crate/secure/saare
name = "weapons crate"
desc = "A secure weapons crate plainly stamped with the logo of Stealth Assault Enterprises."
closet_appearance = /decl/closet_appearance/crate/secure/saare
/obj/structure/closet/crate/secure/veymed
desc = "A secure sterile crate extensively detailed in Veymed colours."
closet_appearance = /decl/closet_appearance/crate/secure/veymed
/obj/structure/closet/crate/secure/ward
desc = "A secure crate decaled with the logo of Ward-Takahashi."
closet_appearance = /decl/closet_appearance/crate/secure/ward
/obj/structure/closet/crate/secure/xion
desc = "A secure crate painted in Xion Manufacturing Group orange."
closet_appearance = /decl/closet_appearance/crate/secure/xion
/obj/structure/closet/crate/secure/zenghu
desc = "A secure sterile crate marked with the logo of Zeng-Hu Pharmaceuticals."
closet_appearance = /decl/closet_appearance/crate/secure/zenghu
/obj/structure/closet/crate/secure/phoron
name = "phoron crate"
desc = "A secure phoron crate."
desc = "A secure phoron crate painted in standard NanoTrasen livery."
closet_appearance = /decl/closet_appearance/crate/secure/hazard
/obj/structure/closet/crate/secure/gear
@@ -368,27 +556,24 @@
desc = "A secure gear crate."
closet_appearance = /decl/closet_appearance/crate/secure/weapon
/obj/structure/closet/crate/secure/hydrosec
name = "secure hydroponics crate"
desc = "A crate with a lock on it, painted in the scheme of the station's botanists."
closet_appearance = /decl/closet_appearance/crate/secure/hydroponics
/obj/structure/closet/crate/secure/engineering
desc = "A crate with a lock on it, painted in the scheme of the station's engineers."
name = "secure engineering crate"
/obj/structure/closet/crate/secure/science
name = "secure science crate"
desc = "A crate with a lock on it, painted in the scheme of the station's scientists."
/obj/structure/closet/crate/secure/bin
name = "secure bin"
desc = "A secure bin."
// Large crates
/obj/structure/closet/crate/large
name = "large crate"
@@ -414,6 +599,30 @@
break
return
/obj/structure/closet/crate/large/critter
name = "animal crate"
desc = "A hefty crate for hauling animals."
closet_appearance = /decl/closet_appearance/large_crate/critter
/obj/structure/closet/crate/large/aether
name = "large atmospherics crate"
desc = "A hefty metal crate, painted in Aether Atmospherics and Recycling colours."
closet_appearance = /decl/closet_appearance/large_crate/aether
/obj/structure/closet/crate/large/einstein
name = "large crate"
desc = "A hefty metal crate, painted in Einstein Engines colours."
closet_appearance = /decl/closet_appearance/large_crate/einstein
/obj/structure/closet/crate/large/nanotrasen
name = "large crate"
desc = "A hefty metal crate, painted in standard NanoTrasen livery."
closet_appearance = /decl/closet_appearance/large_crate/nanotrasen
/obj/structure/closet/crate/large/xion
name = "large crate"
desc = "A hefty metal crate, painted in Xion Manufacturing Group orange."
closet_appearance = /decl/closet_appearance/large_crate/xion
/obj/structure/closet/crate/secure/large
name = "large crate"
@@ -441,10 +650,30 @@
return
//fluff variant
/obj/structure/closet/crate/secure/large/reinforced
desc = "A hefty, reinforced metal crate with an electronic locking system."
/obj/structure/closet/crate/secure/large/aether
name = "secure atmospherics crate"
desc = "A hefty metal crate with an electronic locking system, painted in Aether Atmospherics and Recycling colours."
closet_appearance = /decl/closet_appearance/large_crate/secure/aether
/obj/structure/closet/crate/secure/large/einstein
desc = "A hefty metal crate with an electronic locking system, painted in Einstein Engines colours."
closet_appearance = /decl/closet_appearance/large_crate/secure/einstein
/obj/structure/closet/crate/large/secure/heph
desc = "A hefty metal crate with an electronic locking system, marked with Hephaestus Industries colours."
closet_appearance = /decl/closet_appearance/large_crate/secure/heph
/obj/structure/closet/crate/secure/large/nanotrasen
desc = "A hefty metal crate with an electronic locking system, painted in standard NanoTrasen livery."
closet_appearance = /decl/closet_appearance/large_crate/secure/hazard
/obj/structure/closet/crate/large/secure/xion
desc = "A hefty metal crate with an electronic locking system, painted in Xion Manufacturing Group orange."
closet_appearance = /decl/closet_appearance/large_crate/secure/xion
/obj/structure/closet/crate/engineering
name = "engineering crate"

View File

@@ -44,8 +44,8 @@
/obj/structure/largecrate/hoverpod
name = "\improper Hoverpod assembly crate"
desc = "It comes in a box for the fabricator's sake. Where does the wood come from? ... And why is it lighter?"
icon_state = "mulecrate"
desc = "You aren't sure how this crate is so light, but the Wulf Aeronautics logo might be a hint."
icon_state = "vehiclecrate"
/obj/structure/largecrate/hoverpod/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(W.is_crowbar())
@@ -60,7 +60,7 @@
/obj/structure/largecrate/vehicle
name = "vehicle crate"
desc = "It comes in a box for the consumer's sake. ..How is this lighter?"
desc = "Wulf Aeronautics says it comes in a box for the consumer's sake... How is this so light?"
icon_state = "vehiclecrate"
/obj/structure/largecrate/vehicle/Initialize()
@@ -74,18 +74,22 @@
/obj/structure/largecrate/vehicle/quadbike
name = "\improper ATV crate"
desc = "A hefty wooden crate proudly displaying the logo of Ward-Takahashi's automotive division."
starts_with = list(/obj/structure/vehiclecage/quadbike)
/obj/structure/largecrate/vehicle/quadtrailer
name = "\improper ATV trailer crate"
desc = "A hefty wooden crate proudly displaying the logo of Ward-Takahashi's automotive division."
starts_with = list(/obj/structure/vehiclecage/quadtrailer)
/obj/structure/largecrate/animal
icon_state = "lisacrate" //VOREStation Edit
icon_state = "crittercrate"
desc = "A hefty wooden crate with air holes. It is marked with the logo of NanoTrasen Pastures and the slogan, '90% less cloning defects* than competing brands**, or your money back***!'"
/obj/structure/largecrate/animal/mulebot
name = "Mulebot crate"
icon_state = "mulecrate" //VOREStation Edit
desc = "A hefty wooden crate labelled 'Proud Product of the Xion Manufacturing Group'"
icon_state = "mulecrate"
starts_with = list(/mob/living/bot/mulebot)
/obj/structure/largecrate/animal/corgi

View File

@@ -1,98 +0,0 @@
/obj/structure/noticeboard
name = "notice board"
desc = "A board for pinning important notices upon."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "nboard00"
density = 0
anchored = 1
var/notices = 0
/obj/structure/noticeboard/New(var/loc, var/dir, var/building = 0)
..()
if(building)
if(loc)
src.loc = loc
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
pixel_y = (dir & 3)? (dir ==1 ? -27 : 27) : 0
update_icon()
return
/obj/structure/noticeboard/Initialize()
for(var/obj/item/I in loc)
if(notices > 4) break
if(istype(I, /obj/item/weapon/paper))
I.loc = src
notices++
icon_state = "nboard0[notices]"
. = ..()
//attaching papers!!
/obj/structure/noticeboard/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/paper))
if(notices < 5)
O.add_fingerprint(user)
add_fingerprint(user)
user.drop_from_inventory(O)
O.loc = src
notices++
icon_state = "nboard0[notices]" //update sprite
to_chat(user, "<span class='notice'>You pin the paper to the noticeboard.</span>")
else
to_chat(user, "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>")
if(O.is_wrench())
to_chat(user, "<span class='notice'>You start to unwrench the noticeboard.</span>")
playsound(src, O.usesound, 50, 1)
if(do_after(user, 15 * O.toolspeed))
to_chat(user, "<span class='notice'>You unwrench the noticeboard.</span>")
new /obj/item/frame/noticeboard( src.loc )
qdel(src)
return
/obj/structure/noticeboard/attack_hand(var/mob/user)
user.examinate(src)
// Since Topic() never seems to interact with usr on more than a superficial
// level, it should be fine to let anyone mess with the board other than ghosts.
/obj/structure/noticeboard/examine(var/mob/user)
. = ..()
if(Adjacent(user))
var/dat = "<B>Noticeboard</B><BR>"
for(var/obj/item/weapon/paper/P in src)
dat += "<A href='?src=\ref[src];read=\ref[P]'>[P.name]</A> <A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A><BR>"
user << browse("<HEAD><TITLE>Notices</TITLE></HEAD>[dat]","window=noticeboard")
onclose(user, "noticeboard")
/obj/structure/noticeboard/Topic(href, href_list)
..()
usr.set_machine(src)
if(href_list["remove"])
if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open
return
var/obj/item/P = locate(href_list["remove"])
if(P && P.loc == src)
P.loc = get_turf(src) //dump paper on the floor because you're a clumsy fuck
P.add_fingerprint(usr)
add_fingerprint(usr)
notices--
icon_state = "nboard0[notices]"
if(href_list["write"])
if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open
return
var/obj/item/P = locate(href_list["write"])
if((P && P.loc == src)) //ifthe paper's on the board
var/mob/living/M = usr
if(istype(M))
var/obj/item/weapon/pen/E = M.get_type_in_hands(/obj/item/weapon/pen)
if(E)
add_fingerprint(M)
P.attackby(E, usr)
else
to_chat(M, "<span class='notice'>You'll need something to write with!</span>")
if(href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
if((P && P.loc == src))
usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY><TT>[P.info]</TT></BODY></HTML>", "window=[P.name]")
onclose(usr, "[P.name]")
return

View File

@@ -89,7 +89,7 @@
..()
bumpopen(M)
/obj/machinery/cooker/fryer/stumble_into(mob/living/M)
/obj/machinery/appliance/cooker/fryer/stumble_into(mob/living/M)
visible_message("<span class='warning'>[M] [pick("ran", "slammed")] into \the [src]!</span>")
M.apply_damage(15, BURN)
M.Weaken(5)