diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 78db5e77846..de7bc051054 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -226,7 +226,7 @@ proc/issyndicate(mob/living/M as mob) /datum/game_mode/proc/equip_syndicate(mob/living/carbon/human/synd_mob) var/radio_freq = SYND_FREQ - var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(synd_mob) + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate/alt(synd_mob) R.set_frequency(radio_freq) synd_mob.equip_to_slot_or_del(R, slot_l_ear) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index f5b1cac68f6..65b1d1ce2b0 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -24,7 +24,7 @@ if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) - H.equip_or_collect(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/heads/hos/alt(H), slot_l_ear) H.equip_or_collect(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform) H.equip_or_collect(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) H.equip_or_collect(new /obj/item/clothing/suit/armor/hos(H), slot_wear_suit) @@ -64,7 +64,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec/alt(H), slot_l_ear) switch(H.backbag) if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) @@ -111,7 +111,7 @@ minimal_player_age = 14 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec/alt(H), slot_l_ear) switch(H.backbag) if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) @@ -166,7 +166,7 @@ minimal_player_age = 14 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec/alt(H), slot_l_ear) switch(H.backbag) if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) @@ -205,7 +205,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec/alt(H), slot_l_ear) switch(H.backbag) if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/medic(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) @@ -242,7 +242,7 @@ minimal_player_age = 7 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/headset_sec/alt(H), slot_l_ear) switch(H.backbag) if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back) diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 1c19e8c7253..d0dd51fb59f 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -13,7 +13,7 @@ minimal_player_age = 30 equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_or_collect(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear) + H.equip_or_collect(new /obj/item/device/radio/headset/heads/captain/alt(H), slot_l_ear) switch(H.backbag) if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/captain(H), slot_back) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_cap(H), slot_back) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index de3422e168f..fb6ca1b2fa4 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -31,6 +31,15 @@ /obj/item/device/radio/headset/syndicate origin_tech = "syndicate=3" + +/obj/item/device/radio/headset/syndicate/alt //undisguised bowman with flash protection + name = "syndicate headset" + desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs. \nTo access the syndicate channel, use ; before speaking." + flags = EARBANGPROTECT + origin_tech = "syndicate=3" + icon_state = "syndie_headset" + item_state = "syndie_headset" + /obj/item/device/radio/headset/syndicate/New() ..() del(keyslot1) @@ -53,6 +62,13 @@ item_state = "headset" keyslot1 = new /obj/item/device/encryptionkey/headset_sec +/obj/item/device/radio/headset/headset_sec/alt + name = "security bowman headset" + desc = "This is used by your elite security force. Protects ears from flashbangs. \nTo access the security channel, use :s." + flags = EARBANGPROTECT + icon_state = "sec_headset_alt" + item_state = "sec_headset_alt" + /obj/item/device/radio/headset/headset_eng name = "engineering radio headset" desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. " @@ -102,6 +118,13 @@ item_state = "headset" keyslot1 = new /obj/item/device/encryptionkey/heads/captain +/obj/item/device/radio/headset/heads/captain/alt + name = "\proper the captain's bowman headset" + desc = "The headset of the boss. Protects ears from flashbangs. \nChannels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." + flags = EARBANGPROTECT + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + /obj/item/device/radio/headset/heads/rd name = "Research Director's headset" desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c." @@ -116,6 +139,13 @@ item_state = "headset" keyslot1 = new /obj/item/device/encryptionkey/heads/hos +/obj/item/device/radio/headset/heads/hos/alt + name = "\proper the head of security's bowman headset" + desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs. \nTo access the security channel, use :s. For command, use :c." + flags = EARBANGPROTECT + icon_state = "com_headset_alt" + item_state = "com_headset_alt" + /obj/item/device/radio/headset/heads/ce name = "chief engineer's headset" desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c." diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index a6f18c378e7..b1d0e0783fe 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -436,6 +436,7 @@ desc = "A colourful crayon. Looks tasty. Mmmm..." icon = 'icons/obj/crayons.dmi' icon_state = "crayonred" + slot_flags = SLOT_EARS w_class = 1.0 attack_verb = list("attacked", "coloured") var/colour = "#FF0000" //RGB diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index fe457888911..2229c5bc00f 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -57,6 +57,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "cigoff" throw_speed = 0.5 item_state = "cigoff" + slot_flags = SLOT_EARS w_class = 1 body_parts_covered = null attack_verb = list("burnt", "singed") diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 26372ce5700..601e4d5a8f7 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -5,109 +5,68 @@ origin_tech = "materials=2;combat=1" var/banglet = 0 - prime() - ..() - for(var/obj/structure/closet/L in hear(7, get_turf(src))) - if(locate(/mob/living/carbon/, L)) - for(var/mob/living/carbon/M in L) - bang(get_turf(src), M) - - - for(var/mob/living/carbon/M in hear(7, get_turf(src))) - bang(get_turf(src), M) - - for(var/obj/effect/blob/B in hear(8,get_turf(src))) //Blob damage here - var/damage = round(30/(get_dist(B,get_turf(src))+1)) - B.health -= damage - B.update_icon() - - new/obj/effect/effect/smoke/flashbang(src.loc) - del(src) +/obj/item/weapon/grenade/flashbang/prime() + update_mob() + var/flashbang_turf = get_turf(src) + if(!flashbang_turf) return + for(var/mob/living/M in hearers(7, flashbang_turf)) + bang(get_turf(M), M) - proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged. - if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging - for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions. - S.active = 0 // -- Polymorph - S.icon_state = "shield0" + for(var/obj/effect/blob/B in hear(8,flashbang_turf)) //Blob damage here + var/damage = round(30/(get_dist(B,get_turf(src))+1)) + B.health -= damage + B.update_icon() + del(src) - M << "\red BANG" - playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 5) +/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/M) + M.show_message("BANG", 2) + playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) //Checking for protections - var/eye_safety = 0 - var/ear_safety = 0 - if(iscarbon(M)) - eye_safety = M.eyecheck() - if(ishuman(M)) - if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs)) - ear_safety += 2 - if(M_HULK in M.mutations) - ear_safety += 1 - if(istype(M:head, /obj/item/clothing/head/helmet)) - ear_safety += 1 + var/eye_safety = 0 + var/ear_safety = 0 + var/distance = max(1,get_dist(src,T)) + if(iscarbon(M)) + var/mob/living/carbon/C = M + eye_safety = C.eyecheck() + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if((H.r_ear && (H.r_ear.flags & EARBANGPROTECT)) || (H.l_ear && (H.l_ear.flags & EARBANGPROTECT)) || (H.head && (H.head.flags & HEADBANGPROTECT))) + ear_safety++ -//Flashing everyone - if(eye_safety < 1) - flick("e_flash", M.flash) - M.Stun(2) - M.Weaken(10) - - - -//Now applying sound - if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M)) - if(ear_safety > 0) - M.Stun(2) - M.Weaken(1) - else - M.Stun(10) - M.Weaken(3) - if ((prob(14) || (M == src.loc && prob(70)))) - M.ear_damage += rand(1, 10) - else - M.ear_damage += rand(0, 5) - M.ear_deaf = max(M.ear_deaf,15) - - else if(get_dist(M, T) <= 5) - if(!ear_safety) - M.Stun(8) - M.ear_damage += rand(0, 3) - M.ear_deaf = max(M.ear_deaf,10) - - else if(!ear_safety) - M.Stun(4) - M.ear_damage += rand(0, 1) - M.ear_deaf = max(M.ear_deaf,5) - -//This really should be in mob not every check - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] - if (E.damage >= E.min_bruised_damage) - M << "\red Your eyes start to burn badly!" - if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) - if (E.damage >= E.min_broken_damage) - M << "\red You can't see anything!" - if (M.ear_damage >= 15) - M << "\red Your ears start to ring badly!" +//Flash + if(!eye_safety) + var/mob/living/carbon/human/H = M + var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] + flick("e_flash", M.flash) + E.damage += rand(1, 3) + M.Stun(max(10/distance, 3)) + M.Weaken(max(10/distance, 3)) + if (E.damage >= E.min_bruised_damage) + M << "Your eyes start to burn badly!" if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) - if (prob(M.ear_damage - 10 + 5)) - M << "\red You can't hear anything!" - M.sdisabilities |= DEAF + if (E.damage >= E.min_broken_damage) + M << "You can't see anything!" + +//Bang + if((src.loc == M) || src.loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection + M.Stun(10) + M.Weaken(10) + if(!ear_safety) + M.Stun(max(10/distance, 3)) + M.Weaken(max(10/distance, 3)) + M.ear_damage += rand(0, 5) + M.ear_deaf = max(M.ear_deaf,15) + if (M.ear_damage >= 15) + M << "Your ears start to ring badly!" + if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) + if(prob(M.ear_damage - 10 + 5)) + M << "You can't hear anything!" + M.disabilities |= DEAF else if (M.ear_damage >= 5) - M << "\red Your ears start to ring!" - M.update_icons() - -/obj/effect/effect/smoke/flashbang - name = "illumination" - opacity = 0 - icon_state = "sparks" - -/obj/effect/effect/smoke/flashbang/New() - ..() - SetLuminosity(15) + M << "Your ears start to ring!" /obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve desc = "Use of this weapon may constiute a war crime in your area, consult your local captain." @@ -116,6 +75,7 @@ icon_state = "clusterbang" /obj/item/weapon/grenade/flashbang/clusterbang/prime() + update_mob() var/numspawned = rand(4,8) var/again = 0 for(var/more = numspawned,more > 0,more--) @@ -132,9 +92,7 @@ spawn(0) new /obj/item/weapon/grenade/flashbang/clusterbang/segment(src.loc)//Creates a 'segment' that launches a few more flashbangs playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(0) - del(src) - return + del(src) /obj/item/weapon/grenade/flashbang/clusterbang/segment desc = "A smaller segment of a clusterbang. Better run." @@ -145,7 +103,6 @@ /obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode icon_state = "clusterbang_segment_active" active = 1 - banglet = 1 var/stepdist = rand(1,4)//How far to step var/temploc = src.loc//Saves the current location to know where to step away from walk_away(src,temploc,stepdist)//I must go, my people need me @@ -155,6 +112,7 @@ ..() /obj/item/weapon/grenade/flashbang/clusterbang/segment/prime() + update_mob() var/numspawned = rand(4,8) for(var/more = numspawned,more > 0,more--) if(prob(35)) @@ -164,19 +122,16 @@ spawn(0) new /obj/item/weapon/grenade/flashbang/cluster(src.loc) playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - spawn(0) - del(src) - return + del(src) /obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang - spawn(0) - icon_state = "flashbang_active" - active = 1 - banglet = 1 - var/stepdist = rand(1,3) - var/temploc = src.loc - walk_away(src,temploc,stepdist) - var/dettime = rand(15,60) - spawn(dettime) - prime() - ..() \ No newline at end of file + ..() + icon_state = "flashbang_active" + active = 1 + banglet = 1 + var/stepdist = rand(1,3) + var/temploc = src.loc + walk_away(src,temploc,stepdist) + var/dettime = rand(15,60) + spawn(dettime) + prime() \ No newline at end of file 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 f2e064ecc11..917c8feb815 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -23,7 +23,7 @@ new /obj/item/clothing/suit/armor/vest/capcarapace(src) new /obj/item/weapon/cartridge/captain(src) new /obj/item/clothing/shoes/brown(src) - new /obj/item/device/radio/headset/heads/captain(src) + new /obj/item/device/radio/headset/heads/captain/alt(src) new /obj/item/clothing/gloves/color/captain(src) new /obj/item/weapon/gun/energy/gun(src) return @@ -101,7 +101,7 @@ else new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/weapon/cartridge/hos(src) - new /obj/item/device/radio/headset/heads/hos(src) + new /obj/item/device/radio/headset/heads/hos/alt(src) new /obj/item/clothing/under/rank/head_of_security(src) new /obj/item/clothing/under/rank/head_of_security/formal(src) new /obj/item/clothing/suit/armor/hos(src) @@ -139,7 +139,7 @@ new /obj/item/weapon/storage/backpack/security(src) else new /obj/item/weapon/storage/backpack/satchel_sec(src) - new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/radio/headset/headset_sec/alt(src) new /obj/item/clothing/suit/armor/vest/warden(src) new /obj/item/clothing/head/warden(src) new /obj/item/clothing/suit/armor/vest/warden/alt(src) @@ -178,7 +178,7 @@ else new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/clothing/suit/armor/vest/security(src) - new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/radio/headset/headset_sec/alt(src) new /obj/item/clothing/head/beret/sec(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/device/flash(src) @@ -301,7 +301,7 @@ new /obj/item/clothing/shoes/brown(src) new /obj/item/weapon/storage/box/evidence(src) new /obj/item/weapon/clipboard(src) - new /obj/item/device/radio/headset/headset_sec(src) + new /obj/item/device/radio/headset/headset_sec/alt(src) new /obj/item/device/detective_scanner(src) new /obj/item/clothing/suit/armor/vest/det_suit(src) new /obj/item/ammo_box/c38(src) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 54fcd327470..2991d32164c 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -828,7 +828,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/officer(M), slot_w_uniform) M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes) M.equip_if_possible(new /obj/item/clothing/gloves/color/white(M), slot_gloves) - M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) + M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain/alt(M), slot_l_ear) M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head) var/obj/item/device/pda/centcom/pda = new(M) @@ -853,7 +853,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_if_possible(new /obj/item/clothing/under/rank/centcom/captain(M), slot_w_uniform) M.equip_if_possible(new /obj/item/clothing/shoes/centcom(M), slot_shoes) M.equip_if_possible(new /obj/item/clothing/gloves/color/white(M), slot_gloves) - M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear) + M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain/alt(M), slot_l_ear) M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/captain(M), slot_head) var/obj/item/device/pda/centcom/pda = new(M) diff --git a/code/modules/admin/verbs/striketeam_syndicate.dm b/code/modules/admin/verbs/striketeam_syndicate.dm index 73be9adbebf..90a54ad0391 100644 --- a/code/modules/admin/verbs/striketeam_syndicate.dm +++ b/code/modules/admin/verbs/striketeam_syndicate.dm @@ -129,7 +129,7 @@ var/global/sent_syndicate_strike_team = 0 /mob/living/carbon/human/proc/equip_syndicate_commando(syndicate_leader_selected = 0) - var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src) + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate/alt(src) R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode. equip_to_slot_or_del(R, slot_l_ear) equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(src), slot_w_uniform) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 154790ce338..ca66eaf0ca9 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -119,6 +119,7 @@ desc = "Protects your hearing from loud noises, and quiet ones as well." icon_state = "earmuffs" item_state = "earmuffs" + flags = EARBANGPROTECT //Glasses diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 1da4ae739c3..bf1baad2081 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -2,7 +2,7 @@ name = "helmet" desc = "Standard Security gear. Protects the head from impacts." icon_state = "helmet" - flags = FPRINT | TABLEPASS | HEADCOVERSEYES + flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADBANGPROTECT item_state = "helmet" armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0) flags_inv = HIDEEARS|HIDEEYES @@ -18,7 +18,7 @@ desc = "It's a helmet specifically designed to protect against close range attacks." icon_state = "riot" item_state = "helmet" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH + flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|HEADBANGPROTECT armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 @@ -59,6 +59,7 @@ /obj/item/clothing/head/helmet/roman name = "roman helmet" desc = "An ancient helmet made of bronze and leather." + flags = HEADCOVERSEYES armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0) icon_state = "roman" item_state = "roman" @@ -73,7 +74,7 @@ name = "gladiator helmet" desc = "Ave, Imperator, morituri te salutant." icon_state = "gladiator" - flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR + flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR item_state = "gladiator" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 1 diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 02654e9a23b..37b168ddec8 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -433,7 +433,6 @@ icon_state = "roman" _color = "roman" item_state = "armor" - armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0) /obj/item/clothing/under/maid name = "maid costume" diff --git a/code/setup.dm b/code/setup.dm index b138b2f2cd6..ab6e81d477c 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -211,6 +211,9 @@ var/MAX_EXPLOSION_RANGE = 14 #define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head #define HEADCOVERSMOUTH 2048 +#define HEADBANGPROTECT 4096 +#define EARBANGPROTECT 1024 + #define NOSLIP 1024 //prevents from slipping on wet floors, in space etc #define OPENCONTAINER 4096 // is an open container for chemistry purposes diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index e87c6c34222..d4049be0bb3 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