# Numbers for armor here largely taken from /tg/.
# armor.yml covers both armored vests (e.g. not just cosmetic) and armor that covers multiple bodyparts/limbs


#Basic armor vest for inheritance
- type: entity
  abstract: true
  parent: [ClothingOuterBaseMedium, AllowSuitStorageClothing, BaseSecurityContraband]
  id: ClothingOuterArmorBase
  name: armor vest
  description: A standard Type I armored vest that provides decent protection against most types of damage.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/security.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/security.rsi
  - type: Pierceable
    level: Metal
  - type: Armor #Based on /tg/ but slightly compensated to fit the fact that armor stacks in SS14.
    modifiers:
      coefficients:
        Blunt: 0.70
        Slash: 0.70
        Piercing: 0.70 #Can save you, but bullets will still hurt. Will take about 10 shots from a Viper before critting, as opposed to 7 while unarmored and 16~ with a bulletproof vest.
        Heat: 0.80
  - type: ExplosionResistance
    damageCoefficient: 0.90
  # Sunrise-start
  - type: BedHealModifierClothing
    multiplier: 0.40
  - type: Tag
    tags:
    - Vest
    - NudeBottom # INTERACTIONS
    - WhitelistChameleon
  - type: ArmorSparkEffect #starlight
  - type: StaminaResistance
    damageCoefficient: 0.9
  # Sunrise-End

#Standard armor vest, allowed for security and bartenders
- type: entity
  parent: ClothingOuterArmorBase #[ BaseSecurityBartenderContraband, ClothingOuterArmorBase] # Sunrise-Edit
  id: ClothingOuterArmorBasic
  components:
  - type: Tag
    tags:
    - CorgiWearable
    - WhitelistChameleon
    # Sunrise-start
    - NudeBottom
    - ArmorBasic
    - Vest
  - type: StaminaResistance
    damageCoefficient: 0.9
  - type: Construction
    graph: UpgradeArmorVest
    node: start
  # Sunrise-end

#Alternate / slim basic armor vest
- type: entity
  parent: ClothingOuterArmorBasic
  id: ClothingOuterArmorBasicSlim
  name: armor vest
  suffix: slim
  description: A slim Type I armored vest that provides decent protection against most types of damage.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/security_slim.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/security_slim.rsi

- type: entity
  parent: [ ClothingOuterArmorPlate, ClothingOuterArmorBase] # Sunrise-Edit
  id: ClothingOuterArmorBulletproof
  name: bulletproof vest
  description: A Type III heavy bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/bulletproof.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/bulletproof.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.9
        Slash: 0.9
        Piercing: 0.4
        Heat: 0.9
  - type: ExplosionResistance
    damageCoefficient: 0.80
  # Sunrise-Start
  - type: Construction
    graph: UpgradeArmorVest
    node: bullet
  # Sunrise-End

- type: entity
  parent: [ClothingOuterArmorBase, ClothingOuterArmorHeatAbsorb] # Sunrise-Edit
  id: ClothingOuterArmorReflective
  name: reflective vest
  description: An armored vest with advanced shielding to protect against energy weapons.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/armor_reflec.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/armor_reflec.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.9
        Slash: 0.9
        Piercing: 0.9
        Heat: 0.4 # this technically means it protects against fires pretty well? -heat is just for lasers and stuff, not atmos temperature
  - type: Reflect
    reflectProb: 0.8
    reflects:
      - Energy
    reflectingInHands: false
  - type: Construction
    graph: UpgradeArmorVest
    node: reflective

#Detective's vest
- type: entity
  parent: [ClothingOuterArmorBase, BaseSecurityContraband]
  id: ClothingOuterVestDetective
  name: detective's vest
  description: A hard-boiled private investigator's armored vest.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Vests/detvest.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Vests/detvest.rsi

