diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 92426808b66..20e2db96408 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -112,42 +112,23 @@ Doesn't work on other aliens/AI.*/ return -/mob/living/carbon/alien/humanoid/proc/neurotoxin(mob/target as mob in oview()) - set name = "Spit Neurotoxin (50)" - set desc = "Spits neurotoxin at someone, paralyzing them for a short time if they are not wearing protective gear." - set category = "Alien" - - if(powerc(50)) - if(isalien(target)) - src << "\green Your allies are not a valid target." - return - adjustToxLoss(-50) - src << "\green You spit neurotoxin at [target]." - for(var/mob/O in oviewers()) - if ((O.client && !( O.blinded ))) - O << "\red [src] spits neurotoxin at [target]!" - //I'm not motivated enough to revise this. Prjectile code in general needs update. - var/turf/T = loc - var/turf/U = (istype(target, /atom/movable) ? target.loc : target) - - if(!U || !T) - return - while(U && !istype(U,/turf)) - U = U.loc - if(!istype(T, /turf)) - return - if (U == T) - usr.bullet_act(new /obj/item/projectile/energy/neurotoxin(usr.loc), get_organ_target()) - return - if(!istype(U, /turf)) - return - - var/obj/item/projectile/energy/neurotoxin/A = new /obj/item/projectile/energy/neurotoxin(usr.loc) - A.current = U - A.yo = U.y - T.y - A.xo = U.x - T.x - A.process() - return +/mob/living/carbon/alien/humanoid/proc/neurotoxin() // ok + set name = "Spit Neurotoxin (50)" + set desc = "Spits neurotoxin at someone, paralyzing them for a short time." + set category = "Alien" + if(powerc(50)) + adjustToxLoss(-50) + src.visible_message("\red [src] spits neurotoxin!", "\green You spit neurotoxin.") + var/turf/T = loc + var/turf/U = get_step(src, dir) // Get the tile infront of the move, based on their direction + if(!isturf(U) || !isturf(T)) + return + var/obj/item/projectile/energy/neurotoxin/A = new /obj/item/projectile/energy/neurotoxin(usr.loc) + A.current = U + A.yo = U.y - T.y + A.xo = U.x - T.x + A.process() + return /mob/living/carbon/alien/humanoid/proc/resin() // -- TLE set name = "Secrete Resin (75)" diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 11d98dc939e..4dfa01afcad 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -53,12 +53,18 @@ /obj/item/projectile/energy/neurotoxin - name = "neuro" + name = "neurotoxin spit" icon_state = "neurotoxin" damage = 5 damage_type = TOX weaken = 5 +/obj/item/projectile/energy/neurotoxin/on_hit(var/atom/target, var/blocked = 0) + if(isalien(target)) + return 0 + ..() // Execute the rest of the code. + + /obj/item/projectile/energy/plasma