- type: entity
  name: BasePistol
  parent: BaseItem
  id: PistolBase
  description: A rooty tooty point and shooty.
  abstract: true
  components:
  - type: Sprite
    netsync: false
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: bolt-closed
        map: ["enum.RangedBarrelVisualLayers.Bolt"]
      - state: mag-0
        map: ["enum.RangedBarrelVisualLayers.Mag"]
  - type: Icon
    state: icon
  - type: Item
    size: 12
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    currentSelector: Single
    allSelectors:
    - Single
    fireRate: 8
    minAngle: 10
    maxAngle: 60
    angleIncrease: 10
    angleDecay: 60
    magFillPrototype: MagazinePistol
    soundGunshot: /Audio/Weapons/Guns/Gunshots/pistol.ogg
    soundEmpty: /Audio/Weapons/Guns/Empty/empty.ogg
    soundRack: /Audio/Weapons/Guns/Cock/pistol_cock.ogg
    soundBoltOpen: /Audio/Weapons/Guns/Bolt/rifle_bolt_open.ogg
    soundBoltClosed: /Audio/Weapons/Guns/Bolt/rifle_bolt_closed.ogg
    soundMagInsert: /Audio/Weapons/Guns/MagIn/pistol_magin.ogg
    soundMagEject: /Audio/Weapons/Guns/MagOut/pistol_magout.ogg
  - type: Appearance
    visuals:
    - type: BarrelBoltVisualizer
    - type: MagVisualizer
      magState: mag
      steps: 1
      zeroVisible: true

- type: entity
  name: clarissa
  parent: PistolBase
  id: PistolClarissa
  description: A small, easily concealable, but somewhat underpowered gun.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/clarissa.rsi
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/clarissa.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/clarissa.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    - HCPistol
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60

