Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Ghommie-cit265
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
|
||||
/obj/structure/AIcore/latejoin_inactive/examine(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "Its transmitter seems to be [active? "on" : "off"].")
|
||||
. += "Its transmitter seems to be [active? "on" : "off"]."
|
||||
|
||||
/obj/structure/AIcore/latejoin_inactive/proc/is_available() //If people still manage to use this feature to spawn-kill AI latejoins ahelp them.
|
||||
if(!available)
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
var/bolts = TRUE
|
||||
|
||||
/obj/structure/bed/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(bolts)
|
||||
to_chat(user, "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>")
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
|
||||
/obj/structure/bed/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
@@ -148,8 +148,8 @@
|
||||
..()
|
||||
|
||||
/obj/item/roller/robo/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "The dock is [loaded ? "loaded" : "empty"].")
|
||||
. = ..()
|
||||
. += "The dock is [loaded ? "loaded" : "empty"]."
|
||||
|
||||
/obj/item/roller/robo/deploy_roller(mob/user, atom/location)
|
||||
if(loaded)
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
layer = OBJ_LAYER
|
||||
|
||||
/obj/structure/chair/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>")
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
if(!has_buckled_mobs())
|
||||
to_chat(user, "<span class='notice'>Drag your sprite to sit in it.</span>")
|
||||
. += "<span class='notice'>Drag your sprite to sit in it.</span>"
|
||||
|
||||
/obj/structure/chair/Initialize()
|
||||
. = ..()
|
||||
@@ -498,7 +498,7 @@
|
||||
var/mutable_appearance/armrest
|
||||
|
||||
/obj/structure/chair/sofa/Initialize()
|
||||
armrest = mutable_appearance(icon, "[icon_state]_armrest")
|
||||
armrest = mutable_appearance(icon, "[icon_state]_armrest", ABOVE_MOB_LAYER)
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/sofa/post_buckle_mob(mob/living/M)
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/obj/structure/chair/pew
|
||||
name = "wooden pew"
|
||||
desc = "Kneel here and pray."
|
||||
icon = 'icons/obj/sofa.dmi'
|
||||
icon_state = "pewmiddle"
|
||||
resistance_flags = FLAMMABLE
|
||||
max_integrity = 70
|
||||
buildstacktype = /obj/item/stack/sheet/mineral/wood
|
||||
buildstackamount = 3
|
||||
item_chair = null
|
||||
|
||||
/obj/structure/chair/pew/left
|
||||
name = "left wooden pew end"
|
||||
icon_state = "pewend_left"
|
||||
var/mutable_appearance/leftpewarmrest
|
||||
|
||||
/obj/structure/chair/pew/left/Initialize()
|
||||
leftpewarmrest = GetLeftPewArmrest()
|
||||
leftpewarmrest.layer = ABOVE_MOB_LAYER
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/pew/left/proc/GetLeftPewArmrest()
|
||||
return mutable_appearance('icons/obj/sofa.dmi', "pewend_left_armrest")
|
||||
|
||||
/obj/structure/chair/pew/left/Destroy()
|
||||
QDEL_NULL(leftpewarmrest)
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/pew/left/post_buckle_mob(mob/living/M)
|
||||
. = ..()
|
||||
update_leftpewarmrest()
|
||||
|
||||
/obj/structure/chair/pew/left/proc/update_leftpewarmrest()
|
||||
if(has_buckled_mobs())
|
||||
add_overlay(leftpewarmrest)
|
||||
else
|
||||
cut_overlay(leftpewarmrest)
|
||||
|
||||
/obj/structure/chair/pew/left/post_unbuckle_mob()
|
||||
. = ..()
|
||||
update_leftpewarmrest()
|
||||
|
||||
/obj/structure/chair/pew/right
|
||||
name = "left wooden pew end"
|
||||
icon_state = "pewend_right"
|
||||
var/mutable_appearance/rightpewarmrest
|
||||
|
||||
/obj/structure/chair/pew/right/Initialize()
|
||||
rightpewarmrest = GetRightPewArmrest()
|
||||
rightpewarmrest.layer = ABOVE_MOB_LAYER
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/pew/right/proc/GetRightPewArmrest()
|
||||
return mutable_appearance('icons/obj/sofa.dmi', "pewend_right_armrest")
|
||||
|
||||
/obj/structure/chair/pew/right/Destroy()
|
||||
QDEL_NULL(rightpewarmrest)
|
||||
return ..()
|
||||
|
||||
/obj/structure/chair/pew/right/post_buckle_mob(mob/living/M)
|
||||
. = ..()
|
||||
update_rightpewarmrest()
|
||||
|
||||
/obj/structure/chair/pew/right/proc/update_rightpewarmrest()
|
||||
if(has_buckled_mobs())
|
||||
add_overlay(rightpewarmrest)
|
||||
else
|
||||
cut_overlay(rightpewarmrest)
|
||||
|
||||
/obj/structure/chair/pew/right/post_unbuckle_mob()
|
||||
. = ..()
|
||||
update_rightpewarmrest()
|
||||
@@ -294,13 +294,13 @@ LINEN BINS
|
||||
var/obj/item/hidden = null
|
||||
|
||||
/obj/structure/bedsheetbin/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(amount < 1)
|
||||
to_chat(user, "There are no sheets in the bin.")
|
||||
. += "There are no sheets in the bin."
|
||||
else if(amount == 1)
|
||||
to_chat(user, "There is one sheet in the bin.")
|
||||
. += "There is one sheet in the bin."
|
||||
else
|
||||
to_chat(user, "There are [amount] sheets in the bin.")
|
||||
. += "There are [amount] sheets in the bin."
|
||||
|
||||
|
||||
/obj/structure/bedsheetbin/update_icon()
|
||||
|
||||
@@ -84,22 +84,22 @@
|
||||
add_overlay("unlocked")
|
||||
|
||||
/obj/structure/closet/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(welded)
|
||||
to_chat(user, "<span class='notice'>It's <b>welded</b> shut.</span>")
|
||||
. += "<span class='notice'>It's <b>welded</b> shut.</span>"
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>It is <b>bolted</b> to the ground.</span>")
|
||||
. += "<span class='notice'>It is <b>bolted</b> to the ground.</span>"
|
||||
if(opened)
|
||||
to_chat(user, "<span class='notice'>The parts are <b>welded</b> together.</span>")
|
||||
. += "<span class='notice'>The parts are <b>welded</b> together.</span>"
|
||||
else if(secure && !opened)
|
||||
else if(broken)
|
||||
to_chat(user, "<span class='notice'>The lock is <b>screwed</b> in.</span>")
|
||||
. += "<span class='notice'>The lock is <b>screwed</b> in.</span>"
|
||||
else if(secure)
|
||||
to_chat(user, "<span class='notice'>Alt-click to [locked ? "unlock" : "lock"].</span>")
|
||||
. += "<span class='notice'>Alt-click to [locked ? "unlock" : "lock"].</span>"
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(HAS_TRAIT(L, TRAIT_SKITTISH))
|
||||
to_chat(user, "<span class='notice'>Ctrl-Shift-click [src] to jump inside.</span>")
|
||||
. += "<span class='notice'>Ctrl-Shift-click [src] to jump inside.</span>"
|
||||
|
||||
/obj/structure/closet/CanPass(atom/movable/mover, turf/target)
|
||||
if(wall_mounted)
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
new /obj/item/clothing/under/shorts/blue(src)
|
||||
new /obj/item/clothing/under/shorts/green(src)
|
||||
new /obj/item/clothing/under/jabroni(src)
|
||||
new /obj/item/clothing/under/polychromic/shortpants(src)
|
||||
new /obj/item/clothing/under/polychromic/shortpants(src)
|
||||
new /obj/item/clothing/under/polychromic/shortpants(src)
|
||||
|
||||
|
||||
/obj/structure/closet/boxinggloves
|
||||
|
||||
@@ -352,6 +352,7 @@
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/wardrobe/curator/PopulateContents()
|
||||
new /obj/item/clothing/accessory/pocketprotector/full(src)
|
||||
new /obj/item/clothing/head/fedora/curator(src)
|
||||
new /obj/item/clothing/suit/curator(src)
|
||||
new /obj/item/clothing/under/rank/curator/treasure_hunter(src)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
new /obj/item/clothing/under/rank/cargo(src)
|
||||
new /obj/item/clothing/under/rank/cargo/skirt(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/radio/headset/headset_cargo(src)
|
||||
new /obj/item/radio/headset/heads/qm(src)
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/megaphone/cargo(src)
|
||||
@@ -23,3 +23,4 @@
|
||||
new /obj/item/circuitboard/machine/techfab/department/cargo(src)
|
||||
new /obj/item/storage/photo_album/QM(src)
|
||||
new /obj/item/circuitboard/machine/ore_silo(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/qm(src)
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
new /obj/item/storage/photo_album/CE(src)
|
||||
new /obj/item/storage/lockbox/medal/engineering(src)
|
||||
new /obj/item/construction/rcd/loaded/upgraded(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/ce(src)
|
||||
new /obj/item/clothing/head/beret/ce/white(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical
|
||||
name = "electrical supplies locker"
|
||||
|
||||
@@ -61,6 +61,11 @@
|
||||
..()
|
||||
for(var/i = 0, i < 4, i++)
|
||||
new /obj/item/reagent_containers/food/snacks/meat/slab/monkey(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/meat/open
|
||||
req_access = null
|
||||
locked = FALSE
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/fridge
|
||||
name = "refrigerator"
|
||||
|
||||
@@ -73,6 +78,10 @@
|
||||
for(var/i = 0, i < 2, i++)
|
||||
new /obj/item/storage/fancy/egg_box(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/fridge/open
|
||||
req_access = null
|
||||
locked = FALSE
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/money
|
||||
name = "freezer"
|
||||
desc = "This contains cold hard cash."
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
new /obj/item/storage/belt/medical(src)
|
||||
new /obj/item/healthanalyzer/advanced(src)
|
||||
new /obj/item/assembly/flash/handheld(src)
|
||||
// new /obj/item/reagent_containers/hypospray/CMO(src) // CITADEL EDIT comments out the hypospray mk I. the MK II kit is modularized
|
||||
new /obj/item/storage/hypospraykit/cmo(src)
|
||||
new /obj/item/autosurgeon/cmo(src)
|
||||
new /obj/item/door_remote/chief_medical_officer(src)
|
||||
new /obj/item/clothing/neck/petcollar(src)
|
||||
@@ -81,6 +81,8 @@
|
||||
new /obj/item/circuitboard/machine/techfab/department/medical(src)
|
||||
new /obj/item/storage/photo_album/CMO(src)
|
||||
new /obj/item/storage/lockbox/medal/medical(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/cmo(src)
|
||||
new /obj/item/clothing/head/beret/cmo/blue(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/animal
|
||||
name = "animal control"
|
||||
|
||||
@@ -5,16 +5,23 @@
|
||||
var/registered_name = null
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(registered_name)
|
||||
to_chat(user, "<span class='notice'>The display reads, \"Owned by [registered_name]\".</span>")
|
||||
. += "<span class='notice'>The display reads, \"Owned by [registered_name]\".</span>"
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/check_access(obj/item/card/id/I)
|
||||
/obj/structure/closet/secure_closet/personal/check_access(obj/item/I)
|
||||
. = ..()
|
||||
if(!I || !istype(I))
|
||||
return
|
||||
if(registered_name == I.registered_name)
|
||||
if(istype(I,/obj/item/modular_computer/tablet))
|
||||
var/obj/item/modular_computer/tablet/ourTablet = I
|
||||
var/obj/item/computer_hardware/card_slot/card_slot = ourTablet.all_components[MC_CARD]
|
||||
if(card_slot)
|
||||
return registered_name == card_slot.stored_card.registered_name || registered_name == card_slot.stored_card2.registered_name
|
||||
var/obj/item/card/id/ID = I.GetID()
|
||||
if(ID && registered_name == ID.registered_name)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/PopulateContents()
|
||||
..()
|
||||
@@ -42,6 +49,7 @@
|
||||
new /obj/item/storage/backpack/satchel/leather/withwallet( src )
|
||||
new /obj/item/instrument/piano_synth(src)
|
||||
new /obj/item/radio/headset( src )
|
||||
new /obj/item/clothing/head/colour(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/attackby(obj/item/W, mob/user, params)
|
||||
var/obj/item/card/id/I = W.GetID()
|
||||
|
||||
@@ -30,3 +30,5 @@
|
||||
new /obj/item/door_remote/research_director(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/science(src)
|
||||
new /obj/item/storage/photo_album/RD(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/rd(src)
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
new /obj/item/gun/energy/e_gun(src)
|
||||
new /obj/item/door_remote/captain(src)
|
||||
new /obj/item/storage/photo_album/Captain(src)
|
||||
new /obj/item/clothing/head/caphat/beret/white(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/hop
|
||||
name = "\proper head of personnel's locker"
|
||||
req_access = list(ACCESS_HOP)
|
||||
@@ -61,6 +63,9 @@
|
||||
new /obj/item/door_remote/civillian(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/service(src)
|
||||
new /obj/item/storage/photo_album/HoP(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/hop(src)
|
||||
new /obj/item/clothing/head/hopcap/beret/white(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/hos
|
||||
name = "\proper head of security's locker"
|
||||
req_access = list(ACCESS_HOS)
|
||||
@@ -94,6 +99,7 @@
|
||||
new /obj/item/pinpointer/nuke(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/security(src)
|
||||
new /obj/item/storage/photo_album/HoS(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/hos(src)
|
||||
/obj/structure/closet/secure_closet/warden
|
||||
name = "\proper warden's locker"
|
||||
req_access = list(ACCESS_ARMORY)
|
||||
@@ -118,6 +124,7 @@
|
||||
new /obj/item/clothing/gloves/krav_maga/sec(src)
|
||||
new /obj/item/door_remote/head_of_security(src)
|
||||
new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src)
|
||||
new /obj/item/clothing/head/beret/sec/corporatewarden(src)
|
||||
/obj/structure/closet/secure_closet/security
|
||||
name = "security officer's locker"
|
||||
req_access = list(ACCESS_SECURITY)
|
||||
|
||||
@@ -142,28 +142,21 @@
|
||||
new /obj/item/clothing/suit/jacket(src)
|
||||
if(prob(40))
|
||||
new /obj/item/clothing/suit/jacket(src)
|
||||
new /obj/item/clothing/under/color/white(src)
|
||||
new /obj/item/clothing/under/skirt/color/white(src)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
new /obj/item/clothing/under/skirt/color/blue(src)
|
||||
new /obj/item/clothing/under/color/yellow(src)
|
||||
new /obj/item/clothing/under/skirt/color/yellow(src)
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
new /obj/item/clothing/under/skirt/color/green(src)
|
||||
new /obj/item/clothing/under/color/orange(src)
|
||||
new /obj/item/clothing/under/skirt/color/orange(src)
|
||||
new /obj/item/clothing/under/color/pink(src)
|
||||
new /obj/item/clothing/under/skirt/color/pink(src)
|
||||
new /obj/item/clothing/under/color/red(src)
|
||||
new /obj/item/clothing/under/skirt/color/red(src)
|
||||
new /obj/item/clothing/under/color/darkblue(src)
|
||||
new /obj/item/clothing/under/skirt/color/darkblue(src)
|
||||
new /obj/item/clothing/under/color/teal(src)
|
||||
new /obj/item/clothing/under/skirt/color/teal(src)
|
||||
new /obj/item/clothing/under/color/lightpurple(src)
|
||||
new /obj/item/clothing/under/skirt/color/lightpurple(src)
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
new /obj/item/clothing/under/skirt/color/green(src)
|
||||
new /obj/item/clothing/under/polychromic/jumpsuit(src)
|
||||
new /obj/item/clothing/under/polychromic/jumpsuit(src)
|
||||
new /obj/item/clothing/under/polychromic/jumpsuit(src)
|
||||
new /obj/item/clothing/under/polychromic/shirt(src)
|
||||
new /obj/item/clothing/under/polychromic/shirt(src)
|
||||
new /obj/item/clothing/under/polychromic/shirt(src)
|
||||
new /obj/item/clothing/under/polychromic/kilt(src)
|
||||
new /obj/item/clothing/under/polychromic/kilt(src)
|
||||
new /obj/item/clothing/under/polychromic/kilt(src)
|
||||
new /obj/item/clothing/under/polychromic/skirt(src)
|
||||
new /obj/item/clothing/under/polychromic/skirt(src)
|
||||
new /obj/item/clothing/under/polychromic/skirt(src)
|
||||
new /obj/item/clothing/under/polychromic/shorts(src)
|
||||
new /obj/item/clothing/under/polychromic/shorts(src)
|
||||
new /obj/item/clothing/under/polychromic/shorts(src)
|
||||
new /obj/item/clothing/mask/bandana/red(src)
|
||||
new /obj/item/clothing/mask/bandana/red(src)
|
||||
new /obj/item/clothing/mask/bandana/blue(src)
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
icon_state = "largebins"
|
||||
open_sound = 'sound/effects/bin_open.ogg'
|
||||
close_sound = 'sound/effects/bin_close.ogg'
|
||||
material_drop = /obj/item/stack/sheet/plastic
|
||||
material_drop_amount = 40
|
||||
anchored = TRUE
|
||||
horizontal = FALSE
|
||||
delivery_icon = null
|
||||
|
||||
@@ -38,14 +38,14 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/displaycase/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(alert)
|
||||
to_chat(user, "<span class='notice'>Hooked up with an anti-theft system.</span>")
|
||||
. += "<span class='notice'>Hooked up with an anti-theft system.</span>"
|
||||
if(showpiece)
|
||||
to_chat(user, "<span class='notice'>There's [showpiece] inside.</span>")
|
||||
. += "<span class='notice'>There's [showpiece] inside.</span>"
|
||||
if(trophy_message)
|
||||
to_chat(user, "The plaque reads:")
|
||||
to_chat(user, trophy_message)
|
||||
. += "The plaque reads:"
|
||||
. += trophy_message
|
||||
|
||||
|
||||
/obj/structure/displaycase/proc/dump()
|
||||
|
||||
@@ -26,28 +26,28 @@
|
||||
..()
|
||||
|
||||
/obj/structure/door_assembly/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
var/doorname = ""
|
||||
if(created_name)
|
||||
doorname = ", written on it is '[created_name]'"
|
||||
switch(state)
|
||||
if(AIRLOCK_ASSEMBLY_NEEDS_WIRES)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>The anchoring bolts are <b>wrenched</b> in place, but the maintenance panel lacks <i>wiring</i>.</span>")
|
||||
. += "<span class='notice'>The anchoring bolts are <b>wrenched</b> in place, but the maintenance panel lacks <i>wiring</i>.</span>"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The assembly is <b>welded together</b>, but the anchoring bolts are <i>unwrenched</i>.</span>")
|
||||
. += "<span class='notice'>The assembly is <b>welded together</b>, but the anchoring bolts are <i>unwrenched</i>.</span>"
|
||||
if(AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
|
||||
to_chat(user, "<span class='notice'>The maintenance panel is <b>wired</b>, but the circuit slot is <i>empty</i>.</span>")
|
||||
. += "<span class='notice'>The maintenance panel is <b>wired</b>, but the circuit slot is <i>empty</i>.</span>"
|
||||
if(AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
|
||||
to_chat(user, "<span class='notice'>The circuit is <b>connected loosely</b> to its slot, but the maintenance panel is <i>unscrewed and open</i>.</span>")
|
||||
. += "<span class='notice'>The circuit is <b>connected loosely</b> to its slot, but the maintenance panel is <i>unscrewed and open</i>.</span>"
|
||||
if(!mineral && !glass && !noglass)
|
||||
to_chat(user, "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows and mineral covers.</span>")
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows and mineral covers.</span>"
|
||||
else if(!mineral && glass && !noglass)
|
||||
to_chat(user, "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for mineral covers.</span>")
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for mineral covers.</span>"
|
||||
else if(mineral && !glass && !noglass)
|
||||
to_chat(user, "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows.</span>")
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows.</span>"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname].</span>")
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname].</span>"
|
||||
|
||||
/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/pen))
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
stored_extinguisher = new /obj/item/extinguisher(src)
|
||||
|
||||
/obj/structure/extinguisher_cabinet/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>Alt-click to [opened ? "close":"open"] it.</span>")
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click to [opened ? "close":"open"] it.</span>"
|
||||
|
||||
/obj/structure/extinguisher_cabinet/Destroy()
|
||||
if(stored_extinguisher)
|
||||
|
||||
@@ -23,24 +23,14 @@
|
||||
var/current_action = 0 // What's currently happening to the femur breaker
|
||||
|
||||
/obj/structure/femur_breaker/examine(mob/user)
|
||||
..()
|
||||
|
||||
var/msg = ""
|
||||
|
||||
msg += "It is [anchored ? "secured to the floor." : "unsecured."]<br/>"
|
||||
|
||||
. = ..()
|
||||
. += "It is [anchored ? "secured to the floor." : "unsecured."]"
|
||||
if (slat_status == BREAKER_SLAT_RAISED)
|
||||
msg += "The breaker slat is in a neutral position."
|
||||
. += "The breaker slat is in a neutral position."
|
||||
else
|
||||
msg += "The breaker slat is lowered, and must be raised."
|
||||
|
||||
. += "The breaker slat is lowered, and must be raised."
|
||||
if (LAZYLEN(buckled_mobs))
|
||||
msg += "<br/>"
|
||||
msg += "Someone appears to be strapped in. You can help them unbuckle, or activate the femur breaker."
|
||||
|
||||
to_chat(user, msg)
|
||||
|
||||
return msg
|
||||
. += "Someone appears to be strapped in. You can help them unbuckle, or activate the femur breaker."
|
||||
|
||||
/obj/structure/femur_breaker/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -29,13 +29,12 @@
|
||||
update_cut_status()
|
||||
|
||||
/obj/structure/fence/examine(mob/user)
|
||||
.=..()
|
||||
|
||||
. = ..()
|
||||
switch(hole_size)
|
||||
if(MEDIUM_HOLE)
|
||||
user.show_message("There is a large hole in \the [src].")
|
||||
. += "There is a large hole in \the [src]."
|
||||
if(LARGE_HOLE)
|
||||
user.show_message("\The [src] has been completely cut through.")
|
||||
. += "\The [src] has been completely cut through."
|
||||
|
||||
/obj/structure/fence/end
|
||||
icon_state = "end"
|
||||
|
||||
@@ -182,3 +182,59 @@
|
||||
icon_state = "snowlegion"
|
||||
anchored = TRUE
|
||||
deconstructible = FALSE
|
||||
|
||||
/obj/structure/fluff/big_chain
|
||||
name = "giant chain"
|
||||
desc = "A towering link of chains leading up to the ceiling."
|
||||
icon = 'icons/effects/32x96.dmi'
|
||||
icon_state = "chain"
|
||||
layer = ABOVE_OBJ_LAYER
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
deconstructible = FALSE
|
||||
|
||||
/obj/structure/fluff/railing
|
||||
name = "railing"
|
||||
desc = "Basic railing meant to protect idiots like you from falling."
|
||||
icon = 'icons/obj/fluff.dmi'
|
||||
icon_state = "railing"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
deconstructible = FALSE
|
||||
|
||||
/obj/structure/fluff/railing/corner
|
||||
icon_state = "railing_corner"
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/fluff/beach_towel
|
||||
name = "beach towel"
|
||||
desc = "A towel decorated in various beach-themed designs."
|
||||
icon = 'icons/obj/fluff.dmi'
|
||||
icon_state = "railing"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
deconstructible = FALSE
|
||||
|
||||
/obj/structure/fluff/beach_umbrella
|
||||
name = "beach umbrella"
|
||||
desc = "A fancy umbrella designed to keep the sun off beach-goers."
|
||||
icon = 'icons/obj/fluff.dmi'
|
||||
icon_state = "brella"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
deconstructible = FALSE
|
||||
|
||||
/obj/structure/fluff/beach_umbrella/security
|
||||
icon_state = "hos_brella"
|
||||
|
||||
/obj/structure/fluff/beach_umbrella/science
|
||||
icon_state = "rd_brella"
|
||||
|
||||
/obj/structure/fluff/beach_umbrella/engine
|
||||
icon_state = "ce_brella"
|
||||
|
||||
/obj/structure/fluff/beach_umbrella/cap
|
||||
icon_state = "cap_brella"
|
||||
|
||||
/obj/structure/fluff/beach_umbrella/syndi
|
||||
icon_state = "syndi_brella"
|
||||
|
||||
@@ -153,6 +153,9 @@
|
||||
log_admin("[key_name(new_spawn)] possessed a golem shell enslaved to [key_name(owner)].")
|
||||
if(ishuman(new_spawn))
|
||||
var/mob/living/carbon/human/H = new_spawn
|
||||
if(has_owner)
|
||||
var/datum/species/golem/G = H.dna.species
|
||||
G.owner = owner
|
||||
H.set_cloned_appearance()
|
||||
if(!name)
|
||||
if(has_owner)
|
||||
@@ -323,8 +326,9 @@
|
||||
|
||||
/datum/outfit/hotelstaff
|
||||
name = "Hotel Staff"
|
||||
uniform = /obj/item/clothing/under/assistantformal
|
||||
uniform = /obj/item/clothing/under/telegram
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
head = /obj/item/clothing/head/hotel
|
||||
r_pocket = /obj/item/radio/off
|
||||
back = /obj/item/storage/backpack
|
||||
implants = list(/obj/item/implant/mindshield)
|
||||
@@ -424,7 +428,7 @@
|
||||
implants = list(/obj/item/implant/weapons_auth)
|
||||
id = /obj/item/card/id/syndicate
|
||||
|
||||
/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
H.faction |= ROLE_SYNDICATE
|
||||
|
||||
/obj/effect/mob_spawn/human/syndicate/battlecruiser
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
. = ..()
|
||||
switch(state)
|
||||
if(GIRDER_REINF)
|
||||
to_chat(user, "<span class='notice'>The support struts are <b>screwed</b> in place.</span>")
|
||||
. += "<span class='notice'>The support struts are <b>screwed</b> in place.</span>"
|
||||
if(GIRDER_REINF_STRUTS)
|
||||
to_chat(user, "<span class='notice'>The support struts are <i>unscrewed</i> and the inner <b>grille</b> is intact.</span>")
|
||||
. += "<span class='notice'>The support struts are <i>unscrewed</i> and the inner <b>grille</b> is intact.</span>"
|
||||
if(GIRDER_NORMAL)
|
||||
if(can_displace)
|
||||
to_chat(user, "<span class='notice'>The bolts are <b>wrenched</b> in place.</span>")
|
||||
. += "<span class='notice'>The bolts are <b>wrenched</b> in place.</span>"
|
||||
if(GIRDER_DISPLACED)
|
||||
to_chat(user, "<span class='notice'>The bolts are <i>loosened</i>, but the <b>screws</b> are holding [src] together.</span>")
|
||||
. += "<span class='notice'>The bolts are <i>loosened</i>, but the <b>screws</b> are holding [src] together.</span>"
|
||||
if(GIRDER_DISASSEMBLED)
|
||||
to_chat(user, "<span class='notice'>[src] is disassembled! You probably shouldn't be able to see this examine message.</span>")
|
||||
. += "<span class='notice'>[src] is disassembled! You probably shouldn't be able to see this examine message.</span>"
|
||||
|
||||
/obj/structure/girder/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -37,11 +37,11 @@
|
||||
icon_state = "grille50_[rand(0,3)]"
|
||||
|
||||
/obj/structure/grille/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>It's secured in place with <b>screws</b>. The rods look like they could be <b>cut</b> through.</span>")
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='notice'>The anchoring screws are <i>unscrewed</i>. The rods look like they could be <b>cut</b> through.</span>")
|
||||
. += "<span class='notice'>It's secured in place with <b>screws</b>. The rods look like they could be <b>cut</b> through.</span>"
|
||||
else
|
||||
. += "<span class='notice'>The anchoring screws are <i>unscrewed</i>. The rods look like they could be <b>cut</b> through.</span>"
|
||||
|
||||
/obj/structure/grille/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
switch(the_rcd.mode)
|
||||
|
||||
@@ -34,29 +34,22 @@
|
||||
. = ..()
|
||||
|
||||
/obj/structure/guillotine/examine(mob/user)
|
||||
..()
|
||||
|
||||
var/msg = ""
|
||||
|
||||
msg += "It is [anchored ? "wrenched to the floor." : "unsecured. A wrench should fix that."]<br/>"
|
||||
. = ..()
|
||||
|
||||
. += "It is [anchored ? "wrenched to the floor." : "unsecured. A wrench should fix that."]"
|
||||
if (blade_status == GUILLOTINE_BLADE_RAISED)
|
||||
msg += "The blade is raised, ready to fall, and"
|
||||
var/msg = "The blade is raised, ready to fall, and"
|
||||
|
||||
if (blade_sharpness >= GUILLOTINE_DECAP_MIN_SHARP)
|
||||
msg += " looks sharp enough to decapitate without any resistance."
|
||||
else
|
||||
msg += " doesn't look particularly sharp. Perhaps a whetstone can be used to sharpen it."
|
||||
. += msg
|
||||
else
|
||||
msg += "The blade is hidden inside the stocks."
|
||||
. += "The blade is hidden inside the stocks."
|
||||
|
||||
if (LAZYLEN(buckled_mobs))
|
||||
msg += "<br/>"
|
||||
msg += "Someone appears to be strapped in. You can help them out, or you can harm them by activating the guillotine."
|
||||
|
||||
to_chat(user, msg)
|
||||
|
||||
return msg
|
||||
. += "Someone appears to be strapped in. You can help them out, or you can harm them by activating the guillotine."
|
||||
|
||||
/obj/structure/guillotine/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -9,11 +9,13 @@
|
||||
armor = list("melee" = 0, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20)
|
||||
var/obj/item/holosign_creator/projector
|
||||
|
||||
/obj/structure/holosign/New(loc, source_projector)
|
||||
/obj/structure/holosign/Initialize(mapload, source_projector)
|
||||
. = ..()
|
||||
if(source_projector)
|
||||
projector = source_projector
|
||||
projector.signs += src
|
||||
..()
|
||||
alpha = 0
|
||||
SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it
|
||||
|
||||
/obj/structure/holosign/Destroy()
|
||||
if(projector)
|
||||
@@ -71,10 +73,8 @@
|
||||
desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out."
|
||||
icon_state = "holo_firelock"
|
||||
density = FALSE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
anchored = TRUE
|
||||
CanAtmosPass = ATMOS_PASS_NO
|
||||
layer = ABOVE_MOB_LAYER
|
||||
alpha = 150
|
||||
|
||||
/obj/structure/holosign/barrier/atmos/Initialize()
|
||||
@@ -100,13 +100,12 @@
|
||||
desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines."
|
||||
icon_state = "holo_medical"
|
||||
alpha = 125 //lazy :)
|
||||
layer = ABOVE_MOB_LAYER
|
||||
var/force_allaccess = FALSE
|
||||
var/buzzcd = 0
|
||||
|
||||
/obj/structure/holosign/barrier/medical/examine(mob/user)
|
||||
..()
|
||||
to_chat(user,"<span class='notice'>The biometric scanners are <b>[force_allaccess ? "off" : "on"]</b>.</span>")
|
||||
. = ..()
|
||||
. += "<span class='notice'>The biometric scanners are <b>[force_allaccess ? "off" : "on"]</b>.</span>"
|
||||
|
||||
/obj/structure/holosign/barrier/medical/CanPass(atom/movable/mover, turf/target)
|
||||
icon_state = "holo_medical"
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
/obj/structure/lattice/examine(mob/user)
|
||||
..()
|
||||
deconstruction_hints(user)
|
||||
. += deconstruction_hints(user)
|
||||
|
||||
/obj/structure/lattice/proc/deconstruction_hints(mob/user)
|
||||
to_chat(user, "<span class='notice'>The rods look like they could be <b>cut</b>. There's space for more <i>rods</i> or a <i>tile</i>.</span>")
|
||||
return "<span class='notice'>The rods look like they could be <b>cut</b>. There's space for more <i>rods</i> or a <i>tile</i>.</span>"
|
||||
|
||||
/obj/structure/lattice/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -55,9 +55,9 @@
|
||||
/obj/structure/life_candle/examine(mob/user)
|
||||
. = ..()
|
||||
if(linked_minds.len)
|
||||
to_chat(user, "[src] is active, and linked to [linked_minds.len] souls.")
|
||||
. += "[src] is active, and linked to [linked_minds.len] souls."
|
||||
else
|
||||
to_chat(user, "It is static, still, unmoving.")
|
||||
. += "It is static, still, unmoving."
|
||||
|
||||
/obj/structure/life_candle/process()
|
||||
if(!linked_minds.len)
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
//Loom, turns raw cotton and durathread into their respective fabrics.
|
||||
#define FABRIC_PER_SHEET 4
|
||||
|
||||
|
||||
///This is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
|
||||
/obj/structure/loom
|
||||
name = "loom"
|
||||
desc = "A simple device used to weave cloth and other thread-based fabrics together into usable material."
|
||||
@@ -8,14 +10,35 @@
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/loom/attackby(obj/item/stack/sheet/W, mob/user)
|
||||
if(W.is_fabric && W.amount > 1)
|
||||
user.show_message("<span class='notice'>You start weaving the [W.name] through the loom..</span>", 1)
|
||||
if(W.use_tool(src, user, W.pull_effort))
|
||||
new W.loom_result(drop_location())
|
||||
user.show_message("<span class='notice'>You weave the [W.name] into a workable fabric.</span>", 1)
|
||||
W.amount = (W.amount - 2)
|
||||
if(W.amount < 1)
|
||||
qdel(W)
|
||||
else
|
||||
user.show_message("<span class='notice'>You need a valid fabric and at least 2 of said fabric before using this.</span>", 1)
|
||||
/obj/structure/loom/attackby(obj/item/I, mob/user)
|
||||
if(weave(I, user))
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/structure/loom/wrench_act(mob/living/user, obj/item/I)
|
||||
..()
|
||||
default_unfasten_wrench(user, I, 5)
|
||||
return TRUE
|
||||
|
||||
///Handles the weaving.
|
||||
/obj/structure/loom/proc/weave(obj/item/stack/sheet/S, mob/user)
|
||||
if(!istype(S) || !S.is_fabric)
|
||||
return FALSE
|
||||
if(!anchored)
|
||||
user.show_message("<span class='notice'>The loom needs to be wrenched down.</span>", MSG_VISUAL)
|
||||
return FALSE
|
||||
if(S.amount < FABRIC_PER_SHEET)
|
||||
user.show_message("<span class='notice'>You need at least [FABRIC_PER_SHEET] units of fabric before using this.</span>", 1)
|
||||
return FALSE
|
||||
user.show_message("<span class='notice'>You start weaving \the [S.name] through the loom..</span>", MSG_VISUAL)
|
||||
if(S.use_tool(src, user, S.pull_effort))
|
||||
if(S.amount >= FABRIC_PER_SHEET)
|
||||
new S.loom_result(drop_location())
|
||||
S.use(FABRIC_PER_SHEET)
|
||||
user.show_message("<span class='notice'>You weave \the [S.name] into a workable fabric.</span>", MSG_VISUAL)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/loom/unanchored
|
||||
anchored = FALSE
|
||||
|
||||
#undef FABRIC_PER_SHEET
|
||||
@@ -163,8 +163,8 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
..()
|
||||
|
||||
/obj/structure/bodycontainer/morgue/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it.</span>")
|
||||
. = ..()
|
||||
. += "<span class='notice'>The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it.</span>"
|
||||
|
||||
/obj/structure/bodycontainer/morgue/AltClick(mob/user)
|
||||
..()
|
||||
@@ -192,7 +192,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
icon_state = "morgue4" // Cloneable
|
||||
if(mob_occupant.stat == DEAD && beeper)
|
||||
if(world.time > next_beep)
|
||||
playsound(src, 'sound/weapons/smg_empty_alarm.ogg', 50, 0) //Clone them you blind fucks
|
||||
playsound(src, 'sound/machines/beeping_alarm.ogg', 50, 0) //Clone them you blind fucks
|
||||
next_beep = world.time + beep_cooldown
|
||||
break
|
||||
|
||||
|
||||
@@ -6,18 +6,22 @@
|
||||
armor = list("melee" = 100, "bullet" = 80, "laser" = 80, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 50)
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
CanAtmosPass = ATMOS_PASS_NO
|
||||
|
||||
/obj/structure/plasticflaps/opaque
|
||||
opacity = TRUE
|
||||
|
||||
/obj/structure/plasticflaps/Initialize()
|
||||
. = ..()
|
||||
alpha = 0
|
||||
SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, plane, dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it
|
||||
|
||||
/obj/structure/plasticflaps/examine(mob/user)
|
||||
. = ..()
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>[src] are <b>screwed</b> to the floor.</span>")
|
||||
. += "<span class='notice'>[src] are <b>screwed</b> to the floor.</span>"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] are no longer <i>screwed</i> to the floor, and the flaps can be <b>cut</b> apart.</span>")
|
||||
. += "<span class='notice'>[src] are no longer <i>screwed</i> to the floor, and the flaps can be <b>cut</b> apart.</span>"
|
||||
|
||||
/obj/structure/plasticflaps/screwdriver_act(mob/living/user, obj/item/W)
|
||||
if(..())
|
||||
|
||||
@@ -34,14 +34,14 @@
|
||||
can_rotate = FALSE
|
||||
|
||||
/obj/structure/reflector/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(finished)
|
||||
to_chat(user, "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"].")
|
||||
. += "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"]."
|
||||
if(!admin)
|
||||
if(can_rotate)
|
||||
to_chat(user, "<span class='notice'>Alt-click to adjust its direction.</span>")
|
||||
. += "<span class='notice'>Alt-click to adjust its direction.</span>"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>Use screwdriver to unlock the rotation.</span>")
|
||||
. += "<span class='notice'>Use screwdriver to unlock the rotation.</span>"
|
||||
|
||||
/obj/structure/reflector/proc/setAngle(new_angle)
|
||||
if(can_rotate)
|
||||
|
||||
@@ -131,12 +131,11 @@
|
||||
//Feedback is given in examine because showcases can basically have any sprite assigned to them
|
||||
|
||||
/obj/structure/showcase/examine(mob/user)
|
||||
..()
|
||||
|
||||
. = ..()
|
||||
switch(deconstruction_state)
|
||||
if(SHOWCASE_CONSTRUCTED)
|
||||
to_chat(user, "The showcase is fully constructed.")
|
||||
. += "The showcase is fully constructed."
|
||||
if(SHOWCASE_SCREWDRIVERED)
|
||||
to_chat(user, "The showcase has its screws loosened.")
|
||||
. += "The showcase has its screws loosened."
|
||||
else
|
||||
to_chat(user, "If you see this, something is wrong.")
|
||||
. += "If you see this, something is wrong."
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/structure/spirit_board/examine()
|
||||
desc = "[initial(desc)] The planchette is sitting at \"[planchette]\"."
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/obj/structure/spirit_board/attack_hand(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
canSmoothWith = list(/obj/structure/table, /obj/structure/table/reinforced)
|
||||
|
||||
/obj/structure/table/examine(mob/user)
|
||||
..()
|
||||
deconstruction_hints(user)
|
||||
. = ..()
|
||||
. += deconstruction_hints(user)
|
||||
|
||||
/obj/structure/table/proc/deconstruction_hints(mob/user)
|
||||
to_chat(user, "<span class='notice'>The top is <b>screwed</b> on, but the main <b>bolts</b> are also visible.</span>")
|
||||
return "<span class='notice'>The top is <b>screwed</b> on, but the main <b>bolts</b> are also visible.</span>"
|
||||
|
||||
/obj/structure/table/update_icon()
|
||||
if(smooth)
|
||||
@@ -452,9 +452,8 @@
|
||||
|
||||
/obj/structure/table/reinforced/deconstruction_hints(mob/user)
|
||||
if(deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>The top cover has been <i>welded</i> loose and the main frame's <b>bolts</b> are exposed.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The top cover is firmly <b>welded</b> on.</span>")
|
||||
return "<span class='notice'>The top cover has been <i>welded</i> loose and the main frame's <b>bolts</b> are exposed.</span>"
|
||||
return "<span class='notice'>The top cover is firmly <b>welded</b> on.</span>"
|
||||
|
||||
/obj/structure/table/reinforced/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weldingtool))
|
||||
@@ -582,8 +581,8 @@
|
||||
max_integrity = 20
|
||||
|
||||
/obj/structure/rack/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>")
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
|
||||
/obj/structure/rack/CanPass(atom/movable/mover, turf/target)
|
||||
if(src.density == 0) //Because broken racks -Agouri |TODO: SPRITE!|
|
||||
|
||||
@@ -15,6 +15,15 @@
|
||||
var/flipped_build_type
|
||||
var/base_icon
|
||||
|
||||
/obj/structure/c_transit_tube/proc/can_wrench_in_loc(mob/user)
|
||||
var/turf/source_turf = get_turf(loc)
|
||||
var/existing_tubes = 0
|
||||
for(var/obj/structure/transit_tube/tube in source_turf)
|
||||
existing_tubes++
|
||||
if(existing_tubes >= 2)
|
||||
to_chat(user, "<span class='warning'>You cannot wrench any more transit tubes!</span>")
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/c_transit_tube/ComponentInitialize()
|
||||
. = ..()
|
||||
@@ -32,9 +41,11 @@
|
||||
icon_state = "[base_icon][flipped]"
|
||||
|
||||
/obj/structure/c_transit_tube/wrench_act(mob/living/user, obj/item/I)
|
||||
if(!can_wrench_in_loc(user))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start attaching the [name]...</span>")
|
||||
add_fingerprint(user)
|
||||
if(I.use_tool(src, user, time_to_unwrench, volume=50))
|
||||
if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, .proc/can_wrench_in_loc, user)))
|
||||
to_chat(user, "<span class='notice'>You attach the [name].</span>")
|
||||
var/obj/structure/transit_tube/R = new build_type(loc, dir)
|
||||
transfer_fingerprints_to(R)
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
if(user.mind && user.mind in immune_minds)
|
||||
return
|
||||
if(get_dist(user, src) <= 1)
|
||||
to_chat(user, "<span class='notice'>You reveal [src]!</span>")
|
||||
. += "<span class='notice'>You reveal [src]!</span>"
|
||||
flare()
|
||||
|
||||
/obj/structure/trap/proc/flare()
|
||||
|
||||
@@ -29,21 +29,21 @@
|
||||
rad_flags = RAD_PROTECT_CONTENTS
|
||||
|
||||
/obj/structure/window/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(reinf)
|
||||
if(anchored && state == WINDOW_SCREWED_TO_FRAME)
|
||||
to_chat(user, "<span class='notice'>The window is <b>screwed</b> to the frame.</span>")
|
||||
. += "<span class='notice'>The window is <b>screwed</b> to the frame.</span>"
|
||||
else if(anchored && state == WINDOW_IN_FRAME)
|
||||
to_chat(user, "<span class='notice'>The window is <i>unscrewed</i> but <b>pried</b> into the frame.</span>")
|
||||
. += "<span class='notice'>The window is <i>unscrewed</i> but <b>pried</b> into the frame.</span>"
|
||||
else if(anchored && state == WINDOW_OUT_OF_FRAME)
|
||||
to_chat(user, "<span class='notice'>The window is out of the frame, but could be <i>pried</i> in. It is <b>screwed</b> to the floor.</span>")
|
||||
. += "<span class='notice'>The window is out of the frame, but could be <i>pried</i> in. It is <b>screwed</b> to the floor.</span>"
|
||||
else if(!anchored)
|
||||
to_chat(user, "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>")
|
||||
. += "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>"
|
||||
else
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>The window is <b>screwed</b> to the floor.</span>")
|
||||
. += "<span class='notice'>The window is <b>screwed</b> to the floor.</span>"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>")
|
||||
. += "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>"
|
||||
|
||||
/obj/structure/window/Initialize(mapload, direct)
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user