<commit_before>/mob/living/carbon/human/say(var/message)

	if(silent)
		return

	//Mimes dont speak! Changeling hivemind and emotes are allowed.
	if(miming)
		if(length(message) >= 2)
			if(mind && mind.changeling)
				if(copytext(message, 1, 2) != "*" && department_radio_keys[copytext(message, 1, 3)] != "changeling")
					return
				else
					return ..(message)
			if(stat == DEAD)
				return ..(message)

		if(length(message) >= 1) //In case people forget the '*help' command, this will slow them the message and prevent people from saying one letter at a time
			if (copytext(message, 1, 2) != "*")
				return

	/*if(dna)
		if(dna.mutantrace == "lizard")
			if(copytext(message, 1, 2) != "*")
				message = replacetext(message, "s", stutter("ss"))

		if(dna.mutantrace == "slime" && prob(5))
			if(copytext(message, 1, 2) != "*")
				if(copytext(message, 1, 2) == ";")
					message = ";"
				else
					message = ""
				message += "SKR"
				var/imax = rand(5,20)
				for(var/i = 0,i<imax,i++)
					message += "E"*/

	if(stat != DEAD)
		for(var/datum/disease/pierrot_throat/D in viruses)
			var/list/temp_message = text2list(message, " ") //List each word in the message
			var/list/pick_list = list()
			for(var/i = 1, i <= temp_message.len, i++) //Create a second list for excluding words down the line
				pick_list += i
			for(var/i=1, ((i <= D.stage) && (i <= temp_message.len)), i++) //Loop for each stage of the disease or until we run out of words
				if(prob(3 * D.stage)) //Stage 1: 3% Stage 2: 6% Stage 3: 9% Stage 4: 12%
					var/H = pick(pick_list)
					if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
					temp_message[H] = "HONK"
					pick_list -= H //Make sure that you dont HONK the same word twice
				message = dd_list2text(temp_message, " ")

	if(wear_mask)
		if(istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja) && wear_mask:voice == "Unknown")
			if(copytext(message, 1, 2) != "*")
				var/list/temp_message = text2list(message, " ")
				var/list/pick_list = list()
				for(var/i = 1, i <= temp_message.len, i++)
					pick_list += i
				for(var/i=1, i <= abs(temp_message.len/3), i++)
					var/H = pick(pick_list)
					if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
					temp_message[H] = ninjaspeak(temp_message[H])
					pick_list -= H
				message = dd_list2text(temp_message, " ")
				message = replacetext(message, "o", "")
				message = replacetext(message, "p", "")
				message = replacetext(message, "l", "")
				message = replacetext(message, "s", "")
				message = replacetext(message, "u", "")
				message = replacetext(message, "b", "")

		else if(istype(wear_mask, /obj/item/clothing/mask/luchador))
			if(copytext(message, 1, 2) != "*")
				message = replacetext(message, "captain", "CAPITN")
				message = replacetext(message, "station", "ESTACIN")
				message = replacetext(message, "sir", "SEOR")
				message = replacetext(message, "the ", "el ")
				message = replacetext(message, "my ", "mi ")
				message = replacetext(message, "is ", "es ")
				message = replacetext(message, "it's", "es")
				message = replacetext(message, "friend", "amigo")
				message = replacetext(message, "buddy", "amigo")
				message = replacetext(message, "hello", "hola")
				message = replacetext(message, " hot", " caliente")
				message = replacetext(message, " very ", " muy ")
				message = replacetext(message, "sword", "espada")
				message = replacetext(message, "library", "biblioteca")
				message = replacetext(message, "traitor", "traidor")
				message = replacetext(message, "wizard", "mago")
				message = uppertext(message)	//Things end up looking better this way (no mixed cases), and it fits the macho wrestler image.
				if(prob(25))
					message += " OLE!"

		else if(istype(wear_mask, /obj/item/clothing/mask/horsehead))
			var/obj/item/clothing/mask/horsehead/hoers = wear_mask
			if(hoers.voicechange)
				if(!(copytext(message, 1, 2) == "*" || (mind && mind.changeling && department_radio_keys[copytext(message, 1, 3)] != "changeling")))
					message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")

	if ((HULK in mutations) && health >= 25 && length(message))
		if(copytext(message, 1, 2) != "*")
			message = "[uppertext(message)]!!" //because I don't know how to code properly in getting vars from other files -Bro

	if (src.slurring)
		if(copytext(message, 1, 2) != "*")
			message = slur(message)
	..(message)

