- type: entity
  parent: ClothingOuterBaseLarge
  id: ClothingOuterSuitBomb
  name: bomb suit
  description: A heavy suit designed to withstand the pressure generated by a bomb and any fragments the bomb may produce.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/bombsuit.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/bombsuit.rsi
  - type: ClothingSpeedModifier
    walkModifier: 0.8
    sprintModifier: 0.8
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.9
        Slash: 0.9
        Piercing: 0.9
        Heat: 0.75
  - type: ExplosionResistance
    damageCoefficient: 0.15
  - type: GroupExamine
  - type: Tag
    tags:
    - Hardsuit
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  - type: HideLayerClothing
    slots:
      - Tail
      - RArm  # starcup: hide harpy wings
      - LArm  # starcup: hide harpy wings

- type: entity
  parent: ClothingOuterSuitBomb
  id: ClothingOuterSuitJanitorBomb
  name: janitorial bomb suit
  description: Heavy body armor designed to withstand explosions formed from reactions between chemicals.
  categories: [ DoNotMap ]
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/janitor_bombsuit.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/janitor_bombsuit.rsi

- type: entity
  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing]
  id: ClothingOuterSuitFire
  name: fire suit
  description: A suit that helps protect against hazardous temperatures.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/fire.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/fire.rsi
  - type: PressureProtection
    highPressureMultiplier: 0.04
  - type: TemperatureProtection
    heatingCoefficient: 0.005
    coolingCoefficient: 0.05
  - type: FireProtection
    reduction: 0.65 # doesnt have a full seal so not as good
  - type: Armor
    modifiers:
      coefficients:
        Slash: 0.9
        Heat: 0.8
        Cold: 0.8
  - type: ClothingSpeedModifier
    walkModifier: 0.7
    sprintModifier: 0.7
  - type: HeldSpeedModifier
  - type: GroupExamine
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  - type: HideLayerClothing
    slots:
    - Tail
    - RArm  # starcup: hide harpy wings
    - LArm  # starcup: hide harpy wings

- type: entity
  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing]
  id: ClothingOuterSuitAtmosFire
  name: atmos fire suit
  description: An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/atmos_firesuit.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/atmos_firesuit.rsi
  - type: PressureProtection
    highPressureMultiplier: 0.02
    lowPressureMultiplier: 1000
  - type: TemperatureProtection
    heatingCoefficient: 0.001
    coolingCoefficient: 0.05
  - type: FireProtection
    reduction: 0.8 # atmos firesuit offers best protection, hardsuits are a little vulnerable
  - type: Armor
    modifiers:
      coefficients:
        Slash: 0.9
        Heat: 0.8
        Cold: 0.8
  - type: ClothingSpeedModifier
    walkModifier: 0.8
    sprintModifier: 0.8
  - type: HeldSpeedModifier
  - type: GroupExamine
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  - type: Tag
    tags:
    - CorgiWearable
    - WhitelistChameleon
  - type: HideLayerClothing
    slots:
    - Tail
    - RArm  # starcup: hide harpy wings
    - LArm  # starcup: hide harpy wings

- type: entity
  parent: [ClothingOuterBaseLarge, GeigerCounterClothing, AllowSuitStorageClothing]
  id: ClothingOuterSuitRad
  name: radiation suit
  description: "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'"
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/rad.rsi
  - type: Armor
    modifiers:
      coefficients:
        Heat: 0.90
        Radiation: 0.01
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/rad.rsi
  - type: GroupExamine
  - type: ToggleableClothing
    clothingPrototype: ClothingHeadHatHoodRad
    slot: head
  - type: ContainerContainer
    containers:
      toggleable-clothing: !type:ContainerSlot {}
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  - type: HideLayerClothing
    slots:
    - Tail
    - RArm  # starcup: hide harpy wings
    - LArm  # starcup: hide harpy wings

