# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  name: Burner
  parent: [BaseWeaponRifle, BaseSyndicateContraband]
  id: WeaponRifleBurner
  description: An obscene fully-automatic anti-materiel rifle that slings .50 downrange as long as you can shoulder it. You don't want to know how much it costs. Feeds from .50 Anti-Materiel magazines.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/burner.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-0
        map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/burner.rsi
  - type: Gun
    fireRate: 3
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/sniper.ogg
  - type: ChamberMagazineAmmoProvider
    soundRack:
      path: /Audio/Weapons/Guns/Cock/ltrifle_cock.ogg
  - type: ItemSlots
    slots:
      gun_magazine:
        name: Magazine
        startingItem: MagazineHighCaliber
        insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
        priority: 2
        whitelist:
          tags:
            - MagazineHighCaliber
        whitelistFailPopup: gun-magazine-whitelist-fail
      gun_chamber:
        name: Chamber
        startingItem: CartridgeHighCaliber
        priority: 1
        whitelist:
          tags:
            - CartridgeHighCaliber
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance
  - type: Item
    shape:
    - 0,0,5,2

- type: entity
  name: M-90
  parent: [BaseWeaponRifle, BaseSyndicateContraband]
  id: WeaponRifleM90
  description: A cheaper revision of the M-90GL that omits the integrated grenade launcher. Feeds from .20 Rifle magazines.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/m90.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: Objects/Weapons/Guns/Rifles/carbine.rsi
  - type: ItemSlots
    slots:
      gun_magazine:
        name: Magazine
        startingItem: MagazineRifle
        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
        priority: 2
        whitelist:
          tags:
          - MagazineRifle
        whitelistFailPopup: gun-magazine-whitelist-fail
      gun_chamber:
        name: Chamber
        startingItem: CartridgeRifle
        priority: 1
        whitelist:
          tags:
          - CartridgeRifle
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance
  - type: Gun
    fireRate: 6

- type: entity
  name: Annie
  parent: [BaseCentcommContraband, BaseWeaponRifle]
  id: WeaponRifleAnnie
  description: A beast designed to shoulder the weight of impossible missions, and the pride of the Emergency Response corps. Feeds from .30 Rifle magazines.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/annie.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/annie.rsi
  - type: Gun
    availableModes:
    - FullAuto
    - Burst
    burstFireRate: 12
    burstCooldown: 0.8
    shotsPerBurst: 4
    fireRate: 6.5
    soundGunshot:
      path: /Audio/_Goobstation/Weapons/Guns/Gunshots/thock.ogg
  - type: ChamberMagazineAmmoProvider
    soundRack:
      path: /Audio/Weapons/Guns/Cock/ltrifle_cock.ogg
  - type: ItemSlots
    slots:
      gun_magazine:
        name: Magazine
        startingItem: MagazineLightRifle
        insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
        priority: 2
        whitelist:
          tags:
          - MagazineLightRifle
        whitelistFailPopup: gun-magazine-whitelist-fail
      gun_chamber:
        name: Chamber
        startingItem: CartridgeLightRifle
        priority: 1
        whitelist:
          tags:
          - CartridgeLightRifle
  - type: ContainerContainer
    containers:
      gun_magazine: !type:ContainerSlot
      gun_chamber: !type:ContainerSlot
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance

- type: entity
  name: WSPR
  parent: [BaseSyndicateContraband, BaseWeaponRifle]
  id: WeaponRifleWSPR
  description: An obscure rifle from Cybersun designed for covert missions in target-rich environments. Silenced, subsonic, and caseless, for the operative that leaves no trace. Feeds from 9.5mm SMG magazines.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/wspr.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-0
      map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Rifles/wspr.rsi
  - type: Gun
    fireRate: 5.5
    projectileSpeed: 35
    soundGunshot:
      path: /Audio/_Goobstation/Weapons/Guns/Gunshots/suppressed_smg.ogg
      params:
        volume: -12
  - type: ItemSlots
    slots:
      gun_magazine:
        name: Magazine
        startingItem: MagazineCaselessRifle
        insertSound: /Audio/Weapons/Guns/MagIn/ltrifle_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/ltrifle_magout.ogg
        priority: 2
        whitelist:
          tags:
          - MagazineCaselessRifle
        whitelistFailPopup: gun-magazine-whitelist-fail
      gun_chamber:
        name: Chamber
        startingItem: CartridgeCaselessRifle
        priority: 1
        whitelist:
          tags:
          - CartridgeCaselessRifle
  - type: MagazineVisuals
    magState: mag
    steps: 1
    zeroVisible: true
  - type: Appearance
