From 6b30f10cce38527841f6fe0a85d78bc05a511ff0 Mon Sep 17 00:00:00 2001 From: Ben <91219575+Ben10083@users.noreply.github.com> Date: Mon, 10 Jun 2024 07:52:44 -0400 Subject: [PATCH] Adds Adhomian Eclipses (#19378) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds Adhomian Eclipses of Shi-rr’ata and Shi-rra Arr’Kahata - [x] Backend code to allow for different 'sunlight' - [x] Add Shi-rr’ata - [x] Add Shi-rra Arr’Kahata - [ ] Find date for Shi-rr’ata (Denied by Cat Lore) --------- Co-authored-by: Ben10083 --- .../gamemodes/events/holidays/holidays.dm | 17 +++- .../maps/planet_types/lore/srandmarr.dm | 15 +++ .../modules/overmap/exoplanets/biomes/snow.dm | 93 +++++++++++++++++++ .../overmap/exoplanets/decor/_turfs.dm | 2 +- code/modules/overmap/exoplanets/exoplanet.dm | 5 +- .../modules/overmap/exoplanets/themes/snow.dm | 26 ++++++ html/changelogs/Ben10083 - Eclipses.yml | 59 ++++++++++++ 7 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 html/changelogs/Ben10083 - Eclipses.yml diff --git a/code/game/gamemodes/events/holidays/holidays.dm b/code/game/gamemodes/events/holidays/holidays.dm index ef126641ea2..071244a6006 100644 --- a/code/game/gamemodes/events/holidays/holidays.dm +++ b/code/game/gamemodes/events/holidays/holidays.dm @@ -155,8 +155,19 @@ var/global/Holiday = null /client/proc/Set_Holiday(T as text|null) set name = "Set Holiday" set category = "Fun" - set desc = "Force-set the Holiday variable to make the game think it's a certain day." - if(!check_rights(R_SERVER)) return + set desc = "Force-set the Holiday variable to make the game think it's a certain day. Set to 'None' to unset the Holiday" + if(!check_rights(R_SERVER)) + return FALSE + + if(!T) + T = tgui_input_text(src, "Type in a holiday below, or type 'None' to unset any holiday", "What Holiday is today?", "") + if(!T) + return FALSE + else if (T == "None") + Holiday = null + message_admins(SPAN_NOTICE("ADMIN: Event: [key_name(src)] unset today's Holiday.")) + log_admin("[key_name(src)] unset today's Holiday",admin_key=key_name(src)) + return TRUE Holiday = T @@ -164,7 +175,7 @@ var/global/Holiday = null message_admins(SPAN_NOTICE("ADMIN: Event: [key_name(src)] force-set Holiday to \"[Holiday]\"")) log_admin("[key_name(src)] force-set Holiday to \"[Holiday]\"",admin_key=key_name(src)) - + return TRUE //Run at the start of a round /proc/Holiday_Game_Start() diff --git a/code/modules/maps/planet_types/lore/srandmarr.dm b/code/modules/maps/planet_types/lore/srandmarr.dm index 83955f175b2..61737dc7b5c 100644 --- a/code/modules/maps/planet_types/lore/srandmarr.dm +++ b/code/modules/maps/planet_types/lore/srandmarr.dm @@ -125,6 +125,9 @@ ground_survey_result = "
High concretation of dense metal in the mantle" // --------------------------------- Adhomai +// NOTE: To trigger Adhomai 'event' (eclipses). Use the set holiday verb to the eclipse name BEFORE this planet is initialized, or have holiday added to holidays.dm +// "Shi-rr’ata" : Messa Eclipse. Lighting changes. +// "Shi-rra Arr’Kahata" : Raskara Eclipse. This makes planet covered in darkness and increases hostile animal spawns (Adhomai Hell) /obj/effect/overmap/visitable/sector/exoplanet/adhomai name = "Adhomai" desc = "The Tajaran homeworld. Adhomai is a cold and icy world, suffering from almost perpetual snowfall and extremely low temperatures." @@ -192,6 +195,12 @@ ruin_type_whitelist = list (/datum/map_template/ruin/exoplanet/north_pole_monolith, /datum/map_template/ruin/exoplanet/north_pole_nka_expedition, /datum/map_template/ruin/exoplanet/north_pole_worm) initial_weather_state = /singleton/state/weather/calm/arctic_planet + if(Holiday == "Shi-rra Arr’Kahata") // Messa weeps. + if(landing_faction != "North Pole") + possible_themes = list(/datum/exoplanet_theme/snow/adhomai/darkest_eclipse) + else + possible_themes = list(/datum/exoplanet_theme/snow/tundra/adhomai/darkest_eclipse) + desc += " The landing sites are located at the [landing_faction]'s territory." /obj/effect/overmap/visitable/sector/exoplanet/adhomai/generate_habitability() @@ -200,6 +209,12 @@ /obj/effect/overmap/visitable/sector/exoplanet/adhomai/generate_map() if(prob(75)) lightlevel = rand(3,10)/10 + switch(Holiday) // Handle eclipses + if("Shi-rr’ata") // Messa Eclipse + lightlevel = 9/10 + lightcolor = COLOR_CYAN + if("Shi-rra Arr’Kahata") //Raskara Eclipse. Board your windows. + lightlevel = 0 ..() /obj/effect/overmap/visitable/sector/exoplanet/adhomai/generate_planet_image() diff --git a/code/modules/overmap/exoplanets/biomes/snow.dm b/code/modules/overmap/exoplanets/biomes/snow.dm index 1297b5c4379..e5adc6aa0a7 100644 --- a/code/modules/overmap/exoplanets/biomes/snow.dm +++ b/code/modules/overmap/exoplanets/biomes/snow.dm @@ -102,6 +102,40 @@ ) ) +/singleton/biome/snow/adhomai/eclipse + spawn_types = list( + PLANET_TURF = list(/turf/simulated/floor/exoplanet/permafrost = 1), + GRASSES = list( + /obj/structure/flora/grass/adhomai = 1 + ), + LARGE_FLORA = list( + /obj/effect/floor_decal/snowdrift/large/random = 1, + /obj/structure/flora/rock/adhomai = 1, + /obj/structure/flora/tree/adhomai = 1 + ), + SMALL_FLORA = list( + /obj/structure/flora/bush/adhomai = 2.5, + /obj/effect/floor_decal/snowdrift/random = 1, + /obj/effect/landmark/exoplanet_spawn/plant = 1 + ), + WILDLIFE = list( + /mob/living/simple_animal/ice_tunneler = 0.5, + /mob/living/simple_animal/ice_tunneler/male = 0.5, + /mob/living/simple_animal/fatshouter = 0.5, + /mob/living/simple_animal/fatshouter/male = 0.5, + /mob/living/simple_animal/hostile/retaliate/rafama = 0.5, + /mob/living/simple_animal/hostile/retaliate/rafama/male = 0.5, + /mob/living/simple_animal/hostile/retaliate/rafama/baby = 0.5, + /mob/living/simple_animal/hostile/wind_devil = 2, // Hope you like wind devils + /mob/living/carbon/human/farwa/adhomai = 0.5, + /mob/living/simple_animal/hostile/harron = 1.5, + /mob/living/simple_animal/climber = 0.5, + /mob/living/simple_animal/snow_strider = 0.3, + /mob/living/simple_animal/nosehorn = 0.1, + /mob/living/simple_animal/hostile/cavern_geist = 0.01 // Something stirs in the darkness... + ) + ) + /singleton/biome/snow/forest/adhomai spawn_types = list( GRASSES = list( @@ -134,6 +168,40 @@ ) ) + +/singleton/biome/snow/forest/adhomai/eclipse + spawn_types = list( + GRASSES = list( + /obj/structure/flora/grass/adhomai = 1 + ), + LARGE_FLORA = list( + /obj/effect/floor_decal/snowdrift/large/random = 1, + /obj/structure/flora/rock/adhomai = 1, + /obj/structure/flora/tree/adhomai = 4 + ), + SMALL_FLORA = list( + /obj/structure/flora/bush/adhomai = 3, + /obj/effect/floor_decal/snowdrift/random = 1, + /obj/effect/landmark/exoplanet_spawn/plant = 2 + ), + WILDLIFE = list( + /mob/living/simple_animal/ice_tunneler = 0.5, + /mob/living/simple_animal/ice_tunneler/male = 0.5, + /mob/living/simple_animal/fatshouter = 0.5, + /mob/living/simple_animal/fatshouter/male = 0.5, + /mob/living/simple_animal/hostile/retaliate/rafama = 0.5, + /mob/living/simple_animal/hostile/retaliate/rafama/male = 0.5, + /mob/living/simple_animal/hostile/retaliate/rafama/baby = 0.5, + /mob/living/simple_animal/hostile/wind_devil = 2, + /mob/living/carbon/human/farwa/adhomai = 0.5, + /mob/living/simple_animal/hostile/harron = 1.5, + /mob/living/simple_animal/climber = 0.5, + /mob/living/simple_animal/snow_strider = 0.3, + /mob/living/simple_animal/nosehorn = 0.1, + /mob/living/simple_animal/hostile/cavern_geist = 0.01 // Something stirs in the darkness... + ) + ) + /singleton/biome/snow/adhomai/polar turf_type = /turf/simulated/floor/exoplanet/snow generators = list( @@ -159,5 +227,30 @@ ) ) +/singleton/biome/snow/adhomai/polar/eclipse + turf_type = /turf/simulated/floor/exoplanet/snow + generators = list( + LARGE_FLORA = list(POISSON_SAMPLE, 6), + SMALL_FLORA = list(POISSON_SAMPLE, 6), + WILDLIFE = list(POISSON_SAMPLE, 20) + ) + spawn_types = list( + LARGE_FLORA = list( + /obj/effect/floor_decal/snowdrift/large/random = 1, + /obj/structure/flora/rock/adhomai = 2, + /obj/structure/flora/rock/ice = 3 + ), + SMALL_FLORA = list( + /obj/structure/geyser = 1, + /obj/effect/floor_decal/snowdrift/random = 1 + ), + WILDLIFE = list( + /mob/living/simple_animal/scavenger = 0.5, + /mob/living/simple_animal/ice_catcher = 0.5, + /mob/living/simple_animal/hostile/plasmageist = 1.2, + /mob/living/simple_animal/hostile/wriggler = 1.2 + ) + ) + /singleton/biome/water/ice/polar turf_type = /turf/simulated/floor/exoplanet/ice/dark diff --git a/code/modules/overmap/exoplanets/decor/_turfs.dm b/code/modules/overmap/exoplanets/decor/_turfs.dm index 72519c34642..355930ea287 100644 --- a/code/modules/overmap/exoplanets/decor/_turfs.dm +++ b/code/modules/overmap/exoplanets/decor/_turfs.dm @@ -28,7 +28,7 @@ initial_gas = list() temperature = T0C //Must be done here, as light data is not fully carried over by ChangeTurf (but overlays are). - set_light(MINIMUM_USEFUL_LIGHT_RANGE, E.lightlevel, COLOR_WHITE) + set_light(MINIMUM_USEFUL_LIGHT_RANGE, E.lightlevel, E.lightcolor) if(E.planetary_area && istype(loc, world.area)) ChangeArea(src, E.planetary_area) // if not on an exoplanet, instead just keep the default or mapped in atmos diff --git a/code/modules/overmap/exoplanets/exoplanet.dm b/code/modules/overmap/exoplanets/exoplanet.dm index 7570d619c41..3b0a5b10ad8 100644 --- a/code/modules/overmap/exoplanets/exoplanet.dm +++ b/code/modules/overmap/exoplanets/exoplanet.dm @@ -10,7 +10,10 @@ var/list/breathgas = list() //list of gases animals/plants require to survive var/badgas //id of gas that is toxic to life here - var/lightlevel = 0 //This default makes turfs not generate light. Adjust to have exoplanents be lit. + /// This default makes turfs not generate light. Adjust to have exoplanents be lit. + var/lightlevel = 0 + /// Change this to have the light be a different color. Useful for planets with special suns + var/lightcolor = COLOR_WHITE var/night = TRUE // Fluff, specifically for celestial objects. diff --git a/code/modules/overmap/exoplanets/themes/snow.dm b/code/modules/overmap/exoplanets/themes/snow.dm index 75916ba3a8a..dd2e21d10fe 100644 --- a/code/modules/overmap/exoplanets/themes/snow.dm +++ b/code/modules/overmap/exoplanets/themes/snow.dm @@ -50,6 +50,19 @@ ) ) +/// Special biome when Raskara blocks the Suns. We will have hostile animals spawn more often +/datum/exoplanet_theme/snow/adhomai/darkest_eclipse + possible_biomes = list( + BIOME_POLAR = list( + BIOME_ARID = /singleton/biome/water/ice, + BIOME_SEMIARID = /singleton/biome/snow/adhomai/eclipse + ), + BIOME_COOL = list( + BIOME_ARID = /singleton/biome/snow/adhomai/eclipse, + BIOME_SEMIARID = /singleton/biome/snow/forest/adhomai/eclipse + ) + ) + /datum/exoplanet_theme/snow/tundra/adhomai name = "Adhomai North Pole" mountain_biome = /singleton/biome/mountain/adhomai @@ -63,3 +76,16 @@ BIOME_SEMIARID = /singleton/biome/snow/adhomai/polar ) ) + +/// Special biome when Raskara blocks the Suns. We will have hostile animals spawn more often +/datum/exoplanet_theme/snow/tundra/adhomai/darkest_eclipse + possible_biomes = list( + BIOME_POLAR = list( + BIOME_ARID = /singleton/biome/water/ice/polar, + BIOME_SEMIARID = /singleton/biome/snow/adhomai/polar/eclipse + ), + BIOME_COOL = list( + BIOME_ARID = /singleton/biome/snow/adhomai/polar/eclipse, + BIOME_SEMIARID = /singleton/biome/snow/adhomai/polar/eclipse + ) + ) diff --git a/html/changelogs/Ben10083 - Eclipses.yml b/html/changelogs/Ben10083 - Eclipses.yml new file mode 100644 index 00000000000..75c9a2ad87b --- /dev/null +++ b/html/changelogs/Ben10083 - Eclipses.yml @@ -0,0 +1,59 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: Ben10083 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adhomian Eclipses Shi-rr’ata and Shi-rra Arr’Kahata added." + - admin: "Set Holiday Verb nows allows user to type in a holiday if not given."