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