code folder. 221 files changed wew

This commit is contained in:
deathride58
2018-02-12 21:03:40 -05:00
parent e3ad2643b2
commit 72ff7be9bd
221 changed files with 2797 additions and 2172 deletions

View File

@@ -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()

View File

@@ -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 ..()

View File

@@ -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))

View File

@@ -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>")

View File

@@ -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

View File

@@ -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)

View File

@@ -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 ..()

View File

@@ -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>")

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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
..()

View File

@@ -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)

View File

@@ -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>")

View File

@@ -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()

View File

@@ -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())

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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>")

View File

@@ -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)

View File

@@ -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))

View File

@@ -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

View File

@@ -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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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()

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)