/mob/living/carbon/human/say_understands(var/other)
	if (istype(other, /mob/living/silicon/ai))
		return 1
	if (istype(other, /mob/living/silicon/decoy))
		return 1<commit_msg>Commented out luchador string replacement.<commit_after>/mob/living/carbon/human/say(var/message)

	if(silent)
		return

	//Mimes dont speak! Changeling hivemind and emotes are allowed.
	if(miming)
		if(length(message) >= 2)
			if(mind && mind.changeling)
				if(copytext(message, 1, 2) != "*" && department_radio_keys[copytext(message, 1, 3)] != "changeling")
					return
				else
					return ..(message)
			if(stat == DEAD)
				return ..(message)

		if(length(message) >= 1) //In case people forget the '*help' command, this will slow them the message and prevent people from saying one letter at a time
			if (copytext(message, 1, 2) != "*")
				return

	/*if(dna)
		if(dna.mutantrace == "lizard")
			if(copytext(message, 1, 2) != "*")
				message = replacetext(message, "s", stutter("ss"))

		if(dna.mutantrace == "slime" && prob(5))
			if(copytext(message, 1, 2) != "*")
				if(copytext(message, 1, 2) == ";")
					message = ";"
				else
					message = ""
				message += "SKR"
				var/imax = rand(5,20)
				for(var/i = 0,i<imax,i++)
					message += "E"*/

	if(stat != DEAD)
		for(var/datum/disease/pierrot_throat/D in viruses)
			var/list/temp_message = text2list(message, " ") //List each word in the message
			var/list/pick_list = list()
			for(var/i = 1, i <= temp_message.len, i++) //Create a second list for excluding words down the line
				pick_list += i
			for(var/i=1, ((i <= D.stage) && (i <= temp_message.len)), i++) //Loop for each stage of the disease or until we run out of words
				if(prob(3 * D.stage)) //Stage 1: 3% Stage 2: 6% Stage 3: 9% Stage 4: 12%
					var/H = pick(pick_list)
					if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
					temp_message[H] = "HONK"
					pick_list -= H //Make sure that you dont HONK the same word twice
				message = dd_list2text(temp_message, " ")

	if(wear_mask)
		if(istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja) && wear_mask:voice == "Unknown")
			if(copytext(message, 1, 2) != "*")
				var/list/temp_message = text2list(message, " ")
				var/list/pick_list = list()
				for(var/i = 1, i <= temp_message.len, i++)
					pick_list += i
				for(var/i=1, i <= abs(temp_message.len/3), i++)
					var/H = pick(pick_list)
					if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
					temp_message[H] = ninjaspeak(temp_message[H])
					pick_list -= H
				message = dd_list2text(temp_message, " ")
				message = replacetext(message, "o", "")
				message = replacetext(message, "p", "")
				message = replacetext(message, "l", "")
				message = replacetext(message, "s", "")
				message = replacetext(message, "u", "")
				message = replacetext(message, "b", "")

		/*else if(istype(wear_mask, /obj/item/clothing/mask/luchador))
			if(copytext(message, 1, 2) != "*")
				message = replacetext(message, "captain", "CAPITN")
				message = replacetext(message, "station", "ESTACIN")
				message = replacetext(message, "sir", "SEOR")
				message = replacetext(message, "the ", "el ")
				message = replacetext(message, "my ", "mi ")
				message = replacetext(message, "is ", "es ")
				message = replacetext(message, "it's", "es")
				message = replacetext(message, "friend", "amigo")
				message = replacetext(message, "buddy", "amigo")
				message = replacetext(message, "hello", "hola")
				message = replacetext(message, " hot", " caliente")
				message = replacetext(message, " very ", " muy ")
				message = replacetext(message, "sword", "espada")
				message = replacetext(message, "library", "biblioteca")
				message = replacetext(message, "traitor", "traidor")
				message = replacetext(message, "wizard", "mago")
				message = uppertext(message)	//Things end up looking better this way (no mixed cases), and it fits the macho wrestler image.
				if(prob(25))
					message += " OLE!"*/

		else if(istype(wear_mask, /obj/item/clothing/mask/horsehead))
			var/obj/item/clothing/mask/horsehead/hoers = wear_mask
			if(hoers.voicechange)
				if(!(copytext(message, 1, 2) == "*" || (mind && mind.changeling && department_radio_keys[copytext(message, 1, 3)] != "changeling")))
					message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")

	if ((HULK in mutations) && health >= 25 && length(message))
		if(copytext(message, 1, 2) != "*")
			message = "[uppertext(message)]!!" //because I don't know how to code properly in getting vars from other files -Bro

	if (src.slurring)
		if(copytext(message, 1, 2) != "*")
			message = slur(message)
	..(message)

/mob/living/carbon/human/say_understands(var/other)
	if (istype(other, /mob/living/silicon/ai))
		return 1
	if (istype(other, /mob/living/silicon/decoy))
		return 1
{'fraction_non_alphanumeric': 0.1763088313061872, 'fraction_numerical': 0.011845584346906399, 'mean_word_length': 3.8048780487804876, 'pattern_counts': {'":': 4, '<': 15, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1358415', 'n_tokens_mistral': 4048, 'n_tokens_neox': 3373, 'n_words': 787}