diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm
index 4a7b042149..b8c99636f6 100644
--- a/code/modules/planet/sif.dm
+++ b/code/modules/planet/sif.dm
@@ -400,38 +400,38 @@ var/datum/planet/sif/planet_sif = null
/datum/weather/sif/hail/process_effects()
..()
- for(var/mob/living/carbon/human/H in living_mob_list)
+ for(var/humie in human_mob_list)
+ var/mob/living/carbon/human/H = humie
if(H.z in holder.our_planet.expected_z_levels)
var/turf/T = get_turf(H)
if(!T.outdoors)
continue // They're indoors, so no need to pelt them with ice.
- // If they have an open umbrella, it'll guard from rain
- // Message plays every time the umbrella gets stolen, just so they're especially aware of what's happening
+ // If they have an open umbrella, it'll guard from hail
+ var/obj/item/weapon/melee/umbrella/U
if(istype(H.get_active_hand(), /obj/item/weapon/melee/umbrella))
- var/obj/item/weapon/melee/umbrella/U = H.get_active_hand()
- if(U.open)
- if(show_message)
- to_chat(H, "Hail patters gently onto your umbrella.")
- continue
+ U = H.get_active_hand()
else if(istype(H.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
- var/obj/item/weapon/melee/umbrella/U = H.get_inactive_hand()
- if(U.open)
- if(show_message)
- to_chat(H, "Hail patters gently onto your umbrella.")
- continue
-
+ U = H.get_inactive_hand()
+ if(U && U.open)
+ if(show_message)
+ to_chat(H, "Hail patters onto your umbrella.")
+ continue
+
var/target_zone = pick(BP_ALL)
var/amount_blocked = H.run_armor_check(target_zone, "melee")
var/amount_soaked = H.get_armor_soak(target_zone, "melee")
- if(amount_blocked >= 100)
+ var/damage = rand(1,3)
+
+ if(amount_blocked >= 30)
+ continue // No need to apply damage. Hardhats are 30. They should probably protect you from hail on your head.
+ //Voidsuits are likewise 40, and riot, 80. Clothes are all less than 30.
+
+ if(amount_soaked >= damage)
continue // No need to apply damage.
- if(amount_soaked >= 10)
- continue // No need to apply damage.
-
- H.apply_damage(rand(1, 3), BRUTE, target_zone, amount_blocked, amount_soaked, used_weapon = "hail")
+ H.apply_damage(damage, BRUTE, target_zone, amount_blocked, amount_soaked, used_weapon = "hail")
if(show_message)
to_chat(H, effect_message)