From ab5e86d9331189b30d830a16822146bda07c522c Mon Sep 17 00:00:00 2001 From: Rhials Date: Mon, 24 Apr 2023 01:53:19 -0400 Subject: [PATCH] Minor Major Space Dust update, Dust Stormfront station trait (#74901) ## About The Pull Request This makes three changes regarding the Major Space Dust event. The first reverts it back to a meteor_wave subtype (rather than a space_dust subtype), a choice I made in #69866 that feels really stupid in retrospect. The second set of changes pertain to the event's numbers. It increases the weight (8 -> 14) and reduces the earliest_start time (25 MINUTES -> 15 MINUTES). The announce_chance has been reduced (100 -> 85), and there are a few more announcement messages in the pool. Lastly, this adds a quick random_event_weight_modifier station trait that makes the Major Space Dust more common. Let's hope it doesn't scratch the hull! This also removes an outdated comment from the revolutionary fervor station trait, because I was near it. ## Why It's Good For The Game It's way more sane to handle this event as a meteor_wave. It walks and talks like a meteor wave, why shouldn't it be one? Major Space Dust works as a nice fluff event. It's low-impact and might give engineering something to fix every now and then. It's not particularly special either, so I don't think it would hurt to make the event bit more frequent. New station trait for people (presumably engineering players) to work around. ## Changelog :cl: Rhials add: New event weight station trait -- Dust Stormfront. balance: Space Weather Forecast -- Expect more frequent Major Space Dust storms in the foreseeable future. code: The Major Space Dust event is once again returned to being a meteor_wave event instead of a Space Dust subtype. /:cl: --- code/datums/station_traits/negative_traits.dm | 11 +++++- code/modules/events/dust.dm | 32 ---------------- .../events/meteors/meteor_wave_events.dm | 38 +++++++++++++++++++ 3 files changed, 48 insertions(+), 33 deletions(-) diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index a328506bb959d..3f8f95637a06a 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -282,6 +282,16 @@ weight_multiplier = 1.5 max_occurrences_modifier = 2 +/datum/station_trait/random_event_weight_modifier/dust_storms + name = "Dust Stormfront" + report_message = "The space around your station is clouded by heavy pockets of space dust. Expect an increased likelyhood of space dust storms damaging the station hull." + trait_type = STATION_TRAIT_NEGATIVE + trait_flags = NONE + weight = 2 + event_control_path = /datum/round_event_control/meteor_wave/dust_storm + weight_multiplier = 2 + max_occurrences_modifier = 3 + /datum/station_trait/cramped_escape_pods name = "Cramped Escape Pods" trait_type = STATION_TRAIT_NEGATIVE @@ -291,7 +301,6 @@ trait_to_give = STATION_TRAIT_SMALLER_PODS blacklist = list(/datum/station_trait/luxury_escape_pods) -///A special trait, used only for when a revolution was won in the previous round. See /obj/effect/mapping_helpers/revolution_trash for more information. /datum/station_trait/revolutionary_trashing name = "Post-Revolutionary Fervor" show_in_report = TRUE diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index c12b86d5803c3..e22b5e81bfd84 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -17,35 +17,3 @@ /datum/round_event/space_dust/start() spawn_meteors(1, GLOB.meteors_dust) -/datum/round_event_control/space_dust/major_dust - name = "Space Dust: Major" - typepath = /datum/round_event/space_dust/major_dust - weight = 8 - description = "The station is pelted by sand." - min_players = 15 - max_occurrences = 3 - earliest_start = 25 MINUTES - category = EVENT_CATEGORY_SPACE - min_wizard_trigger_potency = 4 - max_wizard_trigger_potency = 7 - -/datum/round_event/space_dust/major_dust - start_when = 6 - end_when = 66 - announce_when = 1 - -/datum/round_event/space_dust/major_dust/announce(fake) - var/reason = pick( - "The station is passing through a debris cloud, expect minor damage \ - to external fittings and fixtures.", - "Nanotrasen Superweapons Division is testing a new prototype \ - [pick("field","projection","nova","super-colliding","reactive")] \ - [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \ - some mild debris is expected.", - "A neighbouring station is throwing rocks at you. (Perhaps they've \ - grown tired of your messages.)") - priority_announce(pick(reason), "Collision Alert") - -/datum/round_event/space_dust/major_dust/tick() - if(ISMULTIPLE(activeFor, 3)) - spawn_meteors(5, GLOB.meteors_dust) diff --git a/code/modules/events/meteors/meteor_wave_events.dm b/code/modules/events/meteors/meteor_wave_events.dm index fd58913140fba..8a43af74601ad 100644 --- a/code/modules/events/meteors/meteor_wave_events.dm +++ b/code/modules/events/meteors/meteor_wave_events.dm @@ -92,3 +92,41 @@ /datum/round_event/meteor_wave/meaty/announce(fake) priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.", ANNOUNCER_METEORS) + +/datum/round_event_control/meteor_wave/dust_storm + name = "Major Space Dust" + typepath = /datum/round_event/meteor_wave/dust_storm + weight = 14 + description = "The station is pelted by sand." + earliest_start = 15 MINUTES + min_wizard_trigger_potency = 4 + max_wizard_trigger_potency = 7 + +/datum/round_event/meteor_wave/dust_storm + announce_chance = 85 + wave_name = "space dust" + +/datum/round_event/meteor_wave/dust_storm/announce(fake) + var/list/reasons = list() + + reasons += "[station_name()] is passing through a debris cloud, expect minor damage \ + to external fittings and fixtures." + + reasons += "Nanotrasen Superweapons Division is testing a new prototype \ + [pick("field","projection","nova","super-colliding","reactive")] \ + [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \ + some mild debris is expected." + + reasons += "A neighbouring station is throwing rocks at you. (Perhaps they've \ + grown tired of your messages.)" + + reasons += "[station_name()]'s orbit is passing through a cloud of remnants from an asteroid \ + mining operation. Minor hull damage is to be expected." + + reasons += "A large meteoroid on intercept course with [station_name()] has been demolished. \ + Residual debris may impact the station exterior." + + reasons += "[station_name()] has hit a particularly rough patch of space. \ + Please mind any turbulence or damage from debris." + + priority_announce(pick(reasons), "Collision Alert")