diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 3ef735d483f..51b09f7f776 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -104,6 +104,8 @@ var/r_ch_cou = 0 var/r_Tourette = 0 + var/miming = null //checks if the guy is a mime + var/obj/hud/hud_used = null var/list/organs = list( ) diff --git a/code/defines/obj/clothing.dm b/code/defines/obj/clothing.dm index 3c344ef6c57..7740533bcaa 100644 --- a/code/defines/obj/clothing.dm +++ b/code/defines/obj/clothing.dm @@ -200,6 +200,12 @@ icon_state = "plaguedoctor" flags = FPRINT | TABLEPASS | HEADSPACE +/obj/item/clothing/head/beret + name = "beret" + desc = "A mime's beret" + icon_state = "beret" + flags = FPRINT | TABLEPASS | HEADSPACE + // CHUMP HELMETS: COOKING THEM DESTROYS THE CHUMP HELMET SPAWN. @@ -366,6 +372,15 @@ var/smoketime = 300 w_class = 1 +/obj/item/clothing/mask/mime + name = "mime mask" + desc = "It looks a little creepy" + icon_state = "mime" + throw_speed = 0.5 + var/lastHolder = null + var/smoketime = 300 + w_class = 1 + // OMG SHOES /obj/item/clothing/shoes @@ -881,6 +896,13 @@ item_state = "red_suit" color = "red_suit" +/obj/item/clothing/under/mime + name = "Mime Outfit" + desc = "It's not very colourful." + icon_state = "mime" + item_state = "mime" + color = "mime" + // Athletic shorts.. heh /obj/item/clothing/under/shorts diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index e2d05ca17fa..408dd6837f0 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -135,6 +135,8 @@ return list(access_janitor, access_maint_tunnels) if("Clown") return list(access_maint_tunnels) + if("Mime") + return list(access_maint_tunnels) if("Chef") return list(access_kitchen) if("Roboticist") @@ -241,6 +243,6 @@ /proc/get_all_jobs() return list("Assistant", "Station Engineer", "Detective", "Medical Doctor", "Captain", "Security Officer", "Geneticist", "Scientist", "Head of Security", "Head of Personnel", "Atmospheric Technician", - "Chaplain", "Barman", "Chemist", "Janitor", "Clown", "Chef", "Roboticist", "Quartermaster", + "Chaplain", "Barman", "Chemist", "Janitor", "Clown", "Mime", "Chef", "Roboticist", "Quartermaster", "Chief Engineer", "Research Director", "Botanist", "Librarian", "Lawyer") diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 4c986c17f66..013032db589 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -174,6 +174,13 @@ return 1 /mob/living/carbon/human/proc/Equip_Rank(rank, joined_late) + + /* + if(rank=="Clown") + if(alert("Do you want to be a clown or a mime?",,"Clown","Mime")=="Mime") + rank="Mime" //Why no work -- Urist + */ + /*if(joined_late && ticker.mode.name == "ctf") var/red_team var/green_team @@ -301,6 +308,18 @@ src.equip_if_possible(new /obj/item/weapon/bikehorn(src), slot_in_backpack) src.mutations |= 16 + if ("Mime") + src.equip_if_possible(new /obj/item/weapon/storage/backpack(src), slot_back) + src.equip_if_possible(new /obj/item/device/pda/mime(src), slot_belt) + src.equip_if_possible(new /obj/item/clothing/under/mime(src), slot_w_uniform) + src.equip_if_possible(new /obj/item/clothing/shoes/black(src), slot_shoes) + src.equip_if_possible(new /obj/item/clothing/gloves/latex(src), slot_gloves) + src.equip_if_possible(new /obj/item/clothing/mask/mime(src), slot_wear_mask) + src.equip_if_possible(new /obj/item/clothing/head/beret(src), slot_head) + src.verbs += /client/proc/mimespeak + src.verbs += /client/proc/mimewall + src.miming = 1 + if ("Station Engineer") src.equip_if_possible(new /obj/item/device/radio/headset/headset_eng (src), slot_ears) // -- TLE src.equip_if_possible(new /obj/item/device/pda/engineering(src), slot_belt) @@ -550,4 +569,39 @@ src.equip_if_possible(new /obj/item/device/pda(src), slot_belt) if (istype(src.belt, /obj/item/device/pda)) src.belt:owner = src.real_name - src.belt.name = "PDA-[src.real_name]" \ No newline at end of file + src.belt.name = "PDA-[src.real_name]" + +/client/proc/mimewall() + set category = "Mime" + set name = "Invisible wall" + set desc = "Create an invisible wall on your location." + if(usr.stat) + usr << "Not when you're incapicated." + return + if(!usr.miming) + usr << "You still haven't atoned for your speaking transgression. Wait." + return + usr.verbs -= /client/proc/mimewall + spawn(100) + usr.verbs += /client/proc/mimewall + for (var/mob/V in viewers(usr)) + if(V!=usr) + V.show_message("[usr] looks as if a wall is in front of him.", 3, "", 2) + usr << "You form a wall in front of yourself." + var/obj/forcefield/F = new /obj/forcefield(locate(usr.x,usr.y,usr.z)) + F.icon_state = "empty" + spawn (300) + del (F) + return + +/client/proc/mimespeak() + set category = "Mime" + set name = "Speech" + set desc = "Toggle your speech." + if(usr.miming) + usr.miming = 0 + else + usr << "You'll have to wait if you want to atone for your sins." + spawn(3000) + usr.miming = 1 + return \ No newline at end of file diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index e5b0f560870..bb933c7e4a0 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -16,7 +16,7 @@ var/list/occupations = list( "Barman", "Chef", "Janitor", - "Clown", + "Clown", "Mime", "Chemist", "Quartermaster","Quartermaster","Quartermaster", "Botanist", "Botanist", diff --git a/code/game/objects/devices/PDA.dm b/code/game/objects/devices/PDA.dm index 039a8e070c5..5007ca9f27d 100644 --- a/code/game/objects/devices/PDA.dm +++ b/code/game/objects/devices/PDA.dm @@ -26,6 +26,7 @@ var/last_honk //Also no honk spamming that's bad too var/ttone = "beep" //The ringtone! var/honkamt = 0 //How many honks left when infected with honk.exe + var/mimeamt = 0 //How many silence left when infected with mime.exe var/note = "Congratulations, your station has chosen the Thinktronic 5100 Personal Data Assistant!" //Current note in the notepad function. var/datum/data/record/active1 = null //General var/datum/data/record/active2 = null //Medical @@ -61,6 +62,12 @@ desc = "A portable microcomputer by Thinktronic Systems, LTD. The surface is coated with polytetrafluoroethylene and banana drippings." ttone = "honk" +/obj/item/device/pda/mime + default_cartridge = /obj/item/weapon/cartridge/mime + icon_state = "pda-mime" + silent = 1 + ttone = "silence" + /obj/item/device/pda/heads default_cartridge = /obj/item/weapon/cartridge/head icon_state = "pda-h" @@ -97,6 +104,7 @@ var/access_medical = 0 var/access_manifest = 0 var/access_clown = 0 + var/access_mime = 0 var/access_janitor = 0 var/access_reagent_scanner = 0 var/access_remote_door = 0 //Control some blast doors remotely!! @@ -222,6 +230,12 @@ access_clown = 1 var/honk_charges = 5 +/obj/item/weapon/cartridge/mime + name = "Gestur-O 1000" + icon_state = "cart-mi" + access_mime = 1 + var/mime_charges = 5 + //Radio cart - Essentially a "one-way" signaler, does nothing with received signals. /obj/item/weapon/cartridge/signal name = "generic signaler cartridge" @@ -748,6 +762,9 @@ if (istype(src.cartridge, /obj/item/weapon/cartridge/clown)) dat+= "[src.cartridge:honk_charges] viral files left.
" + if (istype(src.cartridge, /obj/item/weapon/cartridge/mime)) + dat+= "[src.cartridge:mime_charges] viral files left.
" + dat += "

Detected PDAs

" dat += "