# SPDX-FileCopyrightText: 2020 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Exp <theexp111@gmail.com>
# SPDX-FileCopyrightText: 2020 Metal Gear Sloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2020 V�ctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Ygg01 <daniel.fath7@gmail.com>
# SPDX-FileCopyrightText: 2020 py01 <pyronetics01@gmail.com>
# SPDX-FileCopyrightText: 2021 Galactic Chimp <GalacticChimpanzee@gmail.com>
# SPDX-FileCopyrightText: 2021 Paul <ritter.paul1+git@googlemail.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 Tarlan2 <76408146+Tarlan2@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Alex Evgrashin <aevgrashin@yandex.ru>
# SPDX-FileCopyrightText: 2022 Cheackraze <71046427+Cheackraze@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 ElectroJr <leonsfriedrich@gmail.com>
# SPDX-FileCopyrightText: 2022 FunkySphere <89979928+FunkySphere@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Moony <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2022 Peptide90 <78795277+Peptide90@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Ripmorld <60119809+UKNOWH@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 T-Stalker <43253663+DogZeroX@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 T-Stalker <le0nel_1van@hotmail.com>
# SPDX-FileCopyrightText: 2022 TaralGit <76408146+TaralGit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Visne <39844191+Visne@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 ZeroDayDaemon <60460608+ZeroDayDaemon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 and_a <and_a@DESKTOP-RJENGIR>
# SPDX-FileCopyrightText: 2022 metalgearsloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2022 wrexbe <81056464+wrexbe@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 wrexbe <wrexbe@protonmail.com>
# SPDX-FileCopyrightText: 2023 Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 CrigCrag <137215465+CrigCrag@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Stanislav4ix <124695665+Stanislav4ix@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 CaasGit <87243814+CaasGit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Dae <60460608+ZeroDayDaemon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Hrosts <35345601+Hrosts@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ian <ignaz.k@live.de>
# SPDX-FileCopyrightText: 2024 Icepick <122653407+Icepicked@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Joel Zimmerman <JoelZimmerman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kukutis96513 <146854220+Kukutis96513@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Lye <128915833+Lyroth001@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MureixloI <132683811+MureixloI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nairod <110078045+Nairodian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 NakataRin <45946146+NakataRin@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 OrangeMoronage9622 <whyteterry0092@gmail.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RealFakeSoof <william_r_dunn@yahoo.com>
# SPDX-FileCopyrightText: 2024 Repo <47093363+Titian3@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 SonicHDC <100022571+SonicHDC@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Stalen <33173619+stalengd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TakoDragon <69509841+BackeTako@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Vigers Ray <60344369+VigersRay@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Zadeon <loldude9000@gmail.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deathride58 <deathride58@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 degradka <69397649+degradka@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 dffdff2423 <dffdff2423@gmail.com>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 foboscheshir <156405958+foboscheshir@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lanse12 <cloudability.ez@gmail.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 shamp <140359015+shampunj@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 strO0pwafel <153459934+strO0pwafel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stroopwafel <j.o.luijkx@student.tudelft.nl>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 to4no_fix <156101927+chavonadelal@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 vanx <#vanxxxx>
# SPDX-FileCopyrightText: 2024 vanx <61917534+Vaaankas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 voidnull000 <18663194+voidnull000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 whateverusername0 <whateveremail>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <aviu00@protonmail.com>
# SPDX-FileCopyrightText: 2025 BramvanZijp <56019239+BramvanZijp@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GaussiArson <193122004+GaussiArson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Ignaz "Ian" Kraft <ignaz.k@live.de>
# SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 PunishedJoe <PunishedJoeseph@proton.me>
# SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 chromiumboy <50505512+chromiumboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gaussiarson-admin <stephenkitchens0306@gmail.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 keronshb <54602815+keronshb@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  id: BaseWeaponBattery
  parent: BaseItem
  abstract: true
  components:
  - type: Sprite
  - type: Item
    size: Huge
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi
    quickEquip: false
    slots:
    - Back
    - suitStorage
  - type: AmmoCounter
  - type: Gun
    fireRate: 2
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser.ogg
  - type: Battery
    maxCharge: 1000
    startingCharge: 1000
  - type: StaticPrice
    price: 500
  - type: Cautery # Shitmed
    speed: 0.9
  - type: SurgeryTool # Shitmed
    endSound:
      path: /Audio/Weapons/Guns/Gunshots/laser.ogg
  # Goobstation edit start
  - type: EmitSoundOnPickup
    sound:
      collection: LasersPickUp
  - type: EmitSoundOnDrop
    sound:
      collection: LasersDrop
  - type: EmitSoundOnLand
    sound:
      collection: LasersDrop
  # Goobstation edit end
  - type: AlwaysHot # Goobstation V
  - type: MeleeWeapon
    damage:
      types:
       Blunt: 12
    angle: 0
    wideAnimationRotation: 90 # -90 if it takes bayonets (hits with muzzle) 90 if not (hits with butt)
    soundHit:
      collection: MetalThud # Goobstation ^
  - type: BatteryDrinkerSource # Goobstation - Energycrit
    maxAmount: 180 # you probably don't want to drain your entire gun charging in battle
  - type: Multishot # Goobstation V
    missChance: 0.4
    spreadMultiplier: 3
    spreadAddition: 40

