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 487f3706663..dc35eb02b39 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -110,6 +110,8 @@ new /obj/item/clothing/suit/armor/hos/jensen(src) new /obj/item/clothing/suit/armor/hos(src) new /obj/item/clothing/head/helmet/HoS/dermal(src) + new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/mask/gas/sechailer/hos(src) new /obj/item/weapon/cartridge/hos(src) new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) @@ -150,6 +152,7 @@ new /obj/item/clothing/under/rank/warden/corp(src) new /obj/item/clothing/suit/armor/vest/warden(src) new /obj/item/clothing/head/helmet/warden(src) + new /obj/item/clothing/mask/gas/sechailer/warden(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/taperoll/police(src) @@ -182,6 +185,7 @@ new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/clothing/suit/armor/vest/security(src) new /obj/item/clothing/head/helmet(src) + new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/device/flash(src) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 70c58dda707..9a45a21607f 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -91,4 +91,134 @@ /obj/item/clothing/mask/gas/owl_mask name = "owl mask" desc = "Twoooo!" - icon_state = "owl" \ No newline at end of file + icon_state = "owl" + + +// ******************************************************************** + +// **** 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 = "officermask" + var/cooldown = 0 + var/aggressiveness = 2 + +/obj/item/clothing/mask/gas/sechailer/warden + icon_state = "wardenmask" + +/obj/item/clothing/mask/gas/sechailer/hos + icon_state = "hosmask" + +/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 + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + 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 + + + +// ******************************************************************** \ No newline at end of file diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 0a22d40b96a..10bde302a9a 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.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