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" + } + + +}