Merge branch 'master' into placeholder

# Conflicts:
#	icons/obj/furniture.dmi
This commit is contained in:
Ferner
2020-12-24 17:56:02 +01:00
357 changed files with 107089 additions and 94669 deletions
@@ -132,9 +132,9 @@
dump_contents()
icon_state = icon_opened
opened = 1
opened = TRUE
playsound(loc, open_sound, 25, 0, -3)
density = 0
density = FALSE
return 1
/obj/structure/closet/proc/close()
@@ -153,7 +153,7 @@
stored_units += store_mobs(stored_units)
icon_state = icon_closed
opened = 0
opened = FALSE
if(linked_teleporter)
if(linked_teleporter.last_use + 600 > world.time)
return
@@ -162,7 +162,7 @@
linked_teleporter.last_use = world.time
playsound(get_turf(src), close_sound, 25, 0, -3)
density = TRUE
density = initial(density)
return TRUE
//Cham Projector Exception
@@ -52,6 +52,8 @@
icon_closed = "red"
/obj/structure/closet/lasertag/red/fill()
new /obj/item/clothing/ears/earmuffs(src)
new /obj/item/clothing/ears/earmuffs(src)
new /obj/item/gun/energy/lasertag/red(src)
new /obj/item/gun/energy/lasertag/red(src)
new /obj/item/clothing/suit/redtag(src)
@@ -65,7 +67,9 @@
icon_closed = "blue"
/obj/structure/closet/lasertag/blue/fill()
new /obj/item/clothing/ears/earmuffs(src)
new /obj/item/clothing/ears/earmuffs(src)
new /obj/item/gun/energy/lasertag/blue(src)
new /obj/item/gun/energy/lasertag/blue(src)
new /obj/item/clothing/suit/bluetag(src)
new /obj/item/clothing/suit/bluetag(src)
new /obj/item/clothing/suit/bluetag(src)
@@ -9,30 +9,24 @@
icon_off = "capsecureoff"
/obj/structure/closet/secure_closet/captains/fill()
//Appearance
// Backpack
if(prob(50))
new /obj/item/storage/backpack/captain(src)
else
new /obj/item/storage/backpack/satchel_cap(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/suit/captunic/capjacket(src)
new /obj/item/clothing/head/caphat/cap(src)
new /obj/item/clothing/head/bandana/captain(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/suit/storage/vest(src)
new /obj/item/clothing/gloves/captain(src)
// Armor
new /obj/item/clothing/head/helmet(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/under/dress/dress_cap(src)
new /obj/item/clothing/head/caphat/formal(src)
new /obj/item/clothing/under/captainformal(src)
new /obj/item/clothing/suit/storage/vest(src)
//Tools
new /obj/item/device/radio/headset/heads/captain(src)
new /obj/item/device/radio/headset/heads/captain/alt(src)
new /obj/item/gun/energy/disruptorpistol(src)
new /obj/item/device/flash(src)
new /obj/item/melee/telebaton(src)
// acting captain briefcase
// uniform briefcases
new /obj/item/storage/briefcase/nt/captain(src)
new /obj/item/storage/briefcase/nt/captain_white(src)
new /obj/item/storage/briefcase/nt/captain_formal(src)
new /obj/item/storage/briefcase/nt/acap(src)
/obj/structure/closet/secure_closet/captains2
@@ -6,40 +6,25 @@
name = "Wall Locker"
icon = 'icons/obj/walllocker.dmi'
icon_state = "wall-locker"
density = 0
anchored = 1
density = FALSE
anchored = TRUE
store_mobs = FALSE
icon_closed = "wall-locker"
icon_opened = "wall-lockeropen"
//spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar
/obj/structure/closet/walllocker/emerglocker
name = "emergency locker"
desc = "A wall mounted locker with emergency supplies."
var/list/spawnitems = list(/obj/item/tank/emergency_oxygen,/obj/item/clothing/mask/breath)
var/amount = 2 // spawns each items X times.
icon_state = "emerg"
icon_closed = "emerg"
icon_opened = "emerg-open"
/obj/structure/closet/walllocker/emerglocker/toggle(mob/user as mob)
attack_hand(user)
return
/obj/structure/closet/walllocker/emerglocker/attackby(obj/item/W as obj, mob/user as mob)
return
/obj/structure/closet/walllocker/emerglocker/attack_hand(mob/user as mob)
if (istype(user, /mob/living/silicon/ai)) //Added by Strumpetplaya - AI shouldn't be able to
return //activate emergency lockers. This fixes that. (Does this make sense, the AI can't call attack_hand, can it? --Mloc)
if(!amount)
to_chat(usr, "<spawn class='notice'>It's empty..")
return
if(amount)
to_chat(usr, "<spawn class='notice'>You take out some items from \the [src].")
for(var/path in spawnitems)
new path(loc)
amount--
return
/obj/structure/closet/walllocker/emerglocker/fill()
for(var/i = 1 to 3)
new /obj/item/tank/emergency_oxygen(src)
new /obj/item/clothing/mask/breath(src)
if(prob(20))
new /obj/item/reagent_containers/hypospray/autoinjector/emergency(src)
/obj/structure/closet/walllocker/emerglocker/north
pixel_y = 32
@@ -32,7 +32,7 @@
return TRUE
if(ishuman(mover))
var/mob/living/carbon/human/H = mover
if(H.mind.changeling)
if(H.mind.antag_datums[MODE_CHANGELING])
return TRUE
/obj/structure/gore/tendrils/Destroy()
+10 -7
View File
@@ -10,11 +10,13 @@
var/list/ui_users = list()
/obj/structure/mirror/attack_hand(mob/user as mob)
if(shattered)
return
if(shattered) return
if(user.mind && user.mind.vampire && (!(user.mind.vampire.status & VAMP_ISTHRALL)))
to_chat(user, "<span class='notice'>Your reflection appears distorted on the surface of \the [src].</span>")
if(user.mind)
var/datum/vampire/vampire = user.mind.antag_datums[MODE_VAMPIRE]
if(vampire && !(vampire.status & VAMP_ISTHRALL))
to_chat(user, "<span class='notice'>Your reflection appears distorted on the surface of \the [src].</span>")
if(ishuman(user))
var/datum/nano_module/appearance_changer/AC = ui_users[user]
@@ -82,9 +84,10 @@
var/list/ui_users = list()
/obj/item/mirror/attack_self(mob/user as mob)
if(user.mind && user.mind.vampire && (!(user.mind.vampire.status & VAMP_ISTHRALL)))
to_chat(user, "<span class='notice'>Your reflection appears distorted on the surface of \the [src].</span>")
if(user.mind)
var/datum/vampire/vampire = user.mind.antag_datums[MODE_VAMPIRE]
if(vampire && !(vampire.status & VAMP_ISTHRALL))
to_chat(user, "<span class='notice'>Your reflection appears distorted on the surface of \the [src].</span>")
if(ishuman(user))
var/datum/nano_module/appearance_changer/AC = ui_users[user]
+3 -2
View File
@@ -405,7 +405,7 @@
name = "crematorium igniter"
desc = "Burn baby burn!"
icon = 'icons/obj/power.dmi'
icon_state = "crema_switch"
icon_state = "light0"
req_access = list(access_crematorium)
id = 1
var/cremate_dir // something for mappers, setting will make a crematorium in one step in this direction toggle
@@ -414,6 +414,7 @@
return
/obj/machinery/button/crematorium/attack_hand(mob/user)
playsound(src, /decl/sound_category/switch_sound, 30)
if(!allowed(user))
to_chat(user, SPAN_WARNING("Access denied."))
return
@@ -433,4 +434,4 @@
for(var/thing in crematoriums)
var/obj/structure/crematorium/C = thing
if(!C.cremating)
C.cremate(user)
C.cremate(user)
+2 -2
View File
@@ -175,7 +175,7 @@
user.do_attack_animation(src)
animate_shake()
user.visible_message("<span class='danger'>\The [user] forcefully strikes \the [src] with \the [I]!</span>")
playsound(src.loc, material.hitsound, 100, 1)
playsound(src.loc, material.hitsound, W.get_clamped_volume(), 1)
src.health -= W.force * 1
CheckHealth()
@@ -242,4 +242,4 @@
/obj/structure/simple_door/cult/New(var/newloc, var/material_name)
..(newloc, MATERIAL_CULT)
color = COLOR_CULT_DOOR // looks better than the standard cult colours
color = COLOR_CULT_DOOR // looks better than the standard cult colours
@@ -24,19 +24,17 @@
var/material/padding_material
var/base_icon = "bed"
var/material_alteration = MATERIAL_ALTERATION_ALL
var/buckling_sound = 'sound/effects/buckle.ogg'
var/can_dismantle = TRUE
gfi_layer_rotation = GFI_ROTATION_DEFDIR
var/apply_material_color = TRUE
var/makes_rolling_sound = TRUE
var/buckle_sound = 'sound/effects/buckle.ogg'
slowdown = 5
/obj/structure/bed/Initialize(mapload, var/new_material, var/new_padding_material)
. = ..()
/obj/structure/bed/New(newloc, new_material = MATERIAL_STEEL, new_padding_material)
..(newloc)
color = null
if(!new_material)
new_material = DEFAULT_WALL_MATERIAL
material = SSmaterials.get_material_by_name(new_material)
if(!istype(material))
qdel(src)
@@ -47,41 +45,42 @@
/obj/structure/bed/buckle_mob(mob/living/M)
. = ..()
if(. && buckle_sound)
playsound(src, buckle_sound, 20)
if(. && buckling_sound)
playsound(src, buckling_sound, 20)
// Reuse the cache/code from stools, todo maybe unify.
/obj/structure/bed/update_icon()
// Prep icon.
icon_state = ""
cut_overlays()
var/list/stool_cache = SSicon_cache.stool_cache
// Base icon.
var/list/stool_cache = SSicon_cache.stool_cache
var/cache_key = "[base_icon]-[material.name]"
if(!stool_cache[cache_key])
var/image/I = image('icons/obj/furniture.dmi', base_icon)
if(apply_material_color)
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = material.icon_colour
stool_cache[cache_key] = I
add_overlay(stool_cache[cache_key])
// Padding overlay.
if(padding_material)
var/padding_cache_key = "[base_icon]-padding-[padding_material.name]"
var/padding_cache_key = "[base_icon]-[padding_material.name]-padding"
if(!stool_cache[padding_cache_key])
var/image/I = image(icon, "[base_icon]_padding")
if(apply_material_color)
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = padding_material.icon_colour
stool_cache[padding_cache_key] = I
add_overlay(stool_cache[padding_cache_key])
// Strings.
desc = initial(desc)
if(padding_material)
name = "[padding_material.display_name] [initial(name)]" //this is not perfect but it will do for now.
desc += " It's made of [material.use_name] and covered with [padding_material.use_name]."
else
name = "[material.display_name] [initial(name)]"
desc += " It's made of [material.use_name]."
if(material_alteration & MATERIAL_ALTERATION_NAME)
name = padding_material ? "[padding_material.adjective_name] [initial(name)]" : "[material.adjective_name] [initial(name)]" //this is not perfect but it will do for now.
if(material_alteration & MATERIAL_ALTERATION_DESC)
desc = initial(desc)
desc += padding_material ? " It's made of [material.use_name] and covered with [padding_material.use_name]." : " It's made of [material.use_name]."
/obj/structure/bed/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(istype(mover) && mover.checkpass(PASSTABLE))
@@ -2,8 +2,8 @@
name = "chair"
desc = "You sit in this. Either by will or force."
icon_state = "chair_preview"
color = "#666666"
base_icon = "chair"
color = "#666666"
build_amt = 1
@@ -34,6 +34,7 @@
/obj/structure/bed/chair/post_buckle_mob()
update_icon()
return ..()
/obj/structure/bed/chair/update_icon()
..()
@@ -41,33 +42,42 @@
var/list/stool_cache = SSicon_cache.stool_cache
var/cache_key = "[base_icon]-[material.name]-over"
if(isnull(stool_cache[cache_key]))
if(!stool_cache[cache_key])
var/image/I = image('icons/obj/furniture.dmi', "[base_icon]_over")
if(apply_material_color)
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = material.icon_colour
I.layer = FLY_LAYER
stool_cache[cache_key] = I
add_overlay(stool_cache[cache_key])
// Padding overlay.
if(padding_material)
var/padding_cache_key = "[base_icon]-padding-[padding_material.name]-over"
if(isnull(stool_cache[padding_cache_key]))
var/padding_cache_key = "[base_icon]-[padding_material.name]-padding-over"
if(!stool_cache[padding_cache_key])
var/image/I = image(icon, "[base_icon]_padding_over")
if(apply_material_color)
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = padding_material.icon_colour
I.layer = FLY_LAYER
stool_cache[padding_cache_key] = I
add_overlay(stool_cache[padding_cache_key])
if(buckled_mob && padding_material)
cache_key = "[base_icon]-armrest-[padding_material.name]"
if(isnull(stool_cache[cache_key]))
if(buckled_mob)
cache_key = "[base_icon]-[material.name]-armrest"
if(!stool_cache[cache_key])
var/image/I = image(icon, "[base_icon]_armrest")
I.layer = MOB_LAYER + 0.1
if(apply_material_color)
I.color = padding_material.icon_colour
I.layer = FLY_LAYER
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = material.icon_colour
stool_cache[cache_key] = I
add_overlay(stool_cache[cache_key])
if(padding_material)
cache_key = "[base_icon]-[padding_material.name]-padding-armrest"
if(!stool_cache[cache_key])
var/image/I = image(icon, "[base_icon]_padding_armrest")
I.layer = FLY_LAYER
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = padding_material.icon_colour
stool_cache[cache_key] = I
add_overlay(stool_cache[cache_key])
/obj/structure/bed/chair/set_dir()
. = ..()
@@ -76,45 +86,46 @@
// Leaving this in for the sake of compilation.
/obj/structure/bed/chair/comfy
name = "comfy chair"
desc = "It's a chair. It looks comfy."
icon_state = "comfychair_preview"
base_icon = "comfychair"
build_amt = 2
/obj/structure/bed/chair/comfy/brown/Initialize(mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_LEATHER)
/obj/structure/bed/chair/comfy/brown/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_LEATHER)
/obj/structure/bed/chair/comfy/red/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CARPET)
/obj/structure/bed/chair/comfy/red/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CARPET)
/obj/structure/bed/chair/comfy/teal/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
/obj/structure/bed/chair/comfy/teal/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_TEAL)
/obj/structure/bed/chair/comfy/black/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
/obj/structure/bed/chair/comfy/black/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLACK)
/obj/structure/bed/chair/comfy/green/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
/obj/structure/bed/chair/comfy/green/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_GREEN)
/obj/structure/bed/chair/comfy/purp/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
/obj/structure/bed/chair/comfy/purp/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_PURPLE)
/obj/structure/bed/chair/comfy/blue/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
/obj/structure/bed/chair/comfy/blue/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BLUE)
/obj/structure/bed/chair/comfy/beige/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_BEIGE)
/obj/structure/bed/chair/comfy/beige/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_BEIGE)
/obj/structure/bed/chair/comfy/lime/Initialize(var/mapload,var/newmaterial)
. = ..(mapload, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
/obj/structure/bed/chair/comfy/lime/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH_LIME)
/obj/structure/bed/chair/office
name = "office chair"
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
anchored = 0
buckle_movable = 1
build_amt = 5
/obj/structure/bed/chair/office/update_icon()
return
/obj/structure/bed/chair/office/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/stack) || W.iswirecutter())
return
@@ -164,29 +175,35 @@
occupant.visible_message("<span class='danger'>[occupant] crashed into \the [A]!</span>")
/obj/structure/bed/chair/office/light
icon_state = "officechair_white"
icon_state = "officechair_white_preview"
base_icon = "officechair_white"
/obj/structure/bed/chair/office/dark
icon_state = "officechair_dark"
icon_state = "officechair_dark_preview"
base_icon = "officechair_dark"
/obj/structure/bed/chair/office/bridge
name = "command chair"
desc = "It exudes authority... and looks about as comfortable as a brick."
icon_state = "bridge"
icon_state = "bridge_preview"
base_icon = "bridge"
anchored = 1
/obj/structure/bed/chair/office/bridge/legion
name = "legion pilot seat"
desc = "A comfortable seat for a pilot."
icon_state = "bridge_legion"
icon_state = "bridge_legion_preview"
base_icon = "bridge_legion"
/obj/structure/bed/chair/office/bridge/generic
icon_state = "bridge_generic"
icon_state = "bridge_generic_preview"
base_icon = "bridge_generic"
/obj/structure/bed/chair/office/bridge/pilot
name = "pilot seat"
desc = "A comfortable seat for a pilot."
icon_state = "pilot"
icon_state = "pilot_preview"
base_icon = "pilot"
/obj/structure/bed/chair/office/hover
name = "hoverchair"
@@ -202,83 +219,60 @@
/obj/structure/bed/chair/office/hover/command
icon_state = "hover_command"
/obj/structure/bed/chair/office/Initialize()
. = ..()
var/image/I = image(icon, "[icon_state]_over")
I.layer = FLY_LAYER
add_overlay(I)
// Chair types
/obj/structure/bed/chair/plastic
color = "#CCCCCC"
/obj/structure/bed/chair/plastic/Initialize(mapload)
. = ..(mapload, MATERIAL_PLASTIC)
/obj/structure/bed/chair/plastic/New(var/newloc)
..(newloc, MATERIAL_PLASTIC)
/obj/structure/bed/chair/wood
name = "wooden chair"
name = "classic chair"
desc = "Old is never too old to not be in fashion."
icon_state = "wooden_chair"
icon_state = "wooden_chair_preview"
base_icon = "wooden_chair"
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
build_amt = 3
/obj/structure/bed/chair/wood/update_icon()
return
/obj/structure/bed/chair/wood/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/stack) || W.iswirecutter())
return
..()
/obj/structure/bed/chair/wood/Initialize(mapload)
. = ..(mapload, "wood")
var/image/I = image(icon, "[icon_state]_over")
I.layer = FLY_LAYER
add_overlay(I)
/obj/structure/bed/chair/wood/New(var/newloc)
..(newloc, MATERIAL_WOOD)
/obj/structure/bed/chair/wood/wings
icon_state = "wooden_chair_wings"
name = "winged chair"
icon_state = "wooden_chair_wings_preview"
base_icon = "wooden_chair_wings"
/obj/structure/bed/chair/unmovable
can_dismantle = 0
/obj/structure/bed/chair/shuttle
icon_state = "shuttlechair"
name = "shuttle chair"
icon_state = "shuttlechair_preview"
base_icon = "shuttlechair"
buckling_sound = 'sound/effects/metal_close.ogg'
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
can_dismantle = FALSE
apply_material_color = FALSE
anchored = TRUE
/obj/structure/bed/chair/shuttle/update_icon()
cut_overlays()
var/image/O = image(icon, "[icon_state]_over")
O.layer = FLY_LAYER
add_overlay(O)
var/list/stool_cache = SSicon_cache.stool_cache
var/cache_key = "[base_icon]_over"
if(isnull(stool_cache[cache_key]))
var/image/I = image('icons/obj/furniture.dmi', "[base_icon]_over")
if(apply_material_color)
I.color = material.icon_colour
I.layer = FLY_LAYER
stool_cache[cache_key] = I
add_overlay(stool_cache[cache_key])
/obj/structure/bed/chair/shuttle/post_buckle_mob()
if(buckled_mob)
icon_state = "[base_icon]_down"
cache_key = "[base_icon]-armrest"
if(isnull(stool_cache[cache_key]))
var/image/I = image(icon, "[base_icon]_armrest")
I.layer = MOB_LAYER + 0.1
if(apply_material_color)
I.color = padding_material.icon_colour
stool_cache[cache_key] = I
add_overlay(stool_cache[cache_key])
base_icon = "shuttlechair-b"
else
icon_state = initial(icon_state)
base_icon = "shuttlechair"
..()
/obj/structure/bed/chair/shuttle/update_icon()
..()
if(!buckled_mob)
var/image/I = image(icon, "[base_icon]_special")
I.layer = ABOVE_MOB_LAYER
if(material_alteration & MATERIAL_ALTERATION_COLOR)
I.color = material.icon_colour
overlays |= I
// pool chair, to sit with your feet in the water. only works when facing south, because water overlays weirdly otherwise
/obj/structure/bed/chair/pool
@@ -299,4 +293,4 @@
if(M == buckled_mob)
M.pixel_y = -6
else
M.pixel_y = initial(M.pixel_y)
M.pixel_y = initial(M.pixel_y)
+1 -1
View File
@@ -198,7 +198,7 @@
/obj/item/clothing/gloves/brassknuckles = 3,
/obj/item/reagent_containers/syringe/drugs = 3,
/obj/item/handcuffs = 2,
/obj/item/legcuffs = 2,
/obj/item/handcuffs/legcuffs = 2,
/obj/item/grenade/chem_grenade/gas = 2,
/obj/item/clothing/suit/storage/vest/heavy = 1,
/obj/item/device/radiojammer = 1,
@@ -1,7 +1,8 @@
/obj/structure/bed/chair/remote
name = "virtual reality centre"
desc = "A comfortable chair with full audio-visual transposition centres."
icon_state = "shuttlechair_down"
icon_state = "shuttlechair_preview"
base_icon = "shuttlechair"
var/portable_type
can_dismantle = FALSE
var/remote_network // Which network does this remote control belong to?
@@ -45,7 +46,7 @@
if(H.old_mob)
to_chat(H, SPAN_WARNING("The chair rejects you! You cannot recursively control bodies."))
return
add_overlay(image('icons/obj/furniture.dmi', src, "vr_helmet", MOB_LAYER + 1))
add_overlay(image('icons/obj/furniture.dmi', src, "vr_helmet", FLY_LAYER))
START_PROCESSING(SSprocessing, src)
@@ -64,4 +65,4 @@
M.vr_mob.body_return()
cut_overlays()
STOP_PROCESSING(SSprocessing, src)
..()
..()
+1 -1
View File
@@ -554,7 +554,7 @@
if(!I) return //Item's been destroyed while washing
if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands
O.clean_blood()
I.clean_blood()
user.visible_message( \
SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \
SPAN_NOTICE("You wash \a [I] using \the [src]."))
+5 -7
View File
@@ -529,20 +529,18 @@
/obj/structure/window/reinforced/crescent/shatter()
return
/obj/machinery/button/windowtint
/obj/machinery/button/switch/windowtint
name = "window tint control"
icon = 'icons/obj/power.dmi'
icon_state = "light0"
desc = "A remote control switch for polarized windows."
var/range = 16
/obj/machinery/button/windowtint/attack_hand(mob/user as mob)
/obj/machinery/button/switch/windowtint/attack_hand(mob/user as mob)
if(..())
return 1
toggle_tint()
/obj/machinery/button/windowtint/proc/toggle_tint()
/obj/machinery/button/switch/windowtint/proc/toggle_tint()
use_power(5)
active = !active
@@ -554,10 +552,10 @@
W.toggle()
return
/obj/machinery/button/windowtint/power_change()
/obj/machinery/button/switch/windowtint/power_change()
..()
if(active && !powered(power_channel))
toggle_tint()
/obj/machinery/button/windowtint/update_icon()
/obj/machinery/button/switch/windowtint/update_icon()
icon_state = "light[active]"