- type: entity
  id: BaseMagazinePistol
  name: pistol magazine (.35 auto)
  parent: [ BaseItem, BaseSecurityContraband ]
  abstract: true
  components:
  - type: Tag
    tags:
      - MagazinePistol
  - type: BallisticAmmoProvider
    mayTransfer: true
    whitelist:
      tags:
        - CartridgePistol
    capacity: 10
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag
    size: Small
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance

- type: entity
  id: BaseMagazinePistolHighCapacity
  name: machine pistol magazine (.35 auto)
  parent: BaseItem
  abstract: true
  components:
  - type: Tag
    tags:
      - MagazinePistolHighCapacitySP
  - type: BallisticAmmoProvider
    mayTransfer: true
    whitelist:
      tags:
        - CartridgePistol
    capacity: 16
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag
    size: Small
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_high_capacity_mag.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance

- type: entity
  id: BaseMagazinePistolSubMachineGun  # Yeah it's weird but it's pistol caliber
  name: SMG magazine (.35 auto)
  parent: [ BaseItem, BaseSecurityContraband ]
  abstract: true
  components:
  - type: Tag
    tags:
      - MagazinePistolSubMachineGunSP
  - type: BallisticAmmoProvider
    mayTransfer: true
    whitelist:
      tags:
        - CartridgePistol
    capacity: 30
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag
    size: Small
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/Magazine/Pistol/smg_mag.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance

- type: entity
  id: MagazinePistolSubMachineGunTopMounted
  name: WT550 magazine (.35 auto top-mounted)
  parent: [ BaseItem, BaseSecurityContraband ]
  description: Unconventional 30-round top feeding magazine for the WT550 SMG. Intended to hold general-purpose kinetic ammunition.
  components:
  - type: Tag
    tags:
      - MagazinePistolSubMachineGunTopMounted
  - type: BallisticAmmoProvider
    mayTransfer: true
    proto: CartridgePistolSP # Starlight
    whitelist:
      tags:
      - CartridgePistol
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/Magazine/Pistol/smg_mag_top_mounted.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-unshaded-1
        map: ["enum.GunVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container

- type: entity
  id: MagazinePistolSubMachineGunTopMountedEmpty
  name: WT550 magazine (.35 auto top-mounted any)
  parent: MagazinePistolSubMachineGunTopMounted
  description: Unconventional 30-round top feeding magazine for the WT550 SMG.
  components:
  - type: BallisticAmmoProvider
    proto: null

#########################################################

- type: entity
  id: MagazinePistolEmpty
  name: pistol magazine (.35 auto any)
  suffix: empty
  parent: MagazinePistolSP
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag

- type: entity
  id: MagazinePistolSP
  name: pistol magazine (.35 auto SP)
  parent: BaseMagazinePistol
  description: 10-round single-stack magazine for pistols. Intended to hold general-purpose kinetic ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolSP
  - type: Sprite
    layers:
    - state: sp
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#575EF5"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#575EF5"

- type: entity
  id: MagazinePistolHP
  name: pistol magazine (.35 auto HP)
  parent: BaseMagazinePistol
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolHP
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F5514C"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F5514C"

- type: entity
  id: MagazinePistolFMJ
  name: pistol magazine (.35 auto FMJ)
  parent: BaseMagazinePistol
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolFMJ
  - type: Sprite
    layers:
    - state: fmj
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#080706"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#080706"

- type: entity
  id: MagazinePistolAP
  name: pistol magazine (.35 auto AP)
  parent: BaseMagazinePistol
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolAP
  - type: Sprite
    layers:
    - state: ap
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#72E374"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#72E374"

- type: entity
  id: MagazinePistolIncendiary
  name: pistol magazine (.35 auto incendiary)
  parent: MagazinePistolSP
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolIncendiary
  - type: Sprite
    layers:
    - state: incendiary
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#E7EEEE"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#E7EEEE"

- type: entity
  id: MagazinePistolPractice
  name: pistol magazine (.35 auto practice)
  parent: BaseMagazinePistol
  description: 10-round single-stack magazine for pistols. Intended to hold non-harmful chalk ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolPractice
  - type: Sprite
    layers:
    - state: practice
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F08B4B"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F08B4B"

- type: entity
  id: MagazinePistolUranium
  name: pistol magazine (.35 auto uranium)
  parent: BaseMagazinePistol
  description: 10-round single-stack magazine for pistols. Intended to hold exotic uranium-core ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolUranium
  - type: Sprite
    layers:
    - state: uranium
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#40F57A"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#40F57A"

- type: entity
  id: MagazinePistolRubber
  name: pistol magazine (.35 auto rubber)
  parent: BaseMagazinePistol
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolRubber
  - type: Sprite
    layers:
    - state: rubber
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#28E7DC"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#28E7DC"

- type: entity
  id: MagazinePistolImprovised
  name: "Improvised Pistol Magazine (.35)"
  parent: [ BaseItem, BaseMinorContraband ]
  components:
  - type: Tag
    tags:
      - MagazinePistol
      - MagazinePistolImprovised
  - type: BallisticAmmoProvider
    proto: null
    mayTransfer: true
    whitelist:
      tags:
        - CartridgePistol
        - CartridgePistolImprovised
    capacity: 6
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag
    size: Tiny
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/improvised_pistol_magazine.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 6
    zeroVisible: false
  - type: Appearance
  - type: Construction
    graph: ImprovisedPistolMagazineGraph
    node: shell

##########################################################

- type: entity
  id: MagazinePistolHighCapacityEmpty
  name: machine pistol magazine (.35 auto any)
  suffix: empty
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag

- type: entity
  id: MagazinePistolHighCapacitySP
  name: machine pistol magazine (.35 auto SP)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolSP
  - type: Sprite
    layers:
    - state: sp
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#575EF5"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#575EF5"

- type: entity
  id: MagazinePistolHighCapacityHP
  name: machine pistol magazine (.35 auto HP)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolHP
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F5514C"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F5514C"

- type: entity
  id: MagazinePistolHighCapacityFMJ
  name: machine pistol magazine (.35 auto FMJ)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolFMJ
  - type: Sprite
    layers:
    - state: fmj
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#080706"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#080706"

- type: entity
  id: MagazinePistolHighCapacityAP
  name: machine pistol magazine (.35 auto AP)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolAP
  - type: Sprite
    layers:
    - state: ap
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#72E374"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#72E374"

- type: entity
  id: MagazinePistolHighCapacityPractice
  name: machine pistol magazine (.35 auto practice)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolPractice
  - type: Sprite
    layers:
    - state: practice
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F08B4B"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F08B4B"

- type: entity
  id: MagazinePistolHighCapacityRubber
  name: machine pistol magazine (.35 auto rubber)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolRubber
  - type: Sprite
    layers:
    - state: rubber
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#28E7DC"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#28E7DC"

- type: entity
  id: MagazinePistolHighCapacityIncendiary
  name: machine pistol magazine (.35 auto incendiary)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolIncendiary
  - type: Sprite
    layers:
    - state: incendiary
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#E7EEEE"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#E7EEEE"

- type: entity
  id: MagazinePistolHighCapacityUranium
  name: machine pistol magazine (.35 auto uranium)
  parent: BaseMagazinePistolHighCapacity
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolUranium
  - type: Sprite
    layers:
    - state: uranium
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#40F57A"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#40F57A"

##########################################################

- type: entity
  id: MagazinePistolSubMachineGunEmpty
  name: SMG magazine (.35 auto any)
  suffix: empty
  parent: BaseMagazinePistolSubMachineGun
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag


- type: entity
  id: MagazinePistolSubMachineGunSP
  name: SMG magazine (.35 auto SP)
  parent: BaseMagazinePistolSubMachineGun
  description: 30-round double-stack magazine for submachine guns. Intended to hold general-purpose kinetic ammunition.
  components:
  - type: BallisticAmmoProvider
    capacity: 30
    proto: CartridgePistolSP
    whitelist:
      tags:
        - CartridgePistol
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/bullet_insert.ogg
  - type: Sprite
    layers:
    - state: sp
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#575EF5"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#575EF5"

- type: entity
  id: MagazinePistolSubMachineGunHP
  name: SMG magazine (.35 auto HP)
  parent: BaseMagazinePistolSubMachineGun
  description: 30-round double-stack magazine for submachine guns.
  components:
  - type: BallisticAmmoProvider
    capacity: 30
    proto: CartridgePistolHP
    whitelist:
      tags:
        - CartridgePistol
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/bullet_insert.ogg
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F5514C"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F5514C"

- type: entity
  id: MagazinePistolSubMachineGunFMJ
  name: SMG magazine (.35 auto FMJ)
  parent: BaseMagazinePistolSubMachineGun
  components:
  - type: BallisticAmmoProvider
    capacity: 30
    proto: CartridgePistolFMJ
    whitelist:
      tags:
        - CartridgePistol
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/bullet_insert.ogg
  - type: Sprite
    layers:
    - state: fmj
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#080706"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#080706"

- type: entity
  id: MagazinePistolSubMachineGunAP
  name: SMG magazine (.35 auto AP)
  parent: BaseMagazinePistolSubMachineGun
  components:
  - type: BallisticAmmoProvider
    capacity: 30
    proto: CartridgePistolAP
    whitelist:
      tags:
        - CartridgePistol
    soundInsert:
      path: /Audio/Weapons/Guns/MagIn/bullet_insert.ogg
  - type: Sprite
    layers:
    - state: ap
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#72E374"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#72E374"

- type: entity
  id: MagazinePistolSubMachineGunPractice
  name: SMG magazine (.35 auto practice)
  parent: BaseMagazinePistolSubMachineGun
  description: 30-round double-stack magazine for submachine guns. Intended to hold non-harmful chalk ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolPractice
  - type: Sprite
    layers:
    - state: practice
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F08B4B"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F08B4B"

- type: entity
  id: MagazinePistolSubMachineGunUranium
  name: SMG magazine (.35 auto uranium)
  parent: BaseMagazinePistolSubMachineGun
  description: 30-round double-stack magazine for submachine guns. Intended to hold exotic uranium-core ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolUranium
  - type: Sprite
    layers:
    - state: uranium
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#40F57A"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#40F57A"

- type: entity
  id: MagazinePistolSubMachineGunIncendiary
  name: SMG magazine (.35 auto incendiary)
  parent: BaseMagazinePistolSubMachineGun
  description: 30-round double-stack magazine for submachine guns. Intended to hold self-igniting incendiary ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolIncendiary
  - type: Sprite
    layers:
    - state: incendiary
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#E7EEEE"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#E7EEEE"



- type: entity
  id: MagazinePistolSubMachineGunRubber
  name: SMG magazine (.35 auto rubber)
  parent: BaseMagazinePistolSubMachineGun
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolRubber
  - type: Sprite
    layers:
    - state: rubber
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#28E7DC"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#28E7DC"

- type: entity
  id: MagazinePistolSubMachineGunUzi
  name: Uzi magazine (.35 auto)
  parent: BaseMagazinePistolSubMachineGun
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolSP
    capacity: 32
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/uzi.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#28E7DC"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#28E7DC"
  - type: Tag
    tags:
      - MagazineSMGUzi

- type: entity
  id: MagazinePistolSubMachineGunImprovised
  name: Improvised SMG magazine (.35 auto)
  parent: [ BaseMagazinePistolSubMachineGun, BaseMinorContraband ]
  components:
  - type: BallisticAmmoProvider
    proto: null
    capacity: 20
    whitelist:
      tags:
        - CartridgePistol
        - CartridgePistolImprovised
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/improvised_smg_magazine.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: MagazineVisuals
    magState: mag
    steps: 3
  - type: Tag
    tags:
      - MagazineSMGImprovised
  - type: Construction
    graph: ImprovisedMagazinePistolSubMachineGunGraph
    node: shell

- type: entity
  id: MagazinePistolSubMachineGunPPSH
  name: PPSH magazine
  parent: BaseMagazinePistolSubMachineGun
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistolSP
    capacity: 35
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/SMGs/ppsh.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left
      right:
      - state: inhand-right
  - type: MagazineVisuals
    magState: mag
    steps: 5
  - type: Tag
    tags:
      - MagazineSMGPPSH

- type: entity
  id: MagazinePistol40Base
  name: "Pistol Magazine (.40)"
  parent: BaseMagazinePistol
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistol40SP
    mayTransfer: true
    whitelist:
      tags:
        - CartridgePistolDP
    capacity: 10
  - type: Sprite
    sprite: _Starlight/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/40.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#575EF5"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#575EF5"
  - type: MagazineVisuals
    magState: mag
    steps: 7
    zeroVisible: false
  - type: Tag
    tags:
      - MagazinePistolDP

- type: entity
  id: MagazinePistol40Empty
  name: "Pistol Magazine (.40 any)"
  suffix: empty
  parent: MagazinePistol40Base
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      right:
      - state: inhand-right-mag

- type: entity
  id: MagazinePistol40SP
  name: "Pistol Magazine (.40 SP)"
  parent: MagazinePistol40Base
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistol40SP
  - type: Sprite
    layers:
    - state: sp
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#575EF5"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#575EF5"

- type: entity
  id: MagazinePistol40HP
  name: "Pistol Magazine (.40 HP)"
  parent: MagazinePistol40Base
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistol40HP
  - type: Sprite
    layers:
    - state: red
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#F5514C"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#F5514C"

- type: entity
  id: MagazinePistol40FMJ
  name: "Pistol Magazine (.40 FMJ)"
  parent: MagazinePistol40Base
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistol40FMJ
  - type: Sprite
    layers:
    - state: fmj
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#080706"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#080706"

- type: entity
  id: MagazinePistol40AP
  name: "Pistol Magazine (.40 AP)"
  parent: MagazinePistol40Base
  components:
  - type: BallisticAmmoProvider
    proto: CartridgePistol40AP
  - type: Sprite
    layers:
    - state: ap
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-1
      map: ["enum.GunVisualLayers.Mag"]
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-stripe
        color: "#72E374"
      right:
      - state: inhand-right-mag
      - state: inhand-right-stripe
        color: "#72E374"

