diff --git a/code/__DEFINES/footstep_defines.dm b/code/__DEFINES/footstep_defines.dm index 65b96577386..3eb8641291b 100644 --- a/code/__DEFINES/footstep_defines.dm +++ b/code/__DEFINES/footstep_defines.dm @@ -8,6 +8,7 @@ #define FOOTSTEP_LAVA "lava" #define FOOTSTEP_MEAT "meat" #define FOOTSTEP_GLASS "glass" +#define FOOTSTEP_CATWALK "catwalk" //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" #define FOOTSTEP_WOOD_CLAW "woodclaw" @@ -90,6 +91,12 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/glass1.ogg', 'sound/effects/footstep/glass2.ogg', 'sound/effects/footstep/glass3.ogg'), 100, 1), + FOOTSTEP_CATWALK = list(list( + 'sound/effects/footstep/catwalk1.ogg', + 'sound/effects/footstep/catwalk2.ogg', + 'sound/effects/footstep/catwalk3.ogg', + 'sound/effects/footstep/catwalk4.ogg', + 'sound/effects/footstep/catwalk5.ogg'), 100, 1), )) //bare footsteps lists GLOBAL_LIST_INIT(barefootstep, list( @@ -137,6 +144,12 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/glassbarefoot1.ogg', 'sound/effects/footstep/glassbarefoot2.ogg', 'sound/effects/footstep/glassbarefoot3.ogg'), 100, 1), + FOOTSTEP_CATWALK = list(list( + 'sound/effects/footstep/catwalk1.ogg', + 'sound/effects/footstep/catwalk2.ogg', + 'sound/effects/footstep/catwalk3.ogg', + 'sound/effects/footstep/catwalk4.ogg', + 'sound/effects/footstep/catwalk5.ogg'), 100, 1), )) //claw footsteps lists @@ -185,6 +198,12 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/glassbarefoot1.ogg', 'sound/effects/footstep/glassbarefoot2.ogg', 'sound/effects/footstep/glassbarefoot3.ogg'), 100, 1), + FOOTSTEP_CATWALK = list(list( + 'sound/effects/footstep/catwalk1.ogg', + 'sound/effects/footstep/catwalk2.ogg', + 'sound/effects/footstep/catwalk3.ogg', + 'sound/effects/footstep/catwalk4.ogg', + 'sound/effects/footstep/catwalk5.ogg'), 100, 1), )) //heavy footsteps list diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index c7aa2acd569..0d10558a264 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -1,6 +1,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( new /datum/stack_recipe("grille", /obj/structure/grille, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor_or_lattice = TRUE), new /datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("catwalk tile", /obj/item/stack/tile/catwalk, 2, 4, 20), null, new /datum/stack_recipe("railing", /obj/structure/railing, 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), new /datum/stack_recipe("railing corner", /obj/structure/railing/corner, 3, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 3168ce2d239..a60ef991b63 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -271,3 +271,20 @@ /obj/item/stack/tile/disco_light/thirty amount = 30 + +/obj/item/stack/tile/catwalk + name = "catwalk tiles" + gender = PLURAL + singular_name = "catwalk tile" + desc = "A catwalk tile. Not rated for space usage." + icon_state = "tile_catwalk" + force = 6 + materials = list(MAT_METAL=500) + throwforce = 10 + throw_speed = 3 + throw_range = 7 + flags = CONDUCT + turf_type = /turf/simulated/floor/catwalk + mineralType = "metal" + armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 100, ACID = 70) + resistance_flags = FIRE_PROOF diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 2900aaa2970..b52126b9a0d 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -209,3 +209,61 @@ icon_state = "reebe" baseturf = /turf/simulated/floor/clockwork/reebe uses_overlay = FALSE + +/turf/simulated/floor/catwalk + name = "catwalk" + desc = "A catwalk for easier inspection of cable and pipe installations." + icon = 'icons/turf/floors/catwalk_floor.dmi' + icon_state = "catwalk" + base_icon_state = "catwalk" + baseturf = /turf/simulated/floor/plating + floor_tile = /obj/item/stack/tile/catwalk + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = list(SMOOTH_GROUP_CATWALK, SMOOTH_GROUP_SIMULATED_TURFS) + canSmoothWith = list(SMOOTH_GROUP_CATWALK) + footstep = FOOTSTEP_CATWALK + barefootstep = FOOTSTEP_CATWALK + clawfootstep = FOOTSTEP_CATWALK + keep_dir = FALSE + intact = FALSE + transparent_floor = TRUE + +/turf/simulated/floor/catwalk/Initialize(mapload) + . = ..() + var/image/I = image('icons/turf/floors/plating.dmi', src, "plating") + I.layer = PLATING_LAYER + underlays += I + dir = SOUTH //dirs that are not 2/south cause smoothing jank + icon_state = "" //Prevents default icon appearing behind the catwalk + +/turf/simulated/floor/catwalk/crowbar_act(mob/user, obj/item/I) + . = TRUE + if(!I.use_tool(src, user, 0, volume = I.tool_volume)) + return + pry_tile(I, user, TRUE) + +/turf/simulated/floor/transparent/glass/can_lay_cable() + return FALSE // Pry the catwalk up if you want to apply cables underneath + +/turf/simulated/floor/catwalk/ex_act(severity) + if(is_shielded()) + return + switch(severity) + if(1.0) + ChangeTurf(baseturf) + if(2.0) + switch(pick(1,2;75,3)) + if(1) + spawn(0) + ReplaceWithLattice() + if(prob(33)) new /obj/item/stack/rods(src) + if(2) + ChangeTurf(baseturf) + if(3) + break_tile_to_plating() + hotspot_expose(1000,CELL_VOLUME) + if(prob(33)) new /obj/item/stack/rods(src) + if(3.0) + if(prob(50)) + break_tile_to_plating() + hotspot_expose(1000,CELL_VOLUME) diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 4606450b6e9..b2da17065ef 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -64,7 +64,7 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - ChangeTurf(W.turf_type) + ChangeTurf(W.turf_type, keep_icon = FALSE) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index f088426c1a5..4168f09ab9b 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/turf/floors/catwalk_floor.dmi b/icons/turf/floors/catwalk_floor.dmi new file mode 100644 index 00000000000..75b0b64564b Binary files /dev/null and b/icons/turf/floors/catwalk_floor.dmi differ