# SPDX-FileCopyrightText: 2024 Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 SpaceRox1244 <138547931+SpaceRox1244@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 whateverusername0 <whateveremail>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ps3Moira <113228053+ps3moira@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PunishedJoe <PunishedJoeseph@proton.me>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseItem
  id: BaseAmmoProvider
  abstract: true
  components:
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Item
    size: Normal
  - type: Sprite
    sprite: Objects/Storage/boxes.rsi

- type: entity
  parent: BaseAmmoProvider
  id: AmmoProviderShotgunShell
  abstract: true
  components:
    # Goobstation edit start
    - type: EmitSoundOnPickup
      sound:
        path: /Audio/_Goobstation/Items/handling/ammobox_pickup.ogg
    - type: EmitSoundOnDrop
      sound:
        path: /Audio/_Goobstation/Items/handling/ammobox_drop.ogg
    - type: EmitSoundOnLand
      sound:
        path: /Audio/_Goobstation/Items/handling/ammobox_drop.ogg
    # Goobstation edit end
    - type: Sprite
      sprite: Objects/Weapons/Guns/Ammunition/Boxes/shotgun.rsi
    - type: BallisticAmmoProvider
      mayTransfer: true
      whitelist:
        tags:
        - ShellShotgun
      capacity: 16
    - type: MagazineVisuals
      magState: mag
      steps: 5
      zeroVisible: false
    - type: Appearance

# Shotgun Shells
- type: entity
  parent: AmmoProviderShotgunShell
  id: BoxBeanbag
  name: ammunition box (12 Gauge beanbag) # Goob edit
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgunBeanbag
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: beanbag

- type: entity
  name: ammunition box (12 Gauge pellet) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxLethalshot
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgun
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: lethal

- type: entity
  name: ammunition box (12 Gauge slug) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxShotgunSlug
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgunSlug
    - type: MagazineVisuals
      magState: mag-alt
      steps: 5
      zeroVisible: false
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-alt-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: slug

- type: entity
  name: ammunition box (12 Gauge flare) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxShotgunFlare
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgunFlare
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: flare

- type: entity
  name: ammunition box (12 Gauge incendiary) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxShotgunIncendiary
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgunIncendiary
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: incendiary

- type: entity
  name: ammunition box (12 Gauge uranium) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxShotgunUranium
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgunUranium
    - type: MagazineVisuals
      magState: mag-alt
      steps: 5
      zeroVisible: false
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-alt-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: uranium

- type: entity
  name: ammunition box (12 Gauge practice) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxShotgunPractice
  components:
    - type: BallisticAmmoProvider
      proto: ShellShotgunPractice
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: practice

- type: entity
  name: ammunition box (12 Gauge tranquilizer) # Goob edit
  parent: AmmoProviderShotgunShell
  id: BoxShellTranquilizer
  components:
    - type: BallisticAmmoProvider
      proto: ShellTranquilizer
    - type: Sprite
      layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-1
        map: ["enum.GunVisualLayers.Mag"]
      - state: tranquilizer
