diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 2c54b8b793..1f1f13ee22 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -68,15 +68,16 @@ if (ismovableatom(M)) if(do_teleport(M, com.target, channel = TELEPORT_CHANNEL_BLUESPACE)) use_power(5000) - if(!calibrated && prob(30 - ((accurate) * 10))) //oh dear a problem - log_game("[M] ([key_name(M)]) was turned into a fly person") - if(ishuman(M))//don't remove people from the round randomly you jerks - var/mob/living/carbon/human/human = M - to_chat(M, "You hear a buzzing in your ears.") - human.set_species(/datum/species/fly) - human.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), EFFECT_IRRADIATE, 0) - calibrated = 0 + if(!calibrated && iscarbon(M) && prob(30 - ((accurate) * 10))) //oh dear a problem + var/mob/living/carbon/C = M + if(C.dna?.species && C.dna.species.id != "fly" && !HAS_TRAIT(C, TRAIT_RADIMMUNE)) + to_chat(C, "You hear a buzzing in your ears.") + C.set_species(/datum/species/fly) + log_game("[C] ([key_name(C)]) was turned into a fly person") + C.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), EFFECT_IRRADIATE, 0) + + calibrated = FALSE return /obj/machinery/teleport/hub/update_icon()