From b9210e9811ff9fbb9b8bdea3de8a76bae9268a2b Mon Sep 17 00:00:00 2001 From: AnturK Date: Fri, 5 Apr 2019 06:54:59 +0200 Subject: [PATCH] Fix a few nanite runtimes (#43478) Just some missing sanity checks. * Fixes spreading nanites runtimes. * Also glitch runtime. --- code/modules/research/nanites/nanite_programs.dm | 3 ++- code/modules/research/nanites/nanite_programs/utility.dm | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index 35d27914129..d3fee06cc92 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -86,7 +86,8 @@ target.deactivation_code = deactivation_code target.kill_code = kill_code target.trigger_code = trigger_code - copy_extra_settings_to(target) + if(istype(target,src)) + copy_extra_settings_to(target) /datum/nanite_program/proc/set_extra_setting(user, setting) return diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index 712542db1ba..ee92a5c555c 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -237,7 +237,11 @@ if(prob(10)) var/list/mob/living/target_hosts = list() for(var/mob/living/L in oview(5, host_mob)) + if(!(MOB_ORGANIC in L.mob_biotypes) && !(MOB_UNDEAD in L.mob_biotypes)) + continue target_hosts += L + if(!target_hosts.len) + return var/mob/living/infectee = pick(target_hosts) if(prob(100 - (infectee.get_permeability_protection() * 100))) //this will potentially take over existing nanites!