/turf/closed/wall/r_wall name = "reinforced wall" desc = "A huge chunk of reinforced metal used to separate rooms." icon = 'icons/turf/walls/reinforced_wall.dmi' icon_state = "r_wall" opacity = 1 density = TRUE var/d_state = INTACT hardness = 10 sheet_type = /obj/item/stack/sheet/plasteel sheet_amount = 1 girder_type = /obj/structure/girder/reinforced explosion_block = 2 /turf/closed/wall/r_wall/ComponentInitialize() . = ..() AddComponent(/datum/component/rad_insulation, RAD_HEAVY_INSULATION) /turf/closed/wall/r_wall/deconstruction_hints(mob/user) switch(d_state) if(INTACT) to_chat(user, "The outer grille is fully intact.") if(SUPPORT_LINES) to_chat(user, "The outer grille has been cut, and the support lines are screwed securely to the outer cover.") if(COVER) to_chat(user, "The support lines have been unscrewed, and the metal cover is welded firmly in place.") if(CUT_COVER) to_chat(user, "The metal cover has been sliced through, and is connected loosely to the girder.") if(BOLTS) to_chat(user, "The outer cover has been pried away, and the bolts anchoring the support rods are wrenched in place.") if(SUPPORT_RODS) to_chat(user, "The bolts anchoring the support rods have been loosened, but are still welded firmly to the girder.") if(SHEATH) to_chat(user, "The support rods have been sliced through, and the outer sheath is connected loosely to the girder.") /turf/closed/wall/r_wall/devastate_wall() new sheet_type(src, sheet_amount) new /obj/item/stack/sheet/metal(src, 2) /turf/closed/wall/r_wall/attack_animal(mob/living/simple_animal/M) M.changeNext_move(CLICK_CD_MELEE) M.do_attack_animation(src) if(!M.environment_smash) return if(M.environment_smash & ENVIRONMENT_SMASH_RWALLS) dismantle_wall(1) playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) else playsound(src, 'sound/effects/bang.ogg', 50, 1) to_chat(M, "This wall is far too strong for you to destroy.") /turf/closed/wall/r_wall/try_destroy(obj/item/I, mob/user, turf/T) if(istype(I, /obj/item/pickaxe/drill/jackhammer)) to_chat(user, "You begin to smash though [src]...") if(do_after(user, 50, target = src)) if(!istype(src, /turf/closed/wall/r_wall)) return TRUE I.play_tool_sound(src) visible_message("[user] smashes through [src] with [I]!", "You hear the grinding of metal.") dismantle_wall() return TRUE return FALSE /turf/closed/wall/r_wall/try_decon(obj/item/W, mob/user, turf/T) //DECONSTRUCTION switch(d_state) if(INTACT) if(istype(W, /obj/item/wirecutters)) W.play_tool_sound(src, 100) d_state = SUPPORT_LINES update_icon() to_chat(user, "You cut the outer grille.") return 1 if(SUPPORT_LINES) if(istype(W, /obj/item/screwdriver)) to_chat(user, "You begin unsecuring the support lines...") if(W.use_tool(src, user, 40, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_LINES) return 1 d_state = COVER update_icon() to_chat(user, "You unsecure the support lines.") return 1 else if(istype(W, /obj/item/wirecutters)) W.play_tool_sound(src, 100) d_state = INTACT update_icon() to_chat(user, "You repair the outer grille.") return 1 if(COVER) if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter)) if(!W.tool_start_check(user, amount=0)) return to_chat(user, "You begin slicing through the metal cover...") if(W.use_tool(src, user, 60, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER) return 1 d_state = CUT_COVER update_icon() to_chat(user, "You press firmly on the cover, dislodging it.") return 1 if(istype(W, /obj/item/screwdriver)) to_chat(user, "You begin securing the support lines...") if(W.use_tool(src, user, 40, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER) return 1 d_state = SUPPORT_LINES update_icon() to_chat(user, "The support lines have been secured.") return 1 if(CUT_COVER) if(istype(W, /obj/item/crowbar)) to_chat(user, "You struggle to pry off the cover...") if(W.use_tool(src, user, 100, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER) return 1 d_state = BOLTS update_icon() to_chat(user, "You pry off the cover.") return 1 if(istype(W, /obj/item/weldingtool)) if(!W.tool_start_check(user, amount=0)) return to_chat(user, "You begin welding the metal cover back to the frame...") if(W.use_tool(src, user, 60, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER) return TRUE d_state = COVER update_icon() to_chat(user, "The metal cover has been welded securely to the frame.") return 1 if(BOLTS) if(istype(W, /obj/item/wrench)) to_chat(user, "You start loosening the anchoring bolts which secure the support rods to their frame...") if(W.use_tool(src, user, 40, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != BOLTS) return 1 d_state = SUPPORT_RODS update_icon() to_chat(user, "You remove the bolts anchoring the support rods.") return 1 if(istype(W, /obj/item/crowbar)) to_chat(user, "You start to pry the cover back into place...") if(W.use_tool(src, user, 20, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != BOLTS) return 1 d_state = CUT_COVER update_icon() to_chat(user, "The metal cover has been pried back into place.") return 1 if(SUPPORT_RODS) if(istype(W, /obj/item/weldingtool) || istype(W, /obj/item/gun/energy/plasmacutter)) if(!W.tool_start_check(user, amount=0)) return to_chat(user, "You begin slicing through the support rods...") if(W.use_tool(src, user, 100, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS) return 1 d_state = SHEATH update_icon() to_chat(user, "You slice through the support rods.") return 1 if(istype(W, /obj/item/wrench)) to_chat(user, "You start tightening the bolts which secure the support rods to their frame...") W.play_tool_sound(src, 100) if(W.use_tool(src, user, 40)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS) return 1 d_state = BOLTS update_icon() to_chat(user, "You tighten the bolts anchoring the support rods.") return 1 if(SHEATH) if(istype(W, /obj/item/crowbar)) to_chat(user, "You struggle to pry off the outer sheath...") if(W.use_tool(src, user, 100, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != SHEATH) return 1 to_chat(user, "You pry off the outer sheath.") dismantle_wall() return 1 if(istype(W, /obj/item/weldingtool)) if(!W.tool_start_check(user, amount=0)) return to_chat(user, "You begin welding the support rods back together...") if(W.use_tool(src, user, 100, volume=100)) if(!istype(src, /turf/closed/wall/r_wall) || d_state != SHEATH) return TRUE d_state = SUPPORT_RODS update_icon() to_chat(user, "You weld the support rods back together.") return 1 return 0 /turf/closed/wall/r_wall/proc/update_icon() if(d_state != INTACT) smooth = SMOOTH_FALSE clear_smooth_overlays() icon_state = "r_wall-[d_state]" else smooth = SMOOTH_TRUE queue_smooth_neighbors(src) queue_smooth(src) icon_state = "r_wall" /turf/closed/wall/r_wall/singularity_pull(S, current_size) ..() if(current_size >= STAGE_FIVE) if(prob(30)) dismantle_wall() /turf/closed/wall/r_wall/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) if(the_rcd.canRturf) return ..() /turf/closed/wall/r_wall/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) if(the_rcd.canRturf) return ..()