Repository: SerbiaStrong-220/space-station-14
Pull request #2956: KRS теперь имеет нормальный боезапас
Author: login: The-Dark-Bread
Labels: name: Changes: Localization
description: Изменение затронуло файлы ".ftl"
name: Changes: Prototypes
description: Изменение затронуло файлы ".yml" кроме неймспейса "maps"
Created: 2025-05-22T19:47:27Z | Merged: 2025-05-23T11:14:22Z

<!-- ЭТО ШАБЛОН ВАШЕГО PULL REQUEST. Текст между стрелками - это комментарии - они не будут видны в PR. -->

## Описание PR
<!-- Ниже опишите ваш Pull Request. Что он изменяет? На что еще это может повлиять? Постарайтесь описать все внесённые вами изменения! -->
Переработана система энергетического оружия для бластеров KRS и KRV. Теперь батарейки служат только как источники энергии, а выбор типа боеприпасов и режимов стрельбы осуществляется непосредственно в оружии.
Основные изменения:
Система батареек:

Убраны компоненты ProjectileBatteryAmmoProvider из всех батареек
Батарейки теперь служат только как источники энергии с разной емкостью
Оставлены только 2 типа батареек: стандартная (800 заряда) и мощная (1200 заряда)

Система оружия:
Реализовано переключение режимов стрельбы для всех бластеров: KRS, KRV и бластерная энерговинтовка из ивентов война фракций

Так же добавил новый базовый прототип для всех бластеров. И починил проблему отсутствия заряда в них https://discord.com/channels/1097181193939730453/1375012822962143302

