diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 6e1acef8ce1..0678e25fa05 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -24,6 +24,7 @@ #define BE_PLANT 4096 #define BE_MUTINEER 8192 #define BE_PAI 16384 +#define BE_LOYALIST 32768 var/list/be_special_flags = list( "Traitor" = BE_TRAITOR, @@ -32,6 +33,7 @@ var/list/be_special_flags = list( "Wizard" = BE_WIZARD, "Malf AI" = BE_MALF, "Revolutionary" = BE_REV, + "Loyalist" = BE_LOYALIST, "Xenomorph" = BE_ALIEN, "Positronic Brain" = BE_AI, "Cultist" = BE_CULTIST, @@ -77,6 +79,7 @@ var/list/be_special_flags = list( #define MODE_MONKEY "monkey" #define MODE_RENEGADE "renegade" #define MODE_REVOLUTIONARY "revolutionary" +#define MODE_LOYALIST "loyalist" #define MODE_MALFUNCTION "malf" #define MODE_TRAITOR "traitor" diff --git a/code/game/antagonist/alien/borer.dm b/code/game/antagonist/alien/borer.dm index aabb6bd7e39..07ebf3d189e 100644 --- a/code/game/antagonist/alien/borer.dm +++ b/code/game/antagonist/alien/borer.dm @@ -35,18 +35,19 @@ var/datum/antagonist/xenos/borer/borers if(istype(borer)) var/mob/living/carbon/human/host for(var/mob/living/carbon/human/H in mob_list) - if(H.stat != 2 && !(H.species.flags & IS_SYNTHETIC) && !H.has_brain_worms()) - host = H - break + if(H.stat != DEAD && !H.has_brain_worms()) + var/obj/item/organ/external/head = H.get_organ("head") + if(head && !(head.status & ORGAN_ROBOT)) + host = H + break if(istype(host)) var/obj/item/organ/external/head = host.get_organ("head") - if(head) - borer.host = host - head.implants += borer - borer.loc = head - if(!borer.host_brain) - borer.host_brain = new(borer) - borer.host_brain.name = host.name - borer.host_brain.real_name = host.real_name - return + borer.host = host + head.implants += borer + borer.loc = head + if(!borer.host_brain) + borer.host_brain = new(borer) + borer.host_brain.name = host.name + borer.host_brain.real_name = host.real_name + return ..() // Place them at a vent if they can't get a host.