Flashbang-Headsets

This commit is contained in:
Fox-McCloud
2015-01-13 16:33:49 -05:00
parent 6febcd543f
commit 159bf0f56c
15 changed files with 123 additions and 132 deletions

View File

@@ -226,7 +226,7 @@ proc/issyndicate(mob/living/M as mob)
/datum/game_mode/proc/equip_syndicate(mob/living/carbon/human/synd_mob) /datum/game_mode/proc/equip_syndicate(mob/living/carbon/human/synd_mob)
var/radio_freq = SYND_FREQ 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) R.set_frequency(radio_freq)
synd_mob.equip_to_slot_or_del(R, slot_l_ear) synd_mob.equip_to_slot_or_del(R, slot_l_ear)

View File

@@ -24,7 +24,7 @@
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) 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(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) 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/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/shoes/jackboots(H), slot_shoes)
H.equip_or_collect(new /obj/item/clothing/suit/armor/hos(H), slot_wear_suit) 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) equip(var/mob/living/carbon/human/H)
if(!H) return 0 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) switch(H.backbag)
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) 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(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
@@ -111,7 +111,7 @@
minimal_player_age = 14 minimal_player_age = 14
equip(var/mob/living/carbon/human/H) equip(var/mob/living/carbon/human/H)
if(!H) return 0 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) switch(H.backbag)
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack(H), slot_back) 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) 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 minimal_player_age = 14
equip(var/mob/living/carbon/human/H) equip(var/mob/living/carbon/human/H)
if(!H) return 0 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) switch(H.backbag)
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) 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(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) equip(var/mob/living/carbon/human/H)
if(!H) return 0 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) switch(H.backbag)
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/medic(H), slot_back) 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) 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 minimal_player_age = 7
equip(var/mob/living/carbon/human/H) equip(var/mob/living/carbon/human/H)
if(!H) return 0 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) switch(H.backbag)
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/security(H), slot_back) 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(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)

View File

@@ -13,7 +13,7 @@
minimal_player_age = 30 minimal_player_age = 30
equip(var/mob/living/carbon/human/H) equip(var/mob/living/carbon/human/H)
if(!H) return 0 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) switch(H.backbag)
if(2) H.equip_or_collect(new /obj/item/weapon/storage/backpack/captain(H), slot_back) 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) if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_cap(H), slot_back)

View File

@@ -31,6 +31,15 @@
/obj/item/device/radio/headset/syndicate /obj/item/device/radio/headset/syndicate
origin_tech = "syndicate=3" 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() /obj/item/device/radio/headset/syndicate/New()
..() ..()
del(keyslot1) del(keyslot1)
@@ -53,6 +62,13 @@
item_state = "headset" item_state = "headset"
keyslot1 = new /obj/item/device/encryptionkey/headset_sec 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 /obj/item/device/radio/headset/headset_eng
name = "engineering radio headset" name = "engineering radio headset"
desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. " desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. "
@@ -102,6 +118,13 @@
item_state = "headset" item_state = "headset"
keyslot1 = new /obj/item/device/encryptionkey/heads/captain 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 /obj/item/device/radio/headset/heads/rd
name = "Research Director's headset" name = "Research Director's headset"
desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c." desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c."
@@ -116,6 +139,13 @@
item_state = "headset" item_state = "headset"
keyslot1 = new /obj/item/device/encryptionkey/heads/hos 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 /obj/item/device/radio/headset/heads/ce
name = "chief engineer's headset" 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." desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c."

View File

@@ -436,6 +436,7 @@
desc = "A colourful crayon. Looks tasty. Mmmm..." desc = "A colourful crayon. Looks tasty. Mmmm..."
icon = 'icons/obj/crayons.dmi' icon = 'icons/obj/crayons.dmi'
icon_state = "crayonred" icon_state = "crayonred"
slot_flags = SLOT_EARS
w_class = 1.0 w_class = 1.0
attack_verb = list("attacked", "coloured") attack_verb = list("attacked", "coloured")
var/colour = "#FF0000" //RGB var/colour = "#FF0000" //RGB