**Медиа**
![image](https://github.com/user-attachments/assets/b05b2fcd-b2c9-406e-8675-37aee230a2fc)

<!-- Если приемлемо, добавьте скриншоты для демонстрации вашего PR. Если ваш PR представляет собой визуальное изменение, добавьте
скриншоты, иначе он может быть закрыт.

Ссылки на медиа (изображения/видео) будут добавлены в список изменений на дискорд сервере (не более 10 ссылок каждого вида и 8 МБ суммарного веса (для каждого вида)).
Всё что записано между тегами "CLIgnore" будет игнорироваться при отправке списка изменений.-->

<!--CLIgnore-->
**Проверки**
<!-- Выполнение всех следующих действий, если это приемлемо для вида изменений сильно ускорит разбор вашего PR -->
- [x] PR полностью завершён и мне не нужна помощь чтобы его закончить.
- [x] Я **ознакомился** с [наставлениями по работе с репозиторием](https://serbiastrong-220.github.io/ss220-docs/development/ss220-guidelines/) и следовал им при создании PR'а.
- [x] Я внимательно просмотрел все свои изменения и багов в них не нашёл.
- [x] Я запускал локальный сервер со своими изменениями и всё протестировал.
- [x] Я добавил скриншот/видео демонстрации PR в игре, **или** этот PR этого не требует.
<!--/CLIgnore-->

**Изменения**
:cl: TheDarkBread
- add: Добавлено переключение режимов стрельбы для всех бластеров (KRS, KRV, бластерная энерговинтовка)
- tweak: Бластерные энергоячейки теперь служат только как источник энергии и не влияют на режим стрельбы



Diff:
diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/weapons/gun/battery.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/weapons/gun/battery.ftl
index 52d96a4addab2..a2b3a5c7c47b8 100644
--- a/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/weapons/gun/battery.ftl
+++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/objects/weapons/gun/battery.ftl
@@ -32,7 +32,7 @@ ent-BlasterPowerCellPulse = усовершенствованная бласте
 
 firemode-name-laser-alt = Лазер
 firemode-name-disabler-alt = Оглушение
-
+firemode-name-blaster = Бластер
 
 ent-WeaponSynergisticEnergyGun = синергетический пистолет
     .desc = Инновационное оружие, объединяющее в себе передовые технологии и уникальный дизайн. Обладает двумя режимами стрельбы: стандартным и сконцентрированный.
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
index ddfb5c8bfba4e..13f1cf37798e4 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
@@ -53,9 +53,11 @@
     - SemiAuto
     soundGunshot:
       path: /Audio/Weapons/Guns/Gunshots/laser.ogg
-  - type: HitscanBatteryAmmoProvider
-    proto: RedLightLaser
-    fireCost: 50
+ # SS220 EDIT START - Remove HitscanBatteryAmmoProvider from base class to fix inheritance conflicts
+#  - type: HitscanBatteryAmmoProvider
+#    proto: RedLightLaser
+#    fireCost: 50
+# SS220 EDIT END
   - type: ItemSlots
     slots:
       cell_slot:
@@ -140,6 +142,11 @@
     magState: mag
     steps: 5
     zeroVisible: true
+ # SS220 EDIT START - Add HitscanBatteryAmmoProvider moved from base class
+  - type: HitscanBatteryAmmoProvider
+    proto: RedLightLaser
+    fireCost: 50
+  # SS220 EDIT END    
 
 - type: entity
   name: retro laser blaster
diff --git a/Resources/Prototypes/SS220/Catalog/Fills/Backpacks/backpack.yml b/Resources/Prototypes/SS220/Catalog/Fills/Backpacks/backpack.yml
index c0e97d6881849..23bd4e78360dc 100644
--- a/Resources/Prototypes/SS220/Catalog/Fills/Backpacks/backpack.yml
+++ b/Resources/Prototypes/SS220/Catalog/Fills/Backpacks/backpack.yml
@@ -151,8 +151,6 @@
       - id: WeaponBlasterKRV
       - id: BlasterPowerCellPulse
         amount: 3
-      - id: BlasterPowerCellDisabler
-        amount: 2
       - id: FlashlightSeclite
       - id: MedkitCombatFilled
       - id: BlueShieldGasMask
diff --git a/Resources/Prototypes/SS220/Catalog/Fills/Lockers/command.yml b/Resources/Prototypes/SS220/Catalog/Fills/Lockers/command.yml
index d22c02ef9b5ab..7d1dc630cd6c9 100644
--- a/Resources/Prototypes/SS220/Catalog/Fills/Lockers/command.yml
+++ b/Resources/Prototypes/SS220/Catalog/Fills/Lockers/command.yml
@@ -32,6 +32,4 @@
 #      amount: 1 #SS220-MinorTweaks
     - id: WeaponBlasterKRS #SS220-BlueShield Rework
     - id: BlasterPowerCellAlt
-      amount: 2
-    - id: BlasterPowerCellDisabler
-      amount: 2
+      amount: 3
\ No newline at end of file
diff --git a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Ammunition/powercells.yml b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Ammunition/powercells.yml
index 8420802e1bed0..0150beea6c1ec 100644
--- a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Ammunition/powercells.yml
+++ b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Ammunition/powercells.yml
@@ -31,30 +31,37 @@
   - type: Extractable
     juiceSolution:
       reagents:
-        - ReagentId: Zinc
-          Quantity: 5
+      - ReagentId: Zinc
+        Quantity: 5
   - type: Tag
     tags:
       - KRSPowerCell
   - type: Appearance
   - type: PowerCellVisuals
   - type: Riggable
-  - type: AmmoCounter
-  - type: ProjectileBatteryAmmoProvider
-    proto: BulletBlaster
-    fireCost: 32
 
+# Standard 800 charge battery
 - type: entity
   parent: KRSPowerCell
   id: BlasterPowerCellAlt
   name: blaster power cell
-  description: It contains a lot more pain than you ever dreamed of.
-  suffix:  Laser
+  description: Standard energy cell for blaster weapons.
+  suffix: Standard
+
+# Powerful 1200 charge battery
+- type: entity
+  parent: KRSPowerCell
+  id: BlasterPowerCellPulse
+  name: blaster power cell
+  description: High-capacity energy cell for advanced blaster weapons.
+  suffix: High-Capacity
   components:
-  - type: ProjectileBatteryAmmoProvider
-    proto: BulletBlasterAlt
-    fireCost: 40
+  - type: Battery
+    pricePerJoule: 0.15
+    maxCharge: 1200
+    startingCharge: 1200
 
+# Blank version for crafting/printing
 - type: entity
   id: BlasterPowerCellAltPrinted
   suffix: Empty
@@ -72,36 +79,3 @@
   - type: Battery
     maxCharge: 800
     startingCharge: 0
-
-- type: entity
-  parent: KRSPowerCell
-  id: BlasterPowerCellDisabler
-  name: blaster power cell
-  description: It contains a lot more pain than you ever dreamed of.
-  suffix: Disabler
-  components:
-  - type: Sprite
-    sprite: SS220/Objects/Weapons/Guns/Ammunition/Magazine/krs_magblaster_disabler.rsi
-    layers:
-    - map: [ "enum.PowerCellVisualLayers.Base" ]
-      state: base
-    - map: [ "enum.PowerCellVisualLayers.Unshaded" ]
-      state: o2
-      shader: unshaded
-  - type: ProjectileBatteryAmmoProvider
-    proto: BulletDisablerSmg
-    fireCost: 24
-
-- type: entity
-  parent: KRSPowerCell
-  id: BlasterPowerCellPulse
-  name: blaster power cell
-  description: It contains a lot more pain than you ever dreamed of.
-  components:
-  - type: Battery
-    pricePerJoule: 0.15
-    maxCharge: 1200
-    startingCharge: 1200
-  - type: ProjectileBatteryAmmoProvider
-    proto: BulletBlasterPulse
-    fireCost: 48
diff --git a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
index 7f47c742f8138..8a2d394309c3c 100644
--- a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
+++ b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
@@ -46,9 +46,47 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
@@ -56,14 +94,24 @@
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-blaster
+        fireCost: 40
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
   - type: ItemSlots
     slots:
-      gun_magazine:
+      cell_slot:
         name: Magazine
         startingItem: BlasterPowerCellAlt
         insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
@@ -74,16 +122,33 @@
 
 - type: entity
   id: WeaponBlasterKRV
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: KRV
   description: An advanced blaster rifle. Used by special operatives.
   suffix: Blaster
   components:
   - type: Item
     size: Large
+  - type: Gun
+    fireRate: 6.5
+    selectedMode: FullAuto
+    availableModes:
+      - SemiAuto
+      - FullAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterPulse
+    fireCost: 48
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterPulse
+        name: firemode-name-blaster
+        fireCost: 48
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
   - type: ItemSlots
     slots:
-      gun_magazine:
+      cell_slot:
         name: Magazine
         startingItem: BlasterPowerCellPulse
         insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
diff --git a/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/Ammunitions/powercells.yml b/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/Ammunitions/powercells.yml
index 6c555c1e68e4a..d9e42edcd8401 100644
--- a/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/Ammunitions/powercells.yml
+++ b/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/Ammunitions/powercells.yml
@@ -1,6 +1,5 @@
 # © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
 
-#Base
 - type: entity
   parent: BaseItem
   id: BlasterPowerCell
@@ -33,15 +32,11 @@
   - type: Extractable
     juiceSolution:
       reagents:
-        - ReagentId: Zinc
-          Quantity: 5
+      - ReagentId: Zinc
+        Quantity: 5
   - type: Tag
     tags:
-      - BlasterPowerCell
+    - BlasterPowerCell
   - type: Appearance
   - type: PowerCellVisuals
-  - type: Riggable
-  - type: AmmoCounter
-  - type: ProjectileBatteryAmmoProvider
-    proto: BulletBlaster
-    fireCost: 32
+  - type: Riggable
\ No newline at end of file
diff --git a/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml b/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
index 02ea5b2db779a..499b1b7ba78f9 100644
--- a/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
+++ b/Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
@@ -1,58 +1,39 @@
+# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+
 - type: entity
   id: WeaponBlaster
-  parent: BaseWeaponPowerCell
+  parent: BaseWeaponBlaster
   name: бластерная энерговинтовка
   description: Штурмовая модификация старой надежной винтовки. Режим оглушения был заменен на автоматический режим стрельбы. Наслаждайтесь.
   suffix: Ebent, Shitspawn, FractWar
   components:
-  - type: Sprite
-    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
-    layers:
-    - state: base
-      map: ["enum.GunVisualLayers.Base"]
-    - state: mag-5
-      map: ["enum.GunVisualLayers.Mag"]
-    - state: mag-unshaded-5
-      map: ["enum.GunVisualLayers.MagUnshaded"]
-      shader: unshaded
-  - type: Clothing
-    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
-    quickEquip: false
-    slots:
-    - Back
-    - suitStorage
-  - type: MagazineVisuals
-    magState: mag
-    steps: 6
-    zeroVisible: true
-  - type: Wieldable
-  - type: GunWieldBonus
-    minAngle: -2
-    maxAngle: -13
   - type: Gun
     fireRate: 6.5
-    minAngle: 17
-    maxAngle: 29
-    angleIncrease: 3
-    angleDecay: 16
     selectedMode: FullAuto
     availableModes:
-    - SemiAuto
-    - FullAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+      - FullAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterPulse
+    fireCost: 48
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterPulse
+        name: firemode-name-enhanced
+        fireCost: 48
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletBlaster
+        name: firemode-name-blaster
+        fireCost: 32
   - type: ItemSlots
     slots:
-      gun_magazine:
+      cell_slot:
         name: Magazine
         startingItem: BlasterPowerCell
         insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
         ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
-        priority: 1
         whitelist:
           tags:
             - BlasterPowerCell
-  - type: ContainerContainer
-    containers:
-      cell_slot: !type:ContainerSlot
-      gun_magazine: !type:ContainerSlot
+


Reviews:
user: login: EstKemran
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-22T19:59:51Z
user: login: EstKemran
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-22T20:01:12Z
user: login: The-Dark-Bread
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-22T20:04:53Z
user: login: EstKemran
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-22T20:07:42Z
user: login: The-Dark-Bread
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-22T20:11:04Z
user: login: EstKemran
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-22T20:22:06Z
user: login: Kirus59
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T05:15:25Z
user: login: Kirus59
body: Перенеси компонент `HitscanBatteryAmmoProvider` с `BaseWeaponPowerCell` (закомментив) в `WeaponLaserSvalinn`.
В абстрактном общем прототипе провайдера по идее быть не должно (я проебался, увы)
state: CHANGES_REQUESTED
author_association: NONE
submitted_at: 2025-05-23T05:20:39Z
user: login: Kirus59
state: CHANGES_REQUESTED
author_association: NONE
submitted_at: 2025-05-23T05:31:12Z
user: login: The-Dark-Bread
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T06:05:58Z
user: login: The-Dark-Bread
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T06:07:04Z
user: login: Kirus59
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T06:08:20Z
user: login: Kirus59
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T06:13:04Z
user: login: EstKemran
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T10:27:17Z
user: login: Kirus59
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T10:29:44Z
user: login: Kirus59
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T10:43:19Z
user: login: The-Dark-Bread
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-23T10:55:40Z
user: login: Kirus59
state: APPROVED
author_association: NONE
submitted_at: 2025-05-23T11:02:16Z

Review comments:
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 4
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: EstKemran
body: Как 6.5 превратилось 4? 🥹
created_at: 2025-05-22T19:59:51Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 4
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 4
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: EstKemran
body: Йомайо, куда такое снижение скорострельности
created_at: 2025-05-22T20:01:12Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 4
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 4
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: The-Dark-Bread
body: > Йомайо, куда делась такая скорострельность?

Я смотрел на батарейки, наверное не туда глянул, вот и косякнул. Сразу сказал мб проблема в циферка у меня
created_at: 2025-05-22T20:04:53Z
author_association: NONE
diff_hunk: @@ -1,58 +1,37 @@
+# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+
 - type: entity
   id: WeaponBlaster
-  parent: BaseWeaponPowerCell
+  parent: BaseWeaponBlaster
   name: бластерная энерговинтовка
path: Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
user: login: EstKemran
body: Тут ты сделал полную копию бластера КРВ. Однако это два разных оружия, со своими задумками и балансом. Надо бы вернуть, но подождем, что скажет Кирус.
created_at: 2025-05-22T20:07:42Z
author_association: NONE
diff_hunk: @@ -1,58 +1,37 @@
+# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+
 - type: entity
   id: WeaponBlaster
-  parent: BaseWeaponPowerCell
+  parent: BaseWeaponBlaster
   name: бластерная энерговинтовка
path: Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
user: login: The-Dark-Bread
body: > Тут ты сделал полную копию бластера КРВ. Однако это два разных оружия, со своими задумками и балансом. Надо бы вернуть, но подождем, что скажет Кирус.

Не знаю, какая там была задумка, но КРС/КРВ наследовали всё из неё, по этому и подумал, что сделать одну базу будет логично. 
created_at: 2025-05-22T20:11:04Z
author_association: NONE
diff_hunk: @@ -1,58 +1,37 @@
+# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+
 - type: entity
   id: WeaponBlaster
-  parent: BaseWeaponPowerCell
+  parent: BaseWeaponBlaster
   name: бластерная энерговинтовка
path: Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
user: login: EstKemran
body: > Не знаю, какая там была задумка, но КРС/КРВ наследовали всё из неё, по этому и подумал, что сделать одну базу будет логично.

С этим проблем нет. Проблема не в одной базе. 
Но теперь у ивентового бластера новый проджектайл, которым он может стреляет. Теперь вместо `26` урона он может наносить `62`. Что ну практически 3 раза больше и ломает баланс между "НТ-Сидикат-СССП"
_P.S. Не копия КРВ оказывается, ошибся 😅_
created_at: 2025-05-22T20:22:06Z
author_association: NONE
diff_hunk: @@ -1,58 +1,37 @@
+# © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt
+
 - type: entity
   id: WeaponBlaster
-  parent: BaseWeaponPowerCell
+  parent: BaseWeaponBlaster
   name: бластерная энерговинтовка
path: Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/blasters.yml
user: login: Kirus59
body: > С этим проблем нет. Проблема не в одной базе. Но теперь у ивентового бластера новый проджектайл, которым он может стреляет. Теперь вместо `26` урона он может наносить `62`. Что ну практически 3 раза больше и ломает баланс между "НТ-Сидикат-СССП" _P.S. Не копия КРВ оказывается, ошибся 😅_

Та пока похуй, перед ивентом поменяется
created_at: 2025-05-23T05:15:25Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: Думаю лучше назвать что-то типо "Болт", а не лазер (это же не лазер де-факто)
created_at: 2025-05-23T05:25:56Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
   - type: ItemSlots
     slots:
-      gun_magazine:
-        name: Magazine
+      cell_slot:
         startingItem: BlasterPowerCellAlt
-        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
-        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
         whitelist:
           tags:
             - KRSPowerCell
 
 - type: entity
   id: WeaponBlasterKRV
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: KRV
   description: An advanced blaster rifle. Used by special operatives.
   suffix: Blaster
   components:
   - type: Item
     size: Large
+  - type: Gun
+    fireRate: 6.5
+    selectedMode: FullAuto
+    availableModes:
+      - SemiAuto
+      - FullAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterPulse
+    fireCost: 48
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterPulse
+        name: firemode-name-laser
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: И тут тоже
created_at: 2025-05-23T05:26:06Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
   - type: ItemSlots
     slots:
-      gun_magazine:
-        name: Magazine
+      cell_slot:
         startingItem: BlasterPowerCellAlt
-        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
-        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: А это чоу убрал?
created_at: 2025-05-23T05:27:04Z
author_association: NONE
diff_hunk: @@ -33,15 +32,12 @@
   - type: Extractable
     juiceSolution:
       reagents:
-        - ReagentId: Zinc
-          Quantity: 5
+      - ReagentId: Zinc
+        Quantity: 5
   - type: Tag
     tags:
-      - BlasterPowerCell
+    - BlasterPowerCell
   - type: Appearance
   - type: PowerCellVisuals
   - type: Riggable
-  - type: AmmoCounter
-  - type: ProjectileBatteryAmmoProvider
-    proto: BulletBlaster
-    fireCost: 32
+  - type: AmmoCounter
path: Resources/Prototypes/SS220/Shitspawn/FractWarEbent/Weapons/Guns/Ammunitions/powercells.yml
user: login: Kirus59
body: `AmmoCounter` без `AmmoProvider` работать не будет, так что его бы убрать
created_at: 2025-05-23T05:28:13Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: @EstKemran Во всех режимах должна быть одинаковая скорострельность?
created_at: 2025-05-23T05:30:41Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
   - type: ItemSlots
     slots:
-      gun_magazine:
-        name: Magazine
+      cell_slot:
         startingItem: BlasterPowerCellAlt
-        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
-        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
         whitelist:
           tags:
             - KRSPowerCell
 
 - type: entity
   id: WeaponBlasterKRV
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: KRV
   description: An advanced blaster rifle. Used by special operatives.
   suffix: Blaster
   components:
   - type: Item
     size: Large
+  - type: Gun
+    fireRate: 6.5
+    selectedMode: FullAuto
+    availableModes:
+      - SemiAuto
+      - FullAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterPulse
+    fireCost: 48
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterPulse
+        name: firemode-name-laser
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: The-Dark-Bread
body: > И тут тоже

По сути это бластерная винтовка, и стреляет она бластерным зарядом. Может как вирант просто "Бластер"
created_at: 2025-05-23T06:05:58Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
   - type: ItemSlots
     slots:
-      gun_magazine:
-        name: Magazine
+      cell_slot:
         startingItem: BlasterPowerCellAlt
-        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
-        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: The-Dark-Bread
body: > А это чоу убрал?

Это есть в базовом прототипе BaseWeaponPowerCell. Убрал, чтобы не дублировать код
created_at: 2025-05-23T06:07:03Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
   - type: ItemSlots
     slots:
-      gun_magazine:
-        name: Magazine
+      cell_slot:
         startingItem: BlasterPowerCellAlt
-        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
-        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
         whitelist:
           tags:
             - KRSPowerCell
 
 - type: entity
   id: WeaponBlasterKRV
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: KRV
   description: An advanced blaster rifle. Used by special operatives.
   suffix: Blaster
   components:
   - type: Item
     size: Large
+  - type: Gun
+    fireRate: 6.5
+    selectedMode: FullAuto
+    availableModes:
+      - SemiAuto
+      - FullAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterPulse
+    fireCost: 48
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterPulse
+        name: firemode-name-laser
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: > По сути это бластерная винтовка, и стреляет она бластерным зарядом. Может как вирант просто "Бластер"

Можешь и так назвать, но точно не лазер
created_at: 2025-05-23T06:08:20Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
   - type: ItemSlots
     slots:
-      gun_magazine:
-        name: Magazine
+      cell_slot:
         startingItem: BlasterPowerCellAlt
-        insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
-        ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: > Это есть в базовом прототипе BaseWeaponPowerCell. Убрал, чтобы не дублировать код

Наследование компонентом в энтити-прототипе работает по полям компонентов.
Т.е. если в дочернем прототипе изменено значение поля - то для дочернего будет полностью перезаписано новое значение.

В компоненте `ItemSlots` полем является `slots:`, а всё что ниже - значения этого поля
https://github.com/SerbiaStrong-220/space-station-14/blob/2a9a6335d11721116bca88c45c844efc53d14faf/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml#L59-L69

Например в прототипе `WeaponBlasterKRV` ты полностью перезаписываешь это поле
![image](https://github.com/user-attachments/assets/e95a3c3e-a7f5-4009-b0c4-f89333790968)

И соответственно эти звуки не наследуются
created_at: 2025-05-23T06:13:04Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: EstKemran
body: Да. 6.5
created_at: 2025-05-23T10:27:17Z
author_association: NONE
diff_hunk: @@ -46,48 +46,116 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-laser
+        fireCost: 40
+        gunModifiers:
+          fireRate: 6.5
+      - proto: BulletDisablerSmg
+        name: firemode-name-disabler
+        fireCost: 24
+        gunModifiers:
+          fireRate: 3
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: @The-Dark-Bread убери изменение скорострельности при смене режимов
created_at: 2025-05-23T10:29:44Z
author_association: NONE
diff_hunk: @@ -46,24 +46,74 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-blaster
+        fireCost: 40
+        gunModifiers:
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: Kirus59
body: Пустым лучше не оставлять, если иных модификаторов нет - то убери `gunModifiers:` тогда
created_at: 2025-05-23T10:43:19Z
author_association: NONE
diff_hunk: @@ -46,24 +46,74 @@
   - type: StaticPrice
     price: 750
 
+#Base KR
+- type: entity
+  id: BaseWeaponBlaster
+  parent: BaseWeaponPowerCell
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    layers:
+      - state: base
+        map: ["enum.GunVisualLayers.Base"]
+      - state: mag-5
+        map: ["enum.GunVisualLayers.Mag"]
+      - state: mag-unshaded-5
+        map: ["enum.GunVisualLayers.MagUnshaded"]
+        shader: unshaded
+  - type: Clothing
+    sprite: SS220/Shitspawn/FractWarEbent/Objects/Weapons/Guns/Battery/ert_blaster.rsi
+    quickEquip: false
+    slots:
+      - Back
+      - suitStorage
+  - type: MagazineVisuals
+    magState: mag
+    steps: 6
+    zeroVisible: true
+  - type: Wieldable
+  - type: GunWieldBonus
+    minAngle: -2
+    maxAngle: -13
+  - type: Gun
+    minAngle: 17
+    maxAngle: 29
+    angleIncrease: 3
+    angleDecay: 16
+    soundGunshot:
+      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+
 - type: entity
   id: WeaponBlasterKRS
-  parent: WeaponBlaster
+  parent: BaseWeaponBlaster
   name: krs
   description: An old reliable blaster rifle. There is only a semi-automatic type of shooting.
   suffix: Blaster
   components:
   - type: Item
     size: Large
   - type: Gun
+    fireRate: 6.5
     selectedMode: SemiAuto
     availableModes:
-    - SemiAuto
-    soundGunshot:
-      path: /Audio/SS220/Weapons/Guns/Gunshots/blaster_nt.ogg
+      - SemiAuto
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletBlasterAlt
+    fireCost: 40
+  - type: BatteryWeaponFireModes
+    fireModes:
+      - proto: BulletBlasterAlt
+        name: firemode-name-blaster
+        fireCost: 40
+        gunModifiers:
path: Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
user: login: The-Dark-Bread
body: > Пустым лучше не оставлять, если иных модификаторов нет - то убери `gunModifiers:` тогда

Проглядел немного, исправил
created_at: 2025-05-23T10:55:40Z
author_association: NONE

PR comments:
user: login: The-Dark-Bread
created_at: 2025-05-22T19:49:52Z
body: У меня заболела голова, пока я все это делал... Дай бог, не накосячил. Вроде везде убрал лишние/прошлые батарейки станеры.
Может не угадал с цифрами для оружия, это бы проверить. 
Все оружие стреляет, меняет режим.
Но все это я буду обдумывать завтра...
author_association: NONE
user: login: ReeZer2
created_at: 2025-05-22T21:12:41Z
body: У тебя в `BaseWeaponPowerCell` присутствует другой тип патронов `HitscanBatteryAmmoProvider` , когда в других ты используешь `ProjectileBatteryAmmoProvider` . При наследовании от этого родителя `parent: BaseWeaponPowerCell` - `HitscanBatteryAmmoProvider` так же перенимается на прототип. Из-за чего чеки то и упали. Либо какого-то другого в родители выводить, либо Кирус уже точнее подскажет про другие варианты
author_association: NONE
user: login: The-Dark-Bread
created_at: 2025-05-23T07:02:14Z
body: По сути осталось решить, что делать с ивентовым КРС, а то я ему сделал переключение режимов тоже, но это по сути ему и не нужно и он должен просто стрелять автоматическим режимом?
author_association: NONE
user: login: Kirus59
created_at: 2025-05-23T07:39:46Z
body: > По сути осталось решить, что делать с ивентовым КРС, а то я ему сделал переключение режимов тоже, но это по сути ему и не нужно и он должен просто стрелять автоматическим режимом?

Ничего не делать, ивентовое не используется в обычных раундах, а перед ивентами всё равно будет меняться
author_association: NONE
user: login: The-Dark-Bread
created_at: 2025-05-23T10:23:08Z
body: @Kirus59 у меня проблема с чеками - тесты падают с ошибкой в системе ксеноархеологии.
Возможно проблема в том, что я перенес ProjectileBatteryAmmoProvider из батареек в оружие. При удалении снарядов в тесте система тела (SharedBodySystem) ошибочно воспринимает их как части тела.
Скорее всего когда все было в батарейках, снаряды создавались/удалялись в контексте батареи и система тела их не трогала. Теперь же все в оружия - система тела думает что это части тела при удалении и чеки падают?
at Content.Shared.Body.Systems.SharedBodySystem.OnBodyPartRemoved
at Content.Server.Body.Systems.BodySystem.RemovePart
at Content.Shared.Body.Systems.SharedBodySystem.PartRemoveDamage
author_association: NONE
user: login: Kirus59
created_at: 2025-05-23T10:28:21Z
body: > @Kirus59 у меня проблема с чеками - тесты падают с ошибкой в системе ксеноархеологии. Возможно проблема в том, что я перенес ProjectileBatteryAmmoProvider из батареек в оружие. При удалении снарядов в тесте система тела (SharedBodySystem) ошибочно воспринимает их как части тела. Скорее всего когда все было в батарейках, снаряды создавались/удалялись в контексте батареи и система тела их не трогала. Теперь же все в оружия - система тела думает что это части тела при удалении и чеки падают? at Content.Shared.Body.Systems.SharedBodySystem.OnBodyPartRemoved at Content.Server.Body.Systems.BodySystem.RemovePart at Content.Shared.Body.Systems.SharedBodySystem.PartRemoveDamage

![image](https://github.com/user-attachments/assets/4692fec1-1283-4268-8a5e-ca0644a519da)

author_association: NONE