diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 2005af2994..fd406e7222 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -21,7 +21,7 @@ var/move_delay_add = 0 // movement delay to add status_flags = CANPARALYSE - var/heal_rate = 5 + var/heal_rate = 1 var/plasma_rate = 5 var/oxygen_alert = 0 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 a366503ac5..0c25c79199 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -106,7 +106,7 @@ I kind of like the right click only--the window version can get a little confusi /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." + 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)) @@ -129,12 +129,12 @@ I kind of like the right click only--the window version can get a little confusi if(!istype(T, /turf)) return if (U == T) - usr.bullet_act(src, get_organ_target()) + usr.bullet_act(new /obj/item/projectile/neurotoxin(usr.loc), get_organ_target()) return if(!istype(U, /turf)) return - var/obj/item/projectile/energy/dart/A = new /obj/item/projectile/energy/dart(usr.loc) + var/obj/item/projectile/neurotoxin/A = new /obj/item/projectile/neurotoxin(usr.loc) A.current = U A.yo = U.y - T.y diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 909bf25219..c67017d795 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -89,7 +89,8 @@ var/const/MAX_ACTIVE_TIME = 400 return /obj/item/clothing/mask/facehugger/throw_impact(atom/hit_atom) - Attach(hit_atom) + if(prob(25)) + Attach(hit_atom) return /obj/item/clothing/mask/facehugger/proc/Attach(M as mob) @@ -129,17 +130,21 @@ var/const/MAX_ACTIVE_TIME = 400 for(var/mob/O in viewers(target, null)) O.show_message("\red \b [src] tears [W] off of [target]'s face!", 1) - loc = target - layer = 20 - target.wear_mask = src - target.update_inv_wear_mask() + if(prob(75)) + loc = target + layer = 20 + target.wear_mask = src + target.update_inv_wear_mask() - GoIdle() //so it doesn't jump the people that tear it off + GoIdle() //so it doesn't jump the people that tear it off - if(!sterile) target.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings + if(!sterile) target.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings - spawn(rand(MIN_IMPREGNATION_TIME,MAX_IMPREGNATION_TIME)) - Impregnate(target) + spawn(rand(MIN_IMPREGNATION_TIME,MAX_IMPREGNATION_TIME)) + Impregnate(target) + else + for(var/mob/O in viewers(target, null)) + O.show_message("\red \b [src] misses [target]'s face!", 1) return diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index 5c35fe9bb7..29081bab34 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -42,19 +42,20 @@ apply_damage(damage, BRUTE, affecting, armor_block) if (damage >= 25) visible_message("\red [M] has wounded [src]!") - apply_effect(4, WEAKEN, armor_block) + apply_effect(rand(0.5,3), WEAKEN, armor_block) updatehealth() if("disarm") - var/randn = rand(1, 100) - if (randn <= 90) + if (prob(80)) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Weaken(rand(10,15)) + Weaken(rand(0.5,3)) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has tackled down []!", M, src), 1) + if (prob(25)) + M.Weaken(rand(2,4)) else - if (randn <= 99) + if (prob(80)) playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) drop_item() for(var/mob/O in viewers(src, null)) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index ab930dcfe5..de55322f00 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -36,7 +36,7 @@ var/damage = 10 var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here var/nodamage = 0 //Determines if the projectile will skip any damage inflictions - var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb + var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid var/projectile_type = "/obj/item/projectile" var/kill_count = 50 //This will de-increment every process(). When 0, it will delete the projectile. //Effects diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 99be701f98..b9710358b0 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -124,4 +124,12 @@ else if (istype(target, /mob/living/carbon/)) M.show_message("\blue The radiation beam dissipates harmlessly through your body.") else - return 1 \ No newline at end of file + return 1 + +/obj/item/projectile/neurotoxin + name = "neurotoxin" + icon_state = "toxin" + damage = 5 + damage_type = TOX + weaken = 5 + flag = "bio" diff --git a/html/changelog.html b/html/changelog.html index 1c8f86afc9..1de473de9f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,14 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> +