From 5fd1bea8f8852db1da5cc5dae53832ad0d0d73c4 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Tue, 25 Jul 2023 19:26:22 +0200 Subject: [PATCH] [MIRROR] [NO-GBP] Optimizes rad nebula [MDB IGNORE] (#22675) * [NO-GBP] Optimizes rad nebula (#77014) Switches rad nebula to only directly irradiate carbons and use radiated component * [NO-GBP] Optimizes rad nebula --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> --- code/__DEFINES/alerts.dm | 1 + .../signals_atom/signals_atom_movable.dm | 2 + code/__DEFINES/radiation.dm | 12 ++- .../datums/components/radioactive_exposure.dm | 78 ++++++++++++++++++ code/datums/elements/radioactive.dm | 14 ++-- code/datums/station_traits/negative_traits.dm | 29 ++++--- .../weather/weather_types/radiation_storm.dm | 26 ++++-- code/game/area/areas.dm | 1 + icons/hud/screen_alert.dmi | Bin 134681 -> 135427 bytes tgstation.dme | 1 + 10 files changed, 138 insertions(+), 26 deletions(-) create mode 100644 code/datums/components/radioactive_exposure.dm diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm index d309ebd8d2e..43ec8199d0f 100644 --- a/code/__DEFINES/alerts.dm +++ b/code/__DEFINES/alerts.dm @@ -23,6 +23,7 @@ #define ALERT_IRRADIATED "irradiated" #define ALERT_EMBEDDED_OBJECT "embeddedobject" #define ALERT_SHOES_KNOT "shoealert" +#define ALERT_RADIOACTIVE_AREA "radioactive_area" //antag related #define ALERT_HYPNOSIS "hypnosis" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index f5975008a16..5e6d7491d94 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -112,3 +112,5 @@ /// From /datum/element/immerse/proc/add_submerge_overlay(): (visual_overlay) #define COMSIG_MOVABLE_EDIT_UNIQUE_IMMERSE_OVERLAY "movable_edit_unique_submerge_overlay" +/// From base of area/Exited(): (area/left, direction) +#define COMSIG_MOVABLE_EXITED_AREA "movable_exited_area" diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm index 2ab5860763a..0d44b072a09 100644 --- a/code/__DEFINES/radiation.dm +++ b/code/__DEFINES/radiation.dm @@ -43,7 +43,7 @@ Ask Mothblocks if they're around /// The minimum exposure time before uranium structures can irradiate #define URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME (3 SECONDS) /// The minimum exposure time before the radioactive nebula can irradiate -#define NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME (10 SECONDS) +#define NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME (6 SECONDS) /// Return values of [proc/get_perceived_radiation_danger] // If you change these, update /datum/looping_sound/geiger as well. @@ -54,3 +54,13 @@ Ask Mothblocks if they're around /// The time before geiger counters reset back to normal without any radiation pulses #define TIME_WITHOUT_RADIATION_BEFORE_RESET (5 SECONDS) + +// Radiation exposure params + +// For the radioactive nebula outside +/// Base chance the nebula has of applying irradiation +#define RADIATION_EXPOSURE_NEBULA_BASE_CHANCE 20 +/// The chance we add to the base chance every time we fail to irradiate +#define RADIATION_EXPOSURE_NEBULA_CHANCE_INCREMENT 10 +/// Time it takes for the next irradiation check +#define RADIATION_EXPOSURE_NEBULA_CHECK_INTERVAL 5 SECONDS diff --git a/code/datums/components/radioactive_exposure.dm b/code/datums/components/radioactive_exposure.dm new file mode 100644 index 00000000000..0819b46f7df --- /dev/null +++ b/code/datums/components/radioactive_exposure.dm @@ -0,0 +1,78 @@ +/// For directly applying to carbons to irradiate them, without pulses +/datum/component/radioactive_exposure + dupe_mode = COMPONENT_DUPE_ALLOWED + + /// Base irradiation chance + var/irradiation_chance_base + /// Chance we have of applying irradiation + var/irradiation_chance + /// The amount the base chance is increased after every failed irradiation check + var/irradiation_chance_increment + /// Time till we attempt the next irradiation check + var/irradiation_interval + /// The source of irradiation, for logging + var/source + /// Area's where the component isnt removed if we cross to them + var/list/radioactive_areas + +/datum/component/radioactive_exposure/Initialize( + minimum_exposure_time, + irradiation_chance_base, + irradiation_chance_increment, + irradiation_interval, + source, + radioactive_areas + ) + + if(!iscarbon(parent)) + return COMPONENT_INCOMPATIBLE + + src.irradiation_chance_base = irradiation_chance_base + src.irradiation_chance = irradiation_chance_base + src.irradiation_chance_increment = irradiation_chance_increment + src.irradiation_interval = irradiation_interval + src.source = source + src.radioactive_areas = radioactive_areas + + // We use generally long times, so it's probably easier and more interpretable to just use a timer instead of processing the component + addtimer(CALLBACK(src, PROC_REF(attempt_irradiate)), minimum_exposure_time) + + RegisterSignal(parent, COMSIG_MOVABLE_EXITED_AREA, PROC_REF(on_exited)) + + var/mob/living/living_parent = parent + living_parent.throw_alert(ALERT_RADIOACTIVE_AREA, /atom/movable/screen/alert/radioactive_area) + +/// Try and irradiate them. If we chance fail, we come back harder +/datum/component/radioactive_exposure/proc/attempt_irradiate() + if(!SSradiation.wearing_rad_protected_clothing(parent) && SSradiation.can_irradiate_basic(parent)) + if(prob(irradiation_chance)) + SSradiation.irradiate(parent) + var/atom/atom = parent + atom.investigate_log("was irradiated by [source].", INVESTIGATE_RADIATION) + else + irradiation_chance += irradiation_chance_increment + else // we're immune, either through species, clothing, already being irradiated, etcetera + // we slowly decrease the prob chance untill we hit the base probability again + irradiation_chance = max(irradiation_chance - irradiation_chance_increment, irradiation_chance_base) + + // Even if they are immune, or got irradiated plan a new check in-case they lose their protection or irradiation + addtimer(CALLBACK(src, PROC_REF(attempt_irradiate)), irradiation_interval) + +/datum/component/radioactive_exposure/proc/on_exited(atom/movable/also_parent, area/old_area, direction) + SIGNAL_HANDLER + + if(istype(get_area(parent), radioactive_areas)) //we left to another area that is also radioactive, so dont do anything + return + + qdel(src) + +/datum/component/radioactive_exposure/Destroy(force, silent) + var/mob/living/carbon/human/human_parent = parent + human_parent.clear_alert(ALERT_RADIOACTIVE_AREA) + + return ..() + +/atom/movable/screen/alert/radioactive_area + name = "Radioactive Area" + desc = "This place is no good! We need to get some protection or get out fast!" + icon_state = ALERT_RADIOACTIVE_AREA diff --git a/code/datums/elements/radioactive.dm b/code/datums/elements/radioactive.dm index c949692930c..1ce915747aa 100644 --- a/code/datums/elements/radioactive.dm +++ b/code/datums/elements/radioactive.dm @@ -18,13 +18,13 @@ /datum/element/radioactive/New() START_PROCESSING(SSdcs, src) -/datum/element/radioactive/Attach(\ - datum/target, \ - range = 3, \ - threshold = RAD_LIGHT_INSULATION, \ - chance = URANIUM_IRRADIATION_CHANCE, \ - minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME,\ -) +/datum/element/radioactive/Attach( + datum/target, + range = 3, + threshold = RAD_LIGHT_INSULATION, + chance = URANIUM_IRRADIATION_CHANCE, + minimum_exposure_time = URANIUM_RADIATION_MINIMUM_EXPOSURE_TIME, + ) . = ..() diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index 9edbb68046d..f2417eade98 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -545,11 +545,13 @@ VAR_PROTECTED/send_care_package_time = 5 MINUTES ///The glow of 'fake' radioactive objects in space var/nebula_radglow = "#66ff33" + /// Area's that are part of the radioactive nebula + var/radioactive_areas = /area/space /datum/station_trait/nebula/hostile/radiation/New() . = ..() - for(var/area/target as anything in get_areas(/area/space)) + for(var/area/target as anything in get_areas(radioactive_areas)) RegisterSignals(target, list(COMSIG_AREA_ENTERED, COMSIG_AREA_INITIALIZED_IN), PROC_REF(on_entered)) RegisterSignal(target, COMSIG_AREA_EXITED, PROC_REF(on_exited)) @@ -574,25 +576,32 @@ var/datum/round_event_control/modified_event = locate(/datum/round_event_control/radiation_storm) in SSevents.control modified_event.weight = 0 -///They entered space? START BOMBING WITH RADS HAHAHAHA -/datum/station_trait/nebula/hostile/radiation/proc/on_entered(area/space, atom/movable/enterer) +///They entered space? START BOMBING WITH RADS HAHAHAHA. old_area can be null for new objects +/datum/station_trait/nebula/hostile/radiation/proc/on_entered(area/space, atom/movable/enterer, area/old_area) SIGNAL_HANDLER - if(!ismovable(enterer)) - return + if(iscarbon(enterer))//Don't actually make EVERY. SINGLE. THING. RADIOACTIVE. Just irradiate people + if(!istype(old_area, radioactive_areas)) //old area wasnt radioactive + enterer.AddComponent( \ + /datum/component/radioactive_exposure, \ + minimum_exposure_time = NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME, \ + irradiation_chance_base = RADIATION_EXPOSURE_NEBULA_BASE_CHANCE, \ + irradiation_chance_increment = RADIATION_EXPOSURE_NEBULA_CHANCE_INCREMENT, \ + irradiation_interval = RADIATION_EXPOSURE_NEBULA_CHECK_INTERVAL, \ + source = src, \ + radioactive_areas = radioactive_areas, \ + ) - enterer.AddElement(/datum/element/radioactive, range = 0, minimum_exposure_time = NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME) - //Don't actually make EVERY. SINGLE. THING. radioactive, just make them glow so people arent killed instantly - if(!SSradiation.can_irradiate_basic(enterer)) + else if(isobj(enterer)) //and fake the rest //outline clashes too much with other outlines and creates pretty ugly lines enterer.add_filter(GLOW_NEBULA, 2, list("type" = "drop_shadow", "color" = nebula_radglow, "size" = 2)) ///Called when an atom leaves space, so we can remove the radiation effect -/datum/station_trait/nebula/hostile/radiation/proc/on_exited(area/space, atom/movable/exiter) +/datum/station_trait/nebula/hostile/radiation/proc/on_exited(area/space, atom/movable/exiter, direction) SIGNAL_HANDLER - exiter.RemoveElement(/datum/element/radioactive, range = 0, minimum_exposure_time = NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME) exiter.remove_filter(GLOW_NEBULA) + // The component handles its own removal /datum/station_trait/nebula/hostile/radiation/apply_nebula_effect(effect_strength = 0) //big bombad now diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index 8b61846c1ed..08c88cd65f1 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -24,6 +24,10 @@ target_trait = ZTRAIT_STATION immunity_type = TRAIT_RADSTORM_IMMUNE + /// Chance we get a negative mutation, if we fail we get a positive one + var/negative_mutation_chance = 90 + /// Chance we mutate + var/mutate_chance = 40 /datum/weather/rad_storm/telegraph() ..() @@ -31,7 +35,7 @@ /datum/weather/rad_storm/weather_act(mob/living/L) - if(!prob(40)) + if(!prob(mutate_chance)) return if(!ishuman(L)) @@ -51,11 +55,7 @@ H.random_mutate_unique_features() if(prob(50)) - if(prob(90)) - H.easy_random_mutate(NEGATIVE+MINOR_NEGATIVE) - else - H.easy_random_mutate(POSITIVE) - H.domutcheck() + do_mutate(L) /datum/weather/rad_storm/end() if(..()) @@ -63,6 +63,13 @@ priority_announce("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert", ANNOUNCER_RADIATIONPASSED) //SKYRAT EDIT CHANGE status_alarm(FALSE) +/datum/weather/rad_storm/proc/do_mutate(mob/living/carbon/human/mutant) + if(prob(negative_mutation_chance)) + mutant.easy_random_mutate(NEGATIVE+MINOR_NEGATIVE) + else + mutant.easy_random_mutate(POSITIVE) + mutant.domutcheck() + /datum/weather/rad_storm/proc/status_alarm(active) //Makes the status displays show the radiation warning for those who missed the announcement. var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS) if(!frequency) @@ -88,10 +95,14 @@ end_message = null + mutate_chance = 0.1 + ///Chance we pulse a living during the storm - var/radiation_chance = 20 + var/radiation_chance = 5 /datum/weather/rad_storm/nebula/weather_act(mob/living/living) + ..() + if(!prob(radiation_chance)) return @@ -103,7 +114,6 @@ max_range = 0, threshold = RAD_LIGHT_INSULATION, chance = URANIUM_IRRADIATION_CHANCE, - minimum_exposure_time = NEBULA_RADIATION_MINIMUM_EXPOSURE_TIME, ) /datum/weather/rad_storm/nebula/status_alarm(active) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 893c5e3684e..c4a02ecebbc 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -472,6 +472,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) */ /area/Exited(atom/movable/gone, direction) SEND_SIGNAL(src, COMSIG_AREA_EXITED, gone, direction) + SEND_SIGNAL(gone, COMSIG_MOVABLE_EXITED_AREA, src, direction) if(!gone.important_recursive_contents?[RECURSIVE_CONTENTS_AREA_SENSITIVE]) return diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 78421d72472f84f3fc143077af5cba2fc2e970ce..7cc03330969107579106de22d727578ee5b494e2 100755 GIT binary patch delta 17292 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 delta 16540 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 OhLUA9IB7W{ugn*|O4 diff --git a/tgstation.dme b/tgstation.dme index af15fbf999e..a0b880ad217 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1078,6 +1078,7 @@ #include "code\datums\components\puzzgrid.dm" #include "code\datums\components\radiation_countdown.dm" #include "code\datums\components\radioactive_emitter.dm" +#include "code\datums\components\radioactive_exposure.dm" #include "code\datums\components\reagent_refiller.dm" #include "code\datums\components\redirect_attack_hand_from_turf.dm" #include "code\datums\components\regenerator.dm"