diff --git a/code/defines/obj/radio.dm b/code/defines/obj/radio.dm
index 7f170e17f83..00211b92873 100644
--- a/code/defines/obj/radio.dm
+++ b/code/defines/obj/radio.dm
@@ -53,6 +53,9 @@
item_state = "headset"
var/protective_temperature = 0
+/obj/item/device/radio/headset/traitor
+// No variables, as everything else it does is handled in human's life.dm
+
/obj/item/device/radio/headset/headset_sec // -- TLE
name = "Security Radio Headset"
icon_state = "sec_headset"
diff --git a/code/game/objects/devices/PDA.dm b/code/game/objects/devices/PDA.dm
index a36ed97a9f3..5af62f79b75 100644
--- a/code/game/objects/devices/PDA.dm
+++ b/code/game/objects/devices/PDA.dm
@@ -1685,6 +1685,7 @@ Code:
src.menu_message += "Power Sink (5)
"
src.menu_message += "Detomatix Cartridge (3)
"
src.menu_message += "Syndicate-made Space Suit (inludes a helmet) (3)
"
+ src.menu_message += "Binary Translator (4)
"
src.menu_message += "
"
return
@@ -1781,6 +1782,11 @@ Code:
src.uses -= 3
new /obj/item/clothing/suit/space/syndicate(get_turf(src.hostpda))
new /obj/item/clothing/head/helmet/space/syndicate(get_turf(src.hostpda))
+ if("botchat")
+ if (src.uses >= 4)
+ src.uses -= 4
+ new /obj/item/device/radio/headset/traitor(get_turf(src.hostpda))
+
src.generate_menu()
src.print_to_host(src.menu_message)
return
diff --git a/code/game/objects/items/weapons/uplinks.dm b/code/game/objects/items/weapons/uplinks.dm
index d2c65fdb002..72e58e22086 100644
--- a/code/game/objects/items/weapons/uplinks.dm
+++ b/code/game/objects/items/weapons/uplinks.dm
@@ -45,6 +45,7 @@ SYNDICATE UPLINK
dat += "Power Sink (5)
"
dat += "Detomatix Cartridge (3)"
dat += "Syndicate-made Space Suit (inludes a helmet) (3)
"
+ dat += "Binary Translator (5)
"
dat += "
"
if (src.origradio)
dat += "Lock
"
@@ -132,6 +133,10 @@ SYNDICATE UPLINK
src.uses -= 3
new /obj/item/clothing/suit/space/syndicate(H.loc)
new /obj/item/clothing/head/helmet/space/syndicate(H.loc)
+ else if(href_list["item_botchat"])
+ if (src.uses >= 5)
+ src.uses -= 5
+ new /obj/item/device/radio/headset/traitor(H.loc)
else if (href_list["lock"] && src.origradio)
// presto chango, a regular radio again! (reset the freq too...)
usr.machine = null
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 686df3513c0..e91461cd157 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -178,7 +178,7 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
*/
for(var/mob/living/silicon/ai/M in world)
if(M.stat != 2 && M.see_in_dark != 0)
- var/who2 = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "POLITICIANS", "LIGHTS")
+ var/who2 = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "BANDITS", "LIGHTS")
var/what2 = pick("BOLTERS", "STAVES", "DICE", "SINGULARITIES", "TOOLBOXES", "NETTLES", "AIRLOCKS", "CLOTHES", "WEAPONS", "MEDKITS", "BOMBS", "CANISTERS", "CHAIRS", "BBQ GRILLS", "ID CARDS")
var/what2pref = pick("SOFT", "WARM", "WET", "COLD", "ICY", "SEXY", "UGLY", "CUBAN")
var/who2pref = pick("MAD BECAUSE OF", "IN NEED OF", "UNHAPPY WITHOUT", "HAPPY WITHOUT", "IN LOVE WITH", "DESPERATE FOR", "BUILT FOR", "AFRAID OF")
@@ -190,7 +190,7 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU")
var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED")
var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid")
- var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD")
+ var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE")
var/crew
var/list/pos_crew = list()
for(var/mob/living/carbon/human/pos in world)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 5a82fb5b693..0906546b5d4 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -678,6 +678,11 @@
handle_regular_hud_updates()
+ if (istype(src.ears, /obj/item/device/radio/headset/traitor))
+ src.robot_talk_understand = 1
+ else
+ src.robot_talk_understand = 0
+
if (src.stat == 2 || src.mutations & 4)
src.sight |= SEE_TURFS
src.sight |= SEE_MOBS
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 23595a6388e..96ff99af661 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi
index 074bdde9f96..fa6a5c94450 100644
Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