- type: entity
  id: BaseWeaponPowerCell
  parent: BaseItem
  abstract: true
  components:
  - type: Sprite
  - type: Item
    size: Huge
  - type: AmmoCounter
  - type: Gun
    fireRate: 2
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser.ogg
  - type: HitscanBatteryAmmoProvider
    proto: RedLightLaser
    fireCost: 50
  - type: ItemSlots
    slots:
      cell_slot:
        name: Magazine
        startingItem: PowerCellSmall
        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
        whitelist:
          tags:
            - PowerCell
            - PowerCellSmall
  - type: PowerCellSlot
    cellSlotId: cell_slot
  - type: Appearance
  - type: StaticPrice
    price: 500
  - type: ContainerContainer
    containers:
      cell_slot: !type:ContainerSlot
  - type: Cautery # Shitmed
    speed: 0.9
  - type: SurgeryTool # Shitmed
    endSound:
      path: /Audio/Weapons/Guns/Gunshots/laser.ogg
  - type: AlwaysHot # Goobstation V
  - type: MeleeWeapon
    damage:
      types:
       Blunt: 12
    angle: 0
    wideAnimationRotation: 90 # -90 if it takes bayonets (hits with muzzle) 90 if not (hits with butt)
    soundHit:
      collection: MetalThud # Goobstation ^

- type: entity
  id: BaseWeaponBatterySmall
  parent: BaseWeaponBattery
  abstract: true
  components:
  - type: Item
    size: Small
    shape:
    - 0,0,1,0
    - 0,1,0,1
  - type: Tag
    tags:
    - Sidearm
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/taser.rsi
    quickEquip: false
    slots:
    - Belt
    - suitStorage
  - type: MeleeWeapon # Goobstation V
    damage:
      types:
       Blunt: 8 # pistol whip
    angle: 0
    wideAnimationRotation: 90 # -90 if it takes bayonets (hits with muzzle) 90 if not (hits with butt)
    soundHit:
      collection: MetalThud # Goobstation ^

- type: entity
  id: BaseWeaponPowerCellSmall
  parent: BaseWeaponPowerCell
  abstract: true
  components:
  - type: Item
    size: Small
    shape: # Goobstation
    - 0,0,1,0
    - 0,1,0,1
  - type: Tag
    tags:
    - Sidearm
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/taser.rsi
    quickEquip: false
    slots:
    - Belt
  - type: MeleeWeapon # Goobstation V
    damage:
      types:
       Blunt: 8 # pistol whip
    angle: 0
    wideAnimationRotation: 90 # -90 if it takes bayonets (hits with muzzle) 90 if not (hits with butt)
    soundHit:
      collection: MetalThud # Goobstation ^
  - type: Multishot # Goobstation V
    missChance: 0.4
    spreadMultiplier: 2
    spreadAddition: 40

- type: entity
  name: svalinn laser pistol
  parent: [BaseWeaponPowerCellSmall, BaseSecurityContraband]
  id: WeaponLaserSvalinn
  description: A cheap and widely used laser pistol.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/svalinn.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Item
    sprite: Objects/Weapons/Guns/Battery/svalinn.rsi
  - type: RestrictGunshotsByUserTag # Goobstation
    doesntContain:
    - Oni
    messages:
    - oni-cannot-shoot-guns-1
    - oni-cannot-shoot-guns-2
    - oni-cannot-shoot-guns-3
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Steel: 500
      Gold: 125

- type: entity
  name: retro laser blaster
  parent: [BaseWeaponBatterySmall, BaseMajorContraband]
  id: WeaponLaserGun
  description: A weapon using light amplified by the stimulated emission of radiation.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/laser_retro.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: RestrictGunshotsByUserTag # Goobstation
    doesntContain:
    - Oni
    messages:
    - oni-cannot-shoot-guns-1
    - oni-cannot-shoot-guns-2
    - oni-cannot-shoot-guns-3
  - type: HitscanBatteryAmmoProvider
    proto: RedMediumLaser
    fireCost: 62.5
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance

- type: entity
  name: makeshift laser pistol
  parent: [BaseWeaponBatterySmall, BaseMinorContraband]
  id: WeaponMakeshiftLaser
  description: Better pray it won't burn your hands off.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/makeshift.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: RestrictGunshotsByUserTag # Goobstation
    doesntContain:
    - Oni
    messages:
    - oni-cannot-shoot-guns-1
    - oni-cannot-shoot-guns-2
    - oni-cannot-shoot-guns-3
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/makeshift.rsi
  - type: HitscanBatteryAmmoProvider
    proto: RedLaser
    fireCost: 62.5
  - type: Battery
    maxCharge: 500
    startingCharge: 500

- type: entity
  name: tesla gun
  parent: [BaseWeaponBattery, BaseMajorContraband]
  id: WeaponTeslaGun
  description: The power of the primordial element of lightning in your hands.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/tesla_gun.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.GunVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Gun
    projectileSpeed: 10
    soundGunshot:
      path: /Audio/Effects/Lightning/lightningshock.ogg
      params:
        variation: 0.2
  - type: ProjectileBatteryAmmoProvider
    proto: TeslaGunBullet
    fireCost: 300
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance

- type: entity
  name: practice laser rifle
  parent: [BaseWeaponBattery, BaseGunWieldable]
  id: WeaponLaserCarbinePractice
  description: This modified laser rifle fires nearly harmless beams in the 40-watt range, for target practice.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
  - type: Gun
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
  - type: HitscanBatteryAmmoProvider
    proto: RedLaserPractice
    fireCost: 62.5
  - type: StaticPrice
    price: 300
  - type: PacifismAllowedGun
  # Goobstation
  - type: Item
    size: Large


- type: entity
  name: laser rifle
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponLaserCarbine
  description: Favoured by Nanotrasen Security for being cheap and easy to use.
  components:
  - type: StaticPrice
    price: 420
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
  - type: Gun
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
  - type: HitscanBatteryAmmoProvider
    proto: RedLaser
    fireCost: 62.5
  # Goobstation
  - type: Item
    size: Large


- type: entity
  name: pulse pistol
  parent: [BaseWeaponBatterySmall, BaseCentcommContraband]
  id: WeaponPulsePistol
  description: A state-of-the-art pulse based weapon. It's smaller frame allows it to passively regenerate charge. # Goobstation
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/pulse_pistol.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/pulse_pistol.rsi
  - type: Gun
    selectedMode: SemiAuto
    availableModes:
    - SemiAuto
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser3.ogg
  - type: HitscanBatteryAmmoProvider
    proto: LightPulse # Goobstation
    fireCost: 200
  - type: Battery
    maxCharge: 2000
    startingCharge: 2000
  - type: BatterySelfRecharger # Goobstation - CentComm Job Revamp
    autoRecharge: true
    autoRechargeRate: 40

