diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 4531613610e..0c0a7f5e4dd 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -56,27 +56,20 @@ /obj/structure/dresser/crowbar_act(mob/user, obj/item/I) . = TRUE - if(!I.tool_start_check(src, user, 0)) + if(!I.use_tool(src, user, 0)) return TOOL_ATTEMPT_DISMANTLE_MESSAGE if(I.use_tool(src, user, 50, volume = I.tool_volume)) TOOL_DISMANTLE_SUCCESS_MESSAGE - + deconstruct(disassembled = TRUE) /obj/structure/dresser/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) - return - if(anchored) - WRENCH_UNANCHOR_MESSAGE - anchored = FALSE - else - if(!isfloorturf(loc)) - user.visible_message("A floor must be present to secure [src]!") - return - WRENCH_ANCHOR_MESSAGE - anchored = TRUE + default_unfasten_wrench(user, I, time = 20) -/obj/structure/dresser/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/wood(drop_location(), 30) - qdel(src) +obj/structure/dresser/deconstruct(disassembled = FALSE) + var/mat_drop = 15 + if(disassembled) + mat_drop = 30 + new /obj/item/stack/sheet/wood(drop_location(), mat_drop) + ..() diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm index d0bcd07f92f..4742a2c3c0c 100644 --- a/code/game/objects/structures/loom.dm +++ b/code/game/objects/structures/loom.dm @@ -11,12 +11,30 @@ anchored = TRUE /obj/structure/loom/attackby(obj/item/I, mob/user) - if(default_unfasten_wrench(user, I, 5)) - return if(weave(I, user)) return return ..() +/obj/structure/loom/crowbar_act(mob/user, obj/item/I) + . = TRUE + if(!I.use_tool(src, user, 0)) + return + TOOL_ATTEMPT_DISMANTLE_MESSAGE + if(I.use_tool(src, user, 50, volume = I.tool_volume)) + TOOL_DISMANTLE_SUCCESS_MESSAGE + deconstruct(disassembled = TRUE) + +/obj/structure/loom/wrench_act(mob/user, obj/item/I) + . = TRUE + default_unfasten_wrench(user, I, time = 20) + +/obj/structure/loom/deconstruct(disassembled = FALSE) + var/mat_drop = 5 + if(disassembled) + mat_drop = 10 + new /obj/item/stack/sheet/wood(drop_location(), mat_drop) + ..() + ///Handles the weaving. /obj/structure/loom/proc/weave(obj/item/stack/sheet/cotton/W, mob/user) if(!istype(W)) diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index 612146e579a..5a73313601a 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -198,10 +198,17 @@ return return ..() +/obj/structure/beebox/crowbar_act(mob/user, obj/item/I) + . = TRUE + if(!I.use_tool(src, user, 0)) + return + TOOL_ATTEMPT_DISMANTLE_MESSAGE + if(I.use_tool(src, user, 50, volume = I.tool_volume)) + TOOL_DISMANTLE_SUCCESS_MESSAGE + deconstruct(disassembled = TRUE) + /obj/structure/beebox/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.tool_use_check(user, 0)) - return default_unfasten_wrench(user, I, time = 20) /obj/structure/beebox/attack_hand(mob/user) @@ -261,15 +268,18 @@ visible_message("[user] removes the queen from the apiary.") queen_bee = null -/obj/structure/beebox/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/wood(loc, 20) +/obj/structure/beebox/deconstruct(disassembled = FALSE) + var/mat_drop = 20 + if(disassembled) + mat_drop = 40 + new /obj/item/stack/sheet/wood(loc, mat_drop) for(var/mob/living/simple_animal/hostile/poison/bees/B in bees) if(B.loc == src) B.forceMove(drop_location()) for(var/obj/item/honey_frame/HF in honey_frames) HF.forceMove(drop_location()) honey_frames -= HF - qdel(src) + ..() /obj/structure/beebox/unwrenched anchored = FALSE diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index f194c48e019..5031ac71373 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "barrel" density = TRUE - anchored = FALSE + anchored = TRUE container_type = DRAINABLE | AMOUNT_VISIBLE pressure_resistance = 2 * ONE_ATMOSPHERE max_integrity = 300 @@ -65,6 +65,26 @@ to_chat(user, "You close [src], letting you draw from its tap.") update_icon() +/obj/structure/fermenting_barrel/crowbar_act(mob/living/user, obj/item/I) + . = TRUE + if(!I.use_tool(src, user, 0)) + return + TOOL_ATTEMPT_DISMANTLE_MESSAGE + if(I.use_tool(src, user, 50, volume = I.tool_volume)) + TOOL_DISMANTLE_SUCCESS_MESSAGE + deconstruct(disassembled = TRUE) + +/obj/structure/fermenting_barrel/wrench_act(mob/living/user, obj/item/I) + . = TRUE + default_unfasten_wrench(user, I, time = 20) + +/obj/structure/fermenting_barrel/deconstruct(disassembled = FALSE) + var/mat_drop = 15 + if(disassembled) + mat_drop = 30 + new /obj/item/stack/sheet/wood(drop_location(), mat_drop) + ..() + /obj/structure/fermenting_barrel/update_icon() if(open) icon_state = "barrel_open"