diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 607913aa62a..210fd12f900 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -82,12 +82,14 @@ new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/weapon/shield/riot(src) + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/mask/gas/sechailer/blue(src) new /obj/item/weapon/storage/lockbox/loyalty(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/weapon/storage/belt/security(src) new /obj/item/device/flash(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/gun(src) + new /obj/item/weapon/storage/belt/security(src) return @@ -117,11 +119,12 @@ new /obj/item/weapon/clipboard(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) + new /obj/item/clothing/mask/gas/sechailer/red(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/weapon/storage/belt/security(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/taser(src) + new /obj/item/weapon/storage/belt/security(src) return @@ -146,12 +149,13 @@ new /obj/item/clothing/suit/armor/vest(src) new /obj/item/clothing/head/helmet(src) new /obj/item/device/radio/headset/headset_sec(src) - new /obj/item/weapon/storage/belt/security(src) + new /obj/item/clothing/mask/gas/sechailer/black(src) new /obj/item/device/flash(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/grenade/flashbang(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/taser(src) + new /obj/item/weapon/storage/belt/security(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) return diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index bd236ee91a8..4305c1f25bb 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -15,7 +15,6 @@ name = "welding mask" desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." icon_state = "weldingmask" - item_state = "weldingmask" m_amt = 4000 g_amt = 2000 flash_protect = 2 @@ -39,6 +38,135 @@ // ******************************************************************** +// **** Security gas mask **** + +/obj/item/clothing/mask/gas/sechailer + name = "security gas mask" + desc = "A standard issue Security gas mask with integrated 'Compli-o-nator 3000' device, plays over a dozen pre-recorded compliance phrases designed to get scumbags to stand still whilst you taze them. Do not tamper with the device." + action_button_name = "HALT!" + icon_state = "hailer_white" + var/cooldown = 0 + var/aggressiveness = 2 + +/obj/item/clothing/mask/gas/sechailer/blue + icon_state = "hailer_blue" + +/obj/item/clothing/mask/gas/sechailer/black + icon_state = "hailer_black" + +/obj/item/clothing/mask/gas/sechailer/red + icon_state = "hailer_red" + +/obj/item/clothing/mask/gas/sechailer/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/screwdriver)) + switch(aggressiveness) + if(1) + user << "\blue You set the restrictor to the middle position." + aggressiveness = 2 + if(2) + user << "\blue You set the restrictor to the last position." + aggressiveness = 3 + if(3) + user << "\blue You set the restrictor to the first position." + aggressiveness = 1 + if(4) + user << "\red You adjust the restrictor but nothing happens, probably because its broken." + else if(istype(W, /obj/item/weapon/wirecutters)) + if(aggressiveness != 4) + user << "\red You broke it!" + aggressiveness = 4 + else + ..() + +/obj/item/clothing/mask/gas/sechailer/attack_self() + halt() + +/obj/item/clothing/mask/gas/sechailer/verb/halt() + set category = "Object" + set name = "HALT" + set src in usr + + var/phrase = 0 //selects which phrase to use + var/phrase_text = null + var/phrase_sound = null + + + if(cooldown < world.time - 35) // A cooldown, to stop people being jerks + switch(aggressiveness) // checks if the user has unlocked the restricted phrases + if(1) + phrase = rand(1,5) // set the upper limit as the phrase above the first 'bad cop' phrase, the mask will only play 'nice' phrases + if(2) + phrase = rand(1,11) // default setting, set upper limit to last 'bad cop' phrase. Mask will play good cop and bad cop phrases + if(3) + phrase = rand(1,18) // user has unlocked all phrases, set upper limit to last phrase. The mask will play all phrases + if(4) + phrase = rand(12,18) // user has broke the restrictor, it will now only play shitcurity phrases + + switch(phrase) //sets the properties of the chosen phrase + if(1) // good cop + phrase_text = "HALT! HALT! HALT! HALT!" + phrase_sound = "halt" + if(2) + phrase_text = "Stop in the name of the Law." + phrase_sound = "bobby" + if(3) + phrase_text = "Compliance is in your best interest." + phrase_sound = "compliance" + if(4) + phrase_text = "Prepare for justice!" + phrase_sound = "justice" + if(5) + phrase_text = "Running will only increase your sentence." + phrase_sound = "running" + if(6) // bad cop + phrase_text = "Don't move, Creep!" + phrase_sound = "dontmove" + if(7) + phrase_text = "Down on the floor, Creep!" + phrase_sound = "floor" + if(8) + phrase_text = "Dead or alive you're coming with me." + phrase_sound = "robocop" + if(9) + phrase_text = "God made today for the crooks we could not catch yesterday." + phrase_sound = "god" + if(10) + phrase_text = "Freeze, Scum Bag!" + phrase_sound = "freeze" + if(11) + phrase_text = "Stop right there, criminal scum!" + phrase_sound = "imperial" + if(12) // LA-PD + phrase_text = "Stop or I'll bash you." + phrase_sound = "bash" + if(13) + phrase_text = "Go ahead, make my day." + phrase_sound = "harry" + if(14) + phrase_text = "Stop breaking the law, ass hole." + phrase_sound = "asshole" + if(15) + phrase_text = "You have the right to shut the fuck up." + phrase_sound = "stfu" + if(16) + phrase_text = "Shut up crime!" + phrase_sound = "shutup" + if(17) + phrase_text = "Face the wrath of the golden bolt." + phrase_sound = "super" + if(18) + phrase_text = "I am, the LAW!" + phrase_sound = "dredd" + + usr.visible_message("[usr]'s Compli-o-Nator: [phrase_text]") + playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4) + cooldown = world.time + + + +// ******************************************************************** + + //Plague Dr suit can be found in clothing/suits/bio.dm /obj/item/clothing/mask/gas/plaguedoctor name = "plague doctor mask" diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index e4b492d46bc..26907dcd3b5 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 69cf56300c6..0658e526f41 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/sound/voice/complionator/asshole.ogg b/sound/voice/complionator/asshole.ogg new file mode 100644 index 00000000000..9ee40942c46 Binary files /dev/null and b/sound/voice/complionator/asshole.ogg differ diff --git a/sound/voice/complionator/bash.ogg b/sound/voice/complionator/bash.ogg new file mode 100644 index 00000000000..e79a2cd1e12 Binary files /dev/null and b/sound/voice/complionator/bash.ogg differ diff --git a/sound/voice/complionator/bobby.ogg b/sound/voice/complionator/bobby.ogg new file mode 100644 index 00000000000..4bc8f8df94d Binary files /dev/null and b/sound/voice/complionator/bobby.ogg differ diff --git a/sound/voice/complionator/compliance.ogg b/sound/voice/complionator/compliance.ogg new file mode 100644 index 00000000000..fcfb6082029 Binary files /dev/null and b/sound/voice/complionator/compliance.ogg differ diff --git a/sound/voice/complionator/dontmove.ogg b/sound/voice/complionator/dontmove.ogg new file mode 100644 index 00000000000..09cefea9d6e Binary files /dev/null and b/sound/voice/complionator/dontmove.ogg differ diff --git a/sound/voice/complionator/dredd.ogg b/sound/voice/complionator/dredd.ogg new file mode 100644 index 00000000000..ab434dbfde7 Binary files /dev/null and b/sound/voice/complionator/dredd.ogg differ diff --git a/sound/voice/complionator/floor.ogg b/sound/voice/complionator/floor.ogg new file mode 100644 index 00000000000..996dd0f54ac Binary files /dev/null and b/sound/voice/complionator/floor.ogg differ diff --git a/sound/voice/complionator/freeze.ogg b/sound/voice/complionator/freeze.ogg new file mode 100644 index 00000000000..d4224be8392 Binary files /dev/null and b/sound/voice/complionator/freeze.ogg differ diff --git a/sound/voice/complionator/god.ogg b/sound/voice/complionator/god.ogg new file mode 100644 index 00000000000..8e1a54d268f Binary files /dev/null and b/sound/voice/complionator/god.ogg differ diff --git a/sound/voice/complionator/halt.ogg b/sound/voice/complionator/halt.ogg new file mode 100644 index 00000000000..81563b928f0 Binary files /dev/null and b/sound/voice/complionator/halt.ogg differ diff --git a/sound/voice/complionator/harry.ogg b/sound/voice/complionator/harry.ogg new file mode 100644 index 00000000000..eae132675e5 Binary files /dev/null and b/sound/voice/complionator/harry.ogg differ diff --git a/sound/voice/complionator/imperial.ogg b/sound/voice/complionator/imperial.ogg new file mode 100644 index 00000000000..903cf1197c7 Binary files /dev/null and b/sound/voice/complionator/imperial.ogg differ diff --git a/sound/voice/complionator/justice.ogg b/sound/voice/complionator/justice.ogg new file mode 100644 index 00000000000..2aef43b1504 Binary files /dev/null and b/sound/voice/complionator/justice.ogg differ diff --git a/sound/voice/complionator/robocop.ogg b/sound/voice/complionator/robocop.ogg new file mode 100644 index 00000000000..4dec421ed0a Binary files /dev/null and b/sound/voice/complionator/robocop.ogg differ diff --git a/sound/voice/complionator/running.ogg b/sound/voice/complionator/running.ogg new file mode 100644 index 00000000000..3711ce6ccfe Binary files /dev/null and b/sound/voice/complionator/running.ogg differ diff --git a/sound/voice/complionator/shutup.ogg b/sound/voice/complionator/shutup.ogg new file mode 100644 index 00000000000..ecd2b020152 Binary files /dev/null and b/sound/voice/complionator/shutup.ogg differ diff --git a/sound/voice/complionator/stfu.ogg b/sound/voice/complionator/stfu.ogg new file mode 100644 index 00000000000..9c3fcf675bb Binary files /dev/null and b/sound/voice/complionator/stfu.ogg differ diff --git a/sound/voice/complionator/super.ogg b/sound/voice/complionator/super.ogg new file mode 100644 index 00000000000..8bae406dea6 Binary files /dev/null and b/sound/voice/complionator/super.ogg differ