mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-05-13 02:10:39 +01:00
900 lines
42 KiB
Plaintext
900 lines
42 KiB
Plaintext
/obj/item/clothing/suit/armor
|
|
allowed = list(/obj/item/gun/energy,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/restraints/handcuffs,/obj/item/flashlight/seclite,/obj/item/melee/classic_baton/telescopic,/obj/item/kitchen/knife/combat)
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO
|
|
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO
|
|
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
|
strip_delay = 60
|
|
put_on_delay = 40
|
|
max_integrity = 250
|
|
resistance_flags = NONE
|
|
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
)
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
|
|
/obj/item/clothing/suit/armor/vest
|
|
name = "armor vest"
|
|
desc = "A mass-produced Level II soft armor vest that provides light protection against most sources of damage."
|
|
sprite_sheets = list(
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
|
|
)
|
|
icon_state = "armor"
|
|
item_state = "armor"
|
|
blood_overlay_type = "armor"
|
|
dog_fashion = /datum/dog_fashion/back
|
|
|
|
/obj/item/clothing/suit/armor/vest/jacket
|
|
name = "military jacket"
|
|
desc = "An old Federal Army surplus jacket. Armor panels sewn into the sides provide some protection against impacts and laser fire."
|
|
icon_state = "militaryjacket"
|
|
item_state = "militaryjacket"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
|
|
/obj/item/clothing/suit/armor/vest/combat
|
|
name = "combat vest"
|
|
desc = "A soft armor vest suitable for stopping minor impacts."
|
|
icon_state = "armor-combat"
|
|
item_state = "bulletproof"
|
|
|
|
/obj/item/clothing/suit/armor/vest/security
|
|
name = "security armor"
|
|
desc = "A Level II soft armor vest used by Nanotrasen corporate security. Offers light protection against kinetic impacts and lasers, and has a clip for a holobadge."
|
|
sprite_sheets = list(
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
|
|
)
|
|
var/obj/item/clothing/accessory/holobadge/attached_badge
|
|
|
|
/obj/item/clothing/suit/armor/vest/security/attackby__legacy__attackchain(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/clothing/accessory/holobadge))
|
|
if(user.transfer_item_to(I, src))
|
|
add_fingerprint(user)
|
|
attached_badge = I
|
|
var/datum/action/A = new /datum/action/item_action/remove_badge(src)
|
|
A.Grant(user)
|
|
icon_state = "armorsec"
|
|
user.update_inv_wear_suit()
|
|
desc = "A Level II soft armor vest used by Nanotrasen corporate security, offering light protection against kinetic impacts and lasers. This one has [attached_badge] attached to it."
|
|
to_chat(user, "<span class='notice'>You attach [attached_badge] to [src].</span>")
|
|
return
|
|
..()
|
|
|
|
/obj/item/clothing/suit/armor/vest/security/attack_self__legacy__attackchain(mob/user)
|
|
if(attached_badge)
|
|
add_fingerprint(user)
|
|
user.put_in_hands(attached_badge)
|
|
|
|
QDEL_LIST_CONTENTS(actions)
|
|
|
|
icon_state = "armor"
|
|
user.update_inv_wear_suit()
|
|
desc = "A Level II soft armor vest used by Nanotrasen corporate security. Offers light protection against kinetic impacts and lasers, and has a clip for a holobadge."
|
|
to_chat(user, "<span class='notice'>You remove [attached_badge] from [src].</span>")
|
|
attached_badge = null
|
|
|
|
return
|
|
..()
|
|
|
|
/obj/item/clothing/suit/armor/vest/street_judge
|
|
name = "judge's security armor"
|
|
desc = "A standard Nanotrasen security vest with some decidedly non-standard decorations attached. Being made of cheap plastic, these decorations do not improve armor performance."
|
|
icon_state = "streetjudgearmor"
|
|
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/vest/blueshield
|
|
name = "blueshield's security armor"
|
|
desc = "A Level II soft armor vest used by Nanotrasen's Blueshield bodyguard corps. Provides identical protection to standard Security soft vests."
|
|
sprite_sheets = list(
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
|
|
)
|
|
icon_state = "blueshield"
|
|
item_state = "blueshield"
|
|
|
|
/obj/item/clothing/suit/armor/vest/bloody
|
|
name = "bloodied security armor"
|
|
desc = "An old, gore-covered security vest with a face crudely drawn on the chest. Where the hell did they even find this?"
|
|
icon_state = "bloody_armor"
|
|
item_state = "bloody_armor"
|
|
sprite_sheets = null
|
|
|
|
/obj/item/clothing/suit/armor/vest/press
|
|
name = "press vest"
|
|
desc = "A sturdy vest that should keep you protected from the dangers of the station."
|
|
icon_state = "press_vest"
|
|
|
|
/obj/item/clothing/suit/armor/secjacket
|
|
name = "security jacket"
|
|
desc = "A stylish black jacket used by Nanotrasen corporate security. Basic kevlar weave offers minor protection, but far less than a typical Security vest."
|
|
icon_state = "secjacket_open"
|
|
item_state = "hos"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = 20, ACID = 20)
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
ignore_suitadjust = 0
|
|
suit_adjusted = 1
|
|
actions_types = list(/datum/action/item_action/openclose)
|
|
adjust_flavour = "unzip"
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/secponcho
|
|
name = "security poncho"
|
|
desc = "A stylish black and red poncho used by Nanotrasen corporate security. Basic kevlar weave provides minor protection against most sources of damage."
|
|
icon_state = "security_poncho"
|
|
item_state = "security_poncho"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = 20, ACID = 20)
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
|
|
/obj/item/clothing/suit/armor/hos
|
|
name = "armored coat"
|
|
desc = "An intimidating black greatcoat reinforced with Level II plate inserts for moderate protection."
|
|
icon_state = "hos"
|
|
item_state = "hos"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
|
|
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 115, ACID = 450)
|
|
flags_inv = HIDEJUMPSUIT
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
|
strip_delay = 80
|
|
insert_max = 2
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/hos/alt
|
|
name = "armored trenchcoat"
|
|
desc = "A a stylish black trenchcoat fitted with Level II armored inserts for moderate protection without sacrificing aesthetics."
|
|
icon_state = "hostrench_open"
|
|
item_state = "hostrench_open"
|
|
flags_inv = 0
|
|
ignore_suitadjust = 0
|
|
suit_adjusted = 1
|
|
actions_types = list(/datum/action/item_action/openclose)
|
|
adjust_flavour = "unbutton"
|
|
|
|
/obj/item/clothing/suit/armor/hos/jensen
|
|
name = "armored trenchcoat"
|
|
desc = "A trenchcoat augmented with a special alloy for some protection and style."
|
|
icon_state = "jensencoat"
|
|
item_state = "jensencoat"
|
|
flags_inv = 0
|
|
sprite_sheets = null
|
|
|
|
/obj/item/clothing/suit/armor/vest/warden
|
|
name = "warden's armored jacket"
|
|
desc = "A comfortable armored jacket fitted with Level II plate inserts for moderate protection. This one has silver livery on the shoulders to denote rank."
|
|
icon_state = "warden_jacket"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|HANDS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|HANDS
|
|
strip_delay = 70
|
|
resistance_flags = FLAMMABLE
|
|
dog_fashion = null
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/vest/warden/alt
|
|
name = "warden's jacket"
|
|
desc = "A large navy-blue jacket fitted with Level II armored inserts. There are silver rank insignia on the shoulders."
|
|
icon_state = "warden_jacket_alt"
|
|
|
|
//Captain
|
|
/obj/item/clothing/suit/armor/vest/capcarapace
|
|
name = "captain's carapace"
|
|
desc = "A fancy blue & gold dragonscale armor vest fitted with Level III and IV armor panelling. Offers excellent protection against melee attacks, kinetic impacts, and laser discharges. "
|
|
icon_state = "captain_carapace"
|
|
armor = list(MELEE = 50, BULLET = 35, LASER = 50, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = INFINITY, ACID = 450)
|
|
dog_fashion = null
|
|
resistance_flags = FIRE_PROOF
|
|
allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/flash, /obj/item/storage/fancy/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/gun/energy, /obj/item/gun/projectile)
|
|
insert_max = 3
|
|
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
|
|
"Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi',
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/vest/capcarapace/jacket
|
|
name = "captain's jacket"
|
|
desc = "A comfy semiformal jacket for the Captain on the move. Embedded kevlar weave and Level II armor panels provide moderate protection without sacrificing class."
|
|
icon_state = "captain_jacket"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
|
armor = list(MELEE = 40, BULLET = 20, LASER = 25, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = INFINITY, ACID = 450)
|
|
|
|
/obj/item/clothing/suit/armor/vest/capcarapace/jacket/tunic
|
|
name = "captain's tunic"
|
|
desc = "A snappy blue dress tunic for Captains of class. Kevlar weave and sewn-in Level II armor plates provide moderate protection in all areas."
|
|
icon_state = "captain_tunic"
|
|
|
|
/obj/item/clothing/suit/armor/vest/capcarapace/coat
|
|
name = "captain's formal coat"
|
|
desc = "A large, fancy, and exquisately tailored dress coat for the most image-conscious of Nanotrasen Captains. Level II armor plates and impact gel panels sewn into the fabric provide light protection against most damage types."
|
|
icon_state = "captain_formal"
|
|
armor = list(MELEE = 35, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = INFINITY, ACID = 450)
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
|
|
|
/obj/item/clothing/suit/armor/vest/capcarapace/coat/white
|
|
name = "captain's long white tunic"
|
|
desc = "A beautiful dress white tunic for Captains of demanding taste. A mix of kevlar weave and Level II armor inserts provide basic protection against most threats."
|
|
icon_state = "captain_white"
|
|
|
|
// Drask look fine in the regular human version
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
|
|
"Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi',
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/riot
|
|
name = "riot suit"
|
|
desc = "A bulky, full-body suit of layered armor and impact cushions that provides outstanding protection against blunt trauma, fire, and corrosive substances. Much less effective against all other forms of damage, however."
|
|
icon_state = "riot"
|
|
item_state = "swat_suit"
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
armor = list(MELEE = 50, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, RAD = 0, FIRE = 200, ACID = 200)
|
|
strip_delay = 80
|
|
put_on_delay = 60
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/riot/sec
|
|
name = "security riot suit"
|
|
desc = "A full-body suit of riot gear that provides excellent protection against blunt force trauma, fire, and corrosive substances, but little protection otherwise. This suit is covered in red Security stripes."
|
|
icon_state = "riot-sec"
|
|
|
|
/obj/item/clothing/suit/armor/riot/knight
|
|
name = "plate armour"
|
|
desc = "A full suit of steel plate armor, it looks like it came right out of a documentary about the Middle Ages. The plating offers excellent protection against melee, and the asbestos-lined padding provides excellent protection against fire and corrosive substances, but it won't be stopping any weapon designed in the last half-millennium."
|
|
icon_state = "knight_green"
|
|
item_state = "knight_green"
|
|
slowdown = 1
|
|
sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi')
|
|
hide_tail_by_species = list("Vox")
|
|
|
|
/obj/item/clothing/suit/armor/riot/knight/yellow
|
|
icon_state = "knight_yellow"
|
|
item_state = "knight_yellow"
|
|
|
|
/obj/item/clothing/suit/armor/riot/knight/blue
|
|
icon_state = "knight_blue"
|
|
item_state = "knight_blue"
|
|
|
|
/obj/item/clothing/suit/armor/riot/knight/red
|
|
icon_state = "knight_red"
|
|
item_state = "knight_red"
|
|
|
|
/obj/item/clothing/suit/armor/riot/knight/templar
|
|
name = "crusader armour"
|
|
desc = "A heavy suit of cosplay-grade armor that vaguely resembles something from a low-quality documentary about the crusades. Whilst the plating provides mediocre protection against melee attacks and little else, the asbestos-lined padding does hold up quite well to fire and corrosive substances."
|
|
icon_state = "knight_templar"
|
|
item_state = "knight_templar"
|
|
allowed = list(/obj/item/nullrod/claymore, /obj/item/storage/bible)
|
|
armor = list(MELEE = 15, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, RAD = 0, FIRE = 200, ACID = 200)
|
|
|
|
/obj/item/clothing/suit/armor/vest/durathread
|
|
name = "durathread vest"
|
|
desc = "A comfortable and low-profile vest made of durathread, reinforced with panels of tanned leather. Offers decent protection against laser discharges, but won't be stopping a bullet any time soon."
|
|
icon_state = "durathread"
|
|
item_state = "durathread"
|
|
max_integrity = 200
|
|
resistance_flags = FLAMMABLE
|
|
armor = list(MELEE = 10, BULLET = 5, LASER = 20, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = 35, ACID = 50)
|
|
|
|
/obj/item/clothing/suit/armor/bulletproof
|
|
name = "bulletproof armor"
|
|
desc = "A full-body suit of armor fitted with Level IV ballistic armor inserts and panelling across the body. Will stop most low-caliber kinetic projectiles and help resist the concussive force of explosions, but it does little against melee and energy attacks."
|
|
icon_state = "bulletproof"
|
|
item_state = "armor"
|
|
blood_overlay_type = "armor"
|
|
body_parts_covered = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
|
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
|
heat_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
|
armor = list(MELEE = 10, BULLET = 50, LASER = 5, ENERGY = 5, BOMB = 35, RAD = 0, FIRE = 50, ACID = 50)
|
|
strip_delay = 8 SECONDS
|
|
put_on_delay = 6 SECONDS
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi'
|
|
)
|
|
|
|
|
|
/obj/item/clothing/suit/armor/bulletproof/sec
|
|
name = "security bulletproof armor"
|
|
desc = "A full-body suit of armor fitted with Level IV ballistic inserts and panelling. Will stop most low-caliber kinetic rounds and resist the concussive force of explosions somewhat, but it does little against melee and energy attacks. This suit is covered in red Security stripes."
|
|
icon_state = "bulletproof-sec"
|
|
|
|
/obj/item/clothing/suit/armor/swat
|
|
name = "SWAT armor"
|
|
desc = "A large, bulky suit of tactical armor commonly used by specialized police units. Offers moderate protection in all areas. It has a surface coating that completely resists harm from fire and corrosive attacks."
|
|
icon_state = "heavy"
|
|
item_state = "swat_suit"
|
|
body_parts_covered = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
|
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
|
|
armor = list(MELEE = 35, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50,RAD = 10, FIRE = INFINITY, ACID = INFINITY)
|
|
strip_delay = 12 SECONDS
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
|
|
)
|
|
|
|
/obj/item/clothing/suit/armor/laserproof
|
|
name = "ablative armor vest"
|
|
desc = "A high-tech armor vest specializing against energy attacks. A miniaturized energy shielding system deflects incoming shots on a short cooldown, while a reflective outer shell and \
|
|
specialized heat dissipation materials protect against direct energy impacts. Unfortunately, it offers little in the way of defense against solid projectiles or melee weapons."
|
|
icon_state = "armor_reflec"
|
|
item_state = "armor_reflec"
|
|
blood_overlay_type = "armor"
|
|
armor = list(MELEE = 5, BULLET = 5, LASER = 75, ENERGY = 50, BOMB = 0, RAD = 0, FIRE = INFINITY, ACID = INFINITY)
|
|
var/last_reflect_time
|
|
var/reflect_cooldown = 5 SECONDS
|
|
|
|
/obj/item/clothing/suit/armor/laserproof/IsReflect()
|
|
var/mob/living/carbon/human/user = loc
|
|
if(user.wear_suit != src)
|
|
return 0
|
|
if(world.time - last_reflect_time >= reflect_cooldown)
|
|
last_reflect_time = world.time
|
|
return 1
|
|
if(world.time - last_reflect_time <= 1) // This is so if multiple energy projectiles hit at once, they're all reflected
|
|
return 1
|
|
return 0
|
|
|
|
/obj/item/clothing/suit/armor/vest/det_suit
|
|
name = "armor"
|
|
desc = "An armored vest with a detective's badge on it."
|
|
sprite_sheets = list(
|
|
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
|
|
)
|
|
icon_state = "detective-armor"
|
|
allowed = list(/obj/item/tank/internals/emergency_oxygen,/obj/item/reagent_containers/spray/pepper,/obj/item/flashlight,/obj/item/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/restraints/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/lighter,/obj/item/detective_scanner,/obj/item/taperecorder)
|
|
resistance_flags = FLAMMABLE
|
|
dog_fashion = null
|
|
|
|
//Reactive armor
|
|
/obj/item/clothing/suit/armor/reactive
|
|
name = "reactive armor"
|
|
desc = "A massive, complex, and currently entirely worthless vest that forms the basis of a reactive armor system. Requires an anomaly core to actually work."
|
|
/// Is the armor turned on?
|
|
var/active = FALSE
|
|
/// Is the armor disabled, and prevented from reactivating temporarly?
|
|
var/disabled = FALSE
|
|
icon_state = "reactiveoff"
|
|
item_state = "reactiveoff"
|
|
blood_overlay_type = "armor"
|
|
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = INFINITY, ACID = INFINITY)
|
|
actions_types = list(/datum/action/item_action/toggle)
|
|
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
|
hit_reaction_chance = 50
|
|
insert_max = 2
|
|
/// The cell reactive armor uses.
|
|
var/obj/item/stock_parts/cell/emproof/reactive/cell
|
|
/// Cost multiplier for armor. "Stronger" armors use 200 charge, other armors use 120.
|
|
var/energy_cost = 120
|
|
/// Is the armor in the one second grace period, to prevent rubbershot / buckshot from draining significant cell useage.
|
|
var/in_grace_period = FALSE
|
|
|
|
|
|
/obj/item/clothing/suit/armor/reactive/Initialize(mapload, ...)
|
|
. = ..()
|
|
cell = new(src)
|
|
AddElement(/datum/element/high_value_item)
|
|
|
|
/obj/item/clothing/suit/armor/reactive/Destroy()
|
|
QDEL_NULL(cell)
|
|
return ..()
|
|
|
|
/obj/item/clothing/suit/armor/reactive/examine(mob/user)
|
|
. = ..()
|
|
if(cell)
|
|
. += "<span class='notice'>The armor is [round(cell.percent())]% charged.</span>"
|
|
|
|
/obj/item/clothing/suit/armor/reactive/examine_more(mob/user)
|
|
. = ..()
|
|
. += "Reactive armor systems are one of the uses that Nanotasen has found for the anomaly cores that can be recovered from the anomalous phenomena that occur in the area of space near Lavaland. \
|
|
The effects of these armor units can be unpredictable or undesirable in certain situations, so Nanotrasen advises only activating them when the user is in danger."
|
|
. += ""
|
|
. += "Outside of the strange effects caused by the anomaly core, the armor provides no protection against conventional attacks. \
|
|
Nanotrasen cannot be held liable for injury and/or death due to misuse or proper operation of the reactive armor."
|
|
|
|
/obj/item/clothing/suit/armor/reactive/attack_self__legacy__attackchain(mob/user)
|
|
active = !(active)
|
|
if(disabled)
|
|
to_chat(user, "<span class='warning'>[src] is disabled and rebooting!</span>")
|
|
return
|
|
if(active)
|
|
to_chat(user, "<span class='notice'>[src] is now active.</span>")
|
|
icon_state = "reactive"
|
|
item_state = "reactive"
|
|
else
|
|
to_chat(user, "<span class='notice'>[src] is now inactive.</span>")
|
|
icon_state = "reactiveoff"
|
|
item_state = "reactiveoff"
|
|
add_fingerprint(user)
|
|
user.update_inv_wear_suit()
|
|
update_action_buttons()
|
|
|
|
/obj/item/clothing/suit/armor/reactive/emp_act(severity)
|
|
var/emp_power = 5 + (severity-1 ? 0 : 5)
|
|
if(!disabled) //We want ions to drain power, but we do not want it to drain all power in one go, or be one shot via ion scatter
|
|
cell.use(energy_cost * 4 / severity)
|
|
disable(emp_power)
|
|
..()
|
|
|
|
/obj/item/clothing/suit/armor/reactive/proc/use_power()
|
|
if(in_grace_period)
|
|
return TRUE
|
|
if(!cell.use(energy_cost)) //No working if cells are dry
|
|
return FALSE
|
|
in_grace_period = TRUE
|
|
addtimer(VARSET_CALLBACK(src, in_grace_period, FALSE), 1 SECONDS)
|
|
return TRUE
|
|
|
|
/obj/item/clothing/suit/armor/reactive/get_cell()
|
|
return cell
|
|
|
|
/obj/item/clothing/suit/armor/reactive/proc/disable(disable_time = 0)
|
|
active = FALSE
|
|
disabled = TRUE
|
|
icon_state = "reactiveoff"
|
|
item_state = "reactiveoff"
|
|
addtimer(CALLBACK(src, PROC_REF(reboot)), disable_time SECONDS)
|
|
if(ishuman(loc))
|
|
var/mob/living/carbon/human/C = loc
|
|
C.update_inv_wear_suit()
|
|
|
|
/obj/item/clothing/suit/armor/reactive/proc/reboot()
|
|
disabled = FALSE
|
|
active = TRUE
|
|
icon_state = "reactive"
|
|
item_state = "reactive"
|
|
if(ishuman(loc))
|
|
var/mob/living/carbon/human/C = loc
|
|
C.update_inv_wear_suit()
|
|
|
|
/obj/item/clothing/suit/armor/reactive/proc/reaction_check(hitby)
|
|
if(prob(hit_reaction_chance))
|
|
if(isprojectile(hitby))
|
|
var/obj/item/projectile/P = hitby
|
|
if(istype(P, /obj/item/projectile/ion))
|
|
return FALSE
|
|
if(!P.nodamage || P.stun || P.weaken)
|
|
return TRUE
|
|
else
|
|
return TRUE
|
|
|
|
//When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!)
|
|
/obj/item/clothing/suit/armor/reactive/teleport
|
|
name = "reactive teleportation armor"
|
|
desc = "A reactive armor vest fitted with a bluespace anomaly core, allowing it to teleport its wearer away from danger. Looking directly at the core fills you with a sense of vertigo."
|
|
energy_cost = 200
|
|
var/tele_range = 6
|
|
|
|
/obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
|
if(!active)
|
|
return 0
|
|
if(reaction_check(hitby) && is_teleport_allowed(owner.z) && use_power())
|
|
var/mob/living/carbon/human/H = owner
|
|
if(do_teleport(owner, owner, 6, safe_turf_pick = TRUE)) //Teleport on the same spot with a precision of 6 gets a random tile near the owner.
|
|
owner.visible_message("<span class='danger'>The reactive teleport system flings [H] clear of [attack_text]!</span>")
|
|
return TRUE
|
|
return FALSE
|
|
return FALSE
|
|
|
|
/obj/item/clothing/suit/armor/reactive/fire
|
|
name = "reactive incendiary armor"
|
|
desc = "A reactive armor vest fitted with a pyroclastic anomaly core, which sprays jets of flame when its wearer is threatened, as well as protecting the wearer from extreme heat. A gentle warmth emanates from the core."
|
|
heat_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
|
|
|
/obj/item/clothing/suit/armor/reactive/fire/equipped(mob/user, slot)
|
|
..()
|
|
if(slot != ITEM_SLOT_OUTER_SUIT)
|
|
return
|
|
ADD_TRAIT(user, TRAIT_RESISTHEAT, "[UID()]")
|
|
|
|
/obj/item/clothing/suit/armor/reactive/fire/dropped(mob/user, silent)
|
|
..()
|
|
REMOVE_TRAIT(user, TRAIT_RESISTHEAT, "[UID()]")
|
|
|
|
/obj/item/clothing/suit/armor/reactive/fire/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
|
if(!active)
|
|
return FALSE
|
|
if(reaction_check(hitby) && use_power())
|
|
owner.visible_message("<span class='danger'>[src] blocks [attack_text], sending out jets of flame!</span>")
|
|
for(var/mob/living/carbon/C in range(6, owner))
|
|
if(C != owner)
|
|
C.fire_stacks += 8
|
|
C.IgniteMob()
|
|
add_attack_logs(owner, C, "[C] was ignited by [owner]'s [src]", ATKLOG_ALMOSTALL) //lord have mercy on almost_all attack log admins
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/obj/item/clothing/suit/armor/reactive/cryo
|
|
name = "reactive gelidic armor" //is "gelidic" a word? probably not, but it sounds cool
|
|
desc = "A reactive armor vest fitted with a cryogenic anomaly core, which vents supercooled gasses at threats to its wearer. A faint wind can be heard near the core."
|
|
|
|
/obj/item/clothing/suit/armor/reactive/cryo/equipped(mob/user, slot)
|
|
..()
|
|
if(slot != ITEM_SLOT_OUTER_SUIT)
|
|
return
|
|
ADD_TRAIT(user, TRAIT_RESISTCOLD, "[UID()]")
|
|
|
|
/obj/item/clothing/suit/armor/reactive/cryo/dropped(mob/user, silent)
|
|
..()
|
|
REMOVE_TRAIT(user, TRAIT_RESISTCOLD, "[UID()]")
|
|
|
|
/obj/item/clothing/suit/armor/reactive/cryo/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
|
if(!active)
|
|
return FALSE
|
|
if(reaction_check(hitby) && use_power())
|
|
owner.visible_message("<span class='danger'>[src] blocks [attack_text], sending out freezing bolts!</span>")
|
|
|
|
for(var/mob/living/M in oview(get_turf(src), 7))
|
|
shootAt(M)
|
|
|
|
if(prob(10)) //rarely vent gasses
|
|
owner.visible_message("<span class='warning'>[src] vents excess coolant!</span>")
|
|
playsound(loc, 'sound/effects/refill.ogg', 50, TRUE)
|
|
|
|
var/turf/simulated/T = get_turf(src)
|
|
if(istype(T))
|
|
T.atmos_spawn_air(LINDA_SPAWN_COLD | LINDA_SPAWN_N2O | LINDA_SPAWN_CO2, 20)
|
|
|
|
disable(rand(1, 3))
|
|
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/obj/item/clothing/suit/armor/reactive/cryo/proc/shootAt(atom/movable/target)
|
|
var/turf/T = get_turf(src)
|
|
var/turf/U = get_turf(target)
|
|
if(!T || !U)
|
|
return
|
|
var/obj/item/projectile/temp/basilisk/O = new /obj/item/projectile/temp/basilisk(T)
|
|
playsound(get_turf(src), 'sound/weapons/taser2.ogg', 75, TRUE)
|
|
O.current = T
|
|
O.yo = U.y - T.y
|
|
O.xo = U.x - T.x
|
|
O.fire()
|
|
|
|
|
|
/obj/item/clothing/suit/armor/reactive/stealth
|
|
name = "reactive stealth armor"
|
|
desc = "A reactive armor vest fitted with a vortex anomaly core, which can turns its wearer invisible at the first sign of danger. The air around the core seems to shimmer and shift."
|
|
energy_cost = 200
|
|
|
|
/obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
|
if(!active)
|
|
return FALSE
|
|
if(reaction_check(hitby) && use_power())
|
|
var/mob/living/simple_animal/hostile/illusion/escape/stealth/E = new(owner.loc)
|
|
E.Copy_Parent(owner, 50)
|
|
E.GiveTarget(owner) //so it starts running right away
|
|
E.Goto(owner, E.move_to_delay, E.minimum_distance)
|
|
owner.visible_message("<span class='danger'>[owner] is hit by [attack_text] in the chest!</span>") //We pretend to be hit, since blocking it would stop the message otherwise
|
|
owner.make_invisible()
|
|
disable(rand(4, 5)) //No blocking while invisible
|
|
addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob/living, reset_visibility)), 4 SECONDS)
|
|
return TRUE
|
|
|
|
/obj/item/clothing/suit/armor/reactive/tesla
|
|
name = "reactive tesla armor"
|
|
desc = "A reactive armor vest fitted with an electrical anomaly core, which fires lethal bolts of electricty at threats to its wearer. The air around the core smells of ozone."
|
|
|
|
/obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
|
if(!active)
|
|
return FALSE
|
|
if(reaction_check(hitby) && use_power())
|
|
owner.visible_message("<span class='danger'>[src] blocks [attack_text], sending out arcs of lightning!</span>")
|
|
for(var/mob/living/M in view(6, owner))
|
|
if(M == owner)
|
|
continue
|
|
owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5)
|
|
M.adjustFireLoss(20)
|
|
playsound(M, 'sound/machines/defib_zap.ogg', 50, TRUE, -1)
|
|
add_attack_logs(owner, M, "[M] was shocked by [owner]'s [src]", ATKLOG_ALMOSTALL)
|
|
disable(rand(2, 5)) // let's not have buckshot set it off 4 times and do 80 burn damage.
|
|
return TRUE
|
|
|
|
/obj/item/clothing/suit/armor/reactive/repulse
|
|
name = "reactive repulse armor"
|
|
desc = "A reactive armor vest fitted with a gravitational anomaly core, which violently repels threats to its wearer. The core pulses with light, akin to a heartbeat."
|
|
///How strong the reactive armor is for throwing
|
|
var/repulse_power = 3
|
|
/// How far away are we finding things to throw
|
|
var/repulse_range = 5
|
|
/// What the sparkles looks like
|
|
var/sparkle_path = /obj/effect/temp_visual/gravpush
|
|
energy_cost = 200
|
|
|
|
/obj/item/clothing/suit/armor/reactive/repulse/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
|
if(!active)
|
|
return FALSE
|
|
if(reaction_check(hitby) && use_power())
|
|
owner.visible_message("<span class='danger'>[src] blocks [attack_text], converting the attack into a wave of force!</span>")
|
|
use_power()
|
|
var/list/thrown_atoms = list()
|
|
for(var/turf/T in range(repulse_range, owner)) //Done this way so things don't get thrown all around hilariously.
|
|
for(var/atom/movable/AM in T)
|
|
thrown_atoms += AM
|
|
|
|
for(var/atom/movable/AM as anything in thrown_atoms)
|
|
if(AM == owner || AM.anchored || (ismob(AM) && !isliving(AM)))
|
|
continue
|
|
|
|
var/throw_target = get_edge_target_turf(owner, get_dir(owner, get_step_away(AM, owner)))
|
|
var/dist_from_user = get_dist(owner, AM)
|
|
if(dist_from_user == 0)
|
|
if(isliving(AM))
|
|
var/mob/living/M = AM
|
|
M.Weaken(6 SECONDS)
|
|
to_chat(M, "<span class='userdanger'>You're slammed into the floor by [owner]'s reactive armor!</span>")
|
|
add_attack_logs(owner, M, "[M] was thrown by [owner]'s [src]", ATKLOG_ALMOSTALL)
|
|
else
|
|
new sparkle_path(get_turf(AM), get_dir(owner, AM))
|
|
if(isliving(AM))
|
|
var/mob/living/M = AM
|
|
to_chat(M, "<span class='userdanger'>You're thrown back by [owner]'s reactive armor!</span>")
|
|
add_attack_logs(owner, M, "[M] was thrown by [owner]'s [src]", ATKLOG_ALMOSTALL)
|
|
INVOKE_ASYNC(AM, TYPE_PROC_REF(/atom/movable, throw_at), throw_target, ((clamp((repulse_power - (clamp(dist_from_user - 2, 0, dist_from_user))), 3, repulse_power))), 1) //So stuff gets tossed around at the same time.
|
|
disable(rand(2, 5))
|
|
return TRUE
|
|
|
|
/obj/effect/spawner/reactive_armor
|
|
name = "Random Reactive Armor"
|
|
icon = 'icons/obj/clothing/suits.dmi'
|
|
icon_state = "reactiveoff"
|
|
|
|
/obj/effect/spawner/reactive_armor/Initialize(mapload)
|
|
. = ..()
|
|
var/spawnpath = pick(subtypesof(/obj/item/clothing/suit/armor/reactive))
|
|
new spawnpath(loc)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
//All of the armor below is mostly unused
|
|
|
|
|
|
/obj/item/clothing/suit/armor/centcomm
|
|
name = "Cent. Com. armor"
|
|
desc = "A suit that protects against some damage."
|
|
icon_state = "centcom"
|
|
item_state = "centcom"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
allowed = list(/obj/item/gun/energy,/obj/item/melee/baton,/obj/item/restraints/handcuffs,/obj/item/tank/internals/emergency_oxygen)
|
|
flags = THICKMATERIAL
|
|
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
|
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
|
|
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
|
sprite_sheets = null
|
|
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = 450, ACID = 450)
|
|
flags_2 = RAD_PROTECT_CONTENTS_2
|
|
insert_max = 5
|
|
|
|
/obj/item/clothing/suit/armor/heavy
|
|
name = "heavy armor"
|
|
desc = "A generic suit of heavy armor. Protects against damage, to the surprise of none."
|
|
icon_state = "heavy"
|
|
item_state = "swat_suit"
|
|
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = 450, ACID = 450)
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
gas_transfer_coefficient = 0.90
|
|
flags = THICKMATERIAL
|
|
flags_2 = RAD_PROTECT_CONTENTS_2
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
slowdown = 3
|
|
flags_inv = HIDEGLOVES|HIDEJUMPSUIT
|
|
hide_tail_by_species = list("Vox")
|
|
|
|
/obj/item/clothing/suit/armor/tdome
|
|
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = 450, ACID = 450)
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
flags_inv = HIDEGLOVES|HIDEJUMPSUIT
|
|
flags = THICKMATERIAL
|
|
flags_2 = RAD_PROTECT_CONTENTS_2
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
hide_tail_by_species = list("Vox")
|
|
|
|
/obj/item/clothing/suit/armor/tdome/red
|
|
name = "red Thunderdome armor"
|
|
desc = "Armor worn by the red Thunderdome team."
|
|
icon_state = "tdred"
|
|
item_state = "tdred"
|
|
|
|
/obj/item/clothing/suit/armor/tdome/green
|
|
name = "green Thunderdome armor"
|
|
desc = "Armor worn by the green Thunderdome team."
|
|
icon_state = "tdgreen"
|
|
item_state = "tdgreen"
|
|
|
|
//Federation
|
|
/obj/item/clothing/suit/armor/federation/marine
|
|
name = "\improper Federation marine combat armor"
|
|
desc = "A full-body suit of semi-powered assault armor used by the Trans-Solar Marine Corps. Offers excellent protection in all areas without impairing movement."
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
)
|
|
icon_state = "fedarmor_marine"
|
|
item_state = "fedarmor_marine"
|
|
armor = list(MELEE = 40, BULLET = 45, LASER = 45, ENERGY = 40, BOMB = 100, RAD = 25, FIRE = INFINITY, ACID = 100)
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/rcd, /obj/item/crowbar, \
|
|
/obj/item/screwdriver, /obj/item/weldingtool, /obj/item/wirecutters, /obj/item/wrench, /obj/item/multitool, \
|
|
/obj/item/radio, /obj/item/analyzer, /obj/item/gun, /obj/item/melee/baton, /obj/item/reagent_containers/spray/pepper, \
|
|
/obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/restraints/handcuffs)
|
|
flags = THICKMATERIAL | STOPSPRESSUREDMAGE
|
|
strip_delay = 12 SECONDS
|
|
|
|
/obj/item/clothing/suit/armor/federation/marine/officer
|
|
name = "\improper Federation marine officer's armor"
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
)
|
|
icon_state = "fedarmor_marine_officer"
|
|
item_state = "fedarmor_marine_officer"
|
|
desc = "A full-body suit of semi-powered assault armor used by the Trans-Solar Marine Corps. Offers excellent protection in all areas without impairing movement. This suit has golden stripes instead of the typical white."
|
|
|
|
/obj/item/clothing/suit/armor/federation/marine/export
|
|
name = "\improper Federation marine combat armor (E)"
|
|
desc = "An export-grade suit of semi-powered assault armor commonly sold or given to allies of the Trans-Solar Federation. It has moderately reduced capabilites compared to a standard suit."
|
|
sprite_sheets = list(
|
|
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
|
|
)
|
|
armor = list(MELEE = 30, BULLET = 35, LASER = 35, ENERGY = 30, BOMB = 50, RAD = 0, FIRE = 100, ACID = 50)
|
|
|
|
|
|
//Non-hardsuit ERT armor.
|
|
/obj/item/clothing/suit/armor/vest/ert
|
|
name = "emergency response team armor"
|
|
desc = "A mid-quality protective vest produced by Citadel Armories. Additional polymer paneling over the chest and shoulders offers moderately improved energy protection compared to standard kevlar vests."
|
|
icon_state = "ertarmor_cmd"
|
|
armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 10, RAD = 0, FIRE = 50, ACID = 50)
|
|
|
|
//Commander
|
|
/obj/item/clothing/suit/armor/vest/ert/command
|
|
name = "emergency response team commander armor"
|
|
desc = "A mid-quality protective vest produced by Citadel Armories. Additional polymer paneling over the chest and shoulders offers moderately improved energy protection compared to standard kevlar vests. This one has chipped blue Command insignia on the shoulders."
|
|
|
|
//Security
|
|
/obj/item/clothing/suit/armor/vest/ert/security
|
|
name = "emergency response team security armor"
|
|
desc = "A mid-quality protective vest produced by Citadel Armories. Additional polymer paneling over the chest and shoulders offers moderately improved energy protection compared to standard kevlar vests. This one has chipped red Security insignia on the shoulders."
|
|
icon_state = "ertarmor_sec"
|
|
|
|
//Paranormal
|
|
/obj/item/clothing/suit/armor/vest/ert/security/paranormal
|
|
name = "emergency response team paranormal armor"
|
|
desc = "A full suit of medieval plate armor, kitted out in crusader colors. Where the hell did they even find this? There are chipped black insignia on the shoulders."
|
|
icon_state = "knight_templar"
|
|
item_state = "knight_templar"
|
|
|
|
//Engineer
|
|
/obj/item/clothing/suit/armor/vest/ert/engineer
|
|
name = "emergency response team engineer armor"
|
|
desc = "A mid-quality protective vest produced by Citadel Armories. Additional polymer paneling over the chest and shoulders offers moderately improved energy protection compared to standard kevlar vests. This one has chipped orange Engineering insignia on the shoulders."
|
|
icon_state = "ertarmor_eng"
|
|
|
|
//Medical
|
|
/obj/item/clothing/suit/armor/vest/ert/medical
|
|
name = "emergency response team medical armor"
|
|
desc = "A mid-quality protective vest produced by Citadel Armories. Additional polymer paneling over the chest and shoulders offers moderately improved energy protection compared to standard kevlar vests. This one has chipped white Medical insignia on the shoulders."
|
|
icon_state = "ertarmor_med"
|
|
|
|
//Janitorial
|
|
/obj/item/clothing/suit/armor/vest/ert/janitor
|
|
name = "emergency response team janitor armor"
|
|
desc = "A mid-quality protective vest produced by Citadel Armories. Additional polymer paneling over the chest and shoulders offers moderately improved energy protection compared to standard kevlar vests. This one has chipped purple Janitorial insignia on the shoulders."
|
|
icon_state = "ertarmor_jan"
|
|
|
|
//same defense as basic sec armor
|
|
/obj/item/clothing/suit/storage/iaa/blackjacket/armored
|
|
desc = "A snappy dress jacket, reinforced with a layer of armor protecting the torso."
|
|
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/gun/projectile/revolver, /obj/item/gun/projectile/automatic/pistol)
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
|
cold_protection = UPPER_TORSO|LOWER_TORSO
|
|
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO
|
|
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
|
armor = list(MELEE = 15, BULLET = 10, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 35, ACID = 35)
|
|
|
|
//LAVALAND!
|
|
|
|
/obj/item/clothing/suit/hooded/drake
|
|
name = "drake armour"
|
|
icon_state = "dragon"
|
|
item_state = "dragon"
|
|
desc = "A suit of armour fashioned from the remains of an ash drake."
|
|
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear)
|
|
armor = list(MELEE = 115, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 150, RAD = 25, FIRE = INFINITY, ACID = INFINITY)
|
|
hoodtype = /obj/item/clothing/head/hooded/drake
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
|
|
/obj/item/clothing/head/hooded/drake
|
|
name = "drake helmet"
|
|
icon_state = "dragon"
|
|
item_state = "dragon"
|
|
desc = "The skull of a dragon."
|
|
armor = list(MELEE = 115, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 150, RAD = 25, FIRE = INFINITY, ACID = INFINITY)
|
|
heat_protection = HEAD
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
flags = BLOCKHAIR
|
|
flags_cover = HEADCOVERSEYES
|
|
|
|
/obj/item/clothing/suit/hooded/goliath
|
|
name = "goliath cloak"
|
|
icon_state = "goliath_cloak"
|
|
item_state = "goliath_cloak"
|
|
desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits."
|
|
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/organ/internal/regenerative_core/legion, /obj/item/kitchen/knife/combat/survival)
|
|
armor = list(MELEE = 25, BULLET = 5, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 75, ACID = 75) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
|
|
hoodtype = /obj/item/clothing/head/hooded/goliath
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
|
|
|
/obj/item/clothing/head/hooded/goliath
|
|
name = "goliath cloak hood"
|
|
icon_state = "golhood"
|
|
item_state = "golhood"
|
|
desc = "A protective & concealing hood."
|
|
armor = list(MELEE = 25, BULLET = 5, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 75, ACID = 75)
|
|
flags = BLOCKHAIR
|
|
flags_cover = HEADCOVERSEYES
|
|
heat_protection = HEAD
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
|
|
|
/obj/item/clothing/suit/armor/bone
|
|
name = "bone armor"
|
|
desc = "A tribal armor plate, crafted from animal bone."
|
|
icon_state = "bonearmor"
|
|
item_state = "bonearmor"
|
|
blood_overlay_type = "armor"
|
|
armor = list(MELEE = 25, BULLET = 15, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
|
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|