Radiation refactor (#22158)

# Summary

This PR refactors radiation values and cleans up custom radiation values
without a definition.
This also fixes #22155.

## Changes

- Update ARMOR_RAD_STRONG 75 -> 70, now fits RAD_LEVEL_VERY_HIGH.
- Update radiation level defines:
  - NONE         = 0
  - VERY_LOW     = 1 (old LOW)
  - LOW          = 10
  - MODERATE     = 25
  - HIGH         = 40
  - VERY_HIGH    = 70 (old value was 100)
  - EXTREME      = 100
  - CATASTROPHIC = 120
- Update a couple of rad values to their respective define name (with
minor implicit balancing).
- Remove the super awkward/LRP hairloss with high radiation exposure.
This commit is contained in:
FabianK3
2026-04-09 15:56:45 +00:00
committed by GitHub
parent bd26b28b31
commit 7174467756
13 changed files with 62 additions and 41 deletions
@@ -76,36 +76,44 @@ ABSTRACT_TYPE(/obj/effect/decal/cleanable/greenglow/radioactive)
. += "Characters directly adjacent to or on top of this object will be exposed to <b>[radioactivity] IU/s</b> of radiation. Radiation falls off (approximately) by 75% for every tile away you move."
/obj/effect/decal/cleanable/greenglow/radioactive/low
radioactivity = 20
radioactivity = RAD_LEVEL_LOW
/obj/effect/decal/cleanable/greenglow/radioactive/low/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~5 tiles away from this object."
. += "Geiger counters will start clicking at ~3 tiles away from this object."
. += "Almost all voidsuits, including softsuits, provide sufficient protection to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/medium
radioactivity = 40
radioactivity = RAD_LEVEL_MODERATE
/obj/effect/decal/cleanable/greenglow/radioactive/medium/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~8 tiles away from this object."
. += "Geiger counters will start clicking at ~5 tiles away from this object."
. += "An engineering or atmos voidsuit is necessary to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/high
radioactivity = 80
radioactivity = RAD_LEVEL_HIGH
/obj/effect/decal/cleanable/greenglow/radioactive/high/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~10 tiles away from this object."
. += "Geiger counters will start clicking at ~7 tiles away from this object."
. += "A radsuit is necessary to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/very_high
radioactivity = RAD_LEVEL_VERY_HIGH
/obj/effect/decal/cleanable/greenglow/radioactive/very_high/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~11 tiles away from this object."
. += "A radsuit is necessary to move safely adjacent to it."
/obj/effect/decal/cleanable/greenglow/radioactive/extreme
/// This is higher than radsuits can absorb! Use with caution.
radioactivity = 120
radioactivity = RAD_LEVEL_CATASTROPHIC
/obj/effect/decal/cleanable/greenglow/radioactive/extreme/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~12 tiles away from this object."
. += "Geiger counters will start clicking at ~11 tiles away from this object."
. += "No living thing can safely stand next to this object! Borgs or IPCs only!"
/obj/effect/decal/cleanable/greenglow/radioactive/Initialize()
+5 -5
View File
@@ -18,7 +18,7 @@
/obj/item/geiger/feedback_hints(mob/user, distance, is_adjacent)
. += ..()
var/msg = "[scanning ? "ambient" : "stored"] Radiation level: <b>[radiation_count ? radiation_count : "0"] IU/s</b>."
if(radiation_count > RAD_LEVEL_LOW)
if(radiation_count > RAD_LEVEL_VERY_LOW)
. += SPAN_WARNING("[msg]")
else
. += SPAN_NOTICE("[msg]")
@@ -64,11 +64,11 @@
switch(radiation_count)
if(null) icon_state = "geiger_on_1"
if(-INFINITY to RAD_LEVEL_LOW)
if(-INFINITY to RAD_LEVEL_VERY_LOW)
icon_state = "geiger_on_1"
geiger_volume = 0
sound_token.SetVolume(geiger_volume)
if(RAD_LEVEL_LOW + 0.01 to RAD_LEVEL_MODERATE)
if(RAD_LEVEL_VERY_LOW + 0.01 to RAD_LEVEL_MODERATE)
icon_state = "geiger_on_2"
geiger_volume = 10
sound_token.SetVolume(geiger_volume)
@@ -76,11 +76,11 @@
icon_state = "geiger_on_3"
geiger_volume = 25
sound_token.SetVolume(geiger_volume)
if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_VERY_HIGH)
if(RAD_LEVEL_HIGH + 1 to RAD_LEVEL_EXTREME)
icon_state = "geiger_on_4"
geiger_volume = 40
sound_token.SetVolume(geiger_volume)
if(RAD_LEVEL_VERY_HIGH + 1 to INFINITY)
if(RAD_LEVEL_EXTREME + 1 to INFINITY)
icon_state = "geiger_on_5"
geiger_volume = 60
sound_token.SetVolume(geiger_volume)