# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <aviu00@protonmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 LuciferEOS <stepanteliatnik2022@gmail.com>
# SPDX-FileCopyrightText: 2025 LuciferMkshelter <154002422+LuciferEOS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PunishedJoe <PunishedJoeseph@proton.me>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  name: Antelope # Saiga-12 reference (saiga is a genus of antelopes)
  # Don't parent to BaseWeaponShotgun because it differs significantly
  parent: [BaseItem, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponShotgunAntelope
  description: A mag-fed shotgun designed for neutralizing threats and keeping criminals at bay with overwhelming force.
  suffix: DO NOT MAP # This should be made obtainable at some point.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Shotguns/antelope.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    size: Large
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Shotguns/antelope.rsi
    quickEquip: false
    slots:
    - Back
    - suitStorage
  - type: AmmoCounter
  - type: GunRequiresWield #remove when inaccuracy on spreads is fixed
  - type: Gun
    fireRate: 1.4
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/shotgun.ogg
    soundEmpty:
      path: /Audio/Weapons/Guns/Empty/empty.ogg
  - type: ItemSlots
    slots:
      gun_magazine:
        name: Magazine
        startingItem: MagazineShotgun
        priority: 2
        whitelist:
          tags:
          - MagazineShotgun
        whitelistFailPopup: gun-magazine-whitelist-fail
        insertSound: /Audio/Weapons/Guns/MagIn/smg_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg
      gun_chamber:
        name: Chamber
        startingItem: ShellShotgun
        priority: 1
        whitelist:
          tags:
          - ShellShotgun
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
  - type: ChamberMagazineAmmoProvider
  - type: RestrictGunshotsByUserTag # Goobstation
    doesntContain:
    - Oni
    messages:
    - oni-cannot-shoot-guns-1
    - oni-cannot-shoot-guns-2
    - oni-cannot-shoot-guns-3
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance
  - type: StaticPrice
    price: 500

- type: entity
  name: "'Bojevic' combat shotgun"
  parent: [BaseWeaponShotgun, BaseGunWieldable, BaseSyndicateContraband]
  id: WeaponShotgunCombat
  description: An old design with a beefier shell intended to repell boarding parties; this time, you are the boarding party. '8 GUAGE' is stamped on the barrel.
  components:
  - type: Item
    size: Large
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Lever/combatshotgun.rsi
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Lever/combatshotgun.rsi
  - type: GunRequiresWield # remove when inaccuracy on spreads is fixed
  - type: Gun
    fireRate: 1
  - type: Tag
    tags:
    - WeaponShotgunKammerer
  - type: BallisticAmmoProvider # WYCI internal magazine weapon with bolt
    whitelist:
      tags:
      - ShellShotgunHeavy
    capacity: 5
    proto: ShellShotgunHighCaliber
    soundRack:
      path: /Audio/Weapons/Guns/Cock/ltrifle_cock.ogg
    autoCycle: false

- type: entity
  name: NZ CSG-242
  parent: [BaseItem, BaseGunWieldable, BaseSyndicateContraband]
  id: WeaponShotgunHeavy
  description: A 3-round burst magazine-fed heavy shotgun for total extermination. Uses 2 gauge ammunition.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Shotguns/magshot.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: base-unshaded
      map: ["enum.GunVisualLayers.BaseUnshaded"]
      shader: unshaded
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
    - state: mag-unshaded-0
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Item
    size: Huge
    shape:
    - 0,0,4,3
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Shotguns/magshot.rsi
    quickEquip: false
    slots:
    - Back
    - suitStorage
  - type: AmmoCounter
  - type: GunRequiresWield
  - type: Gun
    fireRate: 1.25
    burstFireRate: 10
    shotsPerBurst: 3
    burstCooldown: 1
    lockOnTargetBurst: true
    selectedMode: Burst
    availableModes:
    - Burst
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/shotgun.ogg
    soundEmpty:
      path: /Audio/Weapons/Guns/Empty/empty.ogg
  - type: ItemSlots
    slots:
      gun_magazine:
        name: Magazine
        startingItem: MagazineShotgunHeavy
        priority: 2
        whitelist:
          tags:
          - MagazineShotgunHeavy
        whitelistFailPopup: gun-magazine-whitelist-fail
        insertSound: /Audio/Weapons/Guns/MagIn/smg_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
  - type: MagazineAmmoProvider
  - type: MagazineVisuals
    magState: mag
    steps: 4
    zeroVisible: true
    zeroNoAmmo: true
  - type: Appearance
  - type: StaticPrice
    price: 500
  - type: GunRecoil
    refreshKnockdown: false
