- type: entity
  parent: [ClothingOuterArmorBase, BaseBlueShieldContraband]
  id: ClothingOuterArmorBlueShield
  name: blue shield bulletproof vest
  description: Much better than a standard Type 1 security vest. Try not to lose it, you won't get a second replacement.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/blueshield.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/blueshield.rsi
    - type: Pierceable
      level: Metal
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.6
          Slash: 0.6
          Piercing: 0.6
          Heat: 0.7
    - type: ExplosionResistance
      damageCoefficient: 0.80
    - type: Item
      size: Normal
    - type: Tag
      tags:
      - CorgiWearable
      - WhitelistChameleon

- type: entity
  parent: [BaseMajorContraband, ClothingOuterArmorBasic]
  id: ClothingOuterArmorAbductor
  name: agent vest
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/abductor.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/abductor.rsi
      equippedPrefix: stealth
    - type: Item
      size: Normal
    - type: AbductorVest
    - type: ItemSwitch
      state: stealth
      states:
        Stealth: !type:ItemSwitchState
          verb: Stealth
          hiden: true
          sprite:
            sprite: _Starlight/Clothing/OuterClothing/Armor/abductor.rsi
            state: icon
          components:
            - type: Pierceable
              level: Metal
            - type: Armor
              modifiers:
                coefficients:
                  Blunt: 0.85
                  Slash: 0.85
                  Heat: 0.85
                  Piercing: 0.85
                  Radiation: 0.85
                  Caustic: 0.25
              staminaModifier: 0.85
            - type: ExplosionResistance
              damageCoefficient: 0.85

        Combat: !type:ItemSwitchState
          verb: Combat
          hiden: true
          sprite:
            sprite: _Starlight/Clothing/OuterClothing/Armor/abductor.rsi
            state: combat-icon
          components:
            - type: Pierceable
              level: Metal
            - type: Armor
              modifiers:
                coefficients:
                  Blunt: 0.5
                  Slash: 0.5
                  Heat: 0.5
                  Piercing: 0.5
                  Radiation: 0.5
                  Caustic: 0.1
              staminaModifier: 0.5
            - type: ExplosionResistance
              damageCoefficient: 0.5

- type: entity
  parent: ClothingOuterBaseLarge
  id: ChangelingClothingOuterArmor
  name: chitinous armor
  description: An all-consuming chitinous mass of armor.
  suffix: Unremoveable
  components:
  - type: Sprite
    sprite: Changeling/ling_armor.rsi
  - type: Clothing
    sprite: Changeling/ling_armor.rsi
  - type: Pierceable
    level: Metal
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.5
        Slash: 0.5
        Piercing: 0.5
        Heat: 0.5
        Radiation: 0.5
        Caustic: 0.5
    staminaModifier: 0.25
  - type: ClothingSpeedModifier
    walkModifier: 0.8
    sprintModifier: 0.75
  - type: HeldSpeedModifier
  - type: ExplosionResistance
    damageCoefficient: 0.5
  - type: GroupExamine
  - type: Unremoveable


- type: entity
  parent: [ClothingOuterArmorBase, BaseSecurityContraband]
  id: ClothingOuterArmorPlate
  name: plate carrier
  description: A standard Type II armored vest that provides good protection against bullets and lasers with the help of a plate inserted in the back and front, but not much else.
  components:
    - type: Pierceable
      level: Metal
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/platecarrier.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/platecarrier.rsi
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.85
          Slash: 0.85
          Piercing: 0.55
          Heat: 0.85
    - type: ExplosionResistance
      damageCoefficient: 0.85

- type: entity
  parent: [ClothingOuterArmorBase, BaseSecurityContraband]
  id: ClothingOuterArmorStab
  name: stabproof vest
  description: Contrary to it's name, it's just a Type II armored vest that provides good protection against stabs and punches, but not much else.
  components:
    - type: Pierceable
      level: Metal
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/stabvest.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/stabvest.rsi
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.55
          Slash: 0.55
          Piercing: 0.85
          Heat: 0.85
    - type: Tag
      tags:
      - CorgiWearable
      - WhitelistChameleon

- type: entity
  parent: [ClothingOuterArmorBase, BaseSecurityContraband]
  id: ClothingOuterArmorHeatAbsorb
  name: heat absorbent vest
  description: Advanced vest designed to absorb heat rather than reflect it, but still has some reflective properties itself. Not good against bullets or blunt impacts due to the fragile material.
  components:
    - type: Pierceable
      level: Metal
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/heatabsorbent.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/heatabsorbent.rsi
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.85
          Slash: 0.85
          Piercing: 0.85
          Heat: 0.55

