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
+2 -2
View File
@@ -281,7 +281,7 @@
/material/uranium
name = MATERIAL_URANIUM
stack_type = /obj/item/stack/material/uranium
radioactivity = 12
radioactivity = RAD_LEVEL_LOW
icon_base = "stone"
reinf_icon = "reinf_stone"
icon_colour = "#007A00"
@@ -378,7 +378,7 @@
/material/phoron/supermatter
name = MATERIAL_SUPERMATTER
icon_colour = "#ffff00"
radioactivity = 20
radioactivity = RAD_LEVEL_MODERATE
conductivity = 100
integrity = 10
luminescence = 3
@@ -235,12 +235,6 @@
Weaken(3)
if(!lying)
emote("collapse")
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT) && species.name == SPECIES_HUMAN) //apes go bald
if((h_style != "Bald" || f_style != "Shaved" ))
to_chat(src, SPAN_WARNING("Your hair falls out."))
h_style = "Bald"
f_style = "Shaved"
update_hair()
if (total_radiation > 75)
src.apply_radiation(-1 * RADIATION_SPEED_COEFFICIENT)
@@ -762,9 +762,7 @@ GLOBAL_LIST_INIT(golem_types, list(
..()
/datum/species/golem/uranium/handle_environment_special(var/mob/living/carbon/human/H)
if(prob(25))
for(var/mob/living/L in view(7, H))
L.apply_damage(20, DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
SSradiation.radiate(src, RAD_LEVEL_LOW)
/datum/species/golem/homunculus
name = SPECIES_GOLEM_MEAT
@@ -8,7 +8,7 @@
var/list/rod_quantities = list()
var/fuel_type
var/fuel_colour
var/radioactivity = 0
var/radioactivity = RAD_LEVEL_NONE
var/initial_amount
/obj/item/fuel_assembly/New(newloc, _material, _colour)
+2 -2
View File
@@ -86,12 +86,12 @@
/**
* Called when radiation affects a /mob/living.
*
* * severity - The amount of radiation being applied. Anything over RAD_LEVEL_LOW will deal [severity] dispersed damage and run rad_act to everything in it.
* * severity - The amount of radiation being applied. Anything over RAD_LEVEL_VERY_LOW will deal [severity] dispersed damage and run rad_act to everything in it.
*
* Returns boolean
*/
/mob/living/rad_act(severity)
if(severity > RAD_LEVEL_LOW)
if(severity > RAD_LEVEL_VERY_LOW)
apply_damage(severity, DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
for(var/atom/I in src)
I.rad_act(severity)
+15 -7
View File
@@ -500,34 +500,42 @@ ABSTRACT_TYPE(/obj/structure/reagent_dispensers/radioactive_waste/hazardous)
. += "Characters directly adjacent to 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/structure/reagent_dispensers/radioactive_waste/hazardous/low
radioactivity = 25
radioactivity = RAD_LEVEL_LOW
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/low/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Geiger counters will start clicking at ~7 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/structure/reagent_dispensers/radioactive_waste/hazardous/medium
radioactivity = 50
radioactivity = RAD_LEVEL_MODERATE
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/medium/antagonist_hints(mob/user, distance, is_adjacent)
. += "Geiger counters will start clicking at ~9 tiles away from this object."
. += "Geiger counters will start clicking at ~5 tiles away from this object."
. += "An engineering voidsuit is necessary to move safely adjacent to it."
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/high
/// This is as high as radsuits can absorb! Use with caution.
radioactivity = 100
radioactivity = RAD_LEVEL_HIGH
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/high/antagonist_hints(mob/user, distance, is_adjacent)
. += "Geiger counters will start clicking at ~7 tiles away from this object."
. += "A radsuit is necessary to move safely adjacent to it."
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/very_high
/// This is as high as radsuits can absorb! Use with caution.
radioactivity = RAD_LEVEL_VERY_HIGH
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/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/structure/reagent_dispensers/radioactive_waste/hazardous/extreme
/// This is higher than radsuits can absorb! Use with caution.
radioactivity = 150
radioactivity = RAD_LEVEL_CATASTROPHIC
/obj/structure/reagent_dispensers/radioactive_waste/hazardous/extreme/antagonist_hints(mob/user, distance, is_adjacent)
. += "Geiger counters will start clicking at ~13 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/structure/reagent_dispensers/radioactive_waste/hazardous/Initialize()