Fixes camera mobs becoming contaminated and other tweaks (#31731)

This commit is contained in:
Emmett Gaines
2017-10-14 17:40:34 -05:00
committed by CitadelStationBot
parent b200389630
commit 24b9d4b9f4
20 changed files with 45 additions and 39 deletions
+9 -5
View File
@@ -11,25 +11,29 @@
return
for(var/i in 1 to location.contents.len)
var/static/list/ignored_things = typecacheof(list(/mob/dead, /obj/effect, /obj/docking_port, /turf, /atom/movable/lighting_object))
var/static/list/ignored_things = typecacheof(list(/mob/dead, /obj/effect, /obj/docking_port, /turf, /atom/movable/lighting_object, /mob/camera))
var/atom/thing = location.contents[i]
if(ignored_things[thing.type])
continue
get_rad_contents(thing, output)
/proc/radiation_pulse(turf/epicenter, intensity, range_modifier, log=FALSE, can_contaminate=TRUE)
/proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE)
if(!SSradiation.can_fire)
return
for(var/dir in GLOB.cardinals)
new /datum/radiation_wave(epicenter, dir, intensity, range_modifier, can_contaminate)
new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate)
var/list/things = get_rad_contents(epicenter) //copypasta because I don't want to put special code in waves to handle their origin
var/list/things = get_rad_contents(source) //copypasta because I don't want to put special code in waves to handle their origin
for(var/k in 1 to things.len)
var/atom/thing = things[k]
if(!thing)
continue
thing.rad_act(intensity)
var/static/last_huge_pulse = 0
if(intensity > 3000 && world.time > last_huge_pulse + 200)
last_huge_pulse = world.time
log = TRUE
if(log)
log_game("Radiation pulse with intensity:[intensity] and range modifier:[range_modifier] in area [epicenter.loc.name] ")
log_game("Radiation pulse with intensity:[intensity] and range modifier:[range_modifier] in area [get_area(source)] ")
return TRUE