More radiation balance changes and fixes (#32051)

* more balance changes and fixes

* cleanup
This commit is contained in:
Emmett Gaines
2017-10-27 03:08:03 -05:00
committed by CitadelStationBot
parent 5c94555ccd
commit ea36d5944e
14 changed files with 213 additions and 106 deletions
+18 -18
View File
@@ -1,28 +1,28 @@
/proc/get_rad_contents(atom/location, list/output=list()) // A special GetAllContents that doesn't search past things with rad insulation
. = output
if(!location)
return
output += location
var/datum/component/rad_insulation/insulation = location.GetComponent(/datum/component/rad_insulation)
if(insulation && insulation.protects)
return
for(var/i in 1 to location.contents.len)
var/static/list/ignored_things = typecacheof(list( // These types will never have radiation applied to them or be looked inside of
// A special GetAllContents that doesn't search past things with rad insulation
// The protection var only protects the things inside from being affected.
// The protecting object itself will get returned still.
// The ignore list makes those objects never return at all
/proc/get_rad_contents(atom/location)
var/list/processing_list = list(location)
. = list()
while(processing_list.len)
var/static/list/ignored_things = typecacheof(list(
/mob/dead,
/mob/camera,
/obj/effect,
/obj/docking_port,
/atom/movable/lighting_object
/atom/movable/lighting_object,
/obj/item/projectile
))
var/atom/thing = location.contents[i]
var/atom/thing = processing_list[1]
processing_list -= thing
if(ignored_things[thing.type])
continue
get_rad_contents(thing, output)
. += thing
var/datum/component/rad_insulation/insulation = thing.GetComponent(/datum/component/rad_insulation)
if(insulation && insulation.protects)
continue
processing_list += thing.contents
/proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE)
if(!SSradiation.can_fire)