Radiation Storm Rework (#16515)

* kneel before me sneaky

* vending update

* conflict

* conflict fix take 2?

* radiation buff (and changes)

* nuking comments I forgot to remove
This commit is contained in:
CampinKiller24
2023-09-01 13:06:17 -05:00
committed by GitHub
parent 812a6be9e8
commit a4e1131a3e
9 changed files with 19 additions and 73 deletions
-24
View File
@@ -1,30 +1,6 @@
var/eventchance = 10 // Percent chance per 5 minutes.
var/hadevent = 0
/proc/high_radiation_event()
for(var/mob/living/carbon/human/H in living_mob_list)
var/turf/T = get_turf(H)
if(!T)
continue
if(isNotStationLevel(T.z))
continue
H.apply_damage((rand(15,75)), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
if (prob(5))
H.apply_damage((rand(90,150)), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
if (prob(25))
if (prob(75))
randmutb(H)
domutcheck(H,null,MUTCHK_FORCED)
else
randmutg(H)
domutcheck(H,null,MUTCHK_FORCED)
sleep(100)
command_announcement.Announce("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert")
//Changing this to affect the main station. Blame Urist. --Pete
/proc/prison_break() // -- Callagan
+2 -1
View File
@@ -1103,7 +1103,8 @@
/obj/item/airalarm_electronics = 10,
/obj/item/firealarm_electronics = 10,
/obj/item/cell/high = 10,
/obj/item/grenade/chem_grenade/antifuel = 5
/obj/item/grenade/chem_grenade/antifuel = 5,
/obj/item/device/geiger = 5
)
contraband = list(
/obj/item/cell/potato = 3
+3 -2
View File
@@ -42,8 +42,9 @@
lights()
/datum/event/radiation_storm/proc/radiate()
for(var/mob/living/C in living_mob_list)
C.apply_radiation_effects()
var/radiation_level = rand(20, 40)
for(var/z in affecting_z)
SSradiation.z_radiate(locate(1, 1, z), radiation_level, TRUE)
/datum/event/radiation_storm/end(var/faked)
..()
-3
View File
@@ -91,9 +91,6 @@
/mob/living/announcer/InStasis()
return FALSE
/mob/living/announcer/apply_radiation_effects()
return FALSE
/mob/living/announcer/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
return FALSE
@@ -2028,30 +2028,6 @@
var/matrix/M = new()
B.transform = M.Scale(scale)
/mob/living/carbon/human/apply_radiation_effects()
. = ..()
if(. == TRUE)
if(src.is_diona())
var/damage = rand(15, 30)
src.adjustToxLoss(-damage)
if(prob(5))
damage = rand(20, 60)
src.adjustToxLoss(-damage)
to_chat(src, SPAN_NOTICE("You can feel flow of energy which makes you regenerate."))
if(species.radiation_mod <= 0)
return
apply_damage((rand(15,30)), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
if(prob(4))
apply_damage((rand(20,60)), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
if (prob(75))
randmutb(src) // Applies bad mutation
domutcheck(src,null,MUTCHK_FORCED)
else
randmutg(src) // Applies good mutation
domutcheck(src,null,MUTCHK_FORCED)
/mob/living/carbon/human/get_accent_icon(var/datum/language/speaking, var/mob/hearer, var/force_accent)
var/used_accent = accent //starts with the mob's default accent
+5 -4
View File
@@ -227,10 +227,10 @@
var/damage = 0
total_radiation -= 1 * RADIATION_SPEED_COEFFICIENT
if(prob(25))
damage = 1
damage = 2
if (total_radiation > 50)
damage = 1
damage = 3
total_radiation -= 1 * RADIATION_SPEED_COEFFICIENT
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT))
src.apply_radiation(-5 * RADIATION_SPEED_COEFFICIENT)
@@ -247,9 +247,10 @@
if (total_radiation > 75)
src.apply_radiation(-1 * RADIATION_SPEED_COEFFICIENT)
damage = 3
damage = 7
if(prob(5))
take_overall_damage(0, 5 * RADIATION_SPEED_COEFFICIENT, used_weapon = "Radiation Burns")
take_overall_damage(0, 10 * RADIATION_SPEED_COEFFICIENT, used_weapon = "Radiation Burns")
to_chat(src, "<span class='warning'>You feel a burning sensation!</span>")
if(prob(1))
to_chat(src, "<span class='warning'>You feel strange!</span>")
adjustCloneLoss(5 * RADIATION_SPEED_COEFFICIENT)
-10
View File
@@ -995,16 +995,6 @@ default behaviour is:
update_icon()
return TRUE
/mob/living/proc/apply_radiation_effects()
var/area/A = get_area(src)
if(!A)
return FALSE
if(isNotStationLevel(A.z))
return FALSE
if(A.flags & RAD_SHIELDED)
return FALSE
. = TRUE
/mob/living/proc/needs_wheelchair()
return FALSE
@@ -156,11 +156,6 @@
. = ..()
handle_radiation_light()
/mob/living/simple_animal/cat/apply_radiation_effects()
. = ..()
if(.)
apply_damage((rand(30,60)), DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)
/mob/living/simple_animal/cat/proc/handle_flee_target()
//see if we should stop fleeing
if (flee_target && !(flee_target.loc in view(src)))
@@ -0,0 +1,9 @@
author: CampinKiller24
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
changes:
- rscadd: "Ports how radiation storms work from Bay. Geiger counters can now detect radiation during storms, and radiation-resistant clothing (such as radsuits) now block radiation during storms."
- rscadd: "Adds geiger counters to Engi-Vend."
- rscadd: "Exposure to extreme radiation is now much more harmful than before."