diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index b9311f76992..1cb2c6937ac 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -197,6 +197,15 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine cost = 10 containername = "helmet crate" +/datum/supply_packs/security/justiceinbound + name = "Standard Justice Enforcer Crate" + contains = list(/obj/item/clothing/head/helmet/justice, + /obj/item/clothing/head/helmet/justice, + /obj/item/clothing/mask/gas/sechailer, + /obj/item/clothing/mask/gas/sechailer) + cost = 60 //justice comes at a price. An expensive, noisy price. + containername = "justice enforcer crate" + /datum/supply_packs/security/armor name = "Armor Crate" contains = list(/obj/item/clothing/suit/armor/vest, diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index c6e0c8ed735..f7f3ec32ac7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -14,6 +14,18 @@ lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' + var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS + var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect + var/up = 0 //but seperated to allow items to protect but not impair vision, like space helmets + var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down + var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv + + var/toggle_message = null + var/alt_toggle_message = null + var/active_sound = null + var/toggle_cooldown = null + var/cooldown = 0 + //BS12: Species-restricted clothing check. /obj/item/clothing/mob_can_equip(M as mob, slot) @@ -139,8 +151,6 @@ var/vision_flags = 0 var/darkness_view = 0//Base human is 2 var/invisa_view = 0 - var/flash_protect = 0 //Mal: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS - var/tint = 0 //Mal: Sets the item's level of visual impairment tint, normally set to the same as flash_protect var/color_view = null//overrides client.color while worn strip_delay = 20 // but seperated to allow items to protect but not impair vision, like space helmets put_on_delay = 25 @@ -264,12 +274,11 @@ BLIND // can't see anything body_parts_covered = HEAD slot_flags = SLOT_HEAD var/blockTracking // Do we block AI tracking? - var/flash_protect = 0 - var/tint = 0 var/HUDType = null var/darkness_view = 0 var/vision_flags = 0 var/see_darkness = 1 + var/can_toggle = null //Mask /obj/item/clothing/mask @@ -280,8 +289,6 @@ BLIND // can't see anything var/mask_adjusted = 0 var/ignore_maskadjust = 1 var/adjusted_flags = null - var/flash_protect = 0 - var/tint = 0 strip_delay = 40 put_on_delay = 40 diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 37bef3a6025..09b88e8c25c 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -302,7 +302,6 @@ icon_state = "welding-g" item_state = "welding-g" action_button_name = "Flip welding goggles" - var/up = 0 flash_protect = 2 tint = 2 species_fit = list("Vox") diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index d079005087c..1e6708994f2 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -16,6 +16,24 @@ "Vox" = 'icons/mob/species/vox/helmet.dmi' ) +/obj/item/clothing/head/helmet/attack_self(mob/user) + if(can_toggle && !user.incapacitated()) + if(world.time > cooldown + toggle_cooldown) + cooldown = world.time + up = !up + flags ^= visor_flags + flags_inv ^= visor_flags_inv + icon_state = "[initial(icon_state)][up ? "up" : ""]" + user << "[up ? alt_toggle_message : toggle_message] \the [src]" + + user.update_inv_head() + + if(active_sound) + while(up) + playsound(src.loc, "[active_sound]", 100, 0, 4) + sleep(15) + + /obj/item/clothing/head/helmet/visor name = "visor helmet" desc = "A helmet with a built-in visor. It doesn't seem to do anything, but it sure looks cool!" @@ -66,6 +84,25 @@ flags_inv = HIDEEARS strip_delay = 80 +/obj/item/clothing/head/helmet/justice + name = "helmet of justice" + desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO." + icon_state = "justice" + toggle_message = "You turn off the lights on" + alt_toggle_message = "You turn on the lights on" + action_button_name = "Toggle JUSTICE" + can_toggle = 1 + toggle_cooldown = 20 + active_sound = 'sound/items/WEEOO1.ogg' + +/obj/item/clothing/head/helmet/justice/escape + name = "alarm helmet" + desc = "WEEEEOOO. WEEEEEOOO. STOP THAT MONKEY. WEEEOOOO." + icon_state = "justice2" + toggle_message = "You turn off the light on" + alt_toggle_message = "You turn on the light on" + + /obj/item/clothing/head/helmet/swat name = "\improper SWAT helmet" desc = "They're often used by highly trained Swat Members." diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 3d138a29ab0..f0585fb3953 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -338,7 +338,6 @@ item_state = "griffinhat" flags = BLOCKHAIR|NODROP flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE - var/cooldown = 0 action_button_name = "Caw" /obj/item/clothing/head/griffin/attack_self() diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index d822d76329c..4c83ec37782 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -18,7 +18,6 @@ flags = HEADCOVERSEYES | HEADCOVERSMOUTH item_state = "welding" materials = list(MAT_METAL=1750, MAT_GLASS=400) - var/up = 0 flash_protect = 2 tint = 2 armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 5debb427f99..62aec510e90 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -24,7 +24,6 @@ icon_state = "weldingmask" item_state = "weldingmask" materials = list(MAT_METAL=4000, MAT_GLASS=2000) - var/up = 0 flash_protect = 2 tint = 2 armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) @@ -166,7 +165,6 @@ desc = "Twoooo!" icon_state = "owl" flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT | NODROP - var/cooldown = 0 action_button_name = "Hoot" /obj/item/clothing/mask/gas/owl_mask/attack_self() @@ -193,7 +191,6 @@ 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 = "sechailer" - var/cooldown = 0 var/aggressiveness = 2 var/safety = 1 ignore_maskadjust = 0 diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index d4c0d3838f8..d5354f94683 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -40,7 +40,6 @@ armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50) heat_protection = HEAD max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - var/up = 0 //So Unathi helmets play nicely with the weldervision check. species_restricted = list("Unathi") /obj/item/clothing/head/helmet/space/unathi/helmet_cheap diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 45cee4ad1b0..f128220b4d6 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -30,7 +30,6 @@ var/activating = 0 var/activated = 0 var/cooldowntime = 50 //deciseconds - var/cooldown = 0 var/teleporting = 0 diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 185168a1933..6911355504a 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 7b7e657e629..db2b15697bb 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/sound/items/WEEOO1.ogg b/sound/items/WEEOO1.ogg new file mode 100644 index 00000000000..1d9f9c7d772 Binary files /dev/null and b/sound/items/WEEOO1.ogg differ