Files
Alexis 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00

877 lines
26 KiB
Plaintext

/obj/item/clothing/suit/armor
name = "armor"
icon = 'icons/obj/clothing/suits/armor.dmi'
worn_icon = 'icons/mob/clothing/suits/armor.dmi'
abstract_type = /obj/item/clothing/suit/armor
allowed = null
body_parts_covered = CHEST
cold_protection = CHEST|GROIN
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
strip_delay = 6 SECONDS
equip_delay_other = 4 SECONDS
max_integrity = 250
resistance_flags = NONE
armor_type = /datum/armor/suit_armor
/datum/armor/suit_armor
melee = 35
bullet = 30
laser = 30
energy = 40
bomb = 25
fire = 50
acid = 50
wound = 10
/obj/item/clothing/suit/armor/Initialize(mapload)
. = ..()
if(!allowed)
allowed = GLOB.security_vest_allowed
/obj/item/clothing/suit/armor/apply_fantasy_bonuses(bonus)
. = ..()
slowdown = modify_fantasy_variable("slowdown", slowdown, -bonus * 0.1, 0)
if(ismob(loc))
var/mob/wearer = loc
wearer.update_equipment_speed_mods()
/obj/item/clothing/suit/armor/remove_fantasy_bonuses(bonus)
slowdown = reset_fantasy_variable("slowdown", slowdown)
if(ismob(loc))
var/mob/wearer = loc
wearer.update_equipment_speed_mods()
return ..()
/obj/item/clothing/suit/armor/vest
name = "armor vest"
desc = "A slim Type I armored vest that provides decent protection against most types of damage."
icon_state = "armoralt"
inhand_icon_state = "armor"
blood_overlay_type = "armor"
dog_fashion = /datum/dog_fashion/back/armorvest
/obj/item/clothing/suit/armor/vest/alt
desc = "A Type I armored vest that provides decent protection against most types of damage."
icon_state = "armor"
inhand_icon_state = "armor"
/obj/item/clothing/suit/armor/vest/alt/sec
icon_state = "armor_sec"
/obj/item/clothing/suit/armor/vest/press
name = "press armor vest"
desc = "A blue armor vest used to distinguish <i>non-combatant</i> \"PRESS\" members, like if anyone cares."
icon_state = "armor_press"
/obj/item/clothing/suit/armor/vest/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file)
. = ..()
if(!isinhands)
. += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR)
/obj/item/clothing/suit/armor/vest/marine
name = "tactical armor vest"
desc = "A set of the finest mass produced, stamped plasteel armor plates, containing an environmental protection unit for all-condition door kicking."
icon_state = "marine_command"
inhand_icon_state = "armor"
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/vest_marine
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT_OFF
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
resistance_flags = FIRE_PROOF | ACID_PROOF
/datum/armor/vest_marine
melee = 50
bullet = 50
laser = 30
energy = 25
bomb = 50
bio = 100
fire = 40
acid = 50
wound = 20
/datum/armor/pmc
melee = 40
bullet = 50
laser = 60
energy = 50
bomb = 50
bio = 100
acid = 50
wound = 20
/obj/item/clothing/suit/armor/vest/marine/security
name = "large tactical armor vest"
icon_state = "marine_security"
/obj/item/clothing/suit/armor/vest/marine/engineer
name = "tactical utility armor vest"
icon_state = "marine_engineer"
/obj/item/clothing/suit/armor/vest/marine/medic
name = "tactical medic's armor vest"
icon_state = "marine_medic"
body_parts_covered = CHEST|GROIN
/obj/item/clothing/suit/armor/vest/marine/pmc
desc = "A set of the finest mass produced, stamped plasteel armor plates, for an all-around door-kicking and ass-smashing. Its stellar survivability making up is for its lack of space worthiness"
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
clothing_flags = THICKMATERIAL
w_class = WEIGHT_CLASS_BULKY
armor_type = /datum/armor/pmc
/obj/item/clothing/suit/armor/vest/old
name = "degrading armor vest"
desc = "Older generation Type 1 armored vest. Due to degradation over time the vest is far less maneuverable to move in."
icon_state = "armor"
inhand_icon_state = "armor"
slowdown = 1
/obj/item/clothing/suit/armor/vest/blueshirt
name = "large armor vest"
desc = "A large, yet comfortable piece of armor, protecting you from some threats."
icon_state = "blueshift"
inhand_icon_state = null
custom_premium_price = PAYCHECK_COMMAND
/obj/item/clothing/suit/armor/vest/cuirass
name = "cuirass"
desc = "A lighter plate armor used to still keep out those pesky arrows, while retaining the ability to move."
icon_state = "cuirass"
inhand_icon_state = "armor"
dog_fashion = null
/obj/item/clothing/suit/armor/vest/cuirass/Initialize(mapload)
. = ..()
AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
/obj/item/clothing/suit/armor/hos
name = "armored greatcoat"
desc = "A greatcoat enhanced with a special alloy for some extra protection and style for those with a commanding presence."
icon_state = "hos"
inhand_icon_state = "greatcoat"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
armor_type = /datum/armor/armor_hos
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
strip_delay = 8 SECONDS
/datum/armor/armor_hos
melee = 30
bullet = 30
laser = 30
energy = 40
bomb = 25
fire = 70
acid = 90
wound = 10
/obj/item/clothing/suit/armor/hos/trenchcoat
name = "armored trenchcoat"
desc = "A trenchcoat enhanced with a special lightweight kevlar. The epitome of tactical plainclothes."
icon_state = "hostrench"
inhand_icon_state = "hostrench"
flags_inv = 0
strip_delay = 8 SECONDS
/obj/item/clothing/suit/armor/hos/trenchcoat/winter
name = "head of security's winter trenchcoat"
desc = "A trenchcoat enhanced with a special lightweight kevlar, padded with wool on the collar and inside. You feel strangely lonely wearing this coat."
icon_state = "hoswinter"
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
/obj/item/clothing/suit/armor/hos/hos_formal
name = "\improper Head of Security's parade jacket"
desc = "For when an armoured vest isn't fashionable enough."
icon_state = "hosformal"
inhand_icon_state = "hostrench"
body_parts_covered = CHEST|GROIN|ARMS
/obj/item/clothing/suit/armor/hos/hos_formal/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon)
/obj/item/clothing/suit/armor/vest/warden
name = "warden's jacket"
desc = "A navy-blue armored jacket with blue shoulder designations and '/Warden/' stitched into one of the chest pockets."
icon_state = "warden_alt"
inhand_icon_state = "armor"
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS|HANDS
heat_protection = CHEST|GROIN|ARMS|HANDS
strip_delay = 7 SECONDS
resistance_flags = FLAMMABLE
dog_fashion = null
/obj/item/clothing/suit/armor/vest/warden/alt
name = "warden's armored jacket"
desc = "A red jacket with silver rank pips and body armor strapped on top."
icon_state = "warden_jacket"
/obj/item/clothing/suit/armor/vest/secjacket
name = "security jacket"
desc = "A red jacket in red Security colors. It has hi-vis stripes all over it."
icon_state = "secjacket"
inhand_icon_state = "armor"
armor_type = /datum/armor/armor_secjacket
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS|HANDS
heat_protection = CHEST|GROIN|ARMS|HANDS
resistance_flags = FLAMMABLE
dog_fashion = null
/obj/item/clothing/suit/armor/vest/secjacket/worn_overlays(mutable_appearance/standing, isinhands, icon_file)
. = ..()
if(!isinhands)
. += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR)
/datum/armor/armor_secjacket //Gotta compensate those extra covered limbs
melee = 25
bullet = 25
laser = 25
energy = 35
bomb = 20
fire = 30
acid = 30
wound = 5
/obj/item/clothing/suit/armor/vest/leather
name = "security overcoat"
desc = "Lightly armored leather overcoat meant as casual wear for high-ranking officers. Bears the crest of Nanotrasen Security."
icon_state = "leathercoat-sec"
inhand_icon_state = "hostrench"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
dog_fashion = null
/obj/item/clothing/suit/armor/vest/capcarapace
name = "captain's carapace"
desc = "A fireproof armored chestpiece reinforced with ceramic plates and plasteel pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest, although it does chafe your nipples."
icon_state = "capcarapace"
inhand_icon_state = "armor"
body_parts_covered = CHEST|GROIN
armor_type = /datum/armor/vest_capcarapace
dog_fashion = null
resistance_flags = FIRE_PROOF
/datum/armor/vest_capcarapace
melee = 50
bullet = 40
laser = 50
energy = 50
bomb = 25
fire = 100
acid = 90
wound = 10
/obj/item/clothing/suit/armor/vest/capcarapace/syndicate
name = "syndicate captain's vest"
desc = "A sinister looking vest of advanced armor worn over a black and red fireproof jacket. The gold collar and shoulders denote that this belongs to a high ranking syndicate officer."
icon_state = "syndievest"
/obj/item/clothing/suit/armor/vest/capcarapace/captains_formal
name = "captain's parade coat"
desc = "For when an armoured vest isn't fashionable enough."
icon_state = "capformal"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|ARMS
/obj/item/clothing/suit/armor/vest/capcarapace/captains_formal/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon)
/obj/item/clothing/suit/armor/riot
name = "riot suit"
desc = "A suit of semi-flexible polycarbonate body armor with heavy padding to protect against melee attacks. Helps the wearer resist shoving in close quarters."
icon_state = "riot"
inhand_icon_state = "swat_suit"
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/armor_riot
strip_delay = 8 SECONDS
equip_delay_other = 6 SECONDS
clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)
/obj/item/clothing/suit/armor/riot/Initialize(mapload)
. = ..()
AddElement(/datum/element/adjust_fishing_difficulty, 5)
init_rustle_component()
/obj/item/clothing/suit/armor/riot/proc/init_rustle_component()
AddComponent(/datum/component/item_equipped_movement_rustle)
/datum/armor/armor_riot
melee = 50
bullet = 10
laser = 10
energy = 10
fire = 80
acid = 80
wound = 20
/obj/item/clothing/suit/armor/balloon_vest
name = "balloon vest"
desc = "A vest made entirely from balloons, resistant to any evil forces a mime could throw at you, including electricity and fire. Just a strike with something sharp, though..."
icon_state = "balloon-vest"
inhand_icon_state = "balloon_armor"
blood_overlay_type = "armor"
armor_type = /datum/armor/balloon_vest
siemens_coefficient = 0
strip_delay = 7 SECONDS
equip_delay_other = 5 SECONDS
/datum/armor/balloon_vest
melee = 10
laser = 10
energy = 10
fire = 60
acid = 50
/obj/item/clothing/suit/armor/balloon_vest/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
if(isitem(hitby))
var/obj/item/item_hit = hitby
if(item_hit.get_sharpness())
pop()
if(istype(hitby, /obj/projectile/bullet))
pop()
return ..()
/obj/item/clothing/suit/armor/balloon_vest/proc/pop()
playsound(src, 'sound/effects/cartoon_sfx/cartoon_pop.ogg', 50, vary = TRUE)
qdel(src)
/obj/item/clothing/suit/armor/bulletproof
name = "bulletproof armor"
desc = "A Type III heavy bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
icon_state = "bulletproof"
inhand_icon_state = "armor"
blood_overlay_type = "armor"
armor_type = /datum/armor/armor_bulletproof
strip_delay = 7 SECONDS
equip_delay_other = 5 SECONDS
/datum/armor/armor_bulletproof
melee = 15
bullet = 60
laser = 10
energy = 10
bomb = 40
fire = 50
acid = 50
wound = 20
/obj/item/clothing/suit/armor/laserproof
name = "reflector vest"
desc = "A vest that excels in protecting the wearer against energy projectiles, as well as occasionally reflecting them."
icon_state = "armor_reflec"
inhand_icon_state = "armor_reflec"
blood_overlay_type = "armor"
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
heat_protection = CHEST|GROIN|ARMS
armor_type = /datum/armor/armor_laserproof
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/hit_reflect_chance = 50
/datum/armor/armor_laserproof
melee = 10
bullet = 10
laser = 60
energy = 60
fire = 100
acid = 100
/obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone)
if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))) //If not shot where ablative is covering you, you don't get the reflection bonus!
return FALSE
if (prob(hit_reflect_chance))
return TRUE
/obj/item/clothing/suit/armor/vest/det_suit
name = "detective's flak vest"
desc = "An armored vest with a detective's badge on it."
icon_state = "detective-armor"
resistance_flags = FLAMMABLE
dog_fashion = null
/obj/item/clothing/suit/armor/vest/det_suit/Initialize(mapload)
. = ..()
allowed = GLOB.detective_vest_allowed
/obj/item/clothing/suit/armor/swat
name = "MK.I SWAT Suit"
desc = "A tactical suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 2321 for military operations. \
It has a minor slowdown, but offers decent protection and helps the wearer resist shoving in close quarters."
icon_state = "heavy"
inhand_icon_state = "swat_suit"
armor_type = /datum/armor/armor_swat
strip_delay = 12 SECONDS
resistance_flags = FIRE_PROOF | ACID_PROOF
clothing_flags = THICKMATERIAL
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT_OFF
heat_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
slowdown = 0.7
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)
/obj/item/clothing/suit/armor/swat/Initialize(mapload)
. = ..()
AddElement(/datum/element/adjust_fishing_difficulty, 5)
init_rustle_component()
/obj/item/clothing/suit/armor/swat/proc/init_rustle_component()
AddComponent(/datum/component/item_equipped_movement_rustle)
//All of the armor below is mostly unused
/datum/armor/armor_swat
melee = 40
bullet = 30
laser = 30
energy = 40
bomb = 50
bio = 90
fire = 100
acid = 100
wound = 15
/obj/item/clothing/suit/armor/heavy
name = "heavy armor"
desc = "A heavily armored suit that protects against moderate damage."
icon_state = "heavy"
inhand_icon_state = "swat_suit"
w_class = WEIGHT_CLASS_BULKY
clothing_flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 3
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
armor_type = /datum/armor/armor_heavy
/datum/armor/armor_heavy
melee = 80
bullet = 80
laser = 50
energy = 50
bomb = 100
bio = 100
fire = 90
acid = 90
/obj/item/clothing/suit/armor/tdome
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
clothing_flags = THICKMATERIAL
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/armor_tdome
/datum/armor/armor_tdome
melee = 80
bullet = 80
laser = 50
energy = 50
bomb = 100
bio = 100
fire = 90
acid = 90
/obj/item/clothing/suit/armor/tdome/red
name = "thunderdome suit"
desc = "Reddish armor."
icon_state = "tdred"
inhand_icon_state = "tdred"
/obj/item/clothing/suit/armor/tdome/green
name = "thunderdome suit"
desc = "Pukish armor." //classy.
icon_state = "tdgreen"
inhand_icon_state = "tdgreen"
/obj/item/clothing/suit/armor/tdome/holosuit
name = "thunderdome suit"
armor_type = /datum/armor/tdome_holosuit
cold_protection = null
heat_protection = null
/datum/armor/tdome_holosuit
melee = 10
bullet = 10
/obj/item/clothing/suit/armor/tdome/holosuit/red
desc = "Reddish armor."
icon_state = "tdred"
inhand_icon_state = "tdred"
/obj/item/clothing/suit/armor/tdome/holosuit/green
desc = "Pukish armor."
icon_state = "tdgreen"
inhand_icon_state = "tdgreen"
/obj/item/clothing/suit/armor/riot/knight
name = "plate armour"
desc = "A classic suit of plate armour, highly effective at stopping melee attacks."
icon_state = "knight_green"
inhand_icon_state = null
allowed = list(
/obj/item/banner,
/obj/item/claymore,
/obj/item/nullrod,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
)
/obj/item/clothing/suit/armor/riot/knight/init_rustle_component()
AddComponent(/datum/component/item_equipped_movement_rustle, SFX_PLATE_ARMOR_RUSTLE, 8)
/obj/item/clothing/suit/armor/riot/knight/yellow
icon_state = "knight_yellow"
inhand_icon_state = null
/obj/item/clothing/suit/armor/riot/knight/blue
icon_state = "knight_blue"
inhand_icon_state = null
/obj/item/clothing/suit/armor/riot/knight/red
icon_state = "knight_red"
inhand_icon_state = null
/obj/item/clothing/suit/armor/riot/knight/greyscale
name = "knight armour"
desc = "A classic suit of armour, able to be made from many different materials."
icon_state = "knight_greyscale"
inhand_icon_state = null
material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS // Can change color and add prefix
armor_type = /datum/armor/knight_greyscale
/datum/armor/knight_greyscale
melee = 35
bullet = 10
laser = 10
energy = 10
bomb = 10
bio = 10
fire = 40
acid = 40
/obj/item/clothing/suit/armor/vest/durathread
name = "durathread vest"
desc = "A vest made of durathread with strips of leather acting as trauma plates."
icon_state = "durathread"
inhand_icon_state = null
strip_delay = 6 SECONDS
equip_delay_other = 4 SECONDS
max_integrity = 200
resistance_flags = FLAMMABLE
armor_type = /datum/armor/vest_durathread
dog_fashion = null
/obj/item/clothing/suit/armor/vest/durathread/Initialize(mapload)
. = ..()
allowed |= /obj/item/clothing/suit/apron::allowed
/datum/armor/vest_durathread
melee = 20
bullet = 10
laser = 30
energy = 40
bomb = 15
fire = 40
acid = 50
/obj/item/clothing/suit/armor/vest/russian
name = "russian vest"
desc = "A bulletproof vest with forest camo. Good thing there's plenty of forests to hide in around here, right?"
icon_state = "rus_armor"
inhand_icon_state = null
armor_type = /datum/armor/vest_russian
dog_fashion = null
/datum/armor/vest_russian
melee = 25
bullet = 30
energy = 10
bomb = 10
fire = 20
acid = 50
wound = 10
/obj/item/clothing/suit/armor/vest/russian_coat
name = "russian battle coat"
desc = "Used in extremely cold fronts, made out of real bears."
icon_state = "rus_coat"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
armor_type = /datum/armor/vest_russian_coat
dog_fashion = null
/datum/armor/vest_russian_coat
melee = 25
bullet = 20
laser = 20
energy = 30
bomb = 20
bio = 50
fire = -10
acid = 50
wound = 10
/obj/item/clothing/suit/armor/elder_atmosian
name = "\improper Elder Atmosian Armor"
desc = "A superb armor made with the toughest and rarest materials available to man."
icon_state = "h2armor"
inhand_icon_state = null
material_flags = MATERIAL_EFFECTS
armor_type = /datum/armor/armor_elder_atmosian
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
/obj/item/clothing/suit/armor/elder_atmosian/Initialize(mapload)
. = ..()
allowed += list(
/obj/item/fireaxe/metal_h2_axe,
)
/datum/armor/armor_elder_atmosian
melee = 25
bullet = 20
laser = 30
energy = 30
bomb = 85
bio = 10
fire = 65
acid = 40
wound = 15
/obj/item/clothing/suit/armor/centcom_formal
name = "\improper CentCom formal coat"
desc = "A stylish coat given to CentCom Commanders. Perfect for sending ERTs to suicide missions with style!"
icon_state = "centcom_formal"
inhand_icon_state = "centcom"
body_parts_covered = CHEST|GROIN|ARMS
armor_type = /datum/armor/armor_centcom_formal
/datum/armor/armor_centcom_formal
melee = 35
bullet = 40
laser = 40
energy = 50
bomb = 35
bio = 10
fire = 10
acid = 60
/obj/item/clothing/suit/armor/centcom_formal/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon)
/obj/item/clothing/suit/armor/vest/hop
name = "head of personnel's coat"
desc = "A stylish coat given to a Head of Personnel."
icon_state = "hop_coat"
inhand_icon_state = "b_suit"
body_parts_covered = CHEST|GROIN|ARMS
dog_fashion = null
/obj/item/clothing/suit/armor/militia
name = "station defender's coat"
desc = "A well worn uniform used by militia across the frontier, its thick padding useful for cushioning blows."
icon_state = "militia"
inhand_icon_state = "b_suit"
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
armor_type = /datum/armor/coat_militia
/datum/armor/coat_militia
melee = 40
bullet = 40
laser = 30
energy = 25
bomb = 50
fire = 40
acid = 50
wound = 30
/obj/item/clothing/suit/armor/vest/military
name = "Crude chestplate"
desc = "It may look rough, rusty and battered, but it's also made out of junk and uncomfortable to wear."
icon_state = "military"
inhand_icon_state = "armor"
dog_fashion = null
armor_type = /datum/armor/military
allowed = list(
/obj/item/banner,
/obj/item/claymore/shortsword,
/obj/item/nullrod,
/obj/item/spear,
/obj/item/gun/ballistic/bow
)
/obj/item/clothing/suit/armor/vest/military/Initialize(mapload)
. = ..()
AddElement(/datum/element/adjust_fishing_difficulty, 5)
/datum/armor/military
melee = 45
bullet = 25
laser = 25
energy = 25
bomb = 25
fire = 10
acid = 50
wound = 20
/obj/item/clothing/suit/armor/riot/knight/warlord
name = "golden plate armor"
desc = "This bulky set of armor is coated with a shiny layer of gold. It seems to almost reflect all light sources."
icon_state = "warlord"
inhand_icon_state = null
armor_type = /datum/armor/armor_warlord
w_class = WEIGHT_CLASS_BULKY
clothing_flags = THICKMATERIAL
slowdown = 0.8
/datum/armor/armor_warlord
melee = 70
bullet = 60
laser = 70
energy = 70
bomb = 40
fire = 50
acid = 50
wound = 30
/obj/item/clothing/suit/armor/durability
abstract_type = /obj/item/clothing/suit/armor/durability
/obj/item/clothing/suit/armor/durability/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
take_damage(1, BRUTE, 0, 0)
/obj/item/clothing/suit/armor/durability/watermelon
name = "watermelon armor"
desc = "An armor, made from watermelons. Probably won't take too many hits, but at least it looks serious... As serious as worn watermelon can be."
icon_state = "watermelon"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/watermelon
strip_delay = 6 SECONDS
equip_delay_other = 4 SECONDS
clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)
max_integrity = 15
/obj/item/clothing/suit/armor/durability/watermelon/fire_resist
resistance_flags = FIRE_PROOF
armor_type = /datum/armor/watermelon_fr
/datum/armor/watermelon
melee = 15
bullet = 10
energy = 10
bomb = 10
fire = 0
acid = 25
wound = 5
/datum/armor/watermelon_fr
melee = 15
bullet = 10
energy = 10
bomb = 10
fire = 15
acid = 30
wound = 5
/obj/item/clothing/suit/armor/durability/holymelon
name = "holymelon armor"
desc = "An armor, made from holymelons. Inspires you to go on some sort of crusade... Perhaps spreading spinach to children?"
icon_state = "holymelon"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/watermelon
strip_delay = 6 SECONDS
equip_delay_other = 4 SECONDS
clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)
max_integrity = 15
/obj/item/clothing/suit/armor/durability/holymelon/fire_resist
resistance_flags = FIRE_PROOF
armor_type = /datum/armor/watermelon_fr
/obj/item/clothing/suit/armor/durability/holymelon/Initialize(mapload)
. = ..()
AddComponent(
/datum/component/anti_magic, \
antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, \
inventory_flags = ITEM_SLOT_OCLOTHING, \
charges = 1, \
block_magic = CALLBACK(src, PROC_REF(drain_antimagic)), \
expiration = CALLBACK(src, PROC_REF(decay)) \
)
/obj/item/clothing/suit/armor/durability/holymelon/proc/drain_antimagic(mob/user)
to_chat(user, span_warning("[src] looses a bit of its shimmer and glossiness..."))
/obj/item/clothing/suit/armor/durability/holymelon/proc/decay()
take_damage(8, BRUTE, 0, 0)
/obj/item/clothing/suit/armor/durability/barrelmelon
name = "barrelmelon armor"
desc = "An armor, made from barrelmelons. Reeks of ale, inspiring to courageous deeds. Or, perhaps, a bar brawl."
icon_state = "barrelmelon"
inhand_icon_state = null
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor_type = /datum/armor/barrelmelon
strip_delay = 6 SECONDS
equip_delay_other = 4 SECONDS
clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)
max_integrity = 10
/obj/item/clothing/suit/armor/durability/barrelmelon/fire_resist
resistance_flags = FIRE_PROOF
armor_type = /datum/armor/barrelmelon_fr
/datum/armor/barrelmelon
melee = 25
bullet = 20
energy = 15
bomb = 10
fire = 0
acid = 35
wound = 10
/datum/armor/barrelmelon_fr
melee = 25
bullet = 20
energy = 15
bomb = 10
fire = 20
acid = 40
wound = 10
/obj/item/clothing/suit/armor/dragoon
name = "drachen suit"
desc = "A chainmail suit with dragon scales attached to the skeleton, with ash-covered mythril plate reinforcement covering it."
icon_state = "dragoon"
inhand_icon_state = "dragoon"
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
resistance_flags = FIRE_PROOF | ACID_PROOF
allowed = list(/obj/item/spear/skybulge)