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

- type: entity
  id: ShellShotgunBeanbag
  name: shell (.50 beanbag)
  parent: [ BaseShellShotgun, BaseSecurityBartenderContraband ]
  components:
  - type: Tag
    tags:
    - ShellShotgun
    - ShellShotgunLight
    - ShotgunSlug # sunrise-add
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#149A1E"
      - state: spent
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    soundEject:
      collection: ShellEject
    proto: PelletShotgunBeanbagTrace

- type: entity
  id: ShellShotgunSlug
  name: shell (.50 slug)
  parent: [ BaseShellShotgun, BaseSecurityContraband]
  components:
  - type: Sprite
    layers:
      - state: slug
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip-long
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#252525"
      - state: spent-long
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    soundEject:
      collection: ShellEject
    proto: PelletShotgunSlugTrace
    # sunrise-start
  - type: Tag
    tags:
    - ShotgunSlug
    - ShellShotgun
    # sunrise-end

- type: entity
  id: ShellShotgunFlare
  name: shell (.50 flare)
  parent: BaseShellShotgun
  components:
  - type: Tag
    tags:
    - ShellShotgun
    - ShellShotgunLight
    - ShotgunSlug # sunrise-add
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#FFFF0B"
      - state: flare
      - state: spent
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    proto: PelletShotgunFlare
    soundEject:
      collection: ShellEject

- type: entity
  id: ShellShotgun
  name: shell (.50 pellet)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#F4001F"
      - state: spent
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    soundEject:
      collection: ShellEject
    proto: PelletShotgunSpreadTrace

- type: entity
  id: ShellShotgunIncendiary
  name: shell (.50 incendiary)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#FFFF0B"
      - state: incendiary
      - state: spent
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    proto: PelletShotgunIncendiarySpread

- type: entity
  id: ShellShotgunPractice
  name: shell (.50 practice)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip
        map: [ "enum.AmmoVisualLayers.Tip" ]
      - state: practice
      - state: spent
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    soundEject:
      collection: ShellEject
    proto: PelletShotgunPracticeSpreadTrace

- type: entity
  id: ShellTranquilizer
  name: shell (.50 tranquilizer)
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Tag
    tags:
    - ShellShotgun
    - ShellShotgunLight
  - type: Sprite
    layers:
      - state: base
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#49CECE"
      - state: spent
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    proto: PelletShotgunTranquilizer
  - type: ChemicalAmmo
  - type: SolutionContainerManager
    solutions:
      ammo:
        reagents:
        - ReagentId: ChloralHydrate
          Quantity: 9
  - type: SolutionTransfer
    maxTransferAmount: 9

# - 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" ]
#       - state: tip
#         map: [ "enum.AmmoVisualLayers.Tip" ]
#         color: "#555555"
#       - state: spent
#         map: [ "enum.AmmoVisualLayers.Spent" ]
#         visible: false
#   - type: Construction
#     graph: ImprovisedShotgunShellGraph
#     node: shell
#   - type: CartridgeAmmo
#     soundEject:
#       collection: ShellEject
#     proto: PelletShotgunImprovisedSpreadTrace

- type: entity
  id: ShellShotgunUranium
  name: uranium shotgun shell
  parent: [ BaseShellShotgun, BaseSecurityContraband ]
  components:
  - type: Sprite
    layers:
      - state: slug
        map: [ "enum.AmmoVisualLayers.Base" ]
      - state: tip-long
        map: [ "enum.AmmoVisualLayers.Tip" ]
        color: "#252525"
      - state: depleted-uranium
      - state: spent-long
        map: [ "enum.AmmoVisualLayers.Spent" ]
        visible: false
  - type: CartridgeAmmo
    soundEject:
      collection: ShellEject
    proto: PelletShotgunUraniumSpreadTrace