- type: entity
  name: colt M1911
  parent: PistolBase
  id: PistolColt
  description: An outdated but classic pistol.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/colt.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: bolt-closed
        map: ["enum.RangedBarrelVisualLayers.Bolt"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/colt.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/colt.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
  - type: Appearance
    visuals:
    - type: BarrelBoltVisualizer

- type: entity
  name: giskard
  parent: PistolBase
  id: PistolGiskard
  description: A popular "Frozen Star" brand pocket pistol.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/giskard.rsi
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/giskard.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/giskard.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60

- type: entity
  name: handmade pistol
  parent: PistolBase
  id: PistolHMPistol
  description: Looks unreliable.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Pistols/hm_pistol.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: bolt-closed
        map: ["enum.RangedBarrelVisualLayers.Bolt"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/hm_pistol.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/hm_pistol.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    currentSelector: Single
    allSelectors:
    - Single
    magazineTypes:
    - Pistol
    fireRate: 8
    minAngle: 10
    maxAngle: 60
    angleIncrease: 10
    angleDecay: 60
    magFillPrototype: MagazinePistol
    soundGunshot: /Audio/Weapons/Guns/Gunshots/pistol.ogg
    soundEmpty: /Audio/Weapons/Guns/Empty/empty.ogg
    soundRack: /Audio/Weapons/Guns/Cock/pistol_cock.ogg
    soundBoltOpen: /Audio/Weapons/Guns/Bolt/rifle_bolt_open.ogg
    soundBoltClosed: /Audio/Weapons/Guns/Bolt/rifle_bolt_closed.ogg
    soundMagInsert: /Audio/Weapons/Guns/MagIn/pistol_magin.ogg
    soundMagEject: /Audio/Weapons/Guns/MagOut/pistol_magout.ogg
  - type: Appearance
    visuals:
    - type: BarrelBoltVisualizer

- type: entity
  name: lamia
  parent: PistolBase
  id: PistolLamia
  description: A heavy pistol of Ironhammer enforcers.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/gyro_pistol.rsi
    layers:
    - state: base
      map: ["enum.RangedBarrelVisualLayers.Base"]
    - state: mag-0
      map: ["enum.RangedBarrelVisualLayers.Mag"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/gyro_pistol.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/gyro_pistol.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Magnum
    magazineTypes:
    - Pistol
    magFillPrototype: MagazineMagnum
    autoEjectMag: true
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
    soundGunshot: /Audio/Weapons/Guns/Gunshots/hpistol.ogg
    soundEmpty: /Audio/Weapons/Guns/Empty/empty.ogg
    soundRack: /Audio/Weapons/Guns/Cock/hpistol_cock.ogg
    soundMagInsert: /Audio/Weapons/Guns/MagIn/hpistol_magin.ogg
    soundMagEject: /Audio/Weapons/Guns/MagOut/hpistol_magout.ogg
  - type: Appearance
    visuals:
    - type: MagVisualizer
      magState: mag
      steps: 1
      zeroVisible: true

- type: entity
  name: mandella
  parent: PistolBase
  id: PistolMandella
  description: A rugged, robust operator handgun with inbuilt silencer.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/mandella.rsi
    layers:
    - state: base
      map: ["enum.RangedBarrelVisualLayers.Base"]
    - state: bolt-closed
      map: ["enum.RangedBarrelVisualLayers.Bolt"]
    - state: mag-0
      map: ["enum.RangedBarrelVisualLayers.Mag"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/mandella.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/mandella.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: ClRifle
    magazineTypes:
    - Pistol
    magFillPrototype: MagazineClRiflePistol
    autoEjectMag: true
    canMuzzleFlash: false # Dat in-built suppressor
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
    soundGunshot: /Audio/Weapons/Guns/Gunshots/silenced.ogg

- type: entity
  name: mk 58
  parent: PistolBase
  id: PistolMk58
  description: A cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/mk58.rsi
    layers:
    - state: base
      map: ["enum.RangedBarrelVisualLayers.Base"]
    - state: bolt-closed
      map: ["enum.RangedBarrelVisualLayers.Bolt"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/mk58.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/mk58.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
  - type: Appearance
    visuals:
    - type: BarrelBoltVisualizer

- type: entity
  name: mk 58 (wood)
  parent: PistolBase
  id: PistolMk58Wood
  description: A cheap, ubiquitous sidearm, that was produced by a NanoTrasen subsidiary.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/mk58_wood.rsi
    layers:
    - state: base
      map: ["enum.RangedBarrelVisualLayers.Base"]
    - state: bolt-closed
      map: ["enum.RangedBarrelVisualLayers.Bolt"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/mk58_wood.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/mk58_wood.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
  - type: Appearance
    visuals:
    - type: BarrelBoltVisualizer

- type: entity
  name: molly
  parent: PistolBase
  id: PistolMolly
  description: An experimental fully automatic pistol.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/molly.rsi
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/molly.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/molly.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    currentSelector: Automatic
    allSelectors:
    - Automatic
    magazineTypes:
    - HCPistol
    - Smg
    magFillPrototype: MagazinePistolSmg
    autoEjectMag: true
    fireRate: 6
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60

- type: entity
  name: olivaw
  parent: PistolBase
  id: PistolOlivaw
  description: A popular "Frozen Star" machine pistol.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/olivaw_civil.rsi
    layers:
    - state: base
      map: ["enum.RangedBarrelVisualLayers.Base"]
    - state: bolt-closed
      map: ["enum.RangedBarrelVisualLayers.Bolt"]
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/olivaw_civil.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/olivaw_civil.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    - HCPistol
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
  - type: Appearance
    visuals:
    - type: BarrelBoltVisualizer

- type: entity
  name: paco
  parent: PistolBase
  id: PistolPaco
  description: A modern and reliable sidearm for the soldier in the field.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Pistols/paco.rsi
  - type: Icon
    sprite: Objects/Weapons/Guns/Pistols/paco.rsi
  - type: Item
    size: 12
    sprite: Objects/Weapons/Guns/Pistols/paco.rsi
  - type: RangedWeapon
  - type: MagazineBarrel
    caliber: Pistol
    magazineTypes:
    - Pistol
    autoEjectMag: true
    fireRate: 5
    minAngle: 0
    maxAngle: 45
    angleIncrease: 20
    angleDecay: 60
