- type: entity
  id: BaseShellShotgun
  name: shell (.50)
  parent: BaseCartridge
  abstract: true
  components:
  - type: Tag
    tags:
    - Cartridge
    - ShellShotgun
  - type: CartridgeAmmo
    soundEject:
      collection: ShellEject
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: Appearance
  - type: SpentAmmoVisuals

- type: entity
  id: ShellShotgunBeanbag
  name: shell (.50 beanbag)
  parent: [ BaseShellShotgun, BaseSecurityBartenderContraband ]
  components:
  - type: Tag
    tags:
    - Cartridge
    - ShellShotgun
    - ShellShotgunLight
  - type: Sprite
    layers:
      - state: beanbag
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunBeanbag
  - type: SpentAmmoVisuals
    state: "beanbag"

- type: entity
  id: ShellShotgunSlug
  name: shell (.50 slug)
  parent: [ BaseShellShotgun, BaseSecurityContraband]
  components:
  - type: Sprite
    layers:
      - state: slug
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunSlug
  - type: SpentAmmoVisuals
    state: "slug"

- type: entity
  id: ShellShotgunFlare
  name: shell (.50 flare)
  parent: BaseShellShotgun
  components:
  - type: Tag
    tags:
    - Cartridge
    - ShellShotgun
    - ShellShotgunLight
  - type: Sprite
    layers:
      - state: flare
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunFlare
  - type: SpentAmmoVisuals
    state: "flare"

- type: entity
  id: ShellShotgun
  name: shell (.50 pellet)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunSpread

- type: entity
  id: ShellShotgunIncendiary
  name: shell (.50 incendiary)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: incendiary
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunIncendiarySpread
  - type: SpentAmmoVisuals
    state: "incendiary"

- type: entity
  id: ShellShotgunPractice
  name: shell (.50 practice)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: practice
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunPracticeSpread
  - type: SpentAmmoVisuals
    state: "practice"

- type: entity
  id: ShellTranquilizer
  name: shell (.50 tranquilizer)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Tag
    tags:
    - Cartridge
    - ShellShotgun
    - ShellShotgunLight
  - type: Sprite
    layers:
      - state: tranquilizer
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: CartridgeAmmo
    proto: PelletShotgunTranquilizer
  - type: ChemicalAmmo
  - type: SolutionContainerManager
    solutions:
      ammo:
        reagents:
        - ReagentId: ChloralHydrate
          Quantity: 7
  - type: SolutionTransfer
    maxTransferAmount: 7
  - type: SpentAmmoVisuals
    state: "tranquilizer"

- type: entity
  id: ShellShotgunImprovised
  name: improvised shotgun shell
  description: A homemade shotgun shell that shoots painful glass shrapnel. The spread is so wide that it couldn't hit the broad side of a barn.
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Tag
    tags:
    - Cartridge
    - ShellShotgun
    - ShellShotgunLight
  - type: Sprite
    layers:
      - state: improvised
        map: [ "enum.AmmoVisualLayers.Base" ]
  - type: Construction
    graph: ImprovisedShotgunShellGraph
    node: shell
  - type: CartridgeAmmo
    proto: PelletShotgunImprovisedSpread
  - type: SpentAmmoVisuals
    state: "improvised"

- type: entity
  id: ShellShotgunUranium
  name: uranium shotgun shell
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
    - type: Sprite
      layers:
        - state: depleted-uranium
          map: [ "enum.AmmoVisualLayers.Base" ]
    - type: CartridgeAmmo
      proto: PelletShotgunUraniumSpread
    - type: SpentAmmoVisuals
      state: "depleted-uranium"