- type: entity
  name: pulse carbine
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseCentcommContraband]
  id: WeaponPulseCarbine
  description: A state-of-the-art pulse carbine, typically used by Nanotrasen militia. # Goobstation
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/pulse_carbine.rsi
  - type: Gun
    selectedMode: SemiAuto
    fireRate: 3
    availableModes:
      - SemiAuto
      - FullAuto
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser3.ogg
  - type: HitscanBatteryAmmoProvider
    proto: Pulse
    fireCost: 200
  - type: AmmoSelector # Goobstation - Start
    prototypes:
    - Pulse
    - StunPulse
  - type: UserInterface
    interfaces:
      enum.AmmoSelectorUiKey.Key:
        type: AmmoSelectorMenuBoundUserInterface
  - type: ActivatableUI
    altVerb: true
    verbOnly: true
    verbText: mode-select-verb-text
    key: enum.AmmoSelectorUiKey.Key # Goobstation - End
  - type: Battery
    maxCharge: 5000
    startingCharge: 5000
  # Goobstation
  - type: Tag
    tags:
    - Rifle
  - type: Item
    size: Huge
    shape:
    - 0,0,4,1

- type: entity
  name: pulse rifle
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseCentcommContraband]
  id: WeaponPulseRifle
  description: A weapon almost as infamous as its users. # Goobstation - Sometimes less is more.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/pulse_rifle.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/pulse_rifle.rsi
  - type: Gun
    fireRate: 1.5
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser3.ogg
  - type: HitscanBatteryAmmoProvider
    proto: HeavyPulse # Goobstation - Start
    fireCost: 100
  - type: AmmoSelector
    prototypes:
    - HeavyPulse
    - LightPulse
    - StunPulse
  - type: UserInterface
    interfaces:
      enum.AmmoSelectorUiKey.Key:
        type: AmmoSelectorMenuBoundUserInterface
  - type: ActivatableUI
    altVerb: true
    verbOnly: true
    verbText: mode-select-verb-text
    key: enum.AmmoSelectorUiKey.Key # Goobstation - End
  - type: Battery
    maxCharge: 40000
    startingCharge: 40000
  # Goobstation
  - type: Tag
    tags:
    - Rifle
  - type: Item
    size: Huge
    shape:
    - 0,0,5,1

- type: entity
  name: laser cannon
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponLaserCannon
  description: A heavy duty, high powered laser weapon.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/laser_cannon.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/laser_cannon.rsi
  - type: Gun
    fireRate: 1.5
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: HitscanBatteryAmmoProvider
    proto: RedHeavyLaser
    fireCost: 100
  - type: Tag
    tags:
    - TurretCompatibleWeapon
    - Rifle # Goobstation
  - type: Item # Goobstation
    size: Huge
    shape:
    - 0,0,4,1

- type: entity
  name: portable particle decelerator
  parent: [BaseWeaponBattery, BaseEngineeringContraband]
  id: WeaponParticleDecelerator
  description: A portable particle decelerator capable of decomposing a tesla or singularity.
  components:
    - type: Item
      size: Ginormous
    - type: MultiHandedItem
    - type: ClothingSpeedModifier
      walkModifier: 0.6
      sprintModifier: 0.6
    - type: HeldSpeedModifier
    - type: Sprite
      sprite: Objects/Weapons/Guns/Battery/particle_decelerator.rsi
      layers:
        - state: base
          map: ["enum.GunVisualLayers.Base"]
    - type: Gun
      fireRate: 0.5
      soundGunshot:
        path: /Audio/Weapons/emitter.ogg
        params:
          pitch: 2
    - type: ProjectileBatteryAmmoProvider
      proto: AntiParticlesProjectile
      fireCost: 500
    - type: Battery
      maxCharge: 10000
      startingCharge: 10000
    - type: PhysicalComposition #Goobstation - Recycle update
      materialComposition:
        Steel: 187
        Plasma: 37
        Uranium: 37
    - type: Tag # Goobstation
      tags:
      - Rifle

- type: entity
  name: x-ray cannon
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponXrayCannon
  description: An experimental weapon that uses concentrated x-ray energy against its target.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/xray.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-0
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/xray.rsi
  - type: Gun
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser3.ogg
  - type: HitscanBatteryAmmoProvider
    proto: XrayLaser
    fireCost: 100
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance
  - type: RestrictGunshotsByUserTag # Goobstation
    doesntContain:
    - Oni
    messages:
    - oni-cannot-shoot-guns-1
    - oni-cannot-shoot-guns-2
    - oni-cannot-shoot-guns-3
  # Goobstation
  - type: Tag
    tags:
    - Rifle
  - type: Item
    size: Huge
    shape:
    - 0,0,4,1

- type: entity
  name: practice disabler
  parent: BaseWeaponBatterySmall
  id: WeaponDisablerPractice
  description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. This one has been undertuned for cadets making it mostly harmless.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-0
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
    quickEquip: false
    slots:
    - Belt
  - type: Appearance
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: StaticPrice
    price: 100
  - type: Gun
    fireRate: 2
    #projectileSpeed: 35 # Goobstation - nuh uh
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
  - type: ProjectileBatteryAmmoProvider
    proto: BulletDisablerPractice
    fireCost: 62.5
  - type: Tag
    tags:
    - Taser
    - Sidearm
  - type: PacifismAllowedGun
  - type: GunExecutionBlacklist # Goobstation


- type: entity
  name: disabler
  parent: [WeaponDisablerPractice, BaseSecurityCommandContraband]
  id: WeaponDisabler
  description: A self-defense weapon that exhausts organic targets, weakening them until they collapse.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/disabler.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-unshaded-0
        map: ["enum.GunVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/disabler.rsi
    quickEquip: false
    slots:
      - suitStorage
      - Belt
  - type: ProjectileBatteryAmmoProvider
    proto: BulletDisabler
    fireCost: 62.5
  - type: GuideHelp
    guides:
    - Security
    - Antagonists
  - type: PacifismAllowedGun
  # Goobstation start
  - type: Tag
    tags:
    - Taser
    - Sidearm
    - WeaponDisabler
  # Goobstation end

- type: entity
  name: disabler SMG
  parent: [BaseWeaponBattery, BaseSecurityContraband]
  id: WeaponDisablerSMG
  description: Advanced weapon that exhausts organic targets, weakening them until they collapse.
  components:
  - type: Item
    size: Large
  - type: Tag
    tags:
      - Taser
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/disabler_smg.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-unshaded-0
        map: ["enum.GunVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: Gun
    selectedMode: FullAuto
    fireRate: 4.5
    availableModes:
      - SemiAuto
      - FullAuto
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
  - type: ProjectileBatteryAmmoProvider
    proto: BulletDisablerSmg
    fireCost: 25
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance
  - type: StaticPrice
    price: 260
  - type: PacifismAllowedGun
  - type: GunExecutionBlacklist # Goobstation


- type: entity
  name: taser
  parent: [BaseWeaponBatterySmall, BaseSecurityContraband]
  id: WeaponTaser
  description: A low-capacity, energy-based stun gun used by security teams to subdue targets at range.
  components:
  - type: Tag
    tags:
    - Taser
    - Sidearm
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/taser.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-0
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Item
    heldPrefix: taser4
  - type: Clothing
    quickEquip: false
    slots:
    - Belt
  - type: Gun
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/taser.ogg
  - type: ProjectileBatteryAmmoProvider
    proto: BulletTaser
    fireCost: 200
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance
  - type: PacifismAllowedGun
  - type: GunExecutionBlacklist # Goobstation


- type: entity
  name: antique laser pistol
  parent: [BaseWeaponBatterySmall, BaseGrandTheftContraband]
  id: WeaponAntiqueLaser
  description: This is an antique laser pistol. All craftsmanship is of the highest quality. It is decorated with a mahogany grip and chrome filigree. The object menaces with spikes of energy. On the item is an image of a captain and a clown. The clown is dead. The captain is striking a heroic pose.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/antiquelasergun.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/antiquelasergun.rsi
  - type: Gun
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: HitscanBatteryAmmoProvider
    proto: RedMediumLaser
    fireCost: 100
  - type: BatterySelfRecharger
    autoRecharge: true
    autoRechargeRate: 40
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance
  - type: Tag
    tags:
    - HighRiskItem
    - Sidearm
    - WeaponAntiqueLaser
  - type: StaticPrice
    price: 750
  - type: StealTarget
    stealGroup: WeaponAntiqueLaser
  - type: SentienceTarget # I hope this is only the captain's gun
    flavorKind: station-event-random-sentience-flavor-inanimate
    weight: 0.0002 # 5,000 times less likely than 1 regular animal
    # not putting a BlockMovement component here cause that's funny.

- type: entity
  name: advanced laser pistol
  parent: [BaseWeaponBatterySmall, BaseSecurityContraband]
  id: WeaponAdvancedLaser
  description: An experimental high-energy laser pistol with a self-charging nuclear battery.
  components:
  - type: Item
    # size: Normal  # Intentionally larger than other pistols # Goobstation - no fuck you
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/advancedlasergun.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-4
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/advancedlasergun.rsi
  - type: Gun
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: HitscanBatteryAmmoProvider
    proto: RedMediumLaser
    fireCost: 100
  - type: BatterySelfRecharger
    autoRecharge: true
    autoRechargeRate: 30
  - type: RestrictGunshotsByUserTag # Goobstation
    doesntContain:
    - Oni
    messages:
    - oni-cannot-shoot-guns-1
    - oni-cannot-shoot-guns-2
    - oni-cannot-shoot-guns-3
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: true
  - type: Appearance
  - type: StaticPrice
    price: 63

- type: entity
  name: C.H.I.M.P. handcannon
  parent: [BaseWeaponBatterySmall, BaseScienceContraband]
  id: WeaponPistolCHIMP
  description: Just because it's a little C.H.I.M.P. doesn't mean it can't punch like an A.P.E.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
    - state: mag-unshaded-1
      visible: false
      map: ["enum.GunVisualLayers.MagUnshaded"]
      shader: unshaded
  - type: Appearance
  - type: MagazineVisuals
    magState: mag
    steps: 3
    zeroVisible: false
  - type: Clothing
    sprite: Objects/Weapons/Guns/Revolvers/chimp.rsi
  - type: Gun
    projectileSpeed: 10
    fireRate: 1.5
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
  - type: ProjectileBatteryAmmoProvider
    proto: AnomalousParticleDeltaStrong
    fireCost: 100
  - type: BatteryWeaponFireModes
    fireModes:
    - proto: AnomalousParticleDeltaStrong
      fireCost: 100
    - proto: AnomalousParticleEpsilonStrong
      fireCost: 100
    - proto: AnomalousParticleZetaStrong
      fireCost: 100
    - proto: AnomalousParticleSigmaStrong
      fireCost: 100
  - type: Construction
    graph: UpgradeWeaponPistolCHIMP
    node: start
  - type: StaticPrice
    price: 100
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Steel: 125
      Glass: 100
  - type: PacifismAllowedGun


- type: entity
  name: experimental C.H.I.M.P. handcannon
  parent: [WeaponPistolCHIMP, BaseSyndicateContraband]
  id: WeaponPistolCHIMPUpgraded
  description: This C.H.I.M.P. seems to have a greater punch than usual...
  components:
  - type: BatteryWeaponFireModes
    fireModes:
    - proto: AnomalousParticleDeltaStrong
      fireCost: 100
    - proto: AnomalousParticleEpsilonStrong
      fireCost: 100
    - proto: AnomalousParticleOmegaStrong
      fireCost: 100
    - proto: AnomalousParticleZetaStrong
      fireCost: 100
    - proto: AnomalousParticleSigmaStrong
      fireCost: 100

- type: entity
  name: eye of a behonker
  parent: BaseWeaponBatterySmall
  id: WeaponBehonkerLaser
  description: The eye of a behonker, it fires a laser when squeezed.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/behonker_eye.rsi
    layers:
    - state: base
      map: ["enum.GunVisualLayers.Base"]
  - type: Gun
    fireRate: 0.5
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_clown.ogg
  - type: HitscanBatteryAmmoProvider
    proto: RedMediumLaser
    fireCost: 100
  - type: BatterySelfRecharger
    autoRecharge: true
    autoRechargeRate: 10
  - type: StaticPrice
    price: 750

- type: entity
  name: energy shotgun
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseGrandTheftContraband]
  id: WeaponEnergyShotgun
  description: A one-of-a-kind prototype energy weapon that uses various shotgun configurations. It offers the possibility of both lethal and non-lethal shots, making it a versatile weapon.
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Battery/energy_shotgun.rsi
    layers:
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-unshaded-4
        map: ["enum.GunVisualLayers.MagUnshaded"]
        shader: unshaded
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Appearance
  - type: Clothing
    sprite: Objects/Weapons/Guns/Battery/energy_shotgun.rsi
  - type: Gun
    fireRate: 2
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg
  - type: ProjectileBatteryAmmoProvider
    proto: BulletLaserSpread
    fireCost: 150
  # Goob edit start
  #- type: BatteryWeaponFireModes
  #  fireModes:
  #  - proto: BulletLaserSpread
  #    fireCost: 150
  #  - proto: BulletLaserSpreadNarrow
  #    fireCost: 200
  #  - proto: BulletDisablerSmgSpread
  #    fireCost: 120
  - type: AmmoSelector
    prototypes:
      - BulletLaserSpread
      - BulletLaserSpreadNarrow
      - BulletDisablerSmgSpread
  - type: UserInterface
    interfaces:
      enum.AmmoSelectorUiKey.Key:
        type: AmmoSelectorMenuBoundUserInterface
  - type: ActivatableUI
    altVerb: true
    verbOnly: true
    verbText: mode-select-verb-text
    key: enum.AmmoSelectorUiKey.Key
  - type: Item
    size: Large
    shape:
    - 0,0,4,1
  # Goob edit end
    sprite: Objects/Weapons/Guns/Battery/inhands_64x.rsi
    heldPrefix: energy
  - type: Tag
    tags:
    - HighRiskItem
  - type: StealTarget
    stealGroup: WeaponEnergyShotgun
  - type: GunRequiresWield #remove when inaccuracy on spreads is fixed
  - type: Battery
    maxCharge: 1050 # Goobstation
    startingCharge: 1050
  - type: BatterySelfRecharger
    autoRecharge: true
    autoRechargeRate: 24
    autoRechargePause: true
    autoRechargePauseTime: 30

- type: entity
  name: temperature gun
  parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband]
  id: WeaponTemperatureGun
  description: An advanced gun that shoots body-temperature-changing beams. This probably constitutes as some kind of war crime.
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Weapons/Guns/Battery/tempgun.rsi # Goobstation
    layers:
    - state: base
      map: [ "enum.GunVisualLayers.Base" ]
    - state: mode-cooling
      shader: unshaded
      map: [ "Firemode" ]
    - state: mag-unshaded-4
      map: [ "enum.GunVisualLayers.MagUnshaded" ]
      shader: unshaded
  - type: Appearance
  - type: Item
    size: Large
    shape:
    - 0,0,3,1
  - type: MagazineVisuals
    magState: mag
    steps: 5
    zeroVisible: false
  - type: Clothing
    sprite: _Goobstation/Objects/Weapons/Guns/Battery/tempgun.rsi # Goobstation
  - type: Gun
    fireRate: 1
    soundGunshot:
      path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
  - type: ProjectileBatteryAmmoProvider
    proto: BulletTemperatureCold # Goobstation
    fireCost: 100
  - type: BatteryWeaponFireModes
    fireModes:
    - proto: BulletTemperatureCold # Goobstation
      fireCost: 100
    - proto: BulletTemperatureHot # Goobstation - im lazy to port shit from wizden so i just use goob prototypes that are already balanced
      fireCost: 100
  - type: Battery
    maxCharge: 2500 # Goobstation - 1000 -> 2500
    startingCharge: 2500 # 1000 -> 2500
  - type: StaticPrice
    price: 100
  - type: GenericVisualizer # Goobstation
    visuals:
      enum.EnergyGunFireModeVisuals.State:
        Firemode:
          Cooling: { state: mode-cooling }
          Heating: { state: mode-heating }

- type: entity
  name: xenoborg laser gun
  parent: [WeaponAdvancedLaser, BaseXenoborgContraband]
  id: XenoborgLaserGun

- type: entity
  name: xenoborg heavy laser gun
  parent: [WeaponAdvancedLaser, BaseXenoborgContraband]
  id: XenoborgHeavyLaserGun
  components:
  - type: HitscanBatteryAmmoProvider
    proto: RedHeavyLaser
