]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Reorganize security lathe recipes, add category filters (#35594)
authorāda <ss.adasts@gmail.com>
Fri, 18 Apr 2025 03:52:04 +0000 (22:52 -0500)
committerGitHub <noreply@github.com>
Fri, 18 Apr 2025 03:52:04 +0000 (13:52 +1000)
* split

* touchup

* touchup

* double check

* minor rename

Resources/Locale/en-US/lathe/lathe-categories.ftl
Resources/Prototypes/Recipes/Lathes/ammo.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Lathes/categories.yml
Resources/Prototypes/Recipes/Lathes/security.yml

index c6e300e0080ae7c2589f04e1449755fa85595d5f..8c118e51adf1e059e68c2a7d3016edc4f490a3af 100644 (file)
@@ -1,6 +1,6 @@
 # Generic
-lathe-category-ammo = Ammo
 lathe-category-circuitry = Circuitry
+lathe-category-clothing = Clothing
 lathe-category-lights = Lights
 lathe-category-mechs = Mechs
 lathe-category-parts = Parts
@@ -13,6 +13,11 @@ lathe-category-food = Food
 lathe-category-chemicals = Chemicals
 lathe-category-materials = Materials
 
+# Sec
+lathe-category-ammo = Ammo
+lathe-category-boxes = Boxes
+lathe-category-magazines = Magazines
+
 # Uniform
 lathe-category-bedsheets = Bedsheets
 lathe-category-carpets = Carpets
diff --git a/Resources/Prototypes/Recipes/Lathes/ammo.yml b/Resources/Prototypes/Recipes/Lathes/ammo.yml
new file mode 100644 (file)
index 0000000..908395a
--- /dev/null
@@ -0,0 +1,490 @@
+# Base prototypes
+
+- type: latheRecipe
+  abstract: true
+  id: BaseAmmoRecipe
+  categories:
+  - Ammo
+  completetime: 5
+
+- type: latheRecipe
+  abstract: true
+  parent: BaseAmmoRecipe
+  id: BaseAmmoBoxRecipe
+  categories:
+  - Ammo
+  - Boxes
+
+- type: latheRecipe
+  abstract: true
+  id: BaseEmptyAmmoRecipe
+  categories:
+  - Magazines
+  completetime: 1
+
+## Recipes
+
+# .20 Rifle
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: MagazineRifleEmpty
+  result: MagazineRifleEmpty
+  materials:
+    Steel: 25
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineRifle
+  result: MagazineRifle
+  materials:
+    Steel: 475
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineRifleIncendiary
+  result: MagazineRifleIncendiary
+  materials:
+    Steel: 25
+    Plastic: 450
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineRiflePractice
+  result: MagazineRiflePractice
+  materials:
+    Steel: 175
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineRifleUranium
+  result: MagazineRifleUranium
+  materials:
+    Steel: 25
+    Plastic: 300
+    Uranium: 300
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxRifle
+  result: MagazineBoxRifle
+  materials:
+    Steel: 750
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxRifleIncendiary
+  result: MagazineBoxRifleIncendiary
+  materials:
+    Plastic: 750
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxRiflePractice
+  result: MagazineBoxRiflePractice
+  materials:
+    Steel: 250
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxRifleUranium
+  result: MagazineBoxRifleUranium
+  materials:
+    Plastic: 500
+    Uranium: 500
+
+# .30 Rifle
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: MagazineLightRifleEmpty
+  result: MagazineLightRifleEmpty
+  materials:
+    Steel: 25
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineLightRifle
+  result: MagazineLightRifle
+  materials:
+    Steel: 565
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineLightRifleIncendiary
+  result: MagazineLightRifleIncendiary
+  materials:
+    Steel: 25
+    Plastic: 540
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineLightRiflePractice
+  result: MagazineLightRiflePractice
+  materials:
+    Steel: 205
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineLightRifleUranium
+  result: MagazineLightRifleUranium
+  materials:
+    Steel: 25
+    Plastic: 360
+    Uranium: 360
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxLightRifle
+  result: MagazineBoxLightRifle
+  materials:
+    Steel: 900
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxLightRifleIncendiary
+  result: MagazineBoxLightRifleIncendiary
+  materials:
+    Plastic: 900
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxLightRiflePractice
+  result: MagazineBoxLightRiflePractice
+  materials:
+    Steel: 300
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxLightRifleUranium
+  result: MagazineBoxLightRifleUranium
+  materials:
+    Plastic: 600
+    Uranium: 600
+
+# .35 Auto
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: MagazinePistolEmpty
+  result: MagazinePistolEmpty
+  materials:
+    Steel: 25
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistol
+  result: MagazinePistol
+  materials:
+    Steel: 145
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolIncendiary
+  result: MagazinePistolIncendiary
+  materials:
+    Steel: 25
+    Plastic: 120
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolPractice
+  result: MagazinePistolPractice
+  materials:
+    Steel: 85
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolUranium
+  result: MagazinePistolUranium
+  materials:
+    Steel: 25
+    Plastic: 65
+    Uranium: 120
+
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: MagazinePistolSubMachineGunEmpty
+  result: MagazinePistolSubMachineGunEmpty
+  materials:
+    Steel: 30
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolSubMachineGun
+  result: MagazinePistolSubMachineGun
+  materials:
+    Steel: 300
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolSubMachineGunIncendiary
+  result: MagazinePistolSubMachineGunIncendiary
+  materials:
+    Steel: 25
+    Plastic: 275
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolSubMachineGunUranium
+  result: MagazinePistolSubMachineGunUranium
+  materials:
+    Steel: 25
+    Plastic: 250
+    Uranium: 250
+
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: MagazinePistolSubMachineGunTopMountedEmpty
+  result: MagazinePistolSubMachineGunTopMountedEmpty
+  materials:
+    Steel: 30
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazinePistolSubMachineGunTopMounted
+  result: MagazinePistolSubMachineGunTopMounted
+  materials:
+    Steel: 300
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxPistol
+  result: MagazineBoxPistol
+  materials:
+    Steel: 600
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxPistolIncendiary
+  result: MagazineBoxPistolIncendiary
+  materials:
+    Plastic: 600
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxPistolPractice
+  result: MagazineBoxPistolPractice
+  materials:
+    Steel: 300
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxPistolUranium
+  result: MagazineBoxPistolUranium
+  materials:
+    Plastic: 300
+    Uranium: 600
+
+# .45 Magnum
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: SpeedLoaderMagnumEmpty
+  result: SpeedLoaderMagnumEmpty
+  materials:
+    Steel: 50
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: SpeedLoaderMagnum
+  result: SpeedLoaderMagnum
+  materials:
+    Steel: 190
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: SpeedLoaderMagnumIncendiary
+  result: SpeedLoaderMagnumIncendiary
+  materials:
+    Steel: 50
+    Plastic: 150
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: SpeedLoaderMagnumPractice
+  result: SpeedLoaderMagnumPractice
+  materials:
+    Steel: 90
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: SpeedLoaderMagnumUranium
+  result: SpeedLoaderMagnumUranium
+  materials:
+    Steel: 50
+    Plastic: 150
+    Uranium: 110
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxMagnum
+  result: MagazineBoxMagnum
+  materials:
+    Steel: 240
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxMagnumIncendiary
+  result: MagazineBoxMagnumIncendiary
+  materials:
+    Plastic: 240
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxMagnumPractice
+  result: MagazineBoxMagnumPractice
+  materials:
+    Steel: 60
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: MagazineBoxMagnumUranium
+  result: MagazineBoxMagnumUranium
+  materials:
+    Plastic: 240
+    Uranium: 180
+
+# .50 Shell
+- type: latheRecipe
+  parent: BaseEmptyAmmoRecipe
+  id: MagazineShotgunEmpty
+  result: MagazineShotgunEmpty
+  materials:
+    Steel: 50
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineShotgun
+  result: MagazineShotgun
+  materials:
+    Steel: 240
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineShotgunIncendiary
+  result: MagazineShotgunIncendiary
+  materials:
+    Steel: 100
+    Plastic: 190
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineShotgunBeanbag
+  result: MagazineShotgunBeanbag
+  materials:
+    Steel: 150
+    Plastic: 140
+
+- type: latheRecipe
+  parent: BaseAmmoRecipe
+  id: MagazineShotgunSlug
+  result: MagazineShotgunSlug
+  materials:
+    Steel: 190
+    Plastic: 100
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxLethalshot
+  result: BoxLethalshot
+  materials:
+    Steel: 320
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxShotgunIncendiary
+  result: BoxShotgunIncendiary
+  materials:
+    Steel: 80
+    Plastic: 320
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxShotgunPractice
+  result: BoxShotgunPractice
+  materials:
+    Steel: 80
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxShotgunUranium
+  result: BoxShotgunUranium
+  materials:
+    Plastic: 320
+    Uranium: 240
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxBeanbag
+  result: BoxBeanbag
+  materials:
+    Steel: 160
+    Plastic: 240
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxShotgunSlug
+  result: BoxShotgunSlug
+  materials:
+    Steel: 240
+    Plastic: 160
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxShellTranquilizer
+  result: BoxShellTranquilizer
+  materials:
+    Plastic: 240
+    Steel: 160
+    Glass: 80
+    Plasma: 160
+    Silver: 80
+
+- type: latheRecipe
+  parent: BaseAmmoBoxRecipe
+  id: BoxShotgunFlare
+  result: BoxShotgunFlare
+  materials:
+    Steel: 80
+    Plastic: 80
+
+# Encampment ammo
+- type: latheRecipe
+  id: MagazineGrenadeEmpty
+  result: MagazineGrenadeEmpty
+  categories:
+  - Magazines
+  completetime: 3
+  materials:
+    Steel: 150
+    Plastic: 50
+
+- type: latheRecipe
+  id: GrenadeEMP
+  result: GrenadeEMP
+  categories:
+  - Ammo
+  completetime: 3
+  materials:
+    Steel: 150
+    Plastic: 100
+    Glass: 20
+
+- type: latheRecipe
+  id: GrenadeBlast
+  result: GrenadeBlast
+  categories:
+  - Ammo
+  completetime: 3
+  materials:
+    Steel: 450
+    Plastic: 300
+    Gold: 150
+
+- type: latheRecipe
+  id: GrenadeFlash
+  result: GrenadeFlash
+  categories:
+  - Ammo
+  completetime: 3
+  materials:
+    Steel: 150
+    Plastic: 100
+    Glass: 20
index 486d8a090df463ddd4ebaf444e981584b637ef84..b0b607adb5d0049ce20b7efcd9b3d5cca08f04b8 100644 (file)
@@ -1,12 +1,12 @@
 # Generic
-- type: latheCategory
-  id: Ammo
-  name: lathe-category-ammo
-
 - type: latheCategory
   id: Circuitry
   name: lathe-category-circuitry
 
+- type: latheCategory
+  id: Clothing
+  name: lathe-category-clothing
+
 - type: latheCategory
   id: Lights
   name: lathe-category-lights
   id: Materials
   name: lathe-category-materials
 
+# Sec
+- type: latheCategory
+  id: Ammo
+  name: lathe-category-ammo
+
+- type: latheCategory
+  id: Boxes
+  name: lathe-category-boxes
+
+- type: latheCategory
+  id: Magazines
+  name: lathe-category-magazines
+
 # Uniform printer
 - type: latheCategory
   id: Bedsheets
index 864edcba6ea036ab6b82c45002001ba9d9f84661..5a04fb739655ff743d533b7ef08eaa1f80ff5a43 100644 (file)
 
 - type: latheRecipe
   abstract: true
-  id: BaseWeaponRecipe
+  id: BaseShieldRecipe
   categories:
-  - Weapons
-  completetime: 2
-  materials:
-    Steel: 300
-    Plastic: 300
+  - Tools
+  completetime: 4
 
 - type: latheRecipe
   abstract: true
-  parent: BaseWeaponRecipe
-  id: BaseWeaponRecipeLong
+  id: BaseTargetRecipe
+  categories:
+  - Tools
   completetime: 5
+  applyMaterialDiscount: false # ingredients dropped when destroyed
+  materials:
+    Steel: 500
 
 - type: latheRecipe
   abstract: true
-  id: BaseAmmoRecipe
+  id: BaseWeaponRecipe
   categories:
-  - Ammo
-  completetime: 5
+  - Weapons
 
 - type: latheRecipe
   abstract: true
-  parent: BaseAmmoRecipe
-  id: BaseEmptyAmmoRecipe
-  completetime: 1
-
-# Recipes
-
-- type: latheRecipe
-  id: Handcuffs
-  result: Handcuffs
-  completetime: 2
-  materials:
-    Steel: 300
-
-- type: latheRecipe
-  id: Zipties
-  result: Zipties
+  parent: BaseWeaponRecipe
+  id: BaseWeaponRecipeMelee
   completetime: 2
-  materials:
-    Plastic: 200
 
 - type: latheRecipe
+  abstract: true
   parent: BaseWeaponRecipe
-  id: Stunbaton
-  result: Stunbaton
+  id: BaseWeaponRecipePractice
+  completetime: 4
 
 - type: latheRecipe
+  abstract: true
   parent: BaseWeaponRecipe
-  id: Truncheon
-  result: Truncheon
+  id: BaseWeaponRecipeLong
+  completetime: 5
 
 - type: latheRecipe
+  abstract: true
   parent: BaseWeaponRecipe
-  id: CombatKnife
-  result: CombatKnife
-  materials:
-    Steel: 250
-    Plastic: 100
-
-- type: latheRecipe
-  parent: BaseWeaponRecipeLong
-  id: WeaponLaserCarbine
-  result: WeaponLaserCarbine
-  materials:
-    Steel: 2000
-    Glass: 800
-    Plastic: 500
-
-- type: latheRecipe
-  parent: BaseWeaponRecipeLong
-  id: WeaponAdvancedLaser
-  result: WeaponAdvancedLaser
-  materials:
-    Steel: 1500
-    Glass: 1000
-    Gold: 850
-
-- type: latheRecipe
-  parent: BaseWeaponRecipeLong
-  id: WeaponLaserCannon
-  result: WeaponLaserCannon
-  materials:
-    Steel: 1250
-    Plastic: 750
-    Gold: 500
-
-- type: latheRecipe
-  parent: BaseWeaponRecipeLong
-  id: WeaponTemperatureGun
-  result: WeaponTemperatureGun
-  materials:
-    Steel: 2000
-    Glass: 500
-    Plastic: 500
-    Gold: 500
+  id: BaseWeaponRecipeSidearm
+  completetime: 6
 
-- type: latheRecipe
-  parent: BaseWeaponRecipeLong
-  id: WeaponXrayCannon
-  result: WeaponXrayCannon
-  materials:
-    Steel: 1500
-    Glass: 500
-    Plastic: 250
-    Gold: 100
+## Recipes
 
+# Clothing
 - type: latheRecipe
   id: ClothingBackpackElectropack
   result: ClothingBackpackElectropack
+  categories:
+  - Clothing
   completetime: 4
   materials:
     Steel: 500
     Plastic: 250
     Cloth: 500
 
-- type: latheRecipe
-  id: ForensicPad
-  result: ForensicPad
-  completetime: 4
-  materials:
-    Plastic: 100
-
 - type: latheRecipe
   id: ClothingEyesHudSecurity
   result: ClothingEyesHudSecurity
+  categories:
+  - Clothing
   completetime: 2
   materials:
     Steel: 300
     Glass: 200
 
 - type: latheRecipe
-  id: HoloprojectorSecurity
-  result: HoloprojectorSecurityEmpty
-  completetime: 2
+  id: PortableRecharger
+  result: PortableRecharger
+  categories:
+  - Clothing
+  completetime: 15
   materials:
-    Steel: 300
-    Glass: 50
-    Plastic: 50
+    Steel: 2000
+    Uranium: 2000
+    Plastic: 1000
+    Plasma: 500
+    Glass: 500
 
+# Shields
 - type: latheRecipe
+  parent: BaseShieldRecipe
   id: RiotShield
   result: RiotShield
-  completetime: 4
   materials:
     Steel: 400
     Glass: 400
 
 - type: latheRecipe
+  parent: BaseShieldRecipe
   id: TelescopicShield
   result: TelescopicShield
-  completetime: 4
   materials:
     Steel: 300
     Glass: 800
 
+# Targets
 - type: latheRecipe
-  id: Flash
-  result: Flash
-  completetime: 2
-  materials:
-    Glass: 100
-    Plastic: 200
-    Steel: 100
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxShellTranquilizer
-  result: BoxShellTranquilizer
-  materials:
-    Plastic: 240
-    Steel: 160
-    Glass: 80
-    Plasma: 160
-    Silver: 80
-
-- type: latheRecipe
+  parent: BaseTargetRecipe
   id: TargetHuman
   result: TargetHuman
-  completetime: 5
-  applyMaterialDiscount: false # ingredients dropped when destroyed
-  materials:
-    Steel: 500
 
 - type: latheRecipe
-  parent: TargetHuman
+  parent: BaseTargetRecipe
   id: TargetClown
   result: TargetClown
 
 - type: latheRecipe
-  parent: TargetHuman
+  parent: BaseTargetRecipe
   id: TargetSyndicate
   result: TargetSyndicate
 
+# Tools
 - type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: MagazinePistolEmpty
-  result: MagazinePistolEmpty
-  materials:
-    Steel: 25
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistol
-  result: MagazinePistol
-  materials:
-    Steel: 145
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolPractice
-  result: MagazinePistolPractice
-  materials:
-    Steel: 85
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolUranium
-  result: MagazinePistolUranium
-  materials:
-    Steel: 25
-    Plastic: 65
-    Uranium: 120
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolIncendiary
-  result: MagazinePistolIncendiary
-  materials:
-    Steel: 25
-    Plastic: 120
-
-- type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: MagazinePistolSubMachineGunEmpty
-  result: MagazinePistolSubMachineGunEmpty
-  materials:
-    Steel: 30
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolSubMachineGun
-  result: MagazinePistolSubMachineGun
+  parent: BaseToolRecipe
+  id: Handcuffs
+  result: Handcuffs
   materials:
     Steel: 300
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolSubMachineGunUranium
-  result: MagazinePistolSubMachineGunUranium
-  materials:
-    Steel: 25
-    Plastic: 250
-    Uranium: 250
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolSubMachineGunIncendiary
-  result: MagazinePistolSubMachineGunIncendiary
+  parent: BaseToolRecipe
+  id: Zipties
+  result: Zipties
   materials:
-    Steel: 25
-    Plastic: 275
+    Plastic: 200
 
 - type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: MagazinePistolSubMachineGunTopMountedEmpty
-  result: MagazinePistolSubMachineGunTopMountedEmpty
+  parent: BaseToolRecipe
+  id: ForensicPad
+  result: ForensicPad
+  completetime: 4
   materials:
-    Steel: 30
+    Plastic: 100
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazinePistolSubMachineGunTopMounted
-  result: MagazinePistolSubMachineGunTopMounted
+  parent: BaseToolRecipe
+  id: HoloprojectorSecurity
+  result: HoloprojectorSecurityEmpty
   materials:
     Steel: 300
+    Glass: 50
+    Plastic: 50
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxPistol
-  result: MagazineBoxPistol
-  materials:
-    Steel: 600
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxMagnum
-  result: MagazineBoxMagnum
-  materials:
-    Steel: 240
-
-- type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: MagazineRifleEmpty
-  result: MagazineRifleEmpty
-  materials:
-    Steel: 25
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineRifle
-  result: MagazineRifle
-  materials:
-    Steel: 475
-
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineRiflePractice
-  result: MagazineRiflePractice
-  materials:
-    Steel: 175
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineRifleUranium
-  result: MagazineRifleUranium
-  materials:
-    Steel: 25
-    Plastic: 300
-    Uranium: 300
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineRifleIncendiary
-  result: MagazineRifleIncendiary
-  materials:
-    Steel: 25
-    Plastic: 450
-
-- type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: MagazineLightRifleEmpty
-  result: MagazineLightRifleEmpty
-  materials:
-    Steel: 25
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineLightRifle
-  result: MagazineLightRifle
-  materials:
-    Steel: 565
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineLightRiflePractice
-  result: MagazineLightRiflePractice
-  materials:
-    Steel: 205
-
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineLightRifleUranium
-  result: MagazineLightRifleUranium
-  materials:
-    Steel: 25
-    Plastic: 360
-    Uranium: 360
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineLightRifleIncendiary
-  result: MagazineLightRifleIncendiary
-  materials:
-    Steel: 25
-    Plastic: 540
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxRifle
-  result: MagazineBoxRifle
-  materials:
-    Steel: 750
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxLightRifle
-  result: MagazineBoxLightRifle
-  materials:
-    Steel: 900
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxLethalshot
-  result: BoxLethalshot
-  materials:
-    Steel: 320
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxBeanbag
-  result: BoxBeanbag
-  materials:
-    Steel: 160
-    Plastic: 240
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxShotgunSlug
-  result: BoxShotgunSlug
-  materials:
-    Steel: 240
-    Plastic: 160
-
-- type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: SpeedLoaderMagnumEmpty
-  result: SpeedLoaderMagnumEmpty
-  materials:
-    Steel: 50
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: SpeedLoaderMagnum
-  result: SpeedLoaderMagnum
-  materials:
-    Steel: 190
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: SpeedLoaderMagnumPractice
-  result: SpeedLoaderMagnumPractice
-  materials:
-    Steel: 90
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: SpeedLoaderMagnumUranium
-  result: SpeedLoaderMagnumUranium
-  materials:
-    Steel: 50
-    Plastic: 150
-    Uranium: 110
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: SpeedLoaderMagnumIncendiary
-  result: SpeedLoaderMagnumIncendiary
-  materials:
-    Steel: 50
-    Plastic: 150
-
-- type: latheRecipe
-  parent: BaseEmptyAmmoRecipe
-  id: MagazineShotgunEmpty
-  result: MagazineShotgunEmpty
-  materials:
-    Steel: 50
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineShotgun
-  result: MagazineShotgun
-  materials:
-    Steel: 240
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineShotgunBeanbag
-  result: MagazineShotgunBeanbag
-  materials:
-    Steel: 150
-    Plastic: 140
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineShotgunSlug
-  result: MagazineShotgunSlug
-  materials:
-    Steel: 190
-    Plastic: 100
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineShotgunIncendiary
-  result: MagazineShotgunIncendiary
+  parent: BaseToolRecipe
+  id: Flash
+  result: Flash
   materials:
+    Glass: 100
+    Plastic: 200
     Steel: 100
-    Plastic: 190
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxPistolIncendiary
-  result: MagazineBoxPistolIncendiary
-  materials:
-    Plastic: 600
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxMagnumIncendiary
-  result: MagazineBoxMagnumIncendiary
-  materials:
-    Plastic: 240
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxLightRifleIncendiary
-  result: MagazineBoxLightRifleIncendiary
-  materials:
-    Plastic: 900
 
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxRifleIncendiary
-  result: MagazineBoxRifleIncendiary
-  materials:
-    Plastic: 750
+## Weapons
 
+# Melee
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxShotgunFlare
-  result: BoxShotgunFlare
-  materials:
-    Steel: 80
-    Plastic: 80
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxShotgunIncendiary
-  result: BoxShotgunIncendiary
-  materials:
-    Steel: 80
-    Plastic: 320
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxPistolPractice
-  result: MagazineBoxPistolPractice
+  parent: BaseWeaponRecipeMelee
+  id: Stunbaton
+  result: Stunbaton
   materials:
     Steel: 300
+    Plastic: 300
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxMagnumPractice
-  result: MagazineBoxMagnumPractice
-  materials:
-    Steel: 60
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxLightRiflePractice
-  result: MagazineBoxLightRiflePractice
+  parent: BaseWeaponRecipeMelee
+  id: Truncheon
+  result: Truncheon
   materials:
     Steel: 300
+    Plastic: 300
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxRiflePractice
-  result: MagazineBoxRiflePractice
+  parent: BaseWeaponRecipeMelee
+  id: CombatKnife
+  result: CombatKnife
   materials:
     Steel: 250
+    Plastic: 100
 
+# Practice weapons
 - type: latheRecipe
-  parent: BaseWeaponRecipe
-  id: WeaponLaserCarbinePractice
-  result: WeaponLaserCarbinePractice
-  completetime: 6
-  materials:
-    Steel: 1800
-    Glass: 400
-    Plastic: 250
-
-- type: latheRecipe
-  parent: BaseWeaponRecipe
+  parent: BaseWeaponRecipePractice
   id: WeaponDisablerPractice
   result: WeaponDisablerPractice
-  completetime: 4
   materials:
     Steel: 500
     Glass: 100
     Plastic: 200
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxShotgunPractice
-  result: BoxShotgunPractice
-  materials:
-    Steel: 80
-
-- type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxPistolUranium
-  result: MagazineBoxPistolUranium
+  parent: BaseWeaponRecipePractice
+  id: WeaponLaserCarbinePractice
+  result: WeaponLaserCarbinePractice
   materials:
-    Plastic: 300
-    Uranium: 600
+    Steel: 1800
+    Glass: 400
+    Plastic: 250
 
+# Long Guns
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxMagnumUranium
-  result: MagazineBoxMagnumUranium
+  parent: BaseWeaponRecipeLong
+  id: WeaponLaserCarbine
+  result: WeaponLaserCarbine
   materials:
-    Plastic: 240
-    Uranium: 180
+    Steel: 2000
+    Glass: 800
+    Plastic: 500
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxLightRifleUranium
-  result: MagazineBoxLightRifleUranium
+  parent: BaseWeaponRecipeLong
+  id: WeaponAdvancedLaser
+  result: WeaponAdvancedLaser
   materials:
-    Plastic: 600
-    Uranium: 600
+    Steel: 1500
+    Glass: 1000
+    Gold: 850
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: MagazineBoxRifleUranium
-  result: MagazineBoxRifleUranium
+  parent: BaseWeaponRecipeLong
+  id: WeaponLaserCannon
+  result: WeaponLaserCannon
   materials:
-    Plastic: 500
-    Uranium: 500
+    Steel: 1250
+    Plastic: 750
+    Gold: 500
 
 - type: latheRecipe
-  parent: BaseAmmoRecipe
-  id: BoxShotgunUranium
-  result: BoxShotgunUranium
+  parent: BaseWeaponRecipeLong
+  id: WeaponXrayCannon
+  result: WeaponXrayCannon
   materials:
-    Plastic: 320
-    Uranium: 240
+    Steel: 1500
+    Glass: 500
+    Plastic: 250
+    Gold: 100
 
 - type: latheRecipe
-  parent: BaseWeaponRecipe
-  id: WeaponFlareGunSecurity
-  result: WeaponFlareGunSecurity
-  completetime: 6
+  parent: BaseWeaponRecipeLong
+  id: WeaponTemperatureGun
+  result: WeaponTemperatureGun
   materials:
-    Plastic: 100
-    Steel: 400
+    Steel: 2000
+    Glass: 500
+    Plastic: 500
+    Gold: 500
 
+# Sidearms
 - type: latheRecipe
-  parent: BaseWeaponRecipe
+  parent: BaseWeaponRecipeSidearm
   id: WeaponDisabler
   result: WeaponDisabler
-  completetime: 6
   materials:
     Steel: 300
     Glass: 200
     Plastic: 200
 
 - type: latheRecipe
-  parent: WeaponDisabler
+  parent: BaseWeaponRecipeSidearm
   id: WeaponDisablerSMG
   result: WeaponDisablerSMG
   materials:
     Plastic: 500
 
 - type: latheRecipe
-  id: MagazineGrenadeEmpty
-  result: MagazineGrenadeEmpty
-  completetime: 3
-  materials:
-    Steel: 150
-    Plastic: 50
-
-- type: latheRecipe
-  id: GrenadeEMP
-  result: GrenadeEMP
-  completetime: 3
-  materials:
-    Steel: 150
-    Plastic: 100
-    Glass: 20
-
-- type: latheRecipe
-  id: GrenadeBlast
-  result: GrenadeBlast
-  completetime: 3
+  parent: BaseWeaponRecipeSidearm
+  id: WeaponLaserSvalinn
+  result: WeaponLaserSvalinn
   materials:
-    Steel: 450
-    Plastic: 300
-    Gold: 150
+    Steel: 2000
+    Gold: 500
 
 - type: latheRecipe
-  id: GrenadeFlash
-  result: GrenadeFlash
-  completetime: 3
+  parent: BaseWeaponRecipeSidearm
+  id: WeaponFlareGunSecurity
+  result: WeaponFlareGunSecurity
   materials:
-    Steel: 150
     Plastic: 100
-    Glass: 20
-
-- type: latheRecipe
-  id: PortableRecharger
-  result: PortableRecharger
-  completetime: 15
-  materials:
-    Steel: 2000
-    Uranium: 2000
-    Plastic: 1000
-    Plasma: 500
-    Glass: 500
+    Steel: 400