- type: entity
  name: riot shotgun
  parent: [BaseWeaponShotgunAny, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponShotgunRiot
  description: A sturdy shotgun with a longer magazine and a fixed tactical grip designed for non-lethal riot control.
  components:
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/riot_inhands_64x.rsi
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/riot.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Gun
    spread: 35
    fireRate: .7
    selectedMode: FullAuto
    availableModes:
    - FullAuto
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/riot.rsi
  - type: GunRequiresWield
# - type: Construction
#   graph: ShotgunRiotSawn
#   node: start
#   deconstructionTarget: null
  - 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
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
      firing_pin: !type:Container # starlight
  - type: ChamberMagazineAmmoProvider
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance

- type: entity
  name: sawn-off riot shotgun
  parent: [BaseWeaponShotgun, BaseSecurityContraband]
  id: WeaponShotgunRiotSawn
  description: Come with me if you want to live.
  components:
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/riot_sawn.rsi
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/riot_sawn.rsi
  - type: Item
    size: Small
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/riot_sawn_inhands_64x.rsi
  - type: Gun
    spread: 30
    pump: true
  - type: BallisticAmmoProvider
    capacity: 4
# - type: Construction
#   graph: ShotgunRiotSawn
#   node: shotgunsawn
#   deconstructionTarget: null

- type: entity
  parent: [WeaponShotgunRiotSawn, BaseSecurityContraband]
  id: WeaponShotgunRiotSawnEmpty
  suffix: Empty
  components:
  - type: BallisticAmmoProvider
    proto: null
# - type: Construction
#   graph: ShotgunRiotSawn
#   node: shotgunsawn
#   deconstructionTarget: null


- type: entity
  name: combat shotgun
  parent: [BaseWeaponShotgun, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponShotgunCombat
  description: A semi automatic shotgun with tactical furniture and a seven-shell capacity underneath.
  components:
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/cshotgun_inhands_64x.rsi
  - type: Gun
    spread: 20
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/cshotgun.rsi
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/cshotgun.rsi
  - type: GunRequiresWield
  - type: BallisticAmmoProvider
    capacity: 7

- type: entity
  name: cycler shotgun
  parent: [BaseWeaponShotgunAny, BaseGunWieldable, BaseSecuritySalvageContraband]
  id: WeaponShotgunCycler
  description: An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types.
  components:
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/cycler.rsi
  - type: Gun
    spread: 20
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/cycler.rsi
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/cycler.rsi
  - type: GunRequiresWield
  - type: BallisticAmmoProvider
    capacity: 7
  - type: RevolverAmmoProvider
    whitelist:
      tags:
      - ShellShotgun
      - SpeedLoaderShotgun
    proto: ShellShotgun
    capacity: 7
    chambers: [ True, True, True, True, True, True, True, ]
    ammoSlots: [ null, null, null, null, null, null, null, ]
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
      revolver-ammo: !type:Container
      firing_pin: !type:Container

- type: entity
  name: Tkach Ya-Sui GA 12 revolver
  parent: [BaseWeaponShotgunAny, BaseSecuritySalvageContraband]
  id: WeaponShotgunGA12
  description: An outdated sidearm rarely seen in use by certain PMCs that operate throughout the frontier systems, featuring a three-shell cylinder. Thats right, shell, this one shoots twelve gauge.
  components:
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/ga12.rsi
    size: Small
    shape:
    - 0,0,1,0
    - 0,1,0,1
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/ga12.rsi
    quickEquip: false
    slots:
    - suitStorage
    - Belt
  - type: Tag
    tags:
    - Sidearm
  - type: Gun
    spread: 30
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/ga12.rsi
  - type: GunRequiresWield
  - type: BallisticAmmoProvider
    capacity: 3
  - type: RevolverAmmoProvider
    whitelist:
      tags:
      - ShellShotgun
      - SpeedLoaderShotgun
    proto: ShellShotgun
    capacity: 3
    chambers: [ True, True, True ]
    ammoSlots: [ null, null, null ]
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
      revolver-ammo: !type:Container
      firing_pin: !type:Container

- type: entity
  name: "Tkach GA-6 'Fang'"
  parent: [BaseWeaponShotgunAny, BaseSecuritySalvageContraband]
  id: WeaponRevolverGA6Fang
  description: A heavier follow-up to the GA 12 line, featuring a six-shell cylinder and a hook spike for when shells run dry. Rare, and unpleasant to be on the wrong end of.
  components:
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/piratehandshotgun.rsi
    size: Small
    shape:
    - 0,0,1,0
    - 0,1,0,1
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/ga12.rsi
    quickEquip: false
    slots:
    - suitStorage
    - Belt
  - type: Tag
    tags:
    - Sidearm
  - type: Gun
    spread: 30
    fireRate: 1
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/piratehandshotgun.rsi
    layers:
    - state: icon
      map: ["enum.GunVisualLayers.Base"]
  - type: GunRequiresWield
  - type: BallisticAmmoProvider
    capacity: 6
  - type: RevolverAmmoProvider
    whitelist:
      tags:
      - ShellShotgun
      - SpeedLoaderShotgun
    proto: ShellShotgunBirdshot
    capacity: 6
    chambers: [ True, True, True, True, True, True ]
    ammoSlots: [ null, null, null, null, null, null ]
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg
  - type: MeleeWeapon
    wideAnimationRotation: -135
    damage:
      types:
        Piercing: 15
    angle: 0
    animation: WeaponArcThrust
    soundHit:
      path: /Audio/Weapons/bladeslice.ogg
  - type: MeleeRequiresWield
  - type: AltFireMelee
    attackType: Heavy
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
      revolver-ammo: !type:Container
      firing_pin: !type:Container

- type: entity
  name: "AS-12 'Minotaur' Shotgun"
  parent: [BaseWeaponShotgunAny, BaseGunWieldable, BaseSyndicateContraband]
  id: WeaponShotgunMinotaur
  description: Smooth, powerful, highly illegal. The newest full auto shotgun available at the market, utilizes standard 12g drum mags. Property of Gorlex Marauders.
  components:
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/minotaur.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/minotaur.rsi
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/minotaur.rsi
  - type: GunRequiresWield
  - type: Gun
    spread: 20
    fireRate: 2
    burstFireRate: 4
    burstCooldown: 1
    selectedMode: Burst
    shotsPerBurst: 3
    availableModes:
    - Burst
    - SemiAuto
    soundGunshot:
      path: /Audio/_Starlight/Weapons/Guns/Gunshots/minotaur.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
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
      firing_pin: !type:Container
  - type: ChamberMagazineAmmoProvider
    autoEject: true
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance

- type: entity
  name: forged double-barrel shotgun
  parent: [BaseWeaponShotgun, BaseGunWieldable, BaseMinorContraband]
  id: WeaponShotgunForged
  description: Decently made double-barrel shotgun, reinforced with mixed steel and plasteel plates to keep it together. Not as accurate as a real gun.
  components:
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun_inhands_64x.rsi
    size: Normal
    shape:
    - 0,0,4,0
  - type: Gun
    spread: 15
    fireRate: 3
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun.rsi
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/forged_shotgun.rsi
  - type: GunRequiresWield
  - type: BallisticAmmoProvider
    capacity: 2
    proto: null

- type: entity
  name: makeshift shotgun
  parent: [WeaponFlareGunSecurity, BaseMinorContraband]
  id: WeaponShotgunMakeshift
  description: A small hand-cannon that fires 12 gauge shotgun shells. Has no cloth to hold it together, so it has a high chance of falling apart with every shot.
  components:
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/makeshift_shotgun.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
  - type: Item
    size: Small
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/makeshift_shotgun.rsi
  - type: Construction
    graph: MakeshiftShotgunGraph
    node: shotgun
  - type: WeaponDismantleOnShoot
    dismantleChance: 0.50
    selfDamage:
      types:
        Blunt: 5
        Heat: 5
    items:
      - id: ModularBarrel
        launchAngle: 0
        prob: 1
      - id: ModularReceiver
        launchAngle: 90
        prob: 0.10
      - id: RifleStock
        launchAngle: 180
        prob: 0.80
  - type: ContainerContainer
    containers:
      gun_chamber: !type:ContainerSlot
      firing_pin: !type:Container
  - type: ContainerFill
    containers:
      firing_pin:
      - FiringPinMakeshift
  - type: FiringPinHolder
    supportedPins: [ Makeshift, GunUpgrade ]

# it's the TOZ!
- type: entity
  name: ZOZ-106
  parent: [BaseWeaponShotgunAny, BaseGunWieldable, BaseSovietContraband]
  id: WeaponShotgunToz106
  description: A cheap Soviet shotgun that received an indifferent welcome from hunters. Aim at the head and eyes for best results. Uses less-powerful 20 gauge shotgun shells.
  components:
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/toz.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/toz.rsi
  - type: GunRequiresWield
  - type: Gun
    spread: 10
    pump: true
    fireRate: 1
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/toz.rsi
    size: Normal
    shape:
    - 0,0,3,0
  - type: BallisticAmmoProvider
    whitelist:
      tags:
      - ShellShotgunToz
    capacity: 2
    proto: ShellShotgunToz
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
      firing_pin: !type:Container
  - type: ContainerFill
    containers:
      firing_pin:
      - FiringPinMakeshift
  - type: FiringPinHolder
    supportedPins: [ Makeshift, GunUpgrade ]
  - type: Appearance
  - type: StaticPrice
    price: 400

# TOZ with extended mag:
- type: entity
  parent: WeaponShotgunToz106
  id: WeaponShotgunToz106Extended
  description: A cheap Soviet shotgun that received an indifferent welcome from hunters. Aim at the head and eyes for best results. Uses less-powerful 20 gauge shotgun shells. Extended magazine version.
  suffix: extended mag
  components:
  - type: BallisticAmmoProvider
    whitelist:
      tags:
      - ShellShotgunToz
    capacity: 5
    proto: ShellShotgunToz
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg

# fully shitposted TOZ with no mag restrictions!
- type: entity
  name: TOZ-106
  parent: [BaseWeaponShotgunAny, BaseGunWieldable, BaseSovietContraband]
  id: WeaponShotgunToz106Shitpost
  description: Piotr said his custom ZOZ-106 could accept ANY magazine. No one believed him until it was too late.
  suffix: Admeme, DO NOT MAP
  components:
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/toz.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/toz.rsi
  - type: GunRequiresWield
  - type: Gun
    spread: 10
    pump: true
    fireRate: 1
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
  - type: Item
    sprite: _Starlight/Objects/Weapons/Guns/Shotguns/toz.rsi
    size: Normal
    shape:
    - 0,0,3,0
  - type: ItemSlots
    slots:
      gun_magazine:
        startingItem: MagazineShotgunTozExtended
  - type: ChamberMagazineAmmoProvider
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
      firing_pin: !type:Container
  - type: ContainerFill
    containers:
      firing_pin:
      - FiringPinMakeshift
  - type: FiringPinHolder
    supportedPins: [ Makeshift, GunUpgrade ]
  - type: Appearance
  - type: StaticPrice
    price: 1

- type: entity
  parent: BaseWeaponShotgunAny
  id: BaseWeaponShotgun
  abstract: true
  components:
  - type: BallisticAmmoProvider
    whitelist:
      tags:
      - ShellShotgun
    capacity: 7
    proto: ShellShotgun
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg
