- type: entity
  id: BatteryGunBase
  parent: BaseItem
  abstract: true
  components:
  - type: RangedWeapon
  - type: BatteryBarrel
    fireRate: 2
    minAngle: 0
    maxAngle: 45
    angleIncrease: 15
    angleDecay: 45
    ammoPrototype: RedLaser
    currentSelector: Single
    allSelectors:
    - Single
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser.ogg
  - type: PowerCellSlot
    cellSlot:
      ejectOnUse: true
      soundOptions: 
        volume: -2
  - type: Appearance
    visuals:
    - type: MagVisualizer
      magState: mag
      steps: 5
      zeroVisible: false

- type: entity
  name: retro laser gun
  parent: BatteryGunBase
  id: LaserGun
  description: A weapon using light amplified by the stimulated emission of radiation.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi
  - type: RangedWeapon
  - type: BatteryBarrel
    minAngle: 10
    fireCost: 40
  - type: Appearance
    visuals:
    - type: MagVisualizer
      magState: mag
      steps: 5
      zeroVisible: true

- type: entity
  name: makeshift laser gun
  parent: BatteryGunBase
  id: MakeshiftLaser
  description: Better pray it won't burn your hands off.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/makeshift.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/makeshift.rsi
  - type: BatteryBarrel
    fireCost: 40

- type: entity
  name: svalinn laser pistol
  parent: BatteryGunBase
  id: LaserPistolSvalinn
  description: A cheap and widely used laser pistol.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/svalinn.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/svalinn.rsi
  - type: BatteryBarrel
    fireCost: 25

- type: entity
  name: PDW-10 pulse pistol
  parent: BatteryGunBase
  id: PulsePistolPdw
  description: A state of the art energy pistol favoured as a sidearm by the NT-ERT operatives.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/pulse_pistol.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/pulse_pistol.rsi
  - type: BatteryBarrel
    fireCost: 25
    ammoPrototype: Pulse
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: PowerCellSlot
    cellSlot:
      ejectOnUse: true
      soundOptions: 
        volume: -2
      startingItem: PowerCellSmallHigh

- type: entity
  name: cog laser carbine
  parent: BatteryGunBase
  id: LaserRifleCog
  description: Favoured by Nanotrasen Security for being cheap and easy to use.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/cog.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/cog.rsi
  - type: BatteryBarrel
    fireCost: 12

- type: entity
  name: DEAC-12 pulse carbine
  parent: BatteryGunBase
  id: PulseCarbineDeac
  description: A high tech energy carbine favoured by the NT-ERT operatives.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi
  - type: BatteryBarrel
    fireCost: 12
    ammoPrototype: Pulse
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: PowerCellSlot
    cellSlot:
      ejectOnUse: true
      soundOptions: 
        volume: -2
      startingItem: PowerCellSmallHigh

- type: entity
  name: laser cannon
  parent: BatteryGunBase
  id: LaserCannon
  description: A heavy duty, high powered laser weapon.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/laser_cannon.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/laser_cannon.rsi
  - type: BatteryBarrel
    fireCost: 200
    ammoPrototype: RedHeavyLaser
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: PowerCellSlot
    cellSlot:
      ejectOnUse: true
      soundOptions: 
        volume: -2
      startingItem: PowerCellSmallSuper

- type: entity
  name: x-ray cannon
  parent: BatteryGunBase
  id: XrayCannon
  description: An experimental weapon that uses concentrated x-ray energy against its target.
  components:
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/xray.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-0
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Item
    size: 24
    sprite: Objects/Weapons/Guns/Battery/xray.rsi
  - type: BatteryBarrel
    fireCost: 600
    ammoPrototype: XrayLaser
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser3.ogg
  - type: PowerCellSlot
    cellSlot:
      ejectOnUse: true
      soundOptions: 
        volume: -2
      startingItem: PowerCellSmallSuper
  - type: Appearance
    visuals:
    - type: MagVisualizer
      magState: mag
      steps: 5
      zeroVisible: true

- type: entity
  name: taser
  parent: BatteryGunBase
  id: TaserGun
  description: A low-capacity, energy-based stun gun used by security teams to subdue targets at range.
  components:
  - type: Tag
    tags:
    - Taser
  - type: Sprite
    netsync: false
    sprite: Objects/Weapons/Guns/Battery/taser.rsi
    layers:
      - state: base
        map: ["enum.RangedBarrelVisualLayers.Base"]
      - state: mag-unshaded-0
        map: ["enum.RangedBarrelVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/taser.rsi
    size: 24
    quickEquip: false
    Slots:
    - Belt
    HeldPrefix: taser4
  - type: BatteryBarrel
    minAngle: 5
    angleIncrease: 20
    fireCost: 80
    ammoPrototype: BulletTaser
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/taser.ogg
  - type: PowerCellSlot
    descFormatString : "" # empty string for no examine-text (cell is not ejectable)
    cellSlot:
      soundOptions: 
        volume: -2
      locked: true
  - type: Appearance
    visuals:
    - type: MagVisualizer
      magState: mag
      steps: 5
      zeroVisible: true