- type: entity
  parent: [ ClothingOuterBaseMedium, AllowSuitStorageClothing ]
  id: ClothingOuterArmorBaseCarapace
  abstract: true
  components:
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.5
        Slash: 0.5
        Piercing: 0.6
        Heat: 0.5
        Caustic: 0.9
  - type: ExplosionResistance
    damageCoefficient: 0.65
  - type: GroupExamine
  # Sunrise-start
  - type: BedHealModifierClothing
    multiplier: 0.25
  # Sunrise-end

- type: entity
  parent: [ClothingOuterArmorBaseCarapace, BaseCommandContraband]
  id: ClothingOuterArmorCaptainCarapace
  name: captain's carapace
  description: An armored chestpiece that provides protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi
  - type: Tag
    tags:
    - CorgiWearable
    - WhitelistChameleon
  - type: Pierceable
    level: Metal

- type: entity
  parent: [ClothingOuterArmorBaseCarapace, BaseCentcommContraband]
  id: ClothingOuterArmorCentcommCarapace
  name: centcomm carapace
  description: An armored chestpiece that provides protection whilst still offering maximum mobility and flexibility. Issued only to centcomm officials and agents.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/centcomm_carapace.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/centcomm_carapace.rsi

#Web vest
- type: entity
  parent: [ClothingOuterArmorBase, ClothingOuterStorageBase, BaseSyndicateContraband]
  id: ClothingOuterVestWeb
  name: web vest
  description: A synthetic armor vest. This one has added webbing and ballistic plates.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Vests/webvest.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Vests/webvest.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.6 #ballistic plates = better protection
        Slash: 0.6
        Piercing: 0.3
        Heat: 0.9
  - type: StaticPrice
    price: 1500
  # Sunrise-Start
  - type: StaminaResistance
    damageCoefficient: 0.8
  # Sunrise-End

#Elite web vest
- type: entity
  parent: [ClothingOuterArmorBase, ClothingOuterStorageBase, BaseSyndicateContraband] # Sunrise-Edit
  id: ClothingOuterVestWebElite
  name: elite web vest
  description: A synthetic armor vest. This one has added webbing and heat resistant fibers.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Vests/elitevest.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Vests/elitevest.rsi
  - type: TemperatureProtection
    heatingCoefficient: 0.1
    coolingCoefficient: 0.1
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.5
        Slash: 0.5
        Piercing: 0.7
        Heat: 0.3
        Radiation: 0.5
        Caustic: 0.5
  - type: ExplosionResistance
    damageCoefficient: 0.5
  - type: FireProtection
    reduction: 0.85
  - type: StaticPrice
    price: 2500
  # Sunrise-Start
  - type: StaminaResistance
    damageCoefficient: 0.7
  # Sunrise-End

#Mercenary web vest
- type: entity
  parent: [ BaseMajorContraband, ClothingOuterVestWeb] #web vest so it should have some pockets for ammo
  id: ClothingOuterVestWebMerc
  name: mercenary web vest
  description: A high-quality armored vest made from a hard synthetic material. It's surprisingly flexible and light, despite formidable armor plating.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Vests/mercwebvest.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Vests/mercwebvest.rsi
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.7 #slightly better overall protection but slightly worse than bulletproof armor against bullets seems sensible
        Slash: 0.7
        Piercing: 0.5
        Heat: 0.9