- type: entity
  parent: [ClothingOuterArmorForged, BaseMinorContraband]
  id: ClothingOuterArmorMakeshift
  name: makeshift vest
  description: Might catch a bullet. Might.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/makeshift.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/makeshift.rsi
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.90
          Slash: 0.80
          Piercing: 0.90
          Heat: 0.95
    - type: ClothingSpeedModifier
      walkModifier: 0.90
      sprintModifier: 0.90
    - type: ExplosionResistance
      damageCoefficient: 0.95
    - type: Construction
      graph: ClothingOuterArmorMakeshiftGraph
      node: vest

- type: entity
  parent: [ClothingOuterArmorForged, BaseMinorContraband]
  id: ClothingOuterArmorImprovised
  name: improvised vest
  description: Interlocking metal plates ensure you're decently protected against stabs, but not much else.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/improvised.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/improvised.rsi
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.85
          Slash: 0.70
          Piercing: 0.85
          Heat: 0.90
    - type: ClothingSpeedModifier
      walkModifier: 0.95
      sprintModifier: 0.95
    - type: ExplosionResistance
      damageCoefficient: 0.95

- type: entity
  parent: [
      ClothingOuterBaseMedium,
      AllowSuitStorageClothing,
      BaseMinorContraband,
    ] #BaseSecurityContraband overwrites BaseMinorContraband, annoyingly enough.
  id: ClothingOuterArmorForged
  name: forged vest
  description: A product of high-quality tidesmithing, the additional leather padding and the swap for plasteel over steel ensures the armor is lightweight and effective.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/forged.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/forged.rsi
    - type: Pierceable
      level: Metal
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.75
          Slash: 0.65
          Piercing: 0.70
          Heat: 0.85
    - type: ExplosionResistance
      damageCoefficient: 0.90

- type: entity
  parent:
    [ClothingOuterBaseMedium, AllowSuitStorageClothing, BaseMajorContraband]
  id: ClothingOuterArmorPaladin
  name: paladin suit
  description: Be the paladin you want to be! Swing swords in maints at the terrified security officer! Battle MONSTERS that are totally not vent creatures! Get shot by lasers and die-! Wait what?
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/paladin.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/paladin.rsi
    - type: Pierceable
      level: Metal
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.70
          Slash: 0.50
          Piercing: 0.55
          Heat: 0.85
    - type: ClothingSpeedModifier
      walkModifier: 0.85
      sprintModifier: 0.85
    - type: ExplosionResistance
      damageCoefficient: 0.85

- type: entity
  parent:
    [BaseCentcommContraband, ClothingOuterVestWeb]
  id: ClothingOuterVestWebEliteCentcomm
  name: central command web vest
  description: A synthetic armor vest redesignated for use by the Corporate Consortium, webbing and heat resistant fibers included.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Vests/cc_webvest.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Vests/cc_webvest.rsi
    - type: TemperatureProtection
      heatingCoefficient: 0.1
      coolingCoefficient: 0.1
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.5
          Slash: 0.5
          Piercing: 0.7
          Heat: 0.3
          Radiation: 0.5
          Caustic: 0.5
      staminaModifier: 0.35
    - type: ExplosionResistance
      damageCoefficient: 0.5
    - type: FireProtection
      reduction: 0.85

- type: entity
  parent: [BaseSalvageContraband, ClothingOuterVestWeb] #web vest so it should have some pockets for ammo
  id: ClothingOuterVestWebSalvageMerc
  name: scrapper web vest
  description: A versatile armored vest, popular among salvagers for its protective yet lightweight design.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Vests/salvagevest.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Vests/salvagevest.rsi
    - type: Pierceable
      level: Metal
    - 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.6
          Heat: 0.9
      staminaModifier: 0.85
    - type: ExplosionResistance
      damageCoefficient: 0.9

- type: entity
  parent: [BaseGrandTheftContraband, ClothingOuterArmorBase]
  id: ClothingOuterReactiveArmourShell
  name: reactive armour shell
  description: An experimental suit of armour, awaiting installation of an anomaly core.
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/reactive.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/reactive.rsi
      equippedPrefix: inactive
    - type: ContainerContainer
      containers:
        core_slot: !type:ContainerSlot {}
    - type: ItemSlots
      slots:
        core_slot:
          name: anomaly-core-slot-component-slot-name-default
          whitelist:
            tags:
              - ForceableFollow
    - type: ItemSwitch
      state: inactive
      states:
        inactive: !type:ItemSwitchState
          verb: Inactive
          hiden: true
          sprite:
            sprite: _Starlight/Clothing/OuterClothing/Armor/reactive.rsi
            state: icon
        active: !type:ItemSwitchState
          verb: Active
          hiden: true
          sprite:
            sprite: _Starlight/Clothing/OuterClothing/Armor/reactive.rsi
            state: active-icon

