diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 60157c1ee86..ca2a71e7e0c 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -26,9 +26,10 @@ var/list/flooring_types var/name = "floor" var/desc var/icon - var/icon_base + var/icon_base // initial base icon_state without edges or corners. - var/has_base_range + var/has_base_range // This will pick between a range of 0 - x. Number icon_states accordingly. + // Note that this will append a 0 - x number automatically to icon_base, but NOT the dmi. Do icon_base = "grass", but name grass0 inside the dmi. etc etc. var/has_damage_range var/has_burn_range var/damage_temperature @@ -42,17 +43,69 @@ var/list/flooring_types var/descriptor = "tiles" var/flags var/can_paint - var/list/footstep_sounds = list() // key=species name, value = list of soundss + var/list/footstep_sounds = list() // key=species name, value = list of sounds, + // For instance, footstep_sounds = list("key" = list(sound.ogg)) /decl/flooring/grass name = "grass" desc = "Do they smoke grass out in space, Bowie? Or do they smoke AstroTurf?" icon = 'icons/turf/flooring/grass.dmi' icon_base = "grass" - has_base_range = 3 + has_base_range = 1 damage_temperature = T0C+80 flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL build_type = /obj/item/stack/tile/grass + footstep_sounds = list("human" = list( + 'sound/effects/footstep/grass1.ogg', + 'sound/effects/footstep/grass2.ogg', + 'sound/effects/footstep/grass3.ogg', + 'sound/effects/footstep/grass4.ogg')) + +/decl/flooring/grass/sif // Subtype for Sif's grass. + name = "growth" + desc = "A natural moss that has adapted to the sheer cold climate." + icon = 'icons/turf/outdoors.dmi' + icon_base = "grass_sif" + has_base_range = 1 + +/decl/flooring/water + name = "water" + desc = "Water is wet, gosh, who knew!" + icon = 'icons/turf/outdoors.dmi' + icon_base = "seashallow" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg')) + +/decl/flooring/sand + name = "sand" + desc = "I don't like sand. It's coarse and rough and irritating and it gets everywhere." + icon = 'icons/misc/beach.dmi' + icon_base = "sand" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/HeavySand1.ogg', + 'sound/effects/footstep/HeavySand2.ogg', + 'sound/effects/footstep/HeavySand3.ogg', + 'sound/effects/footstep/HeavySand4.ogg')) + +/decl/flooring/sand/desert // Subtype of sand, desert. + name = "desert" + desc = "I don't like sand. It's coarse and rough and irritating and it gets everywhere." + icon = 'icons/turf/desert.dmi' + icon_base = "desert" + +/decl/flooring/mud + name = "mud" + desc = "STICKY AND WET!" + icon = 'icons/turf/outdoors.dmi' + icon_base = "mud_dark" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/mud1.ogg', + 'sound/effects/footstep/mud2.ogg', + 'sound/effects/footstep/mud3.ogg', + 'sound/effects/footstep/mud4.ogg')) /decl/flooring/asteroid name = "coarse sand" @@ -61,6 +114,26 @@ var/list/flooring_types icon_base = "asteroid" flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL build_type = null + footstep_sounds = list("human" = list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg')) + +/decl/flooring/dirt + name = "dirt" + desc = "Gritty and unpleasant, just like dirt." + icon = 'icons/turf/outdoors.dmi' + icon_base = "dirt-dark" + flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL + build_type = null + footstep_sounds = list("human" = list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg')) /decl/flooring/snow name = "snow" @@ -315,6 +388,12 @@ var/list/flooring_types apply_thermal_conductivity = 0.025 apply_heat_capacity = 325000 can_paint = 1 + footstep_sounds = list("human" = list( + 'sound/effects/footstep/hull1.ogg', + 'sound/effects/footstep/hull2.ogg', + 'sound/effects/footstep/hull3.ogg', + 'sound/effects/footstep/hull4.ogg', + 'sound/effects/footstep/hull5.ogg')) /decl/flooring/reinforced/circuit name = "processing strata" @@ -337,3 +416,13 @@ var/list/flooring_types has_damage_range = 6 flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK can_paint = null + +/decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow. + name = "lava" + desc = "Lava. Y'know. Sets you on fire. AAAAAAAAAAA" + icon = 'icons/turf/outdoors.dmi' + icon_base = "lava" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg')) \ No newline at end of file diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 591ea77a6f7..0a43992b736 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -386,6 +386,7 @@ name = "snow" icon = 'icons/turf/snow_new.dmi' icon_state = "snow" + initial_flooring = /decl/flooring/snow var/list/crossed_dirs = list() /turf/simulated/floor/snow/snow2 diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 01ad912b70e..902c38c16af 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -13,6 +13,7 @@ movement_cost = 2 can_build_into_floor = TRUE can_dirty = FALSE + initial_flooring = /decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow. /turf/simulated/floor/lava/outdoors outdoors = TRUE diff --git a/code/game/turfs/simulated/outdoors/dirt.dm b/code/game/turfs/simulated/outdoors/dirt.dm index 4d142050726..58e1db49515 100644 --- a/code/game/turfs/simulated/outdoors/dirt.dm +++ b/code/game/turfs/simulated/outdoors/dirt.dm @@ -1,6 +1,7 @@ -/turf/simulated/floor/outdoors/dirt - name = "dirt" - desc = "Quite dirty!" - icon_state = "dirt-dark" - edge_blending_priority = 2 - turf_layers = list(/turf/simulated/floor/outdoors/rocks) \ No newline at end of file +/turf/simulated/floor/outdoors/dirt + name = "dirt" + desc = "Quite dirty!" + icon_state = "dirt-dark" + edge_blending_priority = 2 + turf_layers = list(/turf/simulated/floor/outdoors/rocks) + initial_flooring = /decl/flooring/asteroid \ No newline at end of file diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm index 553b4858bba..049cb826186 100644 --- a/code/game/turfs/simulated/outdoors/grass.dm +++ b/code/game/turfs/simulated/outdoors/grass.dm @@ -4,8 +4,9 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/grass name = "grass" - icon_state = "grass" + icon_state = "grass0" edge_blending_priority = 4 + initial_flooring = /decl/flooring/grass turf_layers = list( /turf/simulated/floor/outdoors/rocks, /turf/simulated/floor/outdoors/dirt @@ -34,7 +35,8 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/grass/sif name = "growth" - icon_state = "grass_sif" + icon_state = "grass_sif0" + initial_flooring = /decl/flooring/grass/sif edge_blending_priority = 4 grass_chance = 5 var/tree_chance = 2 @@ -63,10 +65,6 @@ var/list/grass_types = list( . = ..() /turf/simulated/floor/outdoors/grass/Initialize() - if(prob(50)) - icon_state = "[initial(icon_state)]2" - //edge_blending_priority++ - if(grass_chance && prob(grass_chance) && !check_density()) var/grass_type = pickweight(grass_types) new grass_type(src) @@ -79,14 +77,14 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/grass/forest name = "thick grass" - icon_state = "grass-dark" + icon_state = "grass-dark0" grass_chance = 80 //tree_chance = 20 edge_blending_priority = 5 /turf/simulated/floor/outdoors/grass/sif/forest name = "thick growth" - icon_state = "grass_sif_dark" + icon_state = "grass_sif_dark0" edge_blending_priority = 5 tree_chance = 10 grass_chance = 0 diff --git a/code/game/turfs/simulated/outdoors/outdoors.dm b/code/game/turfs/simulated/outdoors/outdoors.dm index 7bef49cd495..bbc71d536bc 100644 --- a/code/game/turfs/simulated/outdoors/outdoors.dm +++ b/code/game/turfs/simulated/outdoors/outdoors.dm @@ -81,6 +81,7 @@ var/list/turf_edge_cache = list() name = "mud" icon_state = "mud_dark" edge_blending_priority = 3 + initial_flooring = /decl/flooring/mud /turf/simulated/floor/outdoors/rocks name = "rocks" diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index 2068bd2e356..0093f848496 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -20,6 +20,8 @@ /turf/simulated/floor/water/Initialize() . = ..() + var/decl/flooring/F = get_flooring_data(/decl/flooring/water) + footstep_sounds = F?.footstep_sounds update_icon() handle_fish() diff --git a/code/game/turfs/unsimulated/beach.dm b/code/game/turfs/unsimulated/beach.dm index 056facb60ce..c5338b3db96 100644 --- a/code/game/turfs/unsimulated/beach.dm +++ b/code/game/turfs/unsimulated/beach.dm @@ -15,6 +15,7 @@ name = "Water" icon_state = "water" initialized = FALSE + movement_cost = 4 // Water should slow you down, just like simulated turf. /turf/unsimulated/beach/water/Initialize() . = ..() @@ -23,20 +24,17 @@ /turf/simulated/floor/beach name = "Beach" icon = 'icons/misc/beach.dmi' - footstep_sounds = list("human" = list( - 'sound/effects/footstep/carpet1.ogg', - 'sound/effects/footstep/carpet2.ogg', - 'sound/effects/footstep/carpet3.ogg', - 'sound/effects/footstep/carpet4.ogg', - 'sound/effects/footstep/carpet5.ogg')) + initial_flooring = /decl/flooring/sand /turf/simulated/floor/beach/sand name = "Sand" icon_state = "sand" + initial_flooring = /decl/flooring/sand /turf/simulated/floor/beach/sand/desert icon = 'icons/turf/desert.dmi' icon_state = "desert" + initial_flooring = /decl/flooring/sand/desert /turf/simulated/floor/beach/sand/desert/Initialize() . = ..() @@ -51,10 +49,24 @@ /turf/simulated/floor/beach/water name = "Water" icon_state = "water" + movement_cost = 4 // Water should slow you down, just like the original simulated turf. + initial_flooring = /decl/flooring/water /turf/simulated/floor/beach/water/ocean icon_state = "seadeep" + movement_cost = 8 // Deep water should be difficult to wade through. + initial_flooring = /decl/flooring/water/beach/deep /turf/simulated/floor/beach/water/Initialize() . = ..() add_overlay(image("icon"='icons/misc/beach.dmi',"icon_state"="water5","layer"=MOB_LAYER+0.1)) + +/decl/flooring/water/beach/deep // We're custom-defining a 'deep' water turf for the beach. + name = "deep water" + desc = "Deep Ocean Water" + icon = 'icons/misc/beach.dmi' + icon_base = "seadeep" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/bubbles3.ogg', // No I don't get why it's named 3/4/5 either. Whatever. + 'sound/effects/footstep/bubbles4.ogg', + 'sound/effects/footstep/bubbles5.ogg')) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index e9c7f5db269..8d6f5ed991b 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -154,6 +154,8 @@ turf/simulated/mineral/floor/light_corner if(random_icon) dir = pick(alldirs) . = INITIALIZE_HINT_LATELOAD + var/decl/flooring/F = get_flooring_data(/decl/flooring/sand) + footstep_sounds = F?.footstep_sounds /turf/simulated/mineral/LateInitialize() if(density && mineral) diff --git a/icons/turf/outdoors.dmi b/icons/turf/outdoors.dmi index b8af78d9867..8bcc4308f6e 100644 Binary files a/icons/turf/outdoors.dmi and b/icons/turf/outdoors.dmi differ diff --git a/sound/effects/footstep/HeavySand1.ogg b/sound/effects/footstep/HeavySand1.ogg new file mode 100644 index 00000000000..68be7bed250 Binary files /dev/null and b/sound/effects/footstep/HeavySand1.ogg differ diff --git a/sound/effects/footstep/HeavySand2.ogg b/sound/effects/footstep/HeavySand2.ogg new file mode 100644 index 00000000000..6a32465a5ba Binary files /dev/null and b/sound/effects/footstep/HeavySand2.ogg differ diff --git a/sound/effects/footstep/HeavySand3.ogg b/sound/effects/footstep/HeavySand3.ogg new file mode 100644 index 00000000000..c71a89cea29 Binary files /dev/null and b/sound/effects/footstep/HeavySand3.ogg differ diff --git a/sound/effects/footstep/HeavySand4.ogg b/sound/effects/footstep/HeavySand4.ogg new file mode 100644 index 00000000000..088519fb758 Binary files /dev/null and b/sound/effects/footstep/HeavySand4.ogg differ diff --git a/sound/effects/footstep/LightDirt2.ogg b/sound/effects/footstep/LightDirt2.ogg new file mode 100644 index 00000000000..324fd823705 Binary files /dev/null and b/sound/effects/footstep/LightDirt2.ogg differ diff --git a/sound/effects/footstep/LightDirt4.ogg b/sound/effects/footstep/LightDirt4.ogg new file mode 100644 index 00000000000..8a72738b216 Binary files /dev/null and b/sound/effects/footstep/LightDirt4.ogg differ diff --git a/sound/effects/footstep/LightStone1.ogg b/sound/effects/footstep/LightStone1.ogg new file mode 100644 index 00000000000..a61d3ccfa2c Binary files /dev/null and b/sound/effects/footstep/LightStone1.ogg differ diff --git a/sound/effects/footstep/LightStone2.ogg b/sound/effects/footstep/LightStone2.ogg new file mode 100644 index 00000000000..3409c1f4d8d Binary files /dev/null and b/sound/effects/footstep/LightStone2.ogg differ diff --git a/sound/effects/footstep/LightStone3.ogg b/sound/effects/footstep/LightStone3.ogg new file mode 100644 index 00000000000..e0843c62af0 Binary files /dev/null and b/sound/effects/footstep/LightStone3.ogg differ diff --git a/sound/effects/footstep/LightStone4.ogg b/sound/effects/footstep/LightStone4.ogg new file mode 100644 index 00000000000..b262be5f8e9 Binary files /dev/null and b/sound/effects/footstep/LightStone4.ogg differ diff --git a/sound/effects/footstep/MedDirt1.ogg b/sound/effects/footstep/MedDirt1.ogg new file mode 100644 index 00000000000..8951c4580a9 Binary files /dev/null and b/sound/effects/footstep/MedDirt1.ogg differ diff --git a/sound/effects/footstep/MedDirt2.ogg b/sound/effects/footstep/MedDirt2.ogg new file mode 100644 index 00000000000..7fee392796c Binary files /dev/null and b/sound/effects/footstep/MedDirt2.ogg differ diff --git a/sound/effects/footstep/MedDirt3.ogg b/sound/effects/footstep/MedDirt3.ogg new file mode 100644 index 00000000000..141c542f0ac Binary files /dev/null and b/sound/effects/footstep/MedDirt3.ogg differ diff --git a/sound/effects/footstep/MedDirt4.ogg b/sound/effects/footstep/MedDirt4.ogg new file mode 100644 index 00000000000..7b980e6e31a Binary files /dev/null and b/sound/effects/footstep/MedDirt4.ogg differ diff --git a/sound/effects/footstep/bubbles3.ogg b/sound/effects/footstep/bubbles3.ogg new file mode 100644 index 00000000000..62070813e3c Binary files /dev/null and b/sound/effects/footstep/bubbles3.ogg differ diff --git a/sound/effects/footstep/bubbles4.ogg b/sound/effects/footstep/bubbles4.ogg new file mode 100644 index 00000000000..f94889c0606 Binary files /dev/null and b/sound/effects/footstep/bubbles4.ogg differ diff --git a/sound/effects/footstep/bubbles5.ogg b/sound/effects/footstep/bubbles5.ogg new file mode 100644 index 00000000000..43eff291935 Binary files /dev/null and b/sound/effects/footstep/bubbles5.ogg differ diff --git a/sound/effects/footstep/mud1.ogg b/sound/effects/footstep/mud1.ogg new file mode 100644 index 00000000000..c0f5276e41c Binary files /dev/null and b/sound/effects/footstep/mud1.ogg differ diff --git a/sound/effects/footstep/mud2.ogg b/sound/effects/footstep/mud2.ogg new file mode 100644 index 00000000000..36b311a2de4 Binary files /dev/null and b/sound/effects/footstep/mud2.ogg differ diff --git a/sound/effects/footstep/mud3.ogg b/sound/effects/footstep/mud3.ogg new file mode 100644 index 00000000000..e44c7d05f35 Binary files /dev/null and b/sound/effects/footstep/mud3.ogg differ diff --git a/sound/effects/footstep/mud4.ogg b/sound/effects/footstep/mud4.ogg new file mode 100644 index 00000000000..158158125d2 Binary files /dev/null and b/sound/effects/footstep/mud4.ogg differ