diff --git a/code/modules/events/anomaly_event.dm b/code/modules/events/anomaly_event.dm index 14b0ae316cc..2dca17d83ee 100644 --- a/code/modules/events/anomaly_event.dm +++ b/code/modules/events/anomaly_event.dm @@ -15,26 +15,27 @@ target_turf = find_targets(TRUE) /datum/event/anomaly/proc/find_targets(warn_on_fail = FALSE) - var/turf/target for(var/tries in 0 to TURF_FIND_TRIES) impact_area = findEventArea() if(!impact_area) if(warn_on_fail) - CRASH("No valid areas for anomaly found.") - else - return + stack_trace("No valid areas for anomaly found.") + kill() + return var/list/candidate_turfs = get_area_turfs(impact_area) while(length(candidate_turfs)) var/turf/candidate = pick_n_take(candidate_turfs) if(!is_blocked_turf(candidate,TRUE)) - target = candidate + target_turf = candidate break if(target_turf) break if(!target_turf) - CRASH("Anomaly: Unable to find a valid turf to spawn the anomaly. Last area tried: [impact_area] - [impact_area.type]") + stack_trace("Anomaly: Unable to find a valid turf to spawn the anomaly. Last area tried: [impact_area] - [impact_area.type]") + kill() + return - return target + return target_turf /datum/event/anomaly/announce(false_alarm) var/area/target = false_alarm ? findEventArea() : impact_area