- type: entity
  parent: ClothingOuterReactiveArmourShell
  id: ClothingOuterReactiveArmourShellRandom
  suffix: Random Core

- type: entity
  parent: [ClothingOuterBaseMedium, BaseSovietContraband, AllowSuitStorageClothing ] #"ClothingOuterArmorBase" is stupid and overrides any contraband level.
  id: ClothingOuterArmorSovietPlate
  name: soviet armor vest
  description: An old Soviet-era flak vest designed to mitigate damage from explosives, with minor penetration resistance. However, it's just a cheap reproduction model. quality may vary.
  components:
  - type: Pierceable
    level: Metal
  - type: Sprite
    sprite: _Starlight/Clothing/OuterClothing/Armor/sovietflak.rsi
  - type: Clothing
    sprite: _Starlight/Clothing/OuterClothing/Armor/sovietflak.rsi
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.85
        Slash: 0.85
        Piercing: 0.60
        Heat: 0.60
        Radiation: 0.9
  - type: ExplosionResistance
    damageCoefficient: 0.65
  - type: ClothingSpeedModifier
    sprintModifier: 0.85

- type: entity
  parent: [ClothingOuterStorageBase, AllowSuitStorageClothing, BaseTSFContraband]
  id: ClothingOuterVestRetroOfficer
  name: TSF officer's duty vest
  description: A tactical vest from the Trans Solar Federation. Provides basic protection and some storage for patrol duty.
  components:
  - type: Sprite
    sprite: _Starlight/Clothing/OuterClothing/Vests/retro_officer_vest.rsi
  - type: Clothing
    sprite: _Starlight/Clothing/OuterClothing/Vests/retro_officer_vest.rsi
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.65
        Slash: 0.65
        Piercing: 0.65
        Heat: 0.75
    staminaModifier: 0.85
  - type: ExplosionResistance
    damageCoefficient: 0.85

- type: entity
  parent: ClothingOuterVestRetroOfficer
  id: ClothingOuterVestRetroOfficerHiVis
  name: TSF officer's hi-vis vest
  description: A high-visibility tactical vest from the Trans Solar Federation. Essential for traffic control and maintaining visibility in dangerous situations.
  components:
  - type: Sprite
    sprite: _Starlight/Clothing/OuterClothing/Vests/retro_officer_hivis_vest.rsi
  - type: Clothing
    sprite: _Starlight/Clothing/OuterClothing/Vests/retro_officer_hivis_vest.rsi

# Greenshield Officer
- type: entity
  parent: [ BaseCentcommContraband, ClothingOuterArmorRaid, ClothingOuterStorageBase ]
  categories: [ DoNotMap ]
  id: ClothingOuterVestGreenshield
  name: greenshield vest
  description: A protective vest worn by Greenshields. It even has pockets and a flashlight!
  components:
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Vests/greenshield_vest.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Vests/greenshield_vest.rsi
    - type: Tag
      tags: []
    - type: ClothingSpeedModifier
      walkModifier: 1 #Got to be able to keep up with the nice walk of the officials
    - type: Storage
      grid:
        - 0,0,2,1
    - type: ContainerContainer
      containers:
        storagebase: !type:Container

# Reporter armor vest
- type: entity
  parent: [BaseReporterContraband, ClothingOuterArmorBase]
  id: ClothingOuterPressArmor
  name: press armor
  description: It has 'PRESS' written on it in white. It will help you stay alive while sniffing out ledes!
  components:
    - type: Item
      size: Large
      shape:
      - 0, 0, 1, 1
    - type: Pierceable
      level: Metal
    - type: Sprite
      sprite: _Starlight/Clothing/OuterClothing/Armor/reportersuit.rsi
    - type: Clothing
      sprite: _Starlight/Clothing/OuterClothing/Armor/reportersuit.rsi
    - type: Armor
      modifiers:
        coefficients:
          Blunt: 0.65
          Slash: 0.65
          Piercing: 0.60
          Heat: 0.80
    - type: ExplosionResistance
      damageCoefficient: 0.85
