diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 206536abb4a..3e515d4471b 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -12,6 +12,7 @@
#define PARALYZE "paralize"
#define IRRADIATE "irradiate"
#define STUTTER "stutter"
+#define SLUR "slur"
#define EYE_BLUR "eye_blur"
#define DROWSY "drowsy"
#define JITTER "jitter"
diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm
index aa1d40b81b2..64a0ea5e688 100644
--- a/code/modules/flufftext/TextFilters.dm
+++ b/code/modules/flufftext/TextFilters.dm
@@ -1,28 +1,6 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
-proc/Intoxicated(phrase)
- phrase = html_decode(phrase)
- var/leng=lentext(phrase)
- var/counter=lentext(phrase)
- var/newphrase=""
- var/newletter=""
- while(counter>=1)
- newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2)
- if(rand(1,3)==3)
- if(lowertext(newletter)=="o") newletter="u"
- if(lowertext(newletter)=="s") newletter="ch"
- if(lowertext(newletter)=="a") newletter="ah"
- if(lowertext(newletter)=="c") newletter="k"
- switch(rand(1,7))
- if(1,3,5,8) newletter="[lowertext(newletter)]"
- if(2,4,6,15) newletter="[uppertext(newletter)]"
- if(7) newletter+="'"
- //if(9,10) newletter="[newletter]"
- //if(11,12) newletter="[newletter]"
- //if(13) newletter="[newletter]"
- newphrase+="[newletter]";counter-=1
- return newphrase
-
+//is this shit even used at all
proc/NewStutter(phrase,stunned)
phrase = html_decode(phrase)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index a6477d24f93..1f4727b67cb 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -529,6 +529,9 @@
if(stuttering)
stuttering = max(stuttering-1, 0)
+ if(slurring)
+ slurring = max(slurring-1,0)
+
if(silent)
silent = max(silent-1, 0)
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index aa2ce1fb29b..d8c040f394e 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -4,6 +4,8 @@
var/ending = copytext(text, length(text))
if (src.stuttering)
return "stammers, \"[text]\"";
+ if(src.slurring)
+ return "slurs, \"[text]\"";
if(isliving(src))
var/mob/living/L = src
if (L.getBrainLoss() >= 60)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index f94e95160da..e68d1be4cdf 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -261,6 +261,9 @@ var/list/department_radio_keys = list(
if(stuttering)
message = stutter(message)
+ if(slurring)
+ message = slur(message)
+
message = capitalize(message)
return message
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 94b6d8b68f1..6a4aa3f319f 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -52,6 +52,7 @@
var/ear_deaf = 0 //Carbon
var/ear_damage = 0 //Carbon
var/stuttering = null //Carbon
+ var/slurring = 0 //Carbon
var/real_name = null
var/bhunger = 0 //Carbon
var/ajourn = 0
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index e4b923b5ea9..0a516b0d32e 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -203,6 +203,31 @@ proc/isorgan(A)
p++
return sanitize(t)
+proc/slur(n)
+ var/phrase = html_decode(n)
+ var/leng = lentext(phrase)
+ var/counter=lentext(phrase)
+ var/newphrase=""
+ var/newletter=""
+ while(counter>=1)
+ newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2)
+ if(rand(1,3)==3)
+ if(lowertext(newletter)=="o") newletter="u"
+ if(lowertext(newletter)=="s") newletter="ch"
+ if(lowertext(newletter)=="a") newletter="ah"
+ if(lowertext(newletter)=="u") newletter="oo"
+ if(lowertext(newletter)=="c") newletter="k"
+ if(rand(1,20)==20)
+ if(newletter==" ") newletter="...huuuhhh..."
+ if(newletter==".") newletter=" *BURP*."
+ switch(rand(1,17))
+ if(1,3,5,8) newletter="[lowertext(newletter)]"
+ if(2,4,6,15) newletter="[uppertext(newletter)]"
+ if(7) newletter+="'"
+ if(16) newletter+="[newletter]"
+ if(17) newletter+="[newletter][newletter]"
+ newphrase+="[newletter]";counter-=1
+ return newphrase
/proc/stutter(n)
var/te = html_decode(n)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 0de1e2fe156..bf61095ee95 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -33,6 +33,7 @@
var/paralyze = 0
var/irradiate = 0
var/stutter = 0
+ var/slur = 0
var/eyeblur = 0
var/drowsy = 0
var/stamina = 0
@@ -59,7 +60,7 @@
if(isanimal(target)) return 0
var/mob/living/L = target
L.on_hit(type)
- return L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, blocked, stamina, jitter)
+ return L.apply_effects(stun, weaken, paralyze, irradiate, stutter, slur, eyeblur, drowsy, blocked, stamina, jitter)
/obj/item/projectile/proc/vol_by_damage()
if(src.damage)
diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm
index 07eaac83468..10af58d2f2b 100644
--- a/code/modules/reagents/Chemistry-Goon-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm
@@ -762,7 +762,7 @@ datum/reagent/antihol
datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
M.dizziness = 0
M.drowsyness = 0
- M.stuttering = 0
+ M.slurring = 0
M.confused = 0
M.reagents.remove_reagent("ethanol", 8)
M.adjustToxLoss(-0.2*REM)
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
index 719f217191e..3845d2a5b76 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
@@ -27,8 +27,8 @@ datum/reagent/consumable/ethanol/on_mob_life(var/mob/living/M as mob)
data++
M.jitteriness = max(M.jitteriness-5,0)
if(data >= boozepwr)
- if (!M.stuttering) M.stuttering = 1
- M.stuttering += 4
+ if (!M.slurring) M.slurring = 1
+ M.slurring += 4
M.Dizzy(5)
if(data >= boozepwr*2.5 && prob(33))
if (!M.confused) M.confused = 1
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
index 978390a256a..d7ae0aa1ab9 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
@@ -412,9 +412,9 @@ datum/reagent/consumable/atomicbomb/on_mob_life(var/mob/living/M as mob)
M.druggy = max(M.druggy, 50)
M.confused = max(M.confused+2,0)
M.Dizzy(10)
- if (!M.stuttering)
- M.stuttering = 1
- M.stuttering += 3
+ if (!M.slurring)
+ M.slurring = 1
+ M.slurring += 3
if(!data)
data = 1
data++
@@ -439,9 +439,9 @@ datum/reagent/consumable/gargle_blaster/on_mob_life(var/mob/living/M as mob)
data++
M.dizziness +=6
if(data >= 15 && data <45)
- if (!M.stuttering)
- M.stuttering = 1
- M.stuttering += 3
+ if (!M.slurring)
+ M.slurring = 1
+ M.slurring += 3
else if(data >= 45 && prob(50) && data <55)
M.confused = max(M.confused+3,0)
else if(data >=55)
@@ -464,9 +464,9 @@ datum/reagent/consumable/neurotoxin/on_mob_life(var/mob/living/carbon/M as mob)
data++
M.dizziness +=6
if(data >= 15 && data <45)
- if (!M.stuttering)
- M.stuttering = 1
- M.stuttering += 3
+ if (!M.slurring)
+ M.slurring = 1
+ M.slurring += 3
else if(data >= 45 && prob(50) && data <55)
M.confused = max(M.confused+3,0)
else if(data >=55)
@@ -491,23 +491,23 @@ datum/reagent/consumable/hippies_delight/on_mob_life(var/mob/living/M as mob)
data++
switch(data)
if(1 to 5)
- if (!M.stuttering) M.stuttering = 1
+ if (!M.slurring) M.slurring = 1
M.Dizzy(10)
if(prob(10)) M.emote(pick("twitch","giggle"))
if(5 to 10)
- if (!M.stuttering) M.stuttering = 1
+ if (!M.slurring) M.slurring = 1
M.Jitter(20)
M.Dizzy(20)
M.druggy = max(M.druggy, 45)
if(prob(20)) M.emote(pick("twitch","giggle"))
if (10 to 200)
- if (!M.stuttering) M.stuttering = 1
+ if (!M.slurring) M.slurring = 1
M.Jitter(40)
M.Dizzy(40)
M.druggy = max(M.druggy, 60)
if(prob(30)) M.emote(pick("twitch","giggle"))
if(200 to INFINITY)
- if (!M.stuttering) M.stuttering = 1
+ if (!M.slurring) M.slurring = 1
M.Jitter(60)
M.Dizzy(60)
M.druggy = max(M.druggy, 75)
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
index e5109c8f07b..0d3e37d4d6b 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
@@ -268,22 +268,22 @@ datum/reagent/mushroomhallucinogen/on_mob_life(var/mob/living/M as mob)
data = 1
switch(data)
if(1 to 5)
- if (!M.stuttering)
- M.stuttering = 1
+ if (!M.slurring)
+ M.slurring = 1
M.Dizzy(5)
if(prob(10))
M.emote(pick("twitch","giggle"))
if(5 to 10)
- if (!M.stuttering)
- M.stuttering = 1
+ if (!M.slurring)
+ M.slurring = 1
M.Jitter(10)
M.Dizzy(10)
M.druggy = max(M.druggy, 35)
if(prob(20))
M.emote(pick("twitch","giggle"))
if (10 to INFINITY)
- if (!M.stuttering)
- M.stuttering = 1
+ if (!M.slurring)
+ M.slurring = 1
M.Jitter(20)
M.Dizzy(20)
M.druggy = max(M.druggy, 40)
diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
index 7021ad69946..2fc73900f9a 100644
--- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm
@@ -67,6 +67,7 @@ datum/reagent/medicine/adminordrazine/on_mob_life(var/mob/living/carbon/M as mob
M.dizziness = 0
M.drowsyness = 0
M.stuttering = 0
+ M.slurring = 0
M.confused = 0
M.sleeping = 0
M.jitteriness = 0