diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index b4a1f11fca5..b403062279d 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -619,6 +619,7 @@ var/list/flooring_types ///// Season Time! ///// VOREStation Addition Start /decl/flooring/grass/seasonal_grass + desc = "It's grass!" icon = 'icons/seasonal/turf.dmi' do_season = TRUE - has_base_range = 3 + has_base_range = 11 diff --git a/code/game/turfs/flooring/seasonal.dm b/code/game/turfs/flooring/seasonal.dm index d716b617c15..96270149c12 100644 --- a/code/game/turfs/flooring/seasonal.dm +++ b/code/game/turfs/flooring/seasonal.dm @@ -18,42 +18,172 @@ var/season /turf/simulated/floor/outdoors/grass/seasonal name = "grass" icon = 'icons/seasonal/turf.dmi' - icon_state = "spring" + icon_state = "s-grass" icon_edge = 'icons/seasonal/turf_edge.dmi' initial_flooring = /decl/flooring/grass/seasonal_grass // initial_flooring = null + grass_types = list() var/static/list/overlays_cache = list() + var/tree_chance = 5 + + var/animal_chance = 0.5 + var/animal_types = list() + + /turf/simulated/floor/outdoors/grass/seasonal/Initialize() if(!season) do_season() + switch(season) + if("spring") + animal_types = list( + /mob/living/simple_mob/vore/alienanimals/teppi = 10, + /mob/living/simple_mob/vore/alienanimals/teppi/mutant = 1, + /mob/living/simple_mob/vore/redpanda = 40, + /mob/living/simple_mob/vore/redpanda/fae = 2, + /mob/living/simple_mob/vore/sheep = 20, + /mob/living/simple_mob/vore/rabbit/black = 20, + /mob/living/simple_mob/vore/rabbit/white = 20, + /mob/living/simple_mob/vore/rabbit/brown = 20, + /mob/living/simple_mob/vore/leopardmander = 2, + /mob/living/simple_mob/vore/horse/big = 10, + /mob/living/simple_mob/vore/bigdragon/friendly = 1, + /mob/living/simple_mob/vore/alienanimals/dustjumper = 20 + ) + grass_types = list( + /obj/structure/flora/ausbushes/sparsegrass, + /obj/structure/flora/ausbushes/fullgrass, + /obj/structure/flora/ausbushes/brflowers, + /obj/structure/flora/ausbushes/genericbush, + /obj/structure/flora/ausbushes/lavendergrass, + /obj/structure/flora/ausbushes/leafybush, + /obj/structure/flora/ausbushes/ppflowers, + /obj/structure/flora/ausbushes/sunnybush, + /obj/structure/flora/ausbushes/ywflowers, + /obj/structure/flora/mushroom + ) + + grass_chance = 30 + if("summer") + animal_types = list( + /mob/living/simple_mob/vore/alienanimals/teppi = 10, + /mob/living/simple_mob/vore/alienanimals/teppi/mutant = 1, + /mob/living/simple_mob/vore/redpanda = 40, + /mob/living/simple_mob/vore/redpanda/fae = 2, + /mob/living/simple_mob/vore/sheep = 20, + /mob/living/simple_mob/vore/rabbit/black = 20, + /mob/living/simple_mob/vore/rabbit/white = 20, + /mob/living/simple_mob/vore/rabbit/brown = 20, + /mob/living/simple_mob/vore/leopardmander = 2, + /mob/living/simple_mob/vore/horse/big = 10, + /mob/living/simple_mob/vore/bigdragon/friendly = 1, + /mob/living/simple_mob/vore/alienanimals/dustjumper = 20 + ) + grass_types = list( + /obj/structure/flora/ausbushes/sparsegrass, + /obj/structure/flora/ausbushes/fullgrass + ) + + if("autumn") + animal_types = list( + /mob/living/simple_mob/vore/alienanimals/teppi = 10, + /mob/living/simple_mob/vore/alienanimals/teppi/mutant = 1, + /mob/living/simple_mob/vore/redpanda = 40, + /mob/living/simple_mob/vore/redpanda/fae = 2, + /mob/living/simple_mob/vore/sheep = 20, + /mob/living/simple_mob/vore/rabbit/black = 20, + /mob/living/simple_mob/vore/rabbit/white = 20, + /mob/living/simple_mob/vore/rabbit/brown = 20, + /mob/living/simple_mob/vore/horse/big = 10, + /mob/living/simple_mob/vore/alienanimals/dustjumper = 20 + ) + grass_types = list( + /obj/structure/flora/ausbushes/sparsegrass, + /obj/structure/flora/pumpkin, + /obj/structure/flora/ausbushes + ) + + grass_chance = 10 + animal_chance = 0.25 + if("winter") + grass_chance = 0 + animal_types = list( + /mob/living/simple_mob/vore/rabbit/white = 40, + /mob/living/simple_mob/vore/alienanimals/teppi = 10, + /mob/living/simple_mob/vore/alienanimals/teppi/mutant = 1, + /mob/living/simple_mob/vore/redpanda = 10 + ) + if(prob(10)) + chill() + return + + grass_types = list( + /obj/structure/flora/grass/both, + /obj/structure/flora/grass/brown, + /obj/structure/flora/grass/green, + /obj/structure/flora/bush + ) + + grass_chance = 1 + animal_chance = 0.1 + + +// if(tree_chance && prob(tree_chance) && !check_density()) +// new /obj/structure/flora/tree/bigtree(src) + + if(animal_chance && prob(animal_chance) && !check_density()) + var/animal_type = pickweight(animal_types) + new animal_type(src) + + + . = ..() + +/turf/simulated/floor/outdoors/grass/seasonal/proc/update_desc() switch(season) if("spring") desc = "Lush green grass, flourishing! Little flowers peek out from between the blades here and there!" - grass_chance = 30 if("summer") desc = "Bright green grass, a little dry in the summer heat!" if("autumn") desc = "Golden grass, it's a little crunchy as it prepares for winter!" - grass_chance = 10 if("winter") desc = "Dry, seemingly dead grass! It's too cold for the grass..." - grass_chance = 0 - return ..() /turf/simulated/floor/outdoors/grass/seasonal/update_icon(update_neighbors) . = ..() - if(prob(33)) - var/cache_key = "[season]-overlay[rand(1,6)]" - if(!overlays_cache[cache_key]) - var/image/I = image(icon = src.icon, icon_state = cache_key, layer = ABOVE_TURF_LAYER) // Icon should be abstracted out - I.plane = TURF_PLANE - overlays_cache[cache_key] = I - add_overlay(overlays_cache[cache_key]) + switch(season) + if("spring") + if(prob(50)) + var/cache_key = "[season]-overlay[rand(1,19)]" + if(!overlays_cache[cache_key]) + var/image/I = image(icon = src.icon, icon_state = cache_key, layer = ABOVE_TURF_LAYER) // Icon should be abstracted out + I.plane = TURF_PLANE + overlays_cache[cache_key] = I + add_overlay(overlays_cache[cache_key]) + if("summer") + if("autumn") + if(prob(33)) + var/cache_key = "[season]-overlay[rand(1,6)]" + if(!overlays_cache[cache_key]) + var/image/I = image(icon = src.icon, icon_state = cache_key, layer = ABOVE_TURF_LAYER) // Icon should be abstracted out + I.plane = TURF_PLANE + overlays_cache[cache_key] = I + add_overlay(overlays_cache[cache_key]) + + if("winter") + update_desc() + +/turf/simulated/floor/outdoors/grass/seasonal/no_trees + tree_chance = 0 +/turf/simulated/floor/outdoors/grass/seasonal/no_mobs + animal_chance = 0 +/turf/simulated/floor/outdoors/grass/seasonal/no_trees_or_mobs + tree_chance = 0 + animal_chance = 0 diff --git a/icons/seasonal/turf.dmi b/icons/seasonal/turf.dmi index ef23db60495..f9c5546f755 100644 Binary files a/icons/seasonal/turf.dmi and b/icons/seasonal/turf.dmi differ diff --git a/icons/seasonal/turf_edge.dmi b/icons/seasonal/turf_edge.dmi index 93e45edd2d2..d9d0b5a48a2 100644 Binary files a/icons/seasonal/turf_edge.dmi and b/icons/seasonal/turf_edge.dmi differ