# Armor covering multiple body parts including limbs
- type: entity
  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseSyndicateContraband ]
  id: ClothingOuterArmorRaid
  name: syndicate raid suit
  description: A somewhat flexible and well-armored suit with a powerful shoulder mounted flashlight manufactured in the Gorlex Marauder's iconic blood-red color scheme, it does not protect it's wearer from space.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/syndie-raid.rsi
    layers:
    - state: icon
    - state: light-overlay
      visible: false
      shader: unshaded
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/syndie-raid.rsi
  - type: Pierceable
    level: Rock
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.4
        Slash: 0.4
        Piercing: 0.35
        Heat: 0.35
        Caustic: 0.5
  - type: ExplosionResistance
    damageCoefficient: 0.35
  - type: StaminaResistance # do not add these to other equipment or mobs, we don't want to microbalance these everywhere
    damageCoefficient: 0.45
  - type: ClothingSpeedModifier
    walkModifier: 1 # Sunrise-Edit
    sprintModifier: 1 # Sunrise-Edit
  #Shoulder mounted flashlight
  - type: ToggleableVisuals
    spriteLayer: light
    clothingVisuals:
      outerClothing:
      - state: equipped-OUTERCLOTHING-light
        shader: unshaded
      outerClothing-vox:
      - state: equipped-OUTERCLOTHING-light-vox
        shader: unshaded
  - type: ItemTogglePointLight
  - type: Appearance
  - type: HandheldLight
    addPrefix: false
    blinkingBehaviourId: blinking
    radiatingBehaviourId: radiating
  - type: PointLight
    enabled: false
    color: "#80ff80"
    radius: 5
    energy: 2
    mask: /Textures/Effects/LightMasks/cone.png
    autoRot: true
    netsync: false
  - type: LightBehaviour
    behaviours:
      - !type:FadeBehaviour
        id: radiating
        interpolate: Linear
        maxDuration: 2.0
        startValue: 3.0
        endValue: 2.0
        isLooped: true
        reverseWhenFinished: true
      - !type:PulseBehaviour
        id: blinking
        interpolate: Nearest
        maxDuration: 1.0
        startValue: 0.1
        endValue: 2.0
        isLooped: true
  - type: Battery
    maxCharge: 600
    startingCharge: 600
  - type: BatterySelfRecharger
    autoRechargeRate: 2
  - type: Item
    size: Normal
  # Sunrise-Start
  - type: FireProtection
    reduction: 0.65
  - type: ContainerContainer
    containers:
      beakerSlot: !type:ContainerSlot
  - type: Inject
    openCloseDelay: 1
    autoClose: true
    autoCloseDelay: 6
  - type: ItemSlots
    slots:
      beakerSlot:
        whitelist:
          tags:
          - FitsHardsuit
  - type: Tag
    tags:
    - FullBodyOuter
    - WhitelistChameleon
  # Sunrise-End

- type: entity
  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseSecurityContraband, ClothingOuterArmorStab]
  id: ClothingOuterArmorRiot
  name: riot suit
  description: A suit of semi-flexible polycarbonate body armor with heavy padding to protect against melee attacks. Perfect for fighting delinquents around the station.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/riot.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/riot.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.4
        Slash: 0.4
        Piercing: 0.7
        Heat: 0.9
        Caustic: 0.9
  - type: ExplosionResistance
    damageCoefficient: 0.9
  - type: GroupExamine
  # SUNRISE EDIT
  - type: Tag
    tags:
    - Vest
    - FullBodyOuter
    - WhitelistChameleon
  - type: Construction
    graph: UpgradeArmorVest
    node: riot
  # SUNRISE EDIT

- type: entity
  parent: [ ClothingOuterBaseLarge, BaseMajorContraband, AllowSuitStorageClothing ]
  id: ClothingOuterArmorCult
  name: acolyte armor
  description: An evil-looking piece of cult armor, made of bones.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/cult_armour.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/cult_armour.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.5
        Slash: 0.5
        Piercing: 0.5
        Heat: 0.5
  - type: GroupExamine
  # Sunrise-Start
  - type: Tag
    tags:
    - FullBodyOuter
    - WhitelistChameleon
  # Sunrise-End

- type: entity
  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing]
  id: ClothingOuterArmorHeavy
  name: heavy armor suit
  description: A heavily armored suit that protects against excessive damage.
  components:
  - type: Sprite
    sprite: _Sunrise/Clothing/OuterClothing/Armor/swat_armor.rsi #Sunrise-Edit
  - type: Clothing
    sprite: _Sunrise/Clothing/OuterClothing/Armor/swat_armor.rsi #Sunrise-Edit
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.2
        Slash: 0.2
        Piercing: 0.2
        Heat: 0.5
        Radiation: 0
        Caustic: 0.75
  - type: ExplosionResistance
    damageCoefficient: 0.9
  - type: PressureProtection
    highPressureMultiplier: 0.6
    lowPressureMultiplier: 1000
  - type: TemperatureProtection
    heatingCoefficient: 0.02
    coolingCoefficient: 0.5
  - type: ClothingSpeedModifier
    walkModifier: 0.65
    sprintModifier: 0.65
  - type: GroupExamine
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  # Sunrise-Start
  - type: Tag
    tags:
    - FullBodyOuter
    - WhitelistChameleon
  # Sunrise-End

