diff --git a/code/defines/obj/clothing/head.dm b/code/defines/obj/clothing/head.dm index 84e4ba6fa6..817a76ee26 100644 --- a/code/defines/obj/clothing/head.dm +++ b/code/defines/obj/clothing/head.dm @@ -6,6 +6,12 @@ body_parts_covered = HEAD var/list/allowed = list(/obj/item/weapon/pen) +/obj/item/clothing/head/radiation + name = "Radiation Hood" + icon_state = "rad" + radiation_protection = 0.35 + flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH + /obj/item/clothing/head/bio_hood name = "bio hood" icon_state = "bio" diff --git a/code/defines/obj/clothing/suit.dm b/code/defines/obj/clothing/suit.dm index 3ba8ccadac..86725b2be0 100644 --- a/code/defines/obj/clothing/suit.dm +++ b/code/defines/obj/clothing/suit.dm @@ -236,7 +236,7 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 heat_transfer_coefficient = 1 - radiation_protection = 1 + radiation_protection = 0.75 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 1.3 diff --git a/code/game/objects/storage/crates.dm b/code/game/objects/storage/crates.dm index 99063de78d..7857723a54 100644 --- a/code/game/objects/storage/crates.dm +++ b/code/game/objects/storage/crates.dm @@ -191,6 +191,10 @@ new /obj/item/clothing/suit/radiation(src) new /obj/item/clothing/suit/radiation(src) new /obj/item/clothing/suit/radiation(src) + new /obj/item/clothing/head/radiation(src) + new /obj/item/clothing/head/radiation(src) + new /obj/item/clothing/head/radiation(src) + new /obj/item/clothing/head/radiation(src) /obj/crate/proc/open() playsound(src.loc, 'click.ogg', 15, 1, -3) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 942812c6e7..7f335e16f5 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -351,27 +351,42 @@ var/global/list/uneatable = list( radiation = round(((src.energy-150)/50)*5,1) for(var/mob/living/carbon/M in view(toxrange, src.loc)) if(istype(M,/mob/living/carbon/human)) + var/P = 0 if(M:wear_suit) - var/P = M:wear_suit.radiation_protection - if (P > 0) - if (P == 1) + P += M:wear_suit.radiation_protection + if(M:head) + P += M:head.radiation_protection + if (P > 0) + if (P >= 1) + if(M:wear_suit) M << "The [M:wear_suit] beeps, indicating it just received a burst of radiation. Good thing you had it on." - return - if (toxloss >= 100) - toxloss = 100 - (P * 100) //a suit which protects you from 10% radiation will make you only receive 90 damage even if you're showered with a MILLION points of toxloss + else if (M:head) + M << "The [M:head] beeps, indicating it just received a burst of radiation. Good thing you had it on." else - toxloss = toxloss - (P * toxloss) - if (radiation > 15) - radiation = 15 - (15 * P) - else - radiation = radiation - (P * radiation) - M << "\red The [M:wear_suit] absorbs some of the radiation from the singularity." + M << "Your body deflects all the radiation" + return + if (toxloss >= 100) + toxloss = 100 - (P * 100) //a suit and/or headgear which protects you from 10% radiation will make you only receive 90 damage even if you're showered with a MILLION points of toxloss else - M << "\red You feel odd." + toxloss = toxloss - (P * toxloss) + if (radiation > 15) + radiation = 15 - (15 * P) + else + radiation = radiation - (P * radiation) + if(M:wear_suit) + M << "\red The [M:wear_suit] absorbs some of the radiation from the singularity." + else if (M:head) + M << "\red The [M:head] absorbs some of the radiation from the singularity." + else + M << "\red Your body protects you from some of the radiation." + else + if(prob(50)) + M << "\red You feel odd." + else + M << "\red You feel sick." M.toxloss += toxloss M.radiation += radiation M.updatehealth() - M << "\red You feel odd." return diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index d56de929ef..197132f37d 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 269be0181d..45764f9810 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 67b945bf51..10945fc53c 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 063b937420..970f8cbc7b 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