mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-21 15:51:31 +00:00
Flashbang-Headsets
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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."
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
return
|
||||||
bang(get_turf(src), M)
|
for(var/mob/living/M in hearers(7, flashbang_turf))
|
||||||
|
bang(get_turf(M), M)
|
||||||
|
|
||||||
|
for(var/obj/effect/blob/B in hear(8,flashbang_turf)) //Blob damage here
|
||||||
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))
|
var/damage = round(30/(get_dist(B,get_turf(src))+1))
|
||||||
B.health -= damage
|
B.health -= damage
|
||||||
B.update_icon()
|
B.update_icon()
|
||||||
|
|
||||||
new/obj/effect/effect/smoke/flashbang(src.loc)
|
|
||||||
del(src)
|
del(src)
|
||||||
return
|
|
||||||
|
|
||||||
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.
|
/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/M)
|
||||||
if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging
|
M.show_message("<span class='warning'>BANG</span>", 2)
|
||||||
for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions.
|
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
||||||
S.active = 0 // -- Polymorph
|
|
||||||
S.icon_state = "shield0"
|
|
||||||
|
|
||||||
M << "\red <B>BANG</B>"
|
|
||||||
playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 5)
|
|
||||||
|
|
||||||
//Checking for protections
|
//Checking for protections
|
||||||
var/eye_safety = 0
|
var/eye_safety = 0
|
||||||
var/ear_safety = 0
|
var/ear_safety = 0
|
||||||
|
var/distance = max(1,get_dist(src,T))
|
||||||
if(iscarbon(M))
|
if(iscarbon(M))
|
||||||
eye_safety = M.eyecheck()
|
var/mob/living/carbon/C = M
|
||||||
if(ishuman(M))
|
eye_safety = C.eyecheck()
|
||||||
if(istype(M:l_ear, /obj/item/clothing/ears/earmuffs) || istype(M:r_ear, /obj/item/clothing/ears/earmuffs))
|
if(ishuman(C))
|
||||||
ear_safety += 2
|
var/mob/living/carbon/human/H = C
|
||||||
if(M_HULK in M.mutations)
|
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 += 1
|
ear_safety++
|
||||||
if(istype(M:head, /obj/item/clothing/head/helmet))
|
|
||||||
ear_safety += 1
|
|
||||||
|
|
||||||
//Flashing everyone
|
//Flash
|
||||||
if(eye_safety < 1)
|
if(!eye_safety)
|
||||||
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/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
|
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)
|
if (E.damage >= E.min_bruised_damage)
|
||||||
M << "\red Your eyes start to burn badly!"
|
M << "<span class='warning'>Your eyes start to burn badly!</span>"
|
||||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||||
if (E.damage >= E.min_broken_damage)
|
if (E.damage >= E.min_broken_damage)
|
||||||
M << "\red You can't see anything!"
|
M << "<span class='warning'>You can't see anything!</span>"
|
||||||
|
|
||||||
|
//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)
|
if (M.ear_damage >= 15)
|
||||||
M << "\red Your ears start to ring badly!"
|
M << "<span class='warning'>Your ears start to ring badly!</span>"
|
||||||
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(prob(M.ear_damage - 10 + 5))
|
||||||
M << "\red You can't hear anything!"
|
M << "<span class='warning'>You can't hear anything!</span>"
|
||||||
M.sdisabilities |= DEAF
|
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,12 +122,10 @@
|
|||||||
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
|
||||||
@@ -179,4 +135,3 @@
|
|||||||
var/dettime = rand(15,60)
|
var/dettime = rand(15,60)
|
||||||
spawn(dettime)
|
spawn(dettime)
|
||||||
prime()
|
prime()
|
||||||
..()
|
|
||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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 |
Reference in New Issue
Block a user