- type: entity
  parent: ClothingOuterArmorHeavy
  id: ClothingOuterArmorHeavyGreen
  name: green heavy armor suit
  description: A heavily armored suit with green accents that protects against excessive damage.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/heavygreen.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/heavygreen.rsi

- type: entity
  parent: ClothingOuterArmorHeavy
  id: ClothingOuterArmorHeavyRed
  name: red heavy armor suit
  description: A heavily armored suit with red accents that protects against excessive damage.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/heavyred.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/heavyred.rsi

- type: entity
  parent: ClothingOuterArmorHeavy
  id: ClothingOuterArmorMagusblue
  name: blue magus armor
  description: An blue armored suit that provides good protection.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/magusblue.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/magusblue.rsi

- type: entity
  parent: ClothingOuterArmorHeavy
  id: ClothingOuterArmorMagusred
  name: red magus armor
  description: A red armored suit that provides good protection.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/magusred.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/magusred.rsi

- type: entity
  parent: [ ClothingOuterBaseLarge, BaseMajorContraband, AllowSuitStorageClothing ]
  id: ClothingOuterArmorChangeling
  name: chitinous armor
  description: Inflates the changeling's body into an all-consuming chitinous mass of armor.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/lingarmor.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/lingarmor.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.4
        Slash: 0.4
        Piercing: 0.4
        Heat: 0.9
        Radiation: 0.8
  - type: ClothingSpeedModifier
    walkModifier: 0.65
    sprintModifier: 0.65
  - type: HeldSpeedModifier
  - type: ExplosionResistance
    damageCoefficient: 0.5
  - type: GroupExamine
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  # Sunrise-Start
  - type: Tag
    tags:
    - FullBodyOuter
    - WhitelistChameleon
  # Sunrise-End

- type: entity
  parent: [ ClothingOuterBaseLarge, BaseMajorContraband, AllowSuitStorageClothing ]
  id: ClothingOuterArmorBone
  name: bone armor
  description: Sits on you like a second skin.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/bone_armor.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/bone_armor.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.6
        Slash: 0.8
        Piercing: 0.4
  - type: ClothingSpeedModifier
    walkModifier: 0.8
    sprintModifier: 0.8
  - type: HeldSpeedModifier
  - type: ExplosionResistance
    damageCoefficient: 0.4
  - type: GroupExamine
  - type: Construction
    graph: BoneArmor
    node: armor
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  # Sunrise-Start
  - type: Tag
    tags:
    - FullBodyOuter
    - WhitelistChameleon
  # Sunrise-End

- type: entity
  parent: [ ClothingOuterBaseLarge, BaseMajorContraband, AllowSuitStorageClothing ]
  id: ClothingOuterArmorPodWars
  name: ironclad II armor
  description: A repurposed suit of ironclad II armor, a relic of the pod wars.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/podwars_armor.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/podwars_armor.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.5
        Slash: 0.5
        Piercing: 0.6
        Heat: 0.5
  - type: GroupExamine
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  # Sunrise-Start
  - type: Tag
    tags:
    - FullBodyOuter
    - WhitelistChameleon
  # Sunrise-End

- type: entity
  parent: ClothingOuterArmorBase
  id: CardArmour
  name: cardboard armour
  description: A medieval chestpiece built from cardboard.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Armor/card_armour.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Armor/card_armour.rsi
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.9
  - type: Construction
    graph: cardArmour
    node: cardarmour
