Merge branch 'master' into upstream-merge-32116
This commit is contained in:
@@ -67,3 +67,4 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
|
||||
/proc/cmp_profile_count_dsc(list/A, list/B)
|
||||
return B[PROFILE_ITEM_COUNT] - A[PROFILE_ITEM_COUNT]
|
||||
|
||||
|
||||
+18
-18
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user