diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 12ce9e0b5ff..5ecdcf39bbd 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -51,7 +51,7 @@ /obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob) - if (istype(C, /obj/item/stack/tile/plasteel)) + if (istype(C, /obj/item/stack/tile/plasteel) || istype(C, /obj/item/stack/rods)) var/turf/T = get_turf(src) T.attackby(C, user) //BubbleWrap - hand this off to the underlying turf instead return diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index d8e042dbce2..6bb2a6b15b3 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -247,8 +247,11 @@ turf/simulated/floor/proc/update_icon() else return 0 +/turf/simulated/floor/is_catwalk() + return 0 + /turf/simulated/floor/is_plating() - if(!floor_tile) + if(!floor_tile && !is_catwalk()) return 1 return 0 @@ -303,6 +306,7 @@ turf/simulated/floor/proc/update_icon() //This proc auto corrects the grass tiles' siding. /turf/simulated/floor/proc/make_plating() if(istype(src,/turf/simulated/floor/engine)) return + if(is_catwalk()) return if(is_grass_floor()) for(var/direction in cardinal) @@ -457,21 +461,26 @@ turf/simulated/floor/proc/update_icon() new floor_tile.type(src) make_plating() + // Can't play sounds from areas. - N3X playsound(src, 'sound/items/Crowbar.ogg', 80, 1) return - if(istype(C, /obj/item/weapon/screwdriver) && is_wood_floor()) - if(broken || burnt) - return - else - if(is_wood_floor()) - user << "\red You unscrew the planks." - new floor_tile.type(src) - - make_plating() - playsound(src, 'sound/items/Screwdriver.ogg', 80, 1) + if(istype(C, /obj/item/weapon/screwdriver)) + if(is_wood_floor()) + if(broken || burnt) + return + else + if(is_wood_floor()) + user << "\red You unscrew the planks." + new floor_tile.type(src) + make_plating() + playsound(src, 'sound/items/Screwdriver.ogg', 80, 1) + if(is_catwalk()) + if(broken) return + ReplaceWithLattice() + playsound(src, 'sound/items/Screwdriver.ogg', 80, 1) return if(istype(C, /obj/item/stack/rods)) @@ -486,11 +495,15 @@ turf/simulated/floor/proc/update_icon() return else user << "\red You need more rods." + else if (is_catwalk()) + user << "\red The entire thing is 100% rods already, it doesn't need any more." else user << "\red You must remove the plating first." return if(istype(C, /obj/item/stack/tile)) + if (is_catwalk()) + user << "\red The catwalk is too primitive to support tiling." if(is_plating()) if(!broken && !burnt) var/obj/item/stack/tile/T = C @@ -520,7 +533,7 @@ turf/simulated/floor/proc/update_icon() if(istype(C, /obj/item/weapon/cable_coil)) - if(is_plating()) + if(is_plating() || is_catwalk()) var/obj/item/weapon/cable_coil/coil = C coil.turf_place(src, user) else diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index ddb26663203..d31f6ae2dd9 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -223,5 +223,44 @@ icon_state = "concrete" + /turf/simulated/floor/plating/snow/ex_act(severity) - return \ No newline at end of file + return + + +/turf/simulated/shuttle/plating/vox + oxygen=0 // BIRDS HATE OXYGEN FOR SOME REASON + nitrogen = MOLES_O2STANDARD+MOLES_N2STANDARD // So it totals to the same pressure + //icon = 'icons/turf/shuttle-debug.dmi' + + +// CATWALKS +/turf/simulated/floor/plating/airless/catwalk + icon = 'icons/turf/catwalks.dmi' + icon_state = "catwalk0" + name = "catwalk" + desc = "Cats really don't like these things." + + New() + ..() + // Fucking cockshit dickfuck shitslut + name = "catwalk" + update_icon(1) + + update_icon(var/propogate=1) + underlays.Cut() + underlays += new /icon('icons/turf/space.dmi',"[((x + y) ^ ~(x * y) + z) % 25]") + + var/dirs = 0 + for(var/direction in cardinal) + var/turf/T = get_step(src,direction) + if(T.is_catwalk()) + var/turf/simulated/floor/plating/airless/catwalk/C=T + dirs |= direction + if(propogate) + C.update_icon(0) + icon_state="catwalk[dirs]" + + is_catwalk() + return 1 + diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 4323ee0adb9..c1c59d70ba3 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -34,10 +34,20 @@ /turf/space/attackby(obj/item/C as obj, mob/user as mob) if (istype(C, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = C var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) if(L) - return - var/obj/item/stack/rods/R = C + if(R.amount < 2) + user << "\red You don't have enough rods to do that." + user << "\blue You begin to build a catwalk." + if(do_after(user,30)) + playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) + user << "\blue You build a catwalk!" + R.use(2) + ChangeTurf(/turf/simulated/floor/plating/airless/catwalk) + del(L) + return + user << "\blue Constructing support lattice ..." playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1) ReplaceWithLattice() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 7b0fdb67006..881744f547b 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -147,6 +147,8 @@ return 0 /turf/proc/is_carpet_floor() return 0 +/turf/proc/is_catwalk() + return 0 /turf/proc/return_siding_icon_state() //used for grass floors, which have siding. return 0