diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index fc6bbfc4067..10a6a98b4a5 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -206,7 +206,7 @@ if(issilicon(traitor.current)) add_law_zero(traitor.current) traitor.current.playsound_local('sound/ambience/antag/Malf.ogg',100,0) - traitor.current.grant_language(/datum/language/common/codespeak) + traitor.current.grant_language(/datum/language/codespeak) else equip_traitor(traitor.current) traitor.current.playsound_local('sound/ambience/antag/TatorAlert.ogg',100,0) diff --git a/code/modules/language/codespeak.dm b/code/modules/language/codespeak.dm index 33b81ea90d0..535e2b46e69 100644 --- a/code/modules/language/codespeak.dm +++ b/code/modules/language/codespeak.dm @@ -1,4 +1,4 @@ -/datum/language/common/codespeak +/datum/language/codespeak name = "Codespeak" desc = "Syndicate operatives can use a series of codewords to convey complex information, while sounding like random concepts and drinks to anyone listening in." key = "t" @@ -6,7 +6,7 @@ flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD icon_state = "codespeak" -/datum/language/common/codespeak/scramble(input) +/datum/language/codespeak/scramble(input) var/lookup = check_cache(input) if(lookup) return lookup @@ -19,6 +19,10 @@ . = capitalize(.) + var/input_ending = copytext(input, length(input)) + if(input_ending in list("!","?",".")) + . += input_ending + add_to_cache(input, .) /obj/item/weapon/codespeak_manual @@ -32,12 +36,12 @@ if(!isliving(user)) return - if(user.has_language(/datum/language/common/codespeak)) + if(user.has_language(/datum/language/codespeak)) to_chat(user, "You start skimming through [src], but you already know Codespeak.") return to_chat(user, "You start skimming through [src], and suddenly your mind is filled with codewords and responses.") - user.grant_language(/datum/language/common/codespeak) + user.grant_language(/datum/language/codespeak) use_charge(user) @@ -52,11 +56,11 @@ if(M.stat == DEAD) M.visible_message("[user] smacks [M]'s lifeless corpse with [src].", "[user] smacks your lifeless corpse with [src].", "You hear smacking.") - else if(M.has_language(/datum/language/common/codespeak)) + else if(M.has_language(/datum/language/codespeak)) M.visible_message("[user] beats [M] over the head with [src]!", "[user] beats you over the head with [src]!", "You hear smacking.") else M.visible_message("[user] teaches [M] by beating them over the head with [src]!", "As [user] hits you with [src], codewords and responses flow through your mind.", "You hear smacking.") - M.grant_language(/datum/language/common/codespeak) + M.grant_language(/datum/language/codespeak) use_charge(user) /obj/item/weapon/codespeak_manual/proc/use_charge(mob/user) diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 2636e2e5d55..f2764ca386a 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -14,6 +14,7 @@ languages_possible = typecacheof(list( /datum/language/common, /datum/language/draconic, + /datum/language/codespeak, /datum/language/monkey, /datum/language/narsie, /datum/language/ratvar