- type: entity
  id: BorgChassisSelectable
  parent: BaseBorgChassisNT
  components:
  - type: Sprite
    layers:
    - state: robot
      map: ["enum.BorgVisualLayers.Body", "movement"]
    - state: robot_e_r
      map: ["enum.BorgVisualLayers.Light"]
      shader: unshaded
      visible: false
    - state: robot_l
      shader: unshaded
      map: ["light","enum.BorgVisualLayers.LightStatus"]
      visible: false
  - type: BorgChassis
    # Default borg can take no modules until selected type.
    maxModules: 0
    hasMindState: robot_e
    noMindState: robot_e_r
  - type: BorgTransponder
    sprite:
      sprite: Mobs/Silicon/chassis.rsi
      state: robot
    name: cyborg
  - type: InteractionPopup
    interactSuccessString: petting-success-generic-cyborg
    interactFailureString: petting-failure-generic-cyborg
  - type: BorgSwitchableType
    inherentRadioChannels:
    - Common
    - Traffic

- type: entity
  id: BorgChassisGeneric
  parent: BorgChassisSelectable
  name: generic cyborg
  suffix: type picked
  components:
  - type: BorgSwitchableType
    selectedBorgType: generic
  - type: BorgSwitchableSubtype # Goobstation
    borgSubtype: generic_default

- type: entity
  id: BorgChassisMining
  parent: BorgChassisSelectable
  name: salvage cyborg
  components:
  - type: BorgSwitchableType
    selectedBorgType: mining
  - type: BorgSwitchableSubtype # Goobstation
    borgSubtype: mining_default

- type: entity
  id: BorgChassisEngineer
  parent: BorgChassisSelectable
  name: engineer cyborg
  components:
  - type: BorgSwitchableType
    selectedBorgType: engineering
  - type: BorgSwitchableSubtype # Goobstation
    borgSubtype: engineer_default

- type: entity
  id: BorgChassisJanitor
  parent: BorgChassisSelectable
  name: janitor cyborg
  components:
  - type: BorgSwitchableType
    selectedBorgType: janitor
  - type: BorgSwitchableSubtype # Goobstation
    borgSubtype: janitor_default

- type: entity
  id: BorgChassisMedical
  parent: BorgChassisSelectable
  name: medical cyborg
  components:
  - type: BorgSwitchableType
    selectedBorgType: medical
  - type: BorgSwitchableSubtype # Goobstation
    borgSubtype: default_medical

- type: entity
  id: BorgChassisService
  parent: BorgChassisSelectable
  name: service cyborg
  components:
  - type: BorgSwitchableType
    selectedBorgType: service
  - type: BorgSwitchableSubtype # Goobstation
    borgSubtype: default_service

- type: entity
  id: BorgChassisSyndicateAssault
  parent: BaseBorgChassisSyndicate
  name: syndicate assault cyborg
  description: A lean, mean killing machine with access to a variety of deadly modules.
  components:
  - type: Sprite
    layers:
    - state: synd_sec
    - state: synd_sec_e
      map: ["enum.BorgVisualLayers.Light"]
      shader: unshaded
      visible: false
    - state: synd_sec_l
      shader: unshaded
      map: ["light"]
      visible: false
  - type: BorgChassis
    maxModules: 5
    moduleWhitelist:
      tags:
      - BorgModuleGeneric
      - BorgModuleSyndicate
      - BorgModuleSyndicateAssault
    hasMindState: synd_sec_e
    noMindState: synd_sec
  - type: InteractionPopup
    interactSuccessString: petting-success-syndicate-cyborg
    interactFailureString: petting-failure-syndicate-cyborg
    interactSuccessSound:
      path: /Audio/Ambience/Objects/periodic_beep.ogg

- type: entity
  id: BorgChassisSyndicateMedical
  parent: [BaseBorgChassisSyndicate, ShowMedicalIcons]
  name: syndicate medical cyborg
  description: A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities.
  components:
  - type: Sprite
    layers:
    - state: synd_medical
    - state: synd_medical_e
      map: ["enum.BorgVisualLayers.Light"]
      shader: unshaded
      visible: false
    - state: synd_medical_l
      shader: unshaded
      map: ["light"]
      visible: false
  - type: BorgChassis
    maxModules: 5
    moduleWhitelist:
      tags:
      - BorgModuleGeneric
      - BorgModuleMedical
      - BorgModuleSyndicate
    hasMindState: synd_medical_e
    noMindState: synd_medical
  - type: ShowHealthBars
  - type: InteractionPopup
    interactSuccessString: petting-success-syndicate-cyborg
    interactFailureString: petting-failure-syndicate-cyborg
    interactSuccessSound:
      path: /Audio/Ambience/Objects/periodic_beep.ogg
  - type: SolutionScanner
  - type: FootstepModifier
    footstepSoundCollection:
      collection: FootstepHoverBorg
      params:
        volume: -6
  - type: SurgeryTarget
  - type: Sanitized

- type: entity
  id: BorgChassisSyndicateSaboteur
  parent: BaseBorgChassisSyndicate
  name: syndicate saboteur cyborg
  description: A streamlined engineering cyborg, equipped with covert modules. Its chameleon projector lets it disguise itself as a Nanotrasen cyborg.
  components:
  - type: Sprite
    layers:
    - state: synd_engi
    - state: synd_engi_e
      map: ["enum.BorgVisualLayers.Light"]
      shader: unshaded
      visible: false
    - state: synd_engi_l
      shader: unshaded
      map: ["light"]
      visible: false
  - type: BorgChassis
    maxModules: 5
    moduleWhitelist:
      tags:
      - BorgModuleGeneric
      - BorgModuleEngineering
      - BorgModuleSyndicate
    hasMindState: synd_engi_e
    noMindState: synd_engi
  - type: ShowHealthBars
    damageContainers:
    - Inorganic
    - Silicon
  - type: InteractionPopup
    interactSuccessString: petting-success-syndicate-cyborg
    interactFailureString: petting-failure-syndicate-cyborg
    interactSuccessSound:
      path: /Audio/Ambience/Objects/periodic_beep.ogg

- type: entity
  id: BorgChassisDerelict
  parent: BaseBorgChassisDerelict
  name: derelict cyborg
  description: A man-machine hybrid that assists in station activity. This one is in a state of great disrepair.
  components:
  - type: Sprite
    layers:
    - state: derelict
    - state: derelict_e_r
      map: ["enum.BorgVisualLayers.Light"]
      shader: unshaded
      visible: false
    - state: derelict_l
      shader: unshaded
      map: ["light"]
      visible: false
  - type: BorgChassis
    maxModules: 6 # the seventh one broke lol
    moduleWhitelist:
      tags:
      - BorgModuleGeneric
    hasMindState: derelict_e
    noMindState: derelict_e_r
  - type: Construction
    node: derelictcyborg
  - type: InteractionPopup
    interactSuccessString: petting-success-derelict-cyborg
    interactFailureString: petting-failure-derelict-cyborg
    interactSuccessSound:
      path: /Audio/Ambience/Objects/periodic_beep.ogg
