code folder. 221 files changed wew
This commit is contained in:
@@ -32,13 +32,12 @@
|
||||
if(state != EMPTY_CORE)
|
||||
to_chat(user, "<span class='warning'>The core must be empty to deconstruct it!</span>")
|
||||
return
|
||||
var/obj/item/weldingtool/WT = P
|
||||
if(!WT.isOn())
|
||||
to_chat(user, "<span class='warning'>The welder must be on for this task!</span>")
|
||||
|
||||
if(!P.tool_start_check(user, amount=0))
|
||||
return
|
||||
playsound(loc, WT.usesound, 50, 1)
|
||||
|
||||
to_chat(user, "<span class='notice'>You start to deconstruct the frame...</span>")
|
||||
if(do_after(user, 20*P.toolspeed, target = src) && src && state == EMPTY_CORE && WT && WT.remove_fuel(0, user))
|
||||
if(P.use_tool(src, user, 20, volume=50) && state == EMPTY_CORE)
|
||||
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
@@ -56,13 +55,13 @@
|
||||
return
|
||||
if(CIRCUIT_CORE)
|
||||
if(istype(P, /obj/item/screwdriver))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
|
||||
state = SCREWED_CORE
|
||||
update_icon()
|
||||
return
|
||||
if(istype(P, /obj/item/crowbar))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
|
||||
state = EMPTY_CORE
|
||||
update_icon()
|
||||
@@ -71,7 +70,7 @@
|
||||
return
|
||||
if(SCREWED_CORE)
|
||||
if(istype(P, /obj/item/screwdriver) && circuit)
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You unfasten the circuit board.</span>")
|
||||
state = CIRCUIT_CORE
|
||||
update_icon()
|
||||
@@ -93,7 +92,7 @@
|
||||
if(brain)
|
||||
to_chat(user, "<span class='warning'>Get that [brain.name] out of there first!</span>")
|
||||
else
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the cables.</span>")
|
||||
state = SCREWED_CORE
|
||||
update_icon()
|
||||
@@ -152,7 +151,7 @@
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/crowbar) && brain)
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the brain.</span>")
|
||||
brain.forceMove(loc)
|
||||
brain = null
|
||||
@@ -161,7 +160,7 @@
|
||||
|
||||
if(GLASS_CORE)
|
||||
if(istype(P, /obj/item/crowbar))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the glass panel.</span>")
|
||||
state = CABLED_CORE
|
||||
update_icon()
|
||||
@@ -169,7 +168,7 @@
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/screwdriver))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
|
||||
if(brain)
|
||||
SSticker.mode.remove_antag_for_borging(brain.brainmob.mind)
|
||||
@@ -198,7 +197,7 @@
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/screwdriver))
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
|
||||
state = GLASS_CORE
|
||||
update_icon()
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/obj/structure/bed/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
W.play_tool_sound(src)
|
||||
deconstruct(TRUE)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
/obj/structure/chair/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
W.play_tool_sound(src)
|
||||
deconstruct()
|
||||
else if(istype(W, /obj/item/assembly/shock_kit))
|
||||
if(!user.temporarilyRemoveItemFromInventory(W))
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
var/cutting_tool = /obj/item/weldingtool
|
||||
var/open_sound = 'sound/machines/click.ogg'
|
||||
var/close_sound = 'sound/machines/click.ogg'
|
||||
var/cutting_sound = 'sound/items/welder.ogg'
|
||||
var/material_drop = /obj/item/stack/sheet/metal
|
||||
var/material_drop_amount = 2
|
||||
var/delivery_icon = "deliverycloset" //which icon to use when packagewrapped. null to be unwrappable.
|
||||
@@ -216,19 +215,18 @@
|
||||
if(opened)
|
||||
if(istype(W, cutting_tool))
|
||||
if(istype(W, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0, user))
|
||||
to_chat(user, "<span class='notice'>You begin cutting \the [src] apart...</span>")
|
||||
playsound(loc, cutting_sound, 40, 1)
|
||||
if(do_after(user, 40*WT.toolspeed, 1, target = src))
|
||||
if(!opened || !WT.isOn())
|
||||
return
|
||||
playsound(loc, cutting_sound, 50, 1)
|
||||
user.visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [WT].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
deconstruct(TRUE)
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin cutting \the [src] apart...</span>")
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
if(!opened)
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [W].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
else // for example cardboard box is cut with wirecutters
|
||||
user.visible_message("<span class='notice'>[user] cut apart \the [src].</span>", \
|
||||
"<span class='notice'>You cut \the [src] apart with \the [W].</span>")
|
||||
@@ -237,25 +235,23 @@
|
||||
if(user.transferItemToLoc(W, drop_location())) // so we put in unlit welder too
|
||||
return
|
||||
else if(istype(W, /obj/item/weldingtool) && can_weld_shut)
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(!WT.remove_fuel(0, user))
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin [welded ? "unwelding":"welding"] \the [src]...</span>")
|
||||
playsound(loc, 'sound/items/welder2.ogg', 40, 1)
|
||||
if(do_after(user, 40*WT.toolspeed, 1, target = src))
|
||||
if(opened || !WT.isOn())
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
if(opened)
|
||||
return
|
||||
playsound(loc, WT.usesound, 50, 1)
|
||||
welded = !welded
|
||||
user.visible_message("<span class='notice'>[user] [welded ? "welds shut" : "unweldeds"] \the [src].</span>",
|
||||
"<span class='notice'>You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].</span>",
|
||||
"<span class='notice'>You [welded ? "weld" : "unwelded"] \the [src] with \the [W].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/wrench) && anchorable)
|
||||
if(isinspace() && !anchored)
|
||||
return
|
||||
anchored = !anchored
|
||||
playsound(src.loc, W.usesound, 75, 1)
|
||||
W.play_tool_sound(src, 75)
|
||||
user.visible_message("<span class='notice'>[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.</span>", \
|
||||
"<span class='notice'>You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.</span>", \
|
||||
"<span class='italics'>You hear a ratchet.</span>")
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
can_weld_shut = 0
|
||||
cutting_tool = /obj/item/wirecutters
|
||||
open_sound = "rustle"
|
||||
cutting_sound = 'sound/items/poster_ripped.ogg'
|
||||
material_drop = /obj/item/stack/sheet/cardboard
|
||||
delivery_icon = "deliverybox"
|
||||
anchorable = FALSE
|
||||
@@ -68,6 +67,5 @@
|
||||
move_speed_multiplier = 2
|
||||
cutting_tool = /obj/item/weldingtool
|
||||
open_sound = 'sound/machines/click.ogg'
|
||||
cutting_sound = 'sound/items/welder.ogg'
|
||||
material_drop = /obj/item/stack/sheet/plasteel
|
||||
#undef SNAKE_SPAM_TICKS
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
icon_door = "black"
|
||||
|
||||
/obj/structure/closet/wardrobe/chaplain_black/PopulateContents()
|
||||
new /obj/item/clothing/accessory/pocketprotector/cosmetology(src)
|
||||
new /obj/item/clothing/under/rank/chaplain(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/suit/nun(src)
|
||||
@@ -177,6 +178,7 @@
|
||||
icon_door = "atmos_wardrobe"
|
||||
|
||||
/obj/structure/closet/wardrobe/atmospherics_yellow/PopulateContents()
|
||||
new /obj/item/clothing/accessory/pocketprotector(src)
|
||||
new /obj/item/storage/backpack/duffelbag/engineering(src)
|
||||
new /obj/item/storage/backpack/satchel/eng(src)
|
||||
new /obj/item/storage/backpack/industrial(src)
|
||||
@@ -193,6 +195,7 @@
|
||||
icon_door = "yellow"
|
||||
|
||||
/obj/structure/closet/wardrobe/engineering_yellow/PopulateContents()
|
||||
new /obj/item/clothing/accessory/pocketprotector(src)
|
||||
new /obj/item/storage/backpack/duffelbag/engineering(src)
|
||||
new /obj/item/storage/backpack/industrial(src)
|
||||
new /obj/item/storage/backpack/satchel/eng(src)
|
||||
@@ -211,6 +214,7 @@
|
||||
name = "medical doctor's wardrobe"
|
||||
|
||||
/obj/structure/closet/wardrobe/white/medical/PopulateContents()
|
||||
new /obj/item/clothing/accessory/pocketprotector(src)
|
||||
new /obj/item/storage/backpack/duffelbag/med(src)
|
||||
new /obj/item/storage/backpack/medic(src)
|
||||
new /obj/item/storage/backpack/satchel/med(src)
|
||||
@@ -318,6 +322,7 @@
|
||||
icon_door = "white"
|
||||
|
||||
/obj/structure/closet/wardrobe/science_white/PopulateContents()
|
||||
new /obj/item/clothing/accessory/pocketprotector(src)
|
||||
new /obj/item/storage/backpack/science(src)
|
||||
new /obj/item/storage/backpack/science(src)
|
||||
new /obj/item/storage/backpack/satchel/tox(src)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
do_animate()
|
||||
else if(istype(W, /obj/item/wrench))
|
||||
anchored = !anchored
|
||||
playsound(src.loc, W.usesound, 75, 1)
|
||||
W.play_tool_sound(src, 75)
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -96,13 +96,13 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||
else if(istype(W, /obj/item/weldingtool) && user.a_intent == INTENT_HELP && !broken)
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(obj_integrity < max_integrity && WT.remove_fuel(5, user))
|
||||
if(obj_integrity < max_integrity)
|
||||
if(!W.tool_start_check(user, amount=5))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src].</span>")
|
||||
playsound(loc, WT.usesound, 40, 1)
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, amount=5, volume=50))
|
||||
obj_integrity = max_integrity
|
||||
playsound(loc, 'sound/items/welder2.ogg', 50, 1)
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
else
|
||||
@@ -117,7 +117,7 @@
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You start to [open ? "close":"open"] [src].</span>")
|
||||
if(do_after(user, 20*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 20))
|
||||
to_chat(user, "<span class='notice'>You [open ? "close":"open"] [src].</span>")
|
||||
toggle_lock(user)
|
||||
else if(open && !showpiece)
|
||||
@@ -177,15 +177,15 @@
|
||||
/obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/wrench)) //The player can only deconstruct the wooden frame
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 30*I.toolspeed, target = src))
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 30))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
new /obj/item/stack/sheet/mineral/wood(get_turf(src), 5)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(I, /obj/item/electronics/airlock))
|
||||
to_chat(user, "<span class='notice'>You start installing the electronics into [src]...</span>")
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
I.play_tool_sound(src)
|
||||
if(do_after(user, 30, target = src) && user.transferItemToLoc(I,src))
|
||||
electronics = I
|
||||
to_chat(user, "<span class='notice'>You install the airlock electronics.</span>")
|
||||
|
||||
@@ -59,40 +59,34 @@
|
||||
created_name = t
|
||||
|
||||
else if(istype(W, /obj/item/weldingtool) && (mineral || glass || !anchored ))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0,user))
|
||||
playsound(src, 'sound/items/welder2.ogg', 50, 1)
|
||||
if(mineral)
|
||||
var/obj/item/stack/sheet/mineral/mineral_path = text2path("/obj/item/stack/sheet/mineral/[mineral]")
|
||||
user.visible_message("[user] welds the [mineral] plating off the airlock assembly.", "You start to weld the [mineral] plating off the airlock assembly...")
|
||||
if(do_after(user, 40 * WT.toolspeed, target = src))
|
||||
if(!src || !WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You weld the [mineral] plating off.</span>")
|
||||
new mineral_path(loc, 2)
|
||||
var/obj/structure/door_assembly/PA = new previous_assembly(loc)
|
||||
transfer_assembly_vars(src, PA)
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
else if(glass)
|
||||
user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly...")
|
||||
if(do_after(user, 40 * WT.toolspeed, target = src))
|
||||
if(!src || !WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You weld the glass panel out.</span>")
|
||||
if(heat_proof_finished)
|
||||
new /obj/item/stack/sheet/rglass(get_turf(src))
|
||||
heat_proof_finished = 0
|
||||
else
|
||||
new /obj/item/stack/sheet/glass(get_turf(src))
|
||||
glass = 0
|
||||
else if(!anchored)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the airlock assembly.</span>", \
|
||||
"You start to disassemble the airlock assembly...")
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You disassemble the airlock assembly.</span>")
|
||||
deconstruct(TRUE)
|
||||
if(mineral)
|
||||
var/obj/item/stack/sheet/mineral/mineral_path = text2path("/obj/item/stack/sheet/mineral/[mineral]")
|
||||
user.visible_message("[user] welds the [mineral] plating off the airlock assembly.", "You start to weld the [mineral] plating off the airlock assembly...")
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You weld the [mineral] plating off.</span>")
|
||||
new mineral_path(loc, 2)
|
||||
var/obj/structure/door_assembly/PA = new previous_assembly(loc)
|
||||
transfer_assembly_vars(src, PA)
|
||||
|
||||
else if(glass)
|
||||
user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly...")
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You weld the glass panel out.</span>")
|
||||
if(heat_proof_finished)
|
||||
new /obj/item/stack/sheet/rglass(get_turf(src))
|
||||
heat_proof_finished = 0
|
||||
else
|
||||
new /obj/item/stack/sheet/glass(get_turf(src))
|
||||
glass = 0
|
||||
else if(!anchored)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the airlock assembly.</span>", \
|
||||
"You start to disassemble the airlock assembly...")
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You disassemble the airlock assembly.</span>")
|
||||
deconstruct(TRUE)
|
||||
|
||||
else if(istype(W, /obj/item/wrench))
|
||||
if(!anchored )
|
||||
@@ -103,12 +97,11 @@
|
||||
break
|
||||
|
||||
if(door_check)
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] secures the airlock assembly to the floor.", \
|
||||
"<span class='notice'>You start to secure the airlock assembly to the floor...</span>", \
|
||||
"<span class='italics'>You hear wrenching.</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You secure the airlock assembly.</span>")
|
||||
@@ -118,38 +111,34 @@
|
||||
to_chat(user, "There is another door here!")
|
||||
|
||||
else
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] unsecures the airlock assembly from the floor.", \
|
||||
"<span class='notice'>You start to unsecure the airlock assembly from the floor...</span>", \
|
||||
"<span class='italics'>You hear wrenching.</span>")
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!anchored )
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(!anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You unsecure the airlock assembly.</span>")
|
||||
name = "airlock assembly"
|
||||
anchored = FALSE
|
||||
|
||||
else if(istype(W, /obj/item/stack/cable_coil) && state == AIRLOCK_ASSEMBLY_NEEDS_WIRES && anchored )
|
||||
var/obj/item/stack/cable_coil/C = W
|
||||
if (C.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need one length of cable to wire the airlock assembly!</span>")
|
||||
if(!W.tool_start_check(user, amount=1))
|
||||
return
|
||||
|
||||
user.visible_message("[user] wires the airlock assembly.", \
|
||||
"<span class='notice'>You start to wire the airlock assembly...</span>")
|
||||
if(do_after(user, 40, target = src))
|
||||
if(C.get_amount() < 1 || state != AIRLOCK_ASSEMBLY_NEEDS_WIRES)
|
||||
if(W.use_tool(src, user, 40, amount=1))
|
||||
if(state != AIRLOCK_ASSEMBLY_NEEDS_WIRES)
|
||||
return
|
||||
C.use(1)
|
||||
state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS
|
||||
to_chat(user, "<span class='notice'>You wire the airlock assembly.</span>")
|
||||
name = "wired airlock assembly"
|
||||
|
||||
else if(istype(W, /obj/item/wirecutters) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] cuts the wires from the airlock assembly.", \
|
||||
"<span class='notice'>You start to cut the wires from the airlock assembly...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You cut the wires from the airlock assembly.</span>")
|
||||
@@ -158,7 +147,7 @@
|
||||
name = "secured airlock assembly"
|
||||
|
||||
else if(istype(W, /obj/item/electronics/airlock) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
W.play_tool_sound(src, 100)
|
||||
user.visible_message("[user] installs the electronics into the airlock assembly.", \
|
||||
"<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
if(do_after(user, 40, target = src))
|
||||
@@ -174,11 +163,10 @@
|
||||
|
||||
|
||||
else if(istype(W, /obj/item/crowbar) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER )
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] removes the electronics from the airlock assembly.", \
|
||||
"<span class='notice'>You start to remove electronics from the airlock assembly...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You remove the airlock electronics.</span>")
|
||||
@@ -237,11 +225,10 @@
|
||||
to_chat(user, "<span class='warning'>You cannot add [G] to [src]!</span>")
|
||||
|
||||
else if(istype(W, /obj/item/screwdriver) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER )
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
user.visible_message("[user] finishes the airlock.", \
|
||||
"<span class='notice'>You start finishing the airlock...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(loc && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
|
||||
to_chat(user, "<span class='notice'>You finish the airlock.</span>")
|
||||
var/obj/machinery/door/airlock/door
|
||||
|
||||
@@ -6,18 +6,17 @@
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/dresser/attackby(obj/item/P, mob/user, params)
|
||||
if(istype(P, /obj/item/wrench))
|
||||
/obj/structure/dresser/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/wrench))
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
playsound(src, P.usesound, 50, 1)
|
||||
if(do_after(user, 20, target = src))
|
||||
if(I.use_tool(src, user, 20, volume=50))
|
||||
to_chat(user, "<span class='notice'>You successfully [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
anchored = !anchored
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/dresser/deconstruct(disassembled = TRUE)
|
||||
new /obj/item/stack/sheet/mineral/wood (get_turf(src), 10)
|
||||
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/dresser/attack_hand(mob/user)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/obj/structure/chair/e_chair/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench))
|
||||
var/obj/structure/chair/C = new /obj/structure/chair(loc)
|
||||
playsound(loc, W.usesound, 50, 1)
|
||||
W.play_tool_sound(src)
|
||||
C.setDir(dir)
|
||||
part.forceMove(loc)
|
||||
part.master = null
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/wrench) && !stored_extinguisher)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring [name]...</span>")
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 60*I.toolspeed, target = src))
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 60))
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You unsecure [name].</span>")
|
||||
deconstruct(TRUE)
|
||||
|
||||
@@ -109,15 +109,11 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't reach, close it first!</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0,user))
|
||||
else if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
if(W.use_tool(src, user, 0, volume=50))
|
||||
dismantle(user, TRUE)
|
||||
else if(istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
dismantle(user, TRUE)
|
||||
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
|
||||
var/obj/item/pickaxe/drill/jackhammer/D = W
|
||||
D.playDigSound()
|
||||
W.play_tool_sound(src)
|
||||
dismantle(user, TRUE)
|
||||
else
|
||||
return ..()
|
||||
@@ -125,7 +121,7 @@
|
||||
/obj/structure/falsewall/proc/dismantle(mob/user, disassembled=TRUE, obj/item/tool = null)
|
||||
user.visible_message("[user] dismantles the false wall.", "<span class='notice'>You dismantle the false wall.</span>")
|
||||
if(tool)
|
||||
playsound(src, tool.usesound, 100, 1)
|
||||
tool.play_tool_sound(src, 100)
|
||||
else
|
||||
playsound(src, 'sound/items/welder.ogg', 100, 1)
|
||||
deconstruct(disassembled)
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
if(iscyborg(user) || istype(I, /obj/item/device/multitool))
|
||||
toggle_lock(user)
|
||||
else if(istype(I, /obj/item/weldingtool) && user.a_intent == INTENT_HELP && !broken)
|
||||
var/obj/item/weldingtool/WT = I
|
||||
if(obj_integrity < max_integrity && WT.remove_fuel(2, user))
|
||||
if(obj_integrity < max_integrity)
|
||||
if(!I.tool_start_check(user, amount=2))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src].</span>")
|
||||
playsound(loc, WT.usesound, 40, 1)
|
||||
if(do_after(user, 40*I.toolspeed, target = src))
|
||||
if(I.use_tool(src, user, 40, volume=50, amount=2))
|
||||
obj_integrity = max_integrity
|
||||
playsound(loc, 'sound/items/welder2.ogg', 50, 1)
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
else
|
||||
|
||||
@@ -13,13 +13,12 @@
|
||||
/obj/structure/fluff/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/wrench) && deconstructible)
|
||||
user.visible_message("<span class='notice'>[user] starts disassembling [src]...</span>", "<span class='notice'>You start disassembling [src]...</span>")
|
||||
playsound(user, I.usesound, 50, 1)
|
||||
if(!do_after(user, 50, target = src))
|
||||
return 0
|
||||
user.visible_message("<span class='notice'>[user] disassembles [src]!</span>", "<span class='notice'>You break down [src] into scrap metal.</span>")
|
||||
playsound(user, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
new/obj/item/stack/sheet/metal(get_turf(src))
|
||||
qdel(src)
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 50))
|
||||
user.visible_message("<span class='notice'>[user] disassembles [src]!</span>", "<span class='notice'>You break down [src] into scrap metal.</span>")
|
||||
playsound(user, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
new/obj/item/stack/sheet/metal(drop_location())
|
||||
qdel(src)
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -34,18 +34,16 @@
|
||||
|
||||
if(istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
to_chat(user, "<span class='notice'>You start slicing apart the girder...</span>")
|
||||
playsound(src, 'sound/items/welder.ogg', 100, 1)
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You slice apart the girder.</span>")
|
||||
var/obj/item/stack/sheet/metal/M = new (loc, 2)
|
||||
M.add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
|
||||
var/obj/item/pickaxe/drill/jackhammer/D = W
|
||||
to_chat(user, "<span class='notice'>You smash through the girder!</span>")
|
||||
new /obj/item/stack/sheet/metal(get_turf(src))
|
||||
D.playDigSound()
|
||||
W.play_tool_sound(src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -68,7 +66,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start building a reinforced false wall...</span>")
|
||||
if(do_after(user, 20, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 2)
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
@@ -80,8 +78,8 @@
|
||||
to_chat(user, "<span class='warning'>You need at least five rods to add plating!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding plating...</span>")
|
||||
if (do_after(user, 40, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 5)
|
||||
if(do_after(user, 40, target = src))
|
||||
if(S.get_amount() < 5)
|
||||
return
|
||||
S.use(5)
|
||||
to_chat(user, "<span class='notice'>You add the plating.</span>")
|
||||
@@ -102,7 +100,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start building a false wall...</span>")
|
||||
if(do_after(user, 20, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 2)
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
@@ -115,7 +113,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding plating...</span>")
|
||||
if (do_after(user, 40, target = src))
|
||||
if(loc == null || S.get_amount() < 2)
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You add the plating.</span>")
|
||||
@@ -132,7 +130,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start building a reinforced false wall...</span>")
|
||||
if(do_after(user, 20, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 2)
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a reinforced false wall. Push on it to open or close the passage.</span>")
|
||||
@@ -145,7 +143,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start finalizing the reinforced wall...</span>")
|
||||
if(do_after(user, 50, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 1)
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
S.use(1)
|
||||
to_chat(user, "<span class='notice'>You fully reinforce the wall.</span>")
|
||||
@@ -158,8 +156,8 @@
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start reinforcing the girder...</span>")
|
||||
if (do_after(user, 60, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 1)
|
||||
if(do_after(user, 60, target = src))
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
S.use(1)
|
||||
to_chat(user, "<span class='notice'>You reinforce the girder.</span>")
|
||||
@@ -175,7 +173,7 @@
|
||||
to_chat(user, "<span class='warning'>You need at least two sheets to create a false wall!</span>")
|
||||
return
|
||||
if(do_after(user, 20, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 2)
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
@@ -189,7 +187,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding plating...</span>")
|
||||
if (do_after(user, 40, target = src))
|
||||
if(!src.loc || !S || S.get_amount() < 2)
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You add the plating.</span>")
|
||||
@@ -214,11 +212,10 @@
|
||||
/obj/structure/girder/screwdriver_act(mob/user, obj/item/tool)
|
||||
. = FALSE
|
||||
if(state == GIRDER_DISPLACED)
|
||||
playsound(src, tool.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the girder.</span>",
|
||||
"<span class='notice'>You start to disassemble the girder...</span>",
|
||||
"You hear clanking and banging noises.")
|
||||
if(do_after(user, 40 * tool.toolspeed, target = src))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
if(state != GIRDER_DISPLACED)
|
||||
return
|
||||
state = GIRDER_DISASSEMBLED
|
||||
@@ -226,65 +223,60 @@
|
||||
var/obj/item/stack/sheet/metal/M = new (loc, 2)
|
||||
M.add_fingerprint(user)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
else if(state == GIRDER_REINF)
|
||||
playsound(src, tool.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring support struts...</span>")
|
||||
if(do_after(user, 40 * tool.toolspeed, target = src))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
if(state != GIRDER_REINF)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You unsecure the support struts.</span>")
|
||||
state = GIRDER_REINF_STRUTS
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
else if(state == GIRDER_REINF_STRUTS)
|
||||
playsound(src, tool.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>You start securing support struts...</span>")
|
||||
if(do_after(user, 40 * tool.toolspeed, target = src))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
if(state != GIRDER_REINF_STRUTS)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You secure the support struts.</span>")
|
||||
state = GIRDER_REINF
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
// Wirecutter behavior for girders
|
||||
/obj/structure/girder/wirecutter_act(mob/user, obj/item/tool)
|
||||
. = FALSE
|
||||
if(state == GIRDER_REINF_STRUTS)
|
||||
playsound(src.loc, tool.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>You start removing the inner grille...</span>")
|
||||
if(do_after(user, 40 * tool.toolspeed, target = src))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You remove the inner grille.</span>")
|
||||
new /obj/item/stack/sheet/plasteel(get_turf(src))
|
||||
var/obj/structure/girder/G = new (loc)
|
||||
transfer_fingerprints_to(G)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/girder/wrench_act(mob/user, obj/item/tool)
|
||||
. = FALSE
|
||||
if(state == GIRDER_DISPLACED)
|
||||
if(!isfloorturf(loc))
|
||||
to_chat(user, "<span class='warning'>A floor must be present to secure the girder!</span>")
|
||||
return
|
||||
playsound(src, tool.usesound, 100, 1)
|
||||
|
||||
to_chat(user, "<span class='notice'>You start securing the girder...</span>")
|
||||
if(do_after(user, 40 * tool.toolspeed, target = src))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You secure the girder.</span>")
|
||||
var/obj/structure/girder/G = new (loc)
|
||||
transfer_fingerprints_to(G)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return TRUE
|
||||
else if(state == GIRDER_NORMAL && can_displace)
|
||||
playsound(src, tool.usesound, 100, 1)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring the girder...</span>")
|
||||
if(do_after(user, 40 * tool.toolspeed, target = src))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You unsecure the girder.</span>")
|
||||
var/obj/structure/girder/displaced/D = new (loc)
|
||||
transfer_fingerprints_to(D)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/girder/CanPass(atom/movable/mover, turf/target)
|
||||
if(istype(mover) && (mover.pass_flags & PASSGRILLE))
|
||||
@@ -348,41 +340,25 @@
|
||||
add_fingerprint(user)
|
||||
if(istype(W, /obj/item/melee/cultblade/dagger) && iscultist(user)) //Cultists can demolish cult girders instantly with their tomes
|
||||
user.visible_message("<span class='warning'>[user] strikes [src] with [W]!</span>", "<span class='notice'>You demolish [src].</span>")
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 1
|
||||
new /obj/item/stack/sheet/runed_metal(drop_location(), 1)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0,user))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>You start slicing apart the girder...</span>")
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if( !WT.isOn() )
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You slice apart the girder.</span>")
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 1
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
else if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
to_chat(user, "<span class='notice'>You start slicing apart the girder...</span>")
|
||||
playsound(src, 'sound/items/welder.ogg', 100, 1)
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You slice apart the girder.</span>")
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 1
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 1)
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
|
||||
var/obj/item/pickaxe/drill/jackhammer/D = W
|
||||
to_chat(user, "<span class='notice'>Your jackhammer smashes through the girder!</span>")
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(get_turf(src))
|
||||
R.amount = 2
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 2)
|
||||
transfer_fingerprints_to(R)
|
||||
D.playDigSound()
|
||||
W.play_tool_sound(src)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/stack/sheet/runed_metal))
|
||||
@@ -392,7 +368,7 @@
|
||||
return 0
|
||||
user.visible_message("<span class='notice'>[user] begins laying runed metal on [src]...</span>", "<span class='notice'>You begin constructing a runed wall...</span>")
|
||||
if(do_after(user, 50, target = src))
|
||||
if(R.get_amount() < 1 || !R)
|
||||
if(R.get_amount() < 1)
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] plates [src] with runed metal.</span>", "<span class='notice'>You construct a runed wall.</span>")
|
||||
R.use(1)
|
||||
|
||||
@@ -137,11 +137,11 @@
|
||||
add_fingerprint(user)
|
||||
if(istype(W, /obj/item/wirecutters))
|
||||
if(!shock(user, 100))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
W.play_tool_sound(src, 100)
|
||||
deconstruct()
|
||||
else if((istype(W, /obj/item/screwdriver)) && (isturf(loc) || anchored))
|
||||
if(!shock(user, 90))
|
||||
playsound(src, W.usesound, 100, 1)
|
||||
W.play_tool_sound(src, 100)
|
||||
anchored = !anchored
|
||||
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] [src].</span>", \
|
||||
"<span class='notice'>You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.</span>")
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
mybag.attackby(I, user)
|
||||
else if(istype(I, /obj/item/crowbar))
|
||||
user.visible_message("[user] begins to empty the contents of [src].", "<span class='notice'>You begin to empty the contents of [src]...</span>")
|
||||
if(do_after(user, 30*I.toolspeed, target = src))
|
||||
if(I.use_tool(src, user, 30))
|
||||
to_chat(usr, "<span class='notice'>You empty the contents of [src]'s bucket onto the floor.</span>")
|
||||
reagents.reaction(src.loc)
|
||||
src.reagents.clear_reagents()
|
||||
|
||||
@@ -23,18 +23,13 @@
|
||||
transfer_fingerprints_to(F)
|
||||
qdel(src)
|
||||
else if(istype(I, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = I
|
||||
if(!WT.remove_fuel(0, user))
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You begin cutting \the [src] apart...</span>")
|
||||
playsound(src.loc, WT.usesound, 40, 1)
|
||||
if(do_after(user, 40*WT.toolspeed, 1, target = src))
|
||||
if(!WT.isOn())
|
||||
return
|
||||
playsound(src.loc, WT.usesound, 50, 1)
|
||||
if(I.use_tool(src, user, 50, volume=50))
|
||||
visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [WT].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
"<span class='notice'>You cut \the [src] apart with \the [I].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
new /obj/item/stack/sheet/metal(src.loc, 4)
|
||||
qdel(src)
|
||||
return
|
||||
@@ -56,18 +51,15 @@
|
||||
/obj/structure/kitchenspike/attack_paw(mob/user)
|
||||
return src.attack_hand(usr)
|
||||
|
||||
/obj/structure/kitchenspike/crowbar_act(mob/living/user, obj/item/I)
|
||||
if(has_buckled_mobs())
|
||||
to_chat(user, "<span class='notice'>You can't do that while something's on the spike!</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/structure/kitchenspike/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/crowbar))
|
||||
if(!has_buckled_mobs())
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
to_chat(user, "<span class='notice'>You pry the spikes out of the frame.</span>")
|
||||
deconstruct(TRUE)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You can't do that while something's on the spike!</span>")
|
||||
else
|
||||
return ..()
|
||||
if(I.use_tool(src, user, 20, volume=100))
|
||||
to_chat(user, "<span class='notice'>You pry the spikes out of the frame.</span>")
|
||||
deconstruct(TRUE)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/kitchenspike/attack_hand(mob/user)
|
||||
if(VIABLE_MOB_CHECK(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs())
|
||||
|
||||
@@ -59,23 +59,24 @@
|
||||
new /obj/item/shard( src.loc )
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/mirror/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/weldingtool) && user.a_intent != INTENT_HARM)
|
||||
var/obj/item/weldingtool/WT = I
|
||||
if(broken)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(WT.remove_fuel(0, user))
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
playsound(src, 'sound/items/welder.ogg', 100, 1)
|
||||
if(do_after(user, 10*I.toolspeed, target = src))
|
||||
if(!user || !WT || !WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
broken = 0
|
||||
icon_state = initial(icon_state)
|
||||
desc = initial(desc)
|
||||
else
|
||||
return ..()
|
||||
/obj/structure/mirror/welder_act(mob/living/user, obj/item/I)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return FALSE
|
||||
|
||||
if(!broken)
|
||||
return TRUE
|
||||
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
if(I.use_tool(src, user, 10, volume=50))
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
broken = 0
|
||||
icon_state = initial(icon_state)
|
||||
desc = initial(desc)
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/structure/mirror/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
||||
switch(damage_type)
|
||||
|
||||
@@ -359,4 +359,4 @@ GLOBAL_LIST_EMPTY(crematoriums)
|
||||
. = !density
|
||||
if(ismovableatom(caller))
|
||||
var/atom/movable/mover = caller
|
||||
. = . || (mover.pass_flags & PASSTABLE)
|
||||
. = . || (mover.pass_flags & PASSTABLE)
|
||||
|
||||
@@ -370,25 +370,6 @@
|
||||
user.set_machine(src)
|
||||
song.interact(user)
|
||||
|
||||
/obj/structure/piano/attackby(obj/item/O, mob/user, params)
|
||||
if (istype(O, /obj/item/wrench))
|
||||
if (!anchored && !isinspace())
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'> You begin to tighten \the [src] to the floor...</span>")
|
||||
if (do_after(user, 20*O.toolspeed, target = src))
|
||||
user.visible_message( \
|
||||
"[user] tightens \the [src]'s casters.", \
|
||||
"<span class='notice'>You tighten \the [src]'s casters. Now it can be played again.</span>", \
|
||||
"<span class='italics'>You hear ratchet.</span>")
|
||||
anchored = TRUE
|
||||
else if(anchored)
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'> You begin to loosen \the [src]'s casters...</span>")
|
||||
if (do_after(user, 40*O.toolspeed, target = src))
|
||||
user.visible_message( \
|
||||
"[user] loosens \the [src]'s casters.", \
|
||||
"<span class='notice'>You loosen \the [src]. Now it can be pulled somewhere else.</span>", \
|
||||
"<span class='italics'>You hear ratchet.</span>")
|
||||
anchored = FALSE
|
||||
else
|
||||
return ..()
|
||||
/obj/structure/piano/wrench_act(mob/living/user, obj/item/I)
|
||||
default_unfasten_wrench(user, I, 40)
|
||||
return TRUE
|
||||
|
||||
@@ -21,18 +21,16 @@
|
||||
add_fingerprint(user)
|
||||
if(istype(W, /obj/item/screwdriver))
|
||||
if(state == PLASTIC_FLAPS_NORMAL)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] unscrews [src] from the floor.</span>", "<span class='notice'>You start to unscrew [src] from the floor...</span>", "You hear rustling noises.")
|
||||
if(do_after(user, 100*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 100, volume=100))
|
||||
if(state != PLASTIC_FLAPS_NORMAL)
|
||||
return
|
||||
state = PLASTIC_FLAPS_DETACHED
|
||||
anchored = FALSE
|
||||
to_chat(user, "<span class='notice'>You unscrew [src] from the floor.</span>")
|
||||
else if(state == PLASTIC_FLAPS_DETACHED)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] screws [src] to the floor.</span>", "<span class='notice'>You start to screw [src] to the floor...</span>", "You hear rustling noises.")
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != PLASTIC_FLAPS_DETACHED)
|
||||
return
|
||||
state = PLASTIC_FLAPS_NORMAL
|
||||
@@ -40,9 +38,8 @@
|
||||
to_chat(user, "<span class='notice'>You screw [src] from the floor.</span>")
|
||||
else if(istype(W, /obj/item/wirecutters))
|
||||
if(state == PLASTIC_FLAPS_DETACHED)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] cuts apart [src].</span>", "<span class='notice'>You start to cut apart [src].</span>", "You hear cutting.")
|
||||
if(do_after(user, 50*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 50, volume=100))
|
||||
if(state != PLASTIC_FLAPS_DETACHED)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You cut apart [src].</span>")
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
if(istype(W, /obj/item/screwdriver))
|
||||
can_rotate = !can_rotate
|
||||
to_chat(user, "<span class='notice'>You [can_rotate ? "unlock" : "lock"] [src]'s rotation.</span>")
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
W.play_tool_sound(src)
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/wrench))
|
||||
@@ -89,47 +89,46 @@
|
||||
to_chat(user, "<span class='warning'>Unweld [src] from the floor first!</span>")
|
||||
return
|
||||
user.visible_message("[user] starts to dismantle [src].", "<span class='notice'>You start to dismantle [src]...</span>")
|
||||
if(do_after(user, 80*W.toolspeed, target = src))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
if(W.use_tool(src, user, 80, volume=50))
|
||||
to_chat(user, "<span class='notice'>You dismantle [src].</span>")
|
||||
new framebuildstacktype(drop_location(), framebuildstackamount)
|
||||
if(buildstackamount)
|
||||
new buildstacktype(drop_location(), buildstackamount)
|
||||
qdel(src)
|
||||
else if(istype(W, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
|
||||
if(obj_integrity < max_integrity)
|
||||
if(WT.remove_fuel(0,user))
|
||||
user.visible_message("[user] starts to repair [src].",
|
||||
"<span class='notice'>You begin repairing [src]...</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
playsound(src, W.usesound, 40, 1)
|
||||
if(do_after(user,40*WT.toolspeed, target = src))
|
||||
obj_integrity = max_integrity
|
||||
user.visible_message("[user] has repaired [src].", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("[user] starts to repair [src].",
|
||||
"<span class='notice'>You begin repairing [src]...</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
if(W.use_tool(src, user, 40, volume=40))
|
||||
obj_integrity = max_integrity
|
||||
user.visible_message("[user] has repaired [src].", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
|
||||
else if(!anchored)
|
||||
if (WT.remove_fuel(0,user))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
user.visible_message("[user] starts to weld [src] to the floor.",
|
||||
"<span class='notice'>You start to weld [src] to the floor...</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
if (do_after(user,20*W.toolspeed, target = src))
|
||||
if(!WT.isOn())
|
||||
return
|
||||
anchored = TRUE
|
||||
to_chat(user, "<span class='notice'>You weld [src] to the floor.</span>")
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("[user] starts to weld [src] to the floor.",
|
||||
"<span class='notice'>You start to weld [src] to the floor...</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
if (W.use_tool(src, user, 20, volume=50))
|
||||
anchored = TRUE
|
||||
to_chat(user, "<span class='notice'>You weld [src] to the floor.</span>")
|
||||
else
|
||||
if (WT.remove_fuel(0,user))
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
user.visible_message("[user] starts to cut [src] free from the floor.", "<span class='notice'>You start to cut [src] free from the floor...</span>", "<span class='italics'>You hear welding.</span>")
|
||||
if (do_after(user,20*W.toolspeed, target = src))
|
||||
if(!WT.isOn())
|
||||
return
|
||||
anchored = FALSE
|
||||
to_chat(user, "<span class='notice'>You cut [src] free from the floor.</span>")
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("[user] starts to cut [src] free from the floor.",
|
||||
"<span class='notice'>You start to cut [src] free from the floor...</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
if (W.use_tool(src, user, 20, volume=50))
|
||||
anchored = FALSE
|
||||
to_chat(user, "<span class='notice'>You cut [src] free from the floor.</span>")
|
||||
|
||||
//Finishing the frame
|
||||
else if(istype(W, /obj/item/stack/sheet))
|
||||
if(finished)
|
||||
|
||||
@@ -112,18 +112,17 @@
|
||||
if(istype(W, /obj/item/screwdriver) && !anchored)
|
||||
if(deconstruction_state == SHOWCASE_SCREWDRIVERED)
|
||||
to_chat(user, "<span class='notice'>You screw the screws back into the showcase.</span>")
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
W.play_tool_sound(src, 100)
|
||||
deconstruction_state = SHOWCASE_CONSTRUCTED
|
||||
else if (deconstruction_state == SHOWCASE_CONSTRUCTED)
|
||||
to_chat(user, "<span class='notice'>You unscrew the screws.</span>")
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
W.play_tool_sound(src, 100)
|
||||
deconstruction_state = SHOWCASE_SCREWDRIVERED
|
||||
|
||||
if(istype(W, /obj/item/crowbar) && deconstruction_state == SHOWCASE_SCREWDRIVERED)
|
||||
if(do_after(user, 20*W.toolspeed, target = src))
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
if(W.use_tool(src, user, 20, volume=100))
|
||||
to_chat(user, "<span class='notice'>You start to crowbar the showcase apart...</span>")
|
||||
new /obj/item/stack/sheet/metal (get_turf(src), 4)
|
||||
new /obj/item/stack/sheet/metal(drop_location(), 4)
|
||||
qdel(src)
|
||||
|
||||
if(deconstruction_state == SHOWCASE_CONSTRUCTED && default_unfasten_wrench(user, W))
|
||||
|
||||
@@ -27,21 +27,21 @@
|
||||
if(BURN)
|
||||
playsound(loc, 'sound/items/welder.ogg', 80, 1)
|
||||
|
||||
/obj/structure/sign/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/wrench) && buildable_sign)
|
||||
/obj/structure/sign/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/wrench) && buildable_sign)
|
||||
user.visible_message("<span class='notice'>[user] starts removing [src]...</span>", \
|
||||
"<span class='notice'>You start unfastening [src].</span>")
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
if(!do_after(user, 30*O.toolspeed, target = src))
|
||||
return
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
user.visible_message("<span class='notice'>[user] unfastens [src].</span>", \
|
||||
"<span class='notice'>You unfasten [src].</span>")
|
||||
var/obj/item/sign_backing/SB = new (get_turf(user))
|
||||
SB.icon_state = icon_state
|
||||
SB.sign_path = type
|
||||
qdel(src)
|
||||
else if(istype(O, /obj/item/pen) && buildable_sign)
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 40))
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
user.visible_message("<span class='notice'>[user] unfastens [src].</span>", \
|
||||
"<span class='notice'>You unfasten [src].</span>")
|
||||
var/obj/item/sign_backing/SB = new (get_turf(user))
|
||||
SB.icon_state = icon_state
|
||||
SB.sign_path = type
|
||||
qdel(src)
|
||||
return
|
||||
else if(istype(I, /obj/item/pen) && buildable_sign)
|
||||
var/list/sign_types = list("Secure Area", "Biohazard", "High Voltage", "Radiation", "Hard Vacuum Ahead", "Disposal: Leads To Space", "Danger: Fire", "No Smoking", "Medbay", "Science", "Chemistry", \
|
||||
"Hydroponics", "Xenobiology")
|
||||
var/obj/structure/sign/sign_type
|
||||
|
||||
@@ -18,11 +18,10 @@
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(istype(W, /obj/item/wrench))
|
||||
if(anchored)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] is loosening the [name]'s bolts.", \
|
||||
"<span class='notice'>You are loosening the [name]'s bolts...</span>")
|
||||
if(do_after(user,40*W.toolspeed, target = src))
|
||||
if(!src.loc || !anchored)
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(!anchored)
|
||||
return
|
||||
user.visible_message("[user] loosened the [name]'s bolts!", \
|
||||
"<span class='notice'>You loosen the [name]'s bolts!</span>")
|
||||
@@ -31,44 +30,28 @@
|
||||
if(!isfloorturf(src.loc))
|
||||
user.visible_message("<span class='warning'>A floor must be present to secure the [name]!</span>")
|
||||
return
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] is securing the [name]'s bolts...", \
|
||||
"<span class='notice'>You are securing the [name]'s bolts...</span>")
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src.loc || anchored)
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(anchored)
|
||||
return
|
||||
user.visible_message("[user] has secured the [name]'s bolts.", \
|
||||
"<span class='notice'>You have secured the [name]'s bolts.</span>")
|
||||
anchored = TRUE
|
||||
|
||||
else if(istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
playsound(src, 'sound/items/welder.ogg', 100, 1)
|
||||
user.visible_message("[user] is slicing apart the [name]...", \
|
||||
"<span class='notice'>You are slicing apart the [name]...</span>")
|
||||
if(do_after(user,40*W.toolspeed, target = src))
|
||||
if(!src.loc)
|
||||
return
|
||||
user.visible_message("[user] slices apart the [name].", \
|
||||
"<span class='notice'>You slice apart the [name].</span>")
|
||||
deconstruct(TRUE)
|
||||
|
||||
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
|
||||
var/obj/item/pickaxe/drill/jackhammer/D = W
|
||||
if(!src.loc)
|
||||
return
|
||||
user.visible_message("[user] destroys the [name]!", \
|
||||
user.visible_message("[user] destroys the [name]!",
|
||||
"<span class='notice'>You destroy the [name].</span>")
|
||||
D.playDigSound()
|
||||
W.play_tool_sound(src)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/weldingtool) && !anchored)
|
||||
playsound(loc, W.usesound, 40, 1)
|
||||
else if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return FALSE
|
||||
|
||||
user.visible_message("[user] is slicing apart the [name].", \
|
||||
"<span class='notice'>You are slicing apart the [name]...</span>")
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src.loc)
|
||||
return
|
||||
playsound(loc, 'sound/items/welder2.ogg', 50, 1)
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
user.visible_message("[user] slices apart the [name].", \
|
||||
"<span class='notice'>You slice apart the [name]!</span>")
|
||||
deconstruct(TRUE)
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
/obj/structure/table_frame/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/wrench))
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 30*I.toolspeed, target = src))
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 30))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
deconstruct(TRUE)
|
||||
else if(istype(I, /obj/item/stack/sheet/plasteel))
|
||||
|
||||
@@ -95,23 +95,19 @@
|
||||
pushed_mob.visible_message("<span class='danger'>[user] pushes [pushed_mob] onto [src].</span>", \
|
||||
"<span class='userdanger'>[user] pushes [pushed_mob] onto [src].</span>")
|
||||
add_logs(user, pushed_mob, "pushed")
|
||||
var/mob/living/carbon/human/H = pushed_mob
|
||||
if(istype(H) && H.ckey == "kevinz000")
|
||||
H.forcesay("*moan")
|
||||
|
||||
|
||||
/obj/structure/table/attackby(obj/item/I, mob/user, params)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(istype(I, /obj/item/screwdriver) && deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
if(I.use_tool(src, user, 20, volume=50))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/wrench) && deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start deconstructing [src]...</span>")
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 40*I.toolspeed, target = src))
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
deconstruct(TRUE, 1)
|
||||
return
|
||||
@@ -309,23 +305,19 @@
|
||||
|
||||
/obj/structure/table/reinforced/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0, user))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
if(deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start strengthening the reinforced table...</span>")
|
||||
if (do_after(user, 50*W.toolspeed, target = src))
|
||||
if(!src || !WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You strengthen the table.</span>")
|
||||
deconstruction_ready = 0
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You start weakening the reinforced table...</span>")
|
||||
if (do_after(user, 50*W.toolspeed, target = src))
|
||||
if(!src || !WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You weaken the table.</span>")
|
||||
deconstruction_ready = 1
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
if(deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start strengthening the reinforced table...</span>")
|
||||
if (W.use_tool(src, user, 50, volume=50))
|
||||
to_chat(user, "<span class='notice'>You strengthen the table.</span>")
|
||||
deconstruction_ready = 0
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You start weakening the reinforced table...</span>")
|
||||
if (W.use_tool(src, user, 50, volume=50))
|
||||
to_chat(user, "<span class='notice'>You weaken the table.</span>")
|
||||
deconstruction_ready = 1
|
||||
else
|
||||
. = ..()
|
||||
|
||||
@@ -449,7 +441,7 @@
|
||||
|
||||
/obj/structure/rack/attackby(obj/item/W, mob/user, params)
|
||||
if (istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
W.play_tool_sound(src)
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
|
||||
@@ -42,8 +42,7 @@
|
||||
to_chat(user, "<span class='warning'>Remove the pod first!</span>")
|
||||
return
|
||||
user.visible_message("[user] starts to deattach \the [src].", "<span class='notice'>You start to deattach the [name]...</span>")
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
if(do_after(user, 35*W.toolspeed, target = src))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You deattach the [name].</span>")
|
||||
var/obj/structure/c_transit_tube/R = new tube_construction(loc)
|
||||
R.setDir(dir)
|
||||
|
||||
@@ -28,22 +28,17 @@
|
||||
build_type = flipped_build_type
|
||||
else
|
||||
build_type = initial(build_type)
|
||||
icon_state = "[base_icon][flipped]"
|
||||
icon_state = "[base_icon][flipped]"
|
||||
|
||||
/obj/structure/c_transit_tube/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/wrench))
|
||||
to_chat(user, "<span class='notice'>You start attaching the [name]...</span>")
|
||||
add_fingerprint(user)
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
if(do_after(user, 40*I.toolspeed, target = src))
|
||||
if(QDELETED(src))
|
||||
return
|
||||
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)
|
||||
qdel(src)
|
||||
else
|
||||
return ..()
|
||||
/obj/structure/c_transit_tube/wrench_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You start attaching the [name]...</span>")
|
||||
add_fingerprint(user)
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
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)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
// transit tube station
|
||||
/obj/structure/c_transit_tube/station
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
/obj/structure/transit_tube_pod/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/crowbar))
|
||||
if(!moving)
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
I.play_tool_sound(src)
|
||||
if(contents.len)
|
||||
user.visible_message("[user] empties \the [src].", "<span class='notice'>You empty \the [src].</span>")
|
||||
empty_pod()
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
if(istype(I, /obj/item/crowbar))
|
||||
to_chat(user, "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...</span>")
|
||||
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
|
||||
if(do_after(user, 30*I.toolspeed, target = src))
|
||||
if(I.use_tool(src, user, 30))
|
||||
user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", "<span class='notice'>You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!</span>", "<span class='italics'>You hear grinding porcelain.</span>")
|
||||
cistern = !cistern
|
||||
update_icon()
|
||||
@@ -159,13 +159,7 @@
|
||||
..()
|
||||
|
||||
/obj/structure/urinal/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/screwdriver))
|
||||
to_chat(user, "<span class='notice'>You start to [exposed ? "screw the cap back into place" : "unscrew the cap to the drain protector"]...</span>")
|
||||
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
|
||||
if(do_after(user, 20*I.toolspeed, target = src))
|
||||
user.visible_message("[user] [exposed ? "screws the cap back into place" : "unscrew the cap to the drain protector"]!", "<span class='notice'>You [exposed ? "screw the cap back into place" : "unscrew the cap on the drain"]!</span>", "<span class='italics'>You hear metal and squishing noises.</span>")
|
||||
exposed = !exposed
|
||||
else if(exposed)
|
||||
if(exposed)
|
||||
if (hiddenitem)
|
||||
to_chat(user, "<span class='warning'>There is already something in the drain enclosure.</span>")
|
||||
return
|
||||
@@ -177,6 +171,18 @@
|
||||
return
|
||||
hiddenitem = I
|
||||
to_chat(user, "<span class='notice'>You place [I] into the drain enclosure.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/urinal/screwdriver_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You start to [exposed ? "screw the cap back into place" : "unscrew the cap to the drain protector"]...</span>")
|
||||
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
|
||||
if(I.use_tool(src, user, 20))
|
||||
user.visible_message("[user] [exposed ? "screws the cap back into place" : "unscrew the cap to the drain protector"]!",
|
||||
"<span class='notice'>You [exposed ? "screw the cap back into place" : "unscrew the cap on the drain"]!</span>",
|
||||
"<span class='italics'>You hear metal and squishing noises.</span>")
|
||||
exposed = !exposed
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/urinalcake
|
||||
@@ -247,19 +253,23 @@
|
||||
/obj/machinery/shower/attackby(obj/item/I, mob/user, params)
|
||||
if(I.type == /obj/item/device/analyzer)
|
||||
to_chat(user, "<span class='notice'>The water temperature seems to be [watertemp].</span>")
|
||||
if(istype(I, /obj/item/wrench))
|
||||
to_chat(user, "<span class='notice'>You begin to adjust the temperature valve with \the [I]...</span>")
|
||||
if(do_after(user, 50*I.toolspeed, target = src))
|
||||
switch(watertemp)
|
||||
if("normal")
|
||||
watertemp = "freezing"
|
||||
if("freezing")
|
||||
watertemp = "boiling"
|
||||
if("boiling")
|
||||
watertemp = "normal"
|
||||
user.visible_message("<span class='notice'>[user] adjusts the shower with \the [I].</span>", "<span class='notice'>You adjust the shower with \the [I] to [watertemp] temperature.</span>")
|
||||
log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])")
|
||||
add_hiddenprint(user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You begin to adjust the temperature valve with \the [I]...</span>")
|
||||
if(I.use_tool(src, user, 50))
|
||||
switch(watertemp)
|
||||
if("normal")
|
||||
watertemp = "freezing"
|
||||
if("freezing")
|
||||
watertemp = "boiling"
|
||||
if("boiling")
|
||||
watertemp = "normal"
|
||||
user.visible_message("<span class='notice'>[user] adjusts the shower with \the [I].</span>", "<span class='notice'>You adjust the shower with \the [I] to [watertemp] temperature.</span>")
|
||||
log_game("[key_name(user)] has wrenched a shower to [watertemp] at ([x],[y],[z])")
|
||||
add_hiddenprint(user)
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up
|
||||
@@ -611,34 +621,24 @@
|
||||
/obj/structure/curtain/attackby(obj/item/W, mob/user)
|
||||
if (istype(W, /obj/item/toy/crayon))
|
||||
color = input(user,"","Choose Color",color) as color
|
||||
else if(istype(W, /obj/item/screwdriver))
|
||||
if(anchored)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] unscrews [src] from the floor.</span>", "<span class='notice'>You start to unscrew [src] from the floor...</span>", "You hear rustling noises.")
|
||||
if(do_after(user, 50*W.toolspeed, target = src))
|
||||
if(!anchored)
|
||||
return
|
||||
anchored = FALSE
|
||||
to_chat(user, "<span class='notice'>You unscrew [src] from the floor.</span>")
|
||||
else
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] screws [src] to the floor.</span>", "<span class='notice'>You start to screw [src] to the floor...</span>", "You hear rustling noises.")
|
||||
if(do_after(user, 50*W.toolspeed, target = src))
|
||||
if(anchored)
|
||||
return
|
||||
anchored = TRUE
|
||||
to_chat(user, "<span class='notice'>You screw [src] to the floor.</span>")
|
||||
else if(istype(W, /obj/item/wirecutters))
|
||||
if(!anchored)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user.visible_message("<span class='warning'>[user] cuts apart [src].</span>", "<span class='notice'>You start to cut apart [src].</span>", "You hear cutting.")
|
||||
if(do_after(user, 50*W.toolspeed, target = src))
|
||||
if(anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You cut apart [src].</span>")
|
||||
deconstruct()
|
||||
else
|
||||
. = ..()
|
||||
return ..()
|
||||
|
||||
/obj/structure/curtain/wrench_act(mob/living/user, obj/item/I)
|
||||
default_unfasten_wrench(user, I, 50)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/curtain/wirecutter_act(mob/living/user, obj/item/I)
|
||||
if(anchored)
|
||||
return TRUE
|
||||
|
||||
user.visible_message("<span class='warning'>[user] cuts apart [src].</span>",
|
||||
"<span class='notice'>You start to cut apart [src].</span>", "You hear cutting.")
|
||||
if(I.use_tool(src, user, 50, volume=100) && !anchored)
|
||||
to_chat(user, "<span class='notice'>You cut apart [src].</span>")
|
||||
deconstruct()
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/structure/curtain/attack_hand(mob/user)
|
||||
|
||||
@@ -87,36 +87,34 @@
|
||||
add_fingerprint(user)
|
||||
switch(state)
|
||||
if("01")
|
||||
if(istype(W, /obj/item/weldingtool) && !anchored )
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if (WT.remove_fuel(0,user))
|
||||
user.visible_message("[user] disassembles the windoor assembly.", "<span class='notice'>You start to disassemble the windoor assembly...</span>")
|
||||
playsound(loc, 'sound/items/welder2.ogg', 50, 1)
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src || !WT.isOn())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You disassemble the windoor assembly.</span>")
|
||||
var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5)
|
||||
RG.add_fingerprint(user)
|
||||
if(secure)
|
||||
var/obj/item/stack/rods/R = new (get_turf(src), 4)
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
else
|
||||
if(istype(W, /obj/item/weldingtool) && !anchored)
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("[user] disassembles the windoor assembly.",
|
||||
"<span class='notice'>You start to disassemble the windoor assembly...</span>")
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You disassemble the windoor assembly.</span>")
|
||||
var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5)
|
||||
RG.add_fingerprint(user)
|
||||
if(secure)
|
||||
var/obj/item/stack/rods/R = new (get_turf(src), 4)
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
//Wrenching an unsecure assembly anchors it in place. Step 4 complete
|
||||
if(istype(W, /obj/item/wrench) && !anchored)
|
||||
for(var/obj/machinery/door/window/WD in loc)
|
||||
if(WD.dir == dir)
|
||||
to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>")
|
||||
return
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] secures the windoor assembly to the floor.", "<span class='notice'>You start to secure the windoor assembly to the floor...</span>")
|
||||
user.visible_message("[user] secures the windoor assembly to the floor.",
|
||||
"<span class='notice'>You start to secure the windoor assembly to the floor...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src || anchored)
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(anchored)
|
||||
return
|
||||
for(var/obj/machinery/door/window/WD in loc)
|
||||
if(WD.dir == dir)
|
||||
@@ -131,11 +129,11 @@
|
||||
|
||||
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
|
||||
else if(istype(W, /obj/item/wrench) && anchored)
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] unsecures the windoor assembly to the floor.", "<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>")
|
||||
user.visible_message("[user] unsecures the windoor assembly to the floor.",
|
||||
"<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src || !anchored)
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(!anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You unsecure the windoor assembly.</span>")
|
||||
anchored = FALSE
|
||||
@@ -188,11 +186,10 @@
|
||||
|
||||
//Removing wire from the assembly. Step 5 undone.
|
||||
if(istype(W, /obj/item/wirecutters))
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] cuts the wires from the airlock assembly.", "<span class='notice'>You start to cut the wires from airlock assembly...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src || state != "02")
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != "02")
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You cut the windoor wires.</span>")
|
||||
@@ -207,8 +204,9 @@
|
||||
else if(istype(W, /obj/item/electronics/airlock))
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] installs the electronics into the airlock assembly.", "<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
W.play_tool_sound(src, 100)
|
||||
user.visible_message("[user] installs the electronics into the airlock assembly.",
|
||||
"<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
|
||||
if(do_after(user, 40, target = src))
|
||||
if(!src || electronics)
|
||||
@@ -225,12 +223,10 @@
|
||||
if(!electronics)
|
||||
return
|
||||
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] removes the electronics from the airlock assembly.", "<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>")
|
||||
user.visible_message("[user] removes the electronics from the airlock assembly.",
|
||||
"<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
if(!src || !electronics)
|
||||
return
|
||||
if(W.use_tool(src, user, 40, volume=100) && electronics)
|
||||
to_chat(user, "<span class='notice'>You remove the airlock electronics.</span>")
|
||||
name = "wired windoor assembly"
|
||||
var/obj/item/electronics/airlock/ae
|
||||
@@ -254,58 +250,56 @@
|
||||
if(!electronics)
|
||||
to_chat(usr, "<span class='warning'>The assembly is missing electronics!</span>")
|
||||
return
|
||||
usr << browse(null, "window=windoor_access")
|
||||
playsound(loc, W.usesound, 100, 1)
|
||||
user.visible_message("[user] pries the windoor into the frame.", "<span class='notice'>You start prying the windoor into the frame...</span>")
|
||||
user << browse(null, "window=windoor_access")
|
||||
user.visible_message("[user] pries the windoor into the frame.",
|
||||
"<span class='notice'>You start prying the windoor into the frame...</span>")
|
||||
|
||||
if(do_after(user, 40*W.toolspeed, target = src))
|
||||
|
||||
if(loc && electronics)
|
||||
|
||||
density = TRUE //Shouldn't matter but just incase
|
||||
to_chat(user, "<span class='notice'>You finish the windoor.</span>")
|
||||
|
||||
if(secure)
|
||||
var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(loc)
|
||||
if(facing == "l")
|
||||
windoor.icon_state = "leftsecureopen"
|
||||
windoor.base_state = "leftsecure"
|
||||
else
|
||||
windoor.icon_state = "rightsecureopen"
|
||||
windoor.base_state = "rightsecure"
|
||||
windoor.setDir(dir)
|
||||
windoor.density = FALSE
|
||||
|
||||
if(electronics.one_access)
|
||||
windoor.req_one_access = electronics.accesses
|
||||
else
|
||||
windoor.req_access = electronics.accesses
|
||||
windoor.electronics = electronics
|
||||
electronics.forceMove(windoor)
|
||||
if(created_name)
|
||||
windoor.name = created_name
|
||||
qdel(src)
|
||||
windoor.close()
|
||||
if(W.use_tool(src, user, 40, volume=100) && electronics)
|
||||
|
||||
density = TRUE //Shouldn't matter but just incase
|
||||
to_chat(user, "<span class='notice'>You finish the windoor.</span>")
|
||||
|
||||
if(secure)
|
||||
var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(loc)
|
||||
if(facing == "l")
|
||||
windoor.icon_state = "leftsecureopen"
|
||||
windoor.base_state = "leftsecure"
|
||||
else
|
||||
var/obj/machinery/door/window/windoor = new /obj/machinery/door/window(loc)
|
||||
if(facing == "l")
|
||||
windoor.icon_state = "leftopen"
|
||||
windoor.base_state = "left"
|
||||
else
|
||||
windoor.icon_state = "rightopen"
|
||||
windoor.base_state = "right"
|
||||
windoor.setDir(dir)
|
||||
windoor.density = FALSE
|
||||
windoor.icon_state = "rightsecureopen"
|
||||
windoor.base_state = "rightsecure"
|
||||
windoor.setDir(dir)
|
||||
windoor.density = FALSE
|
||||
|
||||
if(electronics.one_access)
|
||||
windoor.req_one_access = electronics.accesses
|
||||
else
|
||||
windoor.req_access = electronics.accesses
|
||||
windoor.electronics = electronics
|
||||
electronics.loc = windoor
|
||||
if(created_name)
|
||||
windoor.name = created_name
|
||||
qdel(src)
|
||||
windoor.close()
|
||||
windoor.electronics = electronics
|
||||
electronics.forceMove(windoor)
|
||||
if(created_name)
|
||||
windoor.name = created_name
|
||||
qdel(src)
|
||||
windoor.close()
|
||||
|
||||
|
||||
else
|
||||
var/obj/machinery/door/window/windoor = new /obj/machinery/door/window(loc)
|
||||
if(facing == "l")
|
||||
windoor.icon_state = "leftopen"
|
||||
windoor.base_state = "left"
|
||||
else
|
||||
windoor.icon_state = "rightopen"
|
||||
windoor.base_state = "right"
|
||||
windoor.setDir(dir)
|
||||
windoor.density = FALSE
|
||||
|
||||
windoor.req_access = electronics.accesses
|
||||
windoor.electronics = electronics
|
||||
electronics.loc = windoor
|
||||
if(created_name)
|
||||
windoor.name = created_name
|
||||
qdel(src)
|
||||
windoor.close()
|
||||
|
||||
|
||||
else
|
||||
@@ -318,7 +312,13 @@
|
||||
|
||||
/obj/structure/windoor_assembly/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation))
|
||||
AddComponent(
|
||||
/datum/component/simple_rotation,
|
||||
ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS,
|
||||
null,
|
||||
CALLBACK(src, .proc/can_be_rotated),
|
||||
CALLBACK(src,.proc/after_rotation)
|
||||
)
|
||||
|
||||
/obj/structure/windoor_assembly/proc/can_be_rotated(mob/user,rotation_type)
|
||||
if(anchored)
|
||||
|
||||
@@ -178,39 +178,39 @@
|
||||
return 1 //skip the afterattack
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
if(istype(I, /obj/item/weldingtool) && user.a_intent == INTENT_HELP)
|
||||
var/obj/item/weldingtool/WT = I
|
||||
if(obj_integrity < max_integrity)
|
||||
if(WT.remove_fuel(0,user))
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
playsound(src, WT.usesound, 40, 1)
|
||||
if(do_after(user, 40*I.toolspeed, target = src))
|
||||
obj_integrity = max_integrity
|
||||
playsound(src, 'sound/items/Welder2.ogg', 50, 1)
|
||||
update_nearby_icons()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
obj_integrity = max_integrity
|
||||
update_nearby_icons()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
||||
return
|
||||
|
||||
if(!(flags_1&NODECONSTRUCT_1))
|
||||
if(istype(I, /obj/item/screwdriver))
|
||||
playsound(src, I.usesound, 75, 1)
|
||||
I.play_tool_sound(src, 75)
|
||||
if(reinf)
|
||||
if(state == WINDOW_SCREWED_TO_FRAME || state == WINDOW_IN_FRAME)
|
||||
to_chat(user, "<span class='notice'>You begin to [state == WINDOW_SCREWED_TO_FRAME ? "unscrew the window from":"screw the window to"] the frame...</span>")
|
||||
if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
state = (state == WINDOW_IN_FRAME ? WINDOW_SCREWED_TO_FRAME : WINDOW_IN_FRAME)
|
||||
to_chat(user, "<span class='notice'>You [state == WINDOW_IN_FRAME ? "unfasten the window from":"fasten the window to"] the frame.</span>")
|
||||
else if(state == WINDOW_OUT_OF_FRAME)
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the frame from":"screw the frame to"] the floor...</span>")
|
||||
if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
anchored = !anchored
|
||||
update_nearby_icons()
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "fasten the frame to":"unfasten the frame from"] the floor.</span>")
|
||||
else //if we're not reinforced, we don't need to check or update state
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the window from":"screw the window to"] the floor...</span>")
|
||||
if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
|
||||
anchored = !anchored
|
||||
air_update_turf(TRUE)
|
||||
update_nearby_icons()
|
||||
@@ -220,16 +220,16 @@
|
||||
|
||||
else if (istype(I, /obj/item/crowbar) && reinf && (state == WINDOW_OUT_OF_FRAME || state == WINDOW_IN_FRAME))
|
||||
to_chat(user, "<span class='notice'>You begin to lever the window [state == WINDOW_OUT_OF_FRAME ? "into":"out of"] the frame...</span>")
|
||||
playsound(src, I.usesound, 75, 1)
|
||||
if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
I.play_tool_sound(src, 75)
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
state = (state == WINDOW_OUT_OF_FRAME ? WINDOW_IN_FRAME : WINDOW_OUT_OF_FRAME)
|
||||
to_chat(user, "<span class='notice'>You pry the window [state == WINDOW_IN_FRAME ? "into":"out of"] the frame.</span>")
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/wrench) && !anchored)
|
||||
playsound(src, I.usesound, 75, 1)
|
||||
I.play_tool_sound(src, 75)
|
||||
to_chat(user, "<span class='notice'> You begin to disassemble [src]...</span>")
|
||||
if(do_after(user, decon_speed*I.toolspeed, target = src, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount)
|
||||
G.add_fingerprint(user)
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
|
||||
Reference in New Issue
Block a user