diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 5543a54caa6..6cdfdc736d9 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -91,6 +91,7 @@ ) var/talk_inside_host = FALSE // So that borers don't accidentally give themselves away on a botched message var/used_dominate + var/attempting_to_dominate = FALSE // To prevent people from spam opening the Dominate Victim input var/chemicals = 10 // Chemicals used for reproduction and chemical injection. var/max_chems = 250 var/mob/living/carbon/human/host // Human host for the brain worm. @@ -325,6 +326,9 @@ to_chat(src, "You cannot infest someone who is already infested!") return + if(incapacitated()) + return + to_chat(src, "You slither up [M] and begin probing at [M.p_their()] ear canal...") if(!do_after(src, 50, target = M)) @@ -471,7 +475,7 @@ set category = "Borer" set name = "Dominate Victim" set desc = "Freeze the limbs of a potential host with supernatural fear." - + if(world.time - used_dominate < 150) to_chat(src, "You cannot use that ability again so soon.") return @@ -483,23 +487,43 @@ if(stat) to_chat(src, "You cannot do that in your current state.") return - + + if(attempting_to_dominate) + to_chat(src, "You're already targeting someone!") + return + var/list/choices = list() for(var/mob/living/carbon/C in view(3,src)) if(C.stat != DEAD) choices += C - + if(world.time - used_dominate < 300) to_chat(src, "You cannot use that ability again so soon.") return - + + attempting_to_dominate = TRUE + var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices - if(!M || !src) + if(!M) + attempting_to_dominate = FALSE + return + + if(!src) //different statement to avoid a runtime since if the source is deleted then attempting_to_dominate would also be deleted return if(M.has_brain_worms()) to_chat(src, "You cannot dominate someone who is already infested!") + attempting_to_dominate = FALSE + return + + if(incapacitated()) + attempting_to_dominate = FALSE + return + + if(get_dist(src, M) > 7) //to avoid people remotely doing from across the map etc, 7 is the default view range + to_chat(src, "You're too far away!") + attempting_to_dominate = FALSE return to_chat(src, "You focus your psychic lance on [M] and freeze [M.p_their()] limbs with a wave of terrible dread.") @@ -507,6 +531,7 @@ M.Weaken(3) used_dominate = world.time + attempting_to_dominate = FALSE /mob/living/simple_animal/borer/verb/release_host() set category = "Borer"