- type: entity
  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing, BaseHighlyIllegalContraband, BaseExaminableClothing] # starcup: examinable clothing
  id: ClothingOuterSuitSpaceNinja
  name: space ninja suit
  description: This black technologically advanced, cybernetically-enhanced suit provides many abilities like invisibility or teleportation.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/spaceninja.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/spaceninja.rsi
  # hardsuit stuff
  - type: PressureProtection
    highPressureMultiplier: 0.6
    lowPressureMultiplier: 1000
  - type: TemperatureProtection
    heatingCoefficient: 0.01
    coolingCoefficient: 0.01
  - type: Armor
    modifiers:
      coefficients:
        Blunt: 0.8
        Slash: 0.8
        Piercing: 0.8
        Heat: 0.8
  # phase cloak
  - type: ToggleClothing
    action: ActionTogglePhaseCloak
    disableOnUnequip: true
  - type: ComponentToggler
    parent: true
    components:
    - type: Stealth
      minVisibility: 0.1
      lastVisibility: 0.1
  - type: PowerCellDraw
    drawRate: 1.8 # 200 seconds on the default cell
  - type: ToggleCellDraw
  # throwing star ability
  - type: ItemCreator
    action: ActionCreateThrowingStar
    charge: 14.4
    spawnedPrototype: ThrowingStarNinja
    noPowerPopup: ninja-no-power
  # core ninja suit stuff
  - type: NinjaSuit
  - type: EmpResistance
    strengthMultiplier: 0
  - type: UseDelay
    delay: 5 # disable time
  - type: PowerCellSlot
    cellSlotId: cell_slot
    # throwing in a recharger would bypass glove charging mechanic
    fitsInCharger: false
  - type: ContainerContainer
    containers:
      cell_slot: !type:ContainerSlot
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default
        startingItem: PowerCellSmall
        disableEject: true
        whitelist:
          tags:
            - PowerCell
  - type: HideLayerClothing
    slots:
    - Tail
  # begin starcup: examinable clothing
  - type: ExaminableClothing
    examineText: clothing-ninja-suit
  # end starcup

- type: entity
  parent: ClothingOuterBase
  id: ClothingOuterSuitChicken
  name: chicken suit
  description: Bok bok bok!
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/chicken.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/chicken.rsi
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET

- type: entity
  parent: ClothingOuterBase
  id: ClothingOuterSuitShrineMaiden
  name: shrine maiden outfit
  description: Makes you want to go deal with some troublesome youkai.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/shrine-maiden.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/shrine-maiden.rsi

- type: entity
  parent: ClothingOuterBase
  id: ClothingOuterSuitWitchRobes
  name: witch robes
  description: Magic is all about the spell power, ZE!
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/witchrobe.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/witchrobe.rsi

- type: entity
  parent: ClothingOuterBase
  id: ClothingOuterSuitMonkey
  name: monkey suit
  description: A suit that looks like a primate.
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/monkey.rsi
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/monkey.rsi
  - type: ContainerContainer
    containers:
      toggleable-clothing: !type:ContainerSlot {}
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET

- type: entity
  parent: ClothingOuterBase
  id: ClothingOuterSuitIan
  name: ian suit
  description: Who's a good boy?
  components:
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/iansuit.rsi
  - type: Item
    size: Normal
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/iansuit.rsi
  - type: ToggleableClothing
    clothingPrototype: ClothingHeadHatHoodIan
  - type: ContainerContainer
    containers:
      toggleable-clothing: !type:ContainerSlot {}
  - type: Construction
    graph: ClothingOuterSuitIan
    node: suit
  - type: ProtectedFromStepTriggers
    slots: WITHOUT_POCKET
  - type: Tag
    tags:
    - CorgiWearable
    - WhitelistChameleon
  - type: AddAccentClothing
    accent: BarkAccent

- type: entity
  parent: ClothingOuterBase
  id: ClothingOuterSuitCarp
  name: carp suit
  description: A special suit that makes you look just like a space carp, if your eyesight is bad.
  components:
  - type: AllowSuitStorage
  - type: Sprite
    sprite: Clothing/OuterClothing/Suits/carpsuit.rsi
  - type: Item
    size: Normal
  - type: Clothing
    sprite: Clothing/OuterClothing/Suits/carpsuit.rsi
  - type: ToggleableClothing
    clothingPrototype: ClothingHeadHatHoodCarp
  - type: ContainerContainer
    containers:
      toggleable-clothing: !type:ContainerSlot {}
  - type: HideLayerClothing
    slots:
    - Tail

- type: entity
  parent: ClothingOuterSuitCarp
  id: ClothingOuterHardsuitCarp
  suffix: Hardsuit, DO NOT MAP
  categories: [ DoNotMap ]
  components:
  - type: PressureProtection
    highPressureMultiplier: 0.6
    lowPressureMultiplier: 1000
  - type: TemperatureProtection
    heatingCoefficient: 0.01
    coolingCoefficient: 0.01
  - type: ToggleableClothing
    clothingPrototype: ClothingHeadHelmetHardsuitCarp
  - type: StaticPrice
    price: 1500

