Files
IgnusVam b0734d5aa1 Big update
- Fixes spiders (I hope?) - Spiders now spawn in groups of 2-8, growing up should be fixed as well.
- Christmas-ifies all the maps
- Minor tweaks all around the stations
- Cleans up the map for central (a lot)
- Adds a new mob to the spawn list in the mines
- Fixes some minor shadekin issues
- Fixes it so borgs/AI can't understand gutter
- Modifies the timing of the radiation storm
- Hopefully fixes the cargo request event. No more buggy gas mixtures.
- Adds a flamboyant crate
- A bunch of other stuff.
2018-11-29 12:35:52 -07:00

57 lines
2.2 KiB
Plaintext

/datum/event/radiation_storm
var/const/enterBelt = 50
var/const/radIntervall = 5 // Enough time between enter/leave belt for 10 hits, as per original implementation
var/const/leaveBelt = 100
var/const/revokeAccess = 185
startWhen = 2
announceWhen = 1
endWhen = revokeAccess
var/postStartTicks = 0
/datum/event/radiation_storm/announce()
command_announcement.Announce("High levels of radiation detected near \the [station_name()]. Please evacuate into one of the shielded maintenance tunnels or dorms.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg') //VOREStation Edit - Dorms ref
/datum/event/radiation_storm/start()
make_maint_all_access()
/datum/event/radiation_storm/tick()
if(activeFor == enterBelt)
command_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
radiate()
if(activeFor >= enterBelt && activeFor <= leaveBelt)
postStartTicks++
if(postStartTicks == radIntervall)
postStartTicks = 0
radiate()
else if(activeFor == leaveBelt)
command_announcement.Announce("The station has passed the radiation belt. Please allow for up to one minute while radiation levels dissipate, and report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
/datum/event/radiation_storm/proc/radiate()
var/radiation_level = rand(15, 35)
//for(var/z in using_map.station_levels) //VORESTATION: No safe areas outside of the core station
radiation_repository.z_radiate(locate(1, 1, 1), radiation_level, 1)
for(var/mob/living/carbon/C in living_mob_list)
var/area/A = get_area(C)
if(!A)
continue
if(A.flags & RAD_SHIELDED)
continue
if(istype(C,/mob/living/carbon/human))
var/mob/living/carbon/human/H = C
if(prob(5))
if (prob(75))
randmutb(H) // Applies bad mutation
domutcheck(H,null,MUTCHK_FORCED)
else
randmutg(H) // Applies good mutation
domutcheck(H,null,MUTCHK_FORCED)
/datum/event/radiation_storm/end()
revoke_maint_all_access()
/datum/event/radiation_storm/syndicate/radiate()
return