diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index 25b07e27f060..292629eb3ca5 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -42,7 +42,14 @@
#define INSULATED /datum/mutation/human/insulated
#define SHOCKTOUCH /datum/mutation/human/shock
#define OLFACTION /datum/mutation/human/olfaction
+<<<<<<< HEAD
#define YELLING /datum/mutation/human/yelling
+=======
+#define ACIDFLESH /datum/mutation/human/acidflesh
+#define BADBLINK /datum/mutation/human/badblink
+#define SPASTIC /datum/mutation/human/spastic
+#define EXTRASTUN /datum/mutation/human/extrastun
+>>>>>>> 313db3ad8b... Tweaks the drill hat to be a bit less annoying (#42655)
#define GELADIKINESIS /datum/mutation/human/geladikinesis
#define CRYOKINESIS /datum/mutation/human/cryokinesis
diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm
index 7f4228cf1288..eb3cc855fa6f 100644
--- a/code/datums/mutations/speech.dm
+++ b/code/datums/mutations/speech.dm
@@ -221,16 +221,3 @@
..()
owner.grant_language(/datum/language/common)
owner.remove_language(/datum/language/beachbum)
-
-/datum/mutation/human/yelling
- name = "Yelling"
- desc = "A mutation that forces the host to constantly yell their sentences out."
- quality = MINOR_NEGATIVE
- locked = TRUE
- text_gain_indication = "You feel really angry."
- text_lose_indication = "You feel calmer."
-
-/datum/mutation/human/yelling/say_mod(message)
- if(message)
- message = "[uppertext(replacetext(message, ".", "!"))]!"
- return (message)
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 12551aec1395..0f62f948e639 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -1,3 +1,8 @@
+//defines the drill hat's yelling setting
+#define DRILL_DEFAULT "default"
+#define DRILL_SHOUTING "shouting"
+#define DRILL_YELLING "yelling"
+#define DRILL_CANADIAN "canadian"
//Chef
/obj/item/clothing/head/chefhat
@@ -163,19 +168,63 @@
dog_fashion = /datum/dog_fashion/head/warden
/obj/item/clothing/head/warden/drill
- name = "warden's drill hat"
- desc = "A special armored campaign hat with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection. Has the letters 'FMJ' enscribed on its side."
+ name = "warden's campaign hat"
+ desc = "A special armored campaign hat with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection."
icon_state = "wardendrill"
item_state = "wardendrill"
dog_fashion = null
+ var/mode = DRILL_DEFAULT
-/obj/item/clothing/head/warden/drill/equipped(mob/living/carbon/human/user, slot)
- ..()
- if(slot == SLOT_HEAD)
- user.dna.add_mutation(YELLING)
+/obj/item/clothing/head/warden/drill/screwdriver_act(mob/living/carbon/human/user, obj/item/I)
+ if(..())
+ return TRUE
+ switch(mode)
+ if(DRILL_DEFAULT)
+ to_chat(user, "You set the voice circuit to the middle position.")
+ mode = DRILL_SHOUTING
+ if(DRILL_SHOUTING)
+ to_chat(user, "You set the voice circuit to the last position.")
+ mode = DRILL_YELLING
+ if(DRILL_YELLING)
+ to_chat(user, "You set the voice circuit to the first position.")
+ mode = DRILL_DEFAULT
+ if(DRILL_CANADIAN)
+ to_chat(user, "You adjust voice circuit but nothing happens, probably because it's broken.")
+ return TRUE
-/obj/item/clothing/head/warden/drill/dropped(mob/living/carbon/human/user)
- user.dna.remove_mutation(YELLING)
+/obj/item/clothing/head/warden/drill/wirecutter_act(mob/living/user, obj/item/I)
+ if(mode != DRILL_CANADIAN)
+ to_chat(user, "You broke the voice circuit!")
+ mode = DRILL_CANADIAN
+ return TRUE
+
+/obj/item/clothing/head/warden/drill/speechModification(M)
+ if(copytext(M, 1, 2) != "*")
+ if(mode == DRILL_DEFAULT)
+ M = " [M]"
+ return trim(M)
+ if(mode == DRILL_SHOUTING)
+ M = " [M]!"
+ return trim(M)
+ if(mode == DRILL_YELLING)
+ M = " [M]!!"
+ return trim(M)
+ if(mode == DRILL_CANADIAN)
+ M = " [M]"
+ var/list/canadian_words = strings("canadian_replacement.json", "canadian")
+
+ for(var/key in canadian_words)
+ var/value = canadian_words[key]
+ if(islist(value))
+ value = pick(value)
+
+ M = replacetextEx(M, " [uppertext(key)]", " [uppertext(value)]")
+ M = replacetextEx(M, " [capitalize(key)]", " [capitalize(value)]")
+ M = replacetextEx(M, " [key]", " [value]")
+
+ if(prob(30))
+ M += pick(", eh?", ", EH?")
+ return trim(M)
/obj/item/clothing/head/beret/sec
name = "security beret"
@@ -206,3 +255,8 @@
name = "treasure hunter's fedora"
desc = "You got red text today kid, but it doesn't mean you have to like it."
icon_state = "curator"
+
+#undef DRILL_DEFAULT
+#undef DRILL_SHOUTING
+#undef DRILL_YELLING
+#undef DRILL_CANADIAN
diff --git a/strings/canadian_replacement.json b/strings/canadian_replacement.json
new file mode 100644
index 000000000000..1430ae879390
--- /dev/null
+++ b/strings/canadian_replacement.json
@@ -0,0 +1,45 @@
+{
+
+ "canadian": {
+ "toilet": "washroom",
+ "bathroom": "washroom",
+ "restroom": "washroom",
+ "coffee": "doubledouble",
+ "backpack": "knapsack",
+ "rucksack": "knapsack",
+ "candybar": "chocolate bar",
+ "about": "aboot",
+ "friend": "buddy",
+ "pal": "buddy",
+ "donut": "doughnut",
+ "faucet": "tap",
+ "give": "give'r",
+ "bar": "boozecan",
+ "leave": "leave'r",
+ "scruffle": "kerfuffle",
+ "couch": "chesterfield",
+ "sofa": "chesterfield",
+ "alcohol": "mickey",
+ "shoes": "runners",
+ "cigarrete": "dart",
+ "cig": "dart",
+ "color": "colour",
+ "armor": "armour",
+ "armory": "armoury",
+ "defense": "defence",
+ "honor": "honour",
+ "labor": "labour",
+ "humor": "humour",
+ "humorous": "humourous",
+ "gray": "grey",
+ "labeled": "labelled",
+ "luster": "lustre",
+ "inch": "centimetre",
+ "yard": "metre",
+ "tumor": "tumour",
+ "mile": "kilometre",
+ "pound": "kilogram"
+ }
+
+
+}