View File

@@ -57,6 +57,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigoff" icon_state = "cigoff"
throw_speed = 0.5 throw_speed = 0.5
item_state = "cigoff" item_state = "cigoff"
slot_flags = SLOT_EARS
w_class = 1 w_class = 1
body_parts_covered = null body_parts_covered = null
attack_verb = list("burnt", "singed") attack_verb = list("burnt", "singed")

View File

@@ -5,109 +5,68 @@
origin_tech = "materials=2;combat=1" origin_tech = "materials=2;combat=1"
var/banglet = 0 var/banglet = 0
prime() /obj/item/weapon/grenade/flashbang/prime()
..() update_mob()
for(var/obj/structure/closet/L in hear(7, get_turf(src))) var/flashbang_turf = get_turf(src)
if(locate(/mob/living/carbon/, L)) if(!flashbang_turf)
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)
return 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. for(var/obj/effect/blob/B in hear(8,flashbang_turf)) //Blob damage here
if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging var/damage = round(30/(get_dist(B,get_turf(src))+1))
for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions. B.health -= damage
S.active = 0 // -- Polymorph B.update_icon()
S.icon_state = "shield0" del(src)
M << "\red <B>BANG</B>" /obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/M)
playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 5) M.show_message("<span class='warning'>BANG</span>", 2)
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
//Checking for protections //Checking for protections
var/eye_safety = 0 var/eye_safety = 0
var/ear_safety = 0 var/ear_safety = 0
if(iscarbon(M)) var/distance = max(1,get_dist(src,T))
eye_safety = M.eyecheck() if(iscarbon(M))
if(ishuman(M)) var/mob/living/carbon/C = M
if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs)) eye_safety = C.eyecheck()
ear_safety += 2 if(ishuman(C))
if(M_HULK in M.mutations) var/mob/living/carbon/human/H = C
ear_safety += 1 if((H.r_ear && (H.r_ear.flags & EARBANGPROTECT)) || (H.l_ear && (H.l_ear.flags & EARBANGPROTECT)) || (H.head && (H.head.flags & HEADBANGPROTECT)))
if(istype(M:head, /obj/item/clothing/head/helmet)) ear_safety++
ear_safety += 1
//Flashing everyone //Flash
if(eye_safety < 1) if(!eye_safety)
flick("e_flash", M.flash) var/mob/living/carbon/human/H = M
M.Stun(2) var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
M.Weaken(10) flick("e_flash", M.flash)
E.damage += rand(1, 3)
M.Stun(max(10/distance, 3))
M.Weaken(max(10/distance, 3))
//Now applying sound if (E.damage >= E.min_bruised_damage)
if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M)) M << "<span class='warning'>Your eyes start to burn badly!</span>"
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!"
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang))) if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
if (prob(M.ear_damage - 10 + 5)) if (E.damage >= E.min_broken_damage)
M << "\red You can't hear anything!" M << "<span class='warning'>You can't see anything!</span>"
M.sdisabilities |= DEAF
//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 << "<span class='warning'>Your ears start to ring badly!</span>"
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
if(prob(M.ear_damage - 10 + 5))
M << "<span class='warning'>You can't hear anything!</span>"
M.disabilities |= DEAF
else else
if (M.ear_damage >= 5) if (M.ear_damage >= 5)
M << "\red Your ears start to ring!" M << "<span class='warning'>Your ears start to ring!</span>"
M.update_icons()
/obj/effect/effect/smoke/flashbang
name = "illumination"
opacity = 0
icon_state = "sparks"
/obj/effect/effect/smoke/flashbang/New()
..()
SetLuminosity(15)
/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve /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." desc = "Use of this weapon may constiute a war crime in your area, consult your local captain."
@@ -116,6 +75,7 @@
icon_state = "clusterbang" icon_state = "clusterbang"
/obj/item/weapon/grenade/flashbang/clusterbang/prime() /obj/item/weapon/grenade/flashbang/clusterbang/prime()
update_mob()
var/numspawned = rand(4,8) var/numspawned = rand(4,8)
var/again = 0 var/again = 0
for(var/more = numspawned,more > 0,more--) for(var/more = numspawned,more > 0,more--)
@@ -132,9 +92,7 @@
spawn(0) spawn(0)
new /obj/item/weapon/grenade/flashbang/clusterbang/segment(src.loc)//Creates a 'segment' that launches a few more flashbangs 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) playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
spawn(0) del(src)
del(src)
return
/obj/item/weapon/grenade/flashbang/clusterbang/segment /obj/item/weapon/grenade/flashbang/clusterbang/segment
desc = "A smaller segment of a clusterbang. Better run." 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 /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" icon_state = "clusterbang_segment_active"
active = 1 active = 1
banglet = 1
var/stepdist = rand(1,4)//How far to step var/stepdist = rand(1,4)//How far to step
var/temploc = src.loc//Saves the current location to know where to step away from 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 walk_away(src,temploc,stepdist)//I must go, my people need me
@@ -155,6 +112,7 @@
..() ..()
/obj/item/weapon/grenade/flashbang/clusterbang/segment/prime() /obj/item/weapon/grenade/flashbang/clusterbang/segment/prime()
update_mob()
var/numspawned = rand(4,8) var/numspawned = rand(4,8)
for(var/more = numspawned,more > 0,more--) for(var/more = numspawned,more > 0,more--)
if(prob(35)) if(prob(35))
@@ -164,19 +122,16 @@
spawn(0) spawn(0)
new /obj/item/weapon/grenade/flashbang/cluster(src.loc) new /obj/item/weapon/grenade/flashbang/cluster(src.loc)
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
spawn(0) del(src)
del(src)
return
/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 /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" icon_state = "flashbang_active"
active = 1 active = 1
banglet = 1 banglet = 1
var/stepdist = rand(1,3) var/stepdist = rand(1,3)
var/temploc = src.loc var/temploc = src.loc
walk_away(src,temploc,stepdist) walk_away(src,temploc,stepdist)
var/dettime = rand(15,60) var/dettime = rand(15,60)
spawn(dettime) spawn(dettime)
prime() prime()
..()

View File

@@ -23,7 +23,7 @@
new /obj/item/clothing/suit/armor/vest/capcarapace(src) new /obj/item/clothing/suit/armor/vest/capcarapace(src)
new /obj/item/weapon/cartridge/captain(src) new /obj/item/weapon/cartridge/captain(src)
new /obj/item/clothing/shoes/brown(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/clothing/gloves/color/captain(src)
new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/gun/energy/gun(src)
return return
@@ -101,7 +101,7 @@
else else
new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/weapon/cartridge/hos(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(src)
new /obj/item/clothing/under/rank/head_of_security/formal(src) new /obj/item/clothing/under/rank/head_of_security/formal(src)
new /obj/item/clothing/suit/armor/hos(src) new /obj/item/clothing/suit/armor/hos(src)
@@ -139,7 +139,7 @@
new /obj/item/weapon/storage/backpack/security(src) new /obj/item/weapon/storage/backpack/security(src)
else else
new /obj/item/weapon/storage/backpack/satchel_sec(src) 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/suit/armor/vest/warden(src)
new /obj/item/clothing/head/warden(src) new /obj/item/clothing/head/warden(src)
new /obj/item/clothing/suit/armor/vest/warden/alt(src) new /obj/item/clothing/suit/armor/vest/warden/alt(src)
@@ -178,7 +178,7 @@
else else
new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/clothing/suit/armor/vest/security(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/clothing/head/beret/sec(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/device/flash(src) new /obj/item/device/flash(src)
@@ -301,7 +301,7 @@
new /obj/item/clothing/shoes/brown(src) new /obj/item/clothing/shoes/brown(src)
new /obj/item/weapon/storage/box/evidence(src) new /obj/item/weapon/storage/box/evidence(src)
new /obj/item/weapon/clipboard(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/device/detective_scanner(src)
new /obj/item/clothing/suit/armor/vest/det_suit(src) new /obj/item/clothing/suit/armor/vest/det_suit(src)
new /obj/item/ammo_box/c38(src) new /obj/item/ammo_box/c38(src)

View File

@@ -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/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/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/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) M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/officer(M), slot_head)
var/obj/item/device/pda/centcom/pda = new(M) 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/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/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/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) M.equip_if_possible(new /obj/item/clothing/head/beret/centcom/captain(M), slot_head)
var/obj/item/device/pda/centcom/pda = new(M) var/obj/item/device/pda/centcom/pda = new(M)

View File

@@ -129,7 +129,7 @@ var/global/sent_syndicate_strike_team = 0
/mob/living/carbon/human/proc/equip_syndicate_commando(syndicate_leader_selected = 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. 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(R, slot_l_ear)
equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(src), slot_w_uniform)

View File

@@ -119,6 +119,7 @@
desc = "Protects your hearing from loud noises, and quiet ones as well." desc = "Protects your hearing from loud noises, and quiet ones as well."
icon_state = "earmuffs" icon_state = "earmuffs"
item_state = "earmuffs" item_state = "earmuffs"
flags = EARBANGPROTECT
//Glasses //Glasses

View File

@@ -2,7 +2,7 @@
name = "helmet" name = "helmet"
desc = "Standard Security gear. Protects the head from impacts." desc = "Standard Security gear. Protects the head from impacts."
icon_state = "helmet" icon_state = "helmet"
flags = FPRINT | TABLEPASS | HEADCOVERSEYES flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADBANGPROTECT
item_state = "helmet" item_state = "helmet"
armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(melee = 50, bullet = 15, laser = 50,energy = 10, bomb = 25, bio = 0, rad = 0)
flags_inv = HIDEEARS|HIDEEYES flags_inv = HIDEEARS|HIDEEYES
@@ -18,7 +18,7 @@
desc = "It's a helmet specifically designed to protect against close range attacks." desc = "It's a helmet specifically designed to protect against close range attacks."
icon_state = "riot" icon_state = "riot"
item_state = "helmet" 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) armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
flags_inv = HIDEEARS flags_inv = HIDEEARS
siemens_coefficient = 0.7 siemens_coefficient = 0.7
@@ -59,6 +59,7 @@
/obj/item/clothing/head/helmet/roman /obj/item/clothing/head/helmet/roman
name = "roman helmet" name = "roman helmet"
desc = "An ancient helmet made of bronze and leather." 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) armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0)
icon_state = "roman" icon_state = "roman"
item_state = "roman" item_state = "roman"
@@ -73,7 +74,7 @@
name = "gladiator helmet" name = "gladiator helmet"
desc = "Ave, Imperator, morituri te salutant." desc = "Ave, Imperator, morituri te salutant."
icon_state = "gladiator" icon_state = "gladiator"
flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR
item_state = "gladiator" item_state = "gladiator"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
siemens_coefficient = 1 siemens_coefficient = 1

View File

@@ -433,7 +433,6 @@
icon_state = "roman" icon_state = "roman"
_color = "roman" _color = "roman"
item_state = "armor" item_state = "armor"
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0)
/obj/item/clothing/under/maid /obj/item/clothing/under/maid
name = "maid costume" name = "maid costume"

View File

@@ -211,6 +211,9 @@ var/MAX_EXPLOSION_RANGE = 14
#define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head #define MASKCOVERSMOUTH 2048 // on other items, these are just for mask/head
#define HEADCOVERSMOUTH 2048 #define HEADCOVERSMOUTH 2048
#define HEADBANGPROTECT 4096
#define EARBANGPROTECT 1024
#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc #define NOSLIP 1024 //prevents from slipping on wet floors, in space etc
#define OPENCONTAINER 4096 // is an open container for chemistry purposes #define OPENCONTAINER 4096 // is an open container for chemistry purposes

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB