- type: entity
  abstract: true
  parent: [ BaseItem, BaseSecurityContraband ]
  id: BaseSpeedLoaderMagnum
  name: "speed loader (.45 magnum)"
  components:
  - type: Tag
    tags:
      - SpeedLoaderMagnum
  - type: SpeedLoader
  - type: BallisticAmmoProvider
    whitelist:
      tags:
        - CartridgeMagnum
    capacity: 6
  - type: ContainerContainer
    containers:
      ballistic-ammo: !type:Container
        ents: []
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#C7B458"
  - type: MagazineVisuals
    magState: base
    steps: 7
    zeroVisible: false
  - type: Appearance

- type: entity
  parent: BaseSpeedLoaderMagnum
  id: SpeedLoaderMagnumEmpty
  name: "speed loader (.45 magnum any)"
  suffix: empty
  description: Designed to quickly load up to six rounds of .45 magnum into an empty revolver.
  components:
  - type: BallisticAmmoProvider
    proto: null
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      # TODO: This is actually a issue with all the speed loaders:
      #       You can mix different ammo types, but it will always
      #       use the one it was printed for.
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
- type: entity
  id: SpeedLoaderMagnumIncendiary
  name: "speed loader (.45 magnum incendiary)"
  parent: BaseSpeedLoaderMagnum
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumIncendiary
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#BFC8CA"

- type: entity
  parent: BaseSpeedLoaderMagnum
  id: SpeedLoaderMagnumSP
  name: "speed loader (.45 magnum SP)"
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumSP
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#3F47DB"

- type: entity
  id: SpeedLoaderMagnumHP
  name: "speed loader (.45 magnum HP)"
  parent: BaseSpeedLoaderMagnum
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumHP
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#000000"

- type: entity
  id: SpeedLoaderMagnumFMJ
  name: "speed loader (.45 magnum FMJ)"
  parent: BaseSpeedLoaderMagnum
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumFMJ
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#C7B458"

- type: entity
  parent: BaseSpeedLoaderMagnum
  id: SpeedLoaderMagnumPractice
  name: "speed loader (.45 magnum practice)"
  description: Designed to quickly load up to six rounds of .45 magnum into an empty revolver. Intended to hold harmless practice ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumPractice
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#D86E2C"
  - type: Item
    inhandVisuals:
      left:
      - state: inhand-left-mag
      - state: inhand-left-ammo
      - state: inhand-left-stripe
        color: "#ea5800"
      right:
      - state: inhand-right-mag
      - state: inhand-right-ammo
      - state: inhand-right-stripe
        color: "#ea5800"

- type: entity
  parent: BaseSpeedLoaderMagnum
  id: SpeedLoaderMagnumAP
  name: "speed loader (.45 magnum AP)"
  description: Designed to quickly load up to six rounds of .45 magnum into an empty revolver. Intended to hold specialized armor-piercing ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumAP
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#1A8C1A"


- type: entity
  parent: BaseSpeedLoaderMagnum
  id: SpeedLoaderMagnumUranium
  name: "speed loader (.45 magnum uranium)"
  description: Designed to quickly load up to six rounds of .45 magnum into an empty revolver. Intended to hold exotic uranium-core ammunition.
  components:
  - type: BallisticAmmoProvider
    proto: CartridgeMagnumUranium
  - type: Sprite
    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
    layers:
      - state: base
        map: [ "enum.GunVisualLayers.Base" ]
      - state: base-6
        map: [ "enum.GunVisualLayers.Mag" ]
      - state: base-tip-6
        map: [ "enum.GunVisualLayers.Tip" ]
        color: "#65fe08"
