]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Printable Special Mags and Empty Mags and Material Rebalance for Ammo (#26178)
authorPlykiya <58439124+Plykiya@users.noreply.github.com>
Sat, 27 Apr 2024 10:38:59 +0000 (03:38 -0700)
committerGitHub <noreply@github.com>
Sat, 27 Apr 2024 10:38:59 +0000 (20:38 +1000)
* Printable Empty Magazines

* Adjust values of ammo boxes, adjust material costs, add empty lethal/non-lethal mags, swap secfab shotgun shells with shotgun ammo boxes, add recipe for shotgun ammo boxes

* Adds fully loaded pistol mags at secfab, removes printing respective cartridges at secfab

* Adds fully loaded rifle mags at secfab, removes respective cartridges

* Adds fully loaded light rifle mags at secfab, removes respective cartridges from secfab

* Adds fully loaded speedloader to secfab, removes respective cartridges from secfab

* small id mismatch fix

* another wrong ID fix

* capitalize Ls in speedloader

* Add missing SpeedLoader recipe

* Adds fully loaded shotgun drums to secfab, removes respective shells from secfab

* add rifle ammo unlocks back in, forgot ammo unlocks affect other fabs as well

* Moves tranquilizer shells to the non-lethal ammunition research

* Account for the removal of rubbers, adds in craftable disablers

* rubber rounds don't exist, remove empty non-lethal mags to just have empty mags

* Add in WT550 mags

* Convert latheRecipes to use LayeredTextureRect instead of TextureRect

* Fix for issue, texture layering now works

* Add in missing shell uranium box art

* add shelluranium to meta.json

* Fix yml issue

* Get rid of unused single ammo printing unlocks

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
18 files changed:
Content.Client/Lathe/UI/LatheMenu.xaml.cs
Content.Client/Lathe/UI/RecipeControl.xaml
Content.Client/Lathe/UI/RecipeControl.xaml.cs
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/shotgun.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml
Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Resources/Prototypes/Recipes/Lathes/security.yml
Resources/Prototypes/Research/arsenal.yml
Resources/Textures/Objects/Storage/boxes.rsi/meta.json
Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png [new file with mode: 0644]

index ca8d2561270b8851f5fd1a6398bb39ba225ea7d7..9e15f8239e5ee4c002adad3e04c7ae6fd03aaa8d 100644 (file)
@@ -10,6 +10,8 @@ using Robust.Client.GameObjects;
 using Robust.Client.UserInterface.Controls;
 using Robust.Client.UserInterface.CustomControls;
 using Robust.Client.UserInterface.XAML;
+using Robust.Client.ResourceManagement;
+using Robust.Client.Graphics;
 using Robust.Shared.Prototypes;
 
 namespace Content.Client.Lathe.UI;
@@ -19,6 +21,8 @@ public sealed partial class LatheMenu : DefaultWindow
 {
     [Dependency] private readonly IEntityManager _entityManager = default!;
     [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+    [Dependency] private readonly IResourceCache _resources = default!;
+
     private EntityUid _owner;
     private readonly SpriteSystem _spriteSystem;
     private readonly LatheSystem _lathe;
@@ -104,12 +108,21 @@ public sealed partial class LatheMenu : DefaultWindow
         RecipeList.Children.Clear();
         foreach (var prototype in sortedRecipesToShow)
         {
-            var icon = prototype.Icon == null
-                ? _spriteSystem.GetPrototypeIcon(prototype.Result).Default
-                : _spriteSystem.Frame0(prototype.Icon);
+            List<Texture> textures;
+            if (_prototypeManager.TryIndex(prototype.Result, out EntityPrototype? entityProto) && entityProto != null)
+            {
+                textures = SpriteComponent.GetPrototypeTextures(entityProto, _resources).Select(o => o.Default).ToList();
+            }
+            else
+            {
+                textures = prototype.Icon == null
+                    ? new List<Texture> { _spriteSystem.GetPrototypeIcon(prototype.Result).Default }
+                    : new List<Texture> { _spriteSystem.Frame0(prototype.Icon) };
+            }
+
             var canProduce = _lathe.CanProduce(_owner, prototype, quantity);
 
-            var control = new RecipeControl(prototype, () => GenerateTooltipText(prototype), canProduce, icon);
+            var control = new RecipeControl(prototype, () => GenerateTooltipText(prototype), canProduce, textures);
             control.OnButtonPressed += s =>
             {
                 if (!int.TryParse(AmountLineEdit.Text, out var amount) || amount <= 0)
index 2e02c8a6147709b041d5fe027fe231d7e9d61ce1..d1371a026a22a61f2315ab4a521d92d067ee7655 100644 (file)
@@ -5,11 +5,15 @@
         Margin="0"
         StyleClasses="ButtonSquare">
         <BoxContainer Orientation="Horizontal">
-            <TextureRect
-                Name="RecipeTexture"
+            <LayeredTextureRect
+                Name="RecipeTextures"
                 Margin="0 0 4 0"
+                HorizontalAlignment="Center"
+                VerticalAlignment="Center"
+                Stretch="KeepAspectCentered"
                 MinSize="32 32"
-                Stretch="KeepAspectCentered" />
+                CanShrink="true"
+                />
             <Label Name="RecipeName" HorizontalExpand="True" />
         </BoxContainer>
     </Button>
index bf85ff7d938c87dd604a7d2215da407e5f636b47..47b6b5932c475d5deda22e61c5cc3da6ae8a5ba9 100644 (file)
@@ -2,8 +2,8 @@ using Content.Shared.Research.Prototypes;
 using Robust.Client.AutoGenerated;
 using Robust.Client.Graphics;
 using Robust.Client.UserInterface;
+using Robust.Client.UserInterface.Controls;
 using Robust.Client.UserInterface.XAML;
-using Robust.Shared.Graphics;
 
 namespace Content.Client.Lathe.UI;
 
@@ -13,12 +13,12 @@ public sealed partial class RecipeControl : Control
     public Action<string>? OnButtonPressed;
     public Func<string> TooltipTextSupplier;
 
-    public RecipeControl(LatheRecipePrototype recipe, Func<string> tooltipTextSupplier, bool canProduce, Texture? texture = null)
+    public RecipeControl(LatheRecipePrototype recipe, Func<string> tooltipTextSupplier, bool canProduce, List<Texture> textures)
     {
         RobustXamlLoader.Load(this);
 
         RecipeName.Text = recipe.Name;
-        RecipeTexture.Texture = texture;
+        RecipeTextures.Textures = textures;
         Button.Disabled = !canProduce;
         TooltipTextSupplier = tooltipTextSupplier;
         Button.TooltipSupplier = SupplyTooltip;
index 5b2ec7949188613743db1981368cdffa64c67203..d5fb4360a82258e4f72a69e3e944e9b6cb8f56cf 100644 (file)
@@ -10,7 +10,7 @@
       tags:
         - CartridgeLightRifle
     proto: CartridgeLightRifle
-    capacity: 50
+    capacity: 60
   - type: Item
     size: Small
   - type: ContainerContainer
index f5b2955e0868bc989dfb7aabd8a5fd8834b78964..018d812e3f51f5ff66c20badc62c88a6583532f5 100644 (file)
@@ -9,7 +9,7 @@
       tags:
         - CartridgeMagnum
     proto: CartridgeMagnum
-    capacity: 60
+    capacity: 12
   - type: Item
     size: Small
   - type: ContainerContainer
index 54d5327dda9bab026cfb191e1bc0b4339ae36529..7a5f5d27ca690677723b0b782bc72ec41b9c8f12 100644 (file)
@@ -9,7 +9,7 @@
       tags:
         - CartridgeRifle
     proto: CartridgeRifle
-    capacity: 60
+    capacity: 50
   - type: Item
     size: Small
   - type: ContainerContainer
index 831c3c33525bdbfbef1d1c6a9e0805d2c1c29080..63ad52c0320eb30ee44629cdfc87f89c6a51bc6c 100644 (file)
@@ -21,7 +21,7 @@
       whitelist:
         tags:
         - ShellShotgun
-      capacity: 12
+      capacity: 16
 
 # Shotgun Shells
 - type: entity
         - state: boxwide
         - state: shellincendiary
 
+- type: entity
+  name: shotgun uranium cartridges dispenser
+  parent: AmmoProviderShotgunShell
+  id: BoxShotgunUranium
+  description: A dispenser box full of uranium cartridges, designed for riot shotguns.
+  components:
+    - type: BallisticAmmoProvider
+      proto: ShellShotgunUranium
+    - type: Sprite
+      layers:
+        - state: boxwide
+        - state: shelluranium
+
 - type: entity
   name: shotgun practice cartridges dispenser
   parent: AmmoProviderShotgunShell
     - type: Sprite
       layers:
         - state: boxwide
-        - state: shellslug
\ No newline at end of file
+        - state: shellslug
index ebb98b879c613137a2f1f18851530116307301f3..495bcd37d15306abeefde6d9226b7618f41f5544 100644 (file)
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazineLightRifleEmpty
+  name: "magazine (.30 rifle any)"
+  suffix: empty
+  parent: MagazineLightRifle
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
 - type: entity
   id: MagazineLightRiflePractice
   name: "magazine (.30 rifle practice)"
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazineLightRifleIncendiary
+  name: "magazine (.30 rifle incendiary)"
+  parent: MagazineLightRifle
+  components:
+  - type: BallisticAmmoProvider
+    proto: CartridgeLightRifleIncendiary
+
 - type: entity
   id: MagazineLightRifleMaxim
   name: "pan magazine (.30 rifle)"
index 1d8437a884dbbe8326ad69a4a0e0d2a47c3511bf..304014d11b48e22dc2387ff10c4c33dada429f44 100644 (file)
     zeroVisible: false
   - type: Appearance
 
+- type: entity
+  id: MagazineMagnumEmpty
+  name: pistol magazine (.45 magnum any)
+  suffix: empty
+  parent: BaseMagazineMagnum
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
 - type: entity
   id: MagazineMagnum
   name: pistol magazine (.45 magnum)
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazineMagnumSubMachineGunEmpty
+  name: "Vector magazine (.45 magnum any)"
+  suffix: empty
+  parent: BaseMagazineMagnumSubMachineGun
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
 - type: entity
   id: MagazineMagnumSubMachineGun
   name: "Vector magazine (.45 magnum)"
index 352628190747ff0aebaf3bd45d7dd41bfc4fb813..b55961a87f693f406bb04a6968ac7eb68f87f44f 100644 (file)
     containers:
       ballistic-ammo: !type:Container
 
+- type: entity
+  id: MagazinePistolSubMachineGunTopMountedEmpty
+  name: WT550 magazine (.35 auto top-mounted any)
+  parent: MagazinePistolSubMachineGunTopMounted
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+
 - type: entity
   id: MagazinePistol
   name: pistol magazine (.35 auto)
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazinePistolEmpty
+  name: pistol magazine (.35 auto any)
+  suffix: empty
+  parent: MagazinePistol
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
+
+- type: entity
+  id: MagazinePistolIncendiary
+  name: pistol magazine (.35 auto incendiary)
+  parent: MagazinePistol
+  components:
+  - type: BallisticAmmoProvider
+    proto: CartridgePistolIncendiary
+
 - type: entity
   id: MagazinePistolPractice
   name: pistol magazine (.35 auto practice)
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazinePistolUranium
+  name: pistol magazine (.35 auto uranium)
+  parent: BaseMagazinePistol
+  components:
+  - type: BallisticAmmoProvider
+    proto: CartridgePistolUranium
+  - type: Sprite
+    layers:
+    - state: uranium
+      map: ["enum.GunVisualLayers.Base"]
+    - state: mag-1
+      map: ["enum.GunVisualLayers.Mag"]
+
+- type: entity
+  id: MagazinePistolHighCapacityEmpty
+  name: machine pistol magazine (.35 auto any)
+  suffix: empty
+  parent: BaseMagazinePistolHighCapacity
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
 - type: entity
   id: MagazinePistolHighCapacity
   name: machine pistol magazine (.35 auto)
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazinePistolSubMachineGunEmpty
+  name: SMG magazine (.35 auto any)
+  suffix: empty
+  parent: BaseMagazinePistolSubMachineGun
+  components:
+  - type: BallisticAmmoProvider
+    proto: null 
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
 - type: entity
   id: MagazinePistolSubMachineGunPractice
   name: SMG magazine (.35 auto practice)
index d060af2c21cb73a79114774d2a888202a9c66809..b2148ba1b2dc6a4f31ce438b066fc4607a433969 100644 (file)
     - state: mag-1
       map: ["enum.GunVisualLayers.Mag"]
 
+- type: entity
+  id: MagazineRifleEmpty
+  name: "magazine (.20 rifle any)"
+  suffix: empty
+  parent: MagazineRifle
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+
+- type: entity
+  id: MagazineRifleIncendiary
+  name: "magazine (.20 rifle incendiary)"
+  parent: MagazineRifle
+  components:
+  - type: BallisticAmmoProvider
+    proto: CartridgeRifleIncendiary
+
 - type: entity
   id: MagazineRiflePractice
   name: "magazine (.20 rifle practice)"
index cbe9bbfbe973b50c44ad9e48453eeea3a5cfda8d..5b0b16bf4bcb8baacc8ac13a15e015f46c27e873 100644 (file)
     zeroVisible: false
   - type: Appearance
 
+- type: entity
+  id: MagazineShotgunEmpty
+  name: ammo drum (.50 shells any)
+  suffix: empty
+  parent: BaseMagazineShotgun
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+
 - type: entity
   id: MagazineShotgun
   name: ammo drum (.50 pellet)
index fda8046cc68312014a7969222addc2f133cca781..08d50db9b2c606f2b49d0be0d4ba869af2ea045e 100644 (file)
     zeroVisible: false
   - type: Appearance
 
+- type: entity
+  id: SpeedLoaderMagnumEmpty
+  name: "speed loader (.45 magnum any)"
+  parent: SpeedLoaderMagnum
+  components:
+  - type: BallisticAmmoProvider
+    proto: null
+  - type: Sprite
+    sprite: Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi
+    layers:
+      - state: base
+        map: [ "enum.GunVisualLayers.Base" ]
+
+- type: entity
+  id: SpeedLoaderMagnumIncendiary
+  name: "speed loader (.45 magnum incendiary)"
+  parent: SpeedLoaderMagnum
+  components:
+  - type: BallisticAmmoProvider
+    proto: CartridgeMagnumIncendiary
+
 - type: entity
   id: SpeedLoaderMagnumPractice
   name: "speed loader (.45 magnum practice)"
index 1bfb67f66a832bcdf196337e5f1900666c0ead1f..318f880ab98b6229d1174e701c3a0d2e6674049a 100644 (file)
       - Stunbaton
       - ForensicPad
       - RiotShield
-      - ShellShotgun
-      - ShellShotgunBeanbag
-      - ShellShotgunSlug
-      - ShellShotgunFlare
-      - ShellTranquilizer
-      - MagazinePistol
+      - BoxShotgunSlug
+      - BoxLethalshot
+      - BoxShotgunFlare
+      - MagazinePistol 
+      - MagazinePistolEmpty
       - MagazinePistolSubMachineGun
+      - MagazinePistolSubMachineGunEmpty
       - MagazinePistolSubMachineGunTopMounted
+      - MagazinePistolSubMachineGunTopMountedEmpty
       - MagazineRifle
+      - MagazineRifleEmpty
       - MagazineLightRifle
+      - MagazineLightRifleEmpty
+      - MagazineShotgunEmpty
+      - MagazineShotgun
+      - MagazineShotgunSlug
       - MagazineBoxPistol
       - MagazineBoxMagnum
       - MagazineBoxRifle
       - MagazineBoxLightRifle
       - SpeedLoaderMagnum
+      - SpeedLoaderMagnumEmpty
       - TargetHuman
       - TargetSyndicate
       - TargetClown
       - MagazineBoxMagnumPractice
       - MagazineBoxPistolPractice
       - MagazineBoxRiflePractice
-      - ShellShotgunPractice
       - WeaponLaserCarbinePractice
       - WeaponDisablerPractice
+      - BoxShotgunPractice 
     dynamicRecipes:
-      - CartridgeLightRifleIncendiary
-      - CartridgeMagnumIncendiary
-      - CartridgePistolIncendiary
-      - CartridgeRifleIncendiary
-      - CartridgeLightRifleUranium
-      - CartridgeMagnumUranium
-      - CartridgePistolUranium
-      - CartridgeRifleUranium
+      - MagazineLightRifleIncendiary
+      - SpeedLoaderMagnumIncendiary
+      - MagazinePistolIncendiary
+      - MagazineRifleIncendiary
+      - MagazineShotgunIncendiary
+      - MagazineLightRifleUranium
+      - SpeedLoaderMagnumUranium
+      - MagazinePistolUranium
+      - MagazineRifleUranium
+      - MagazineShotgunBeanbag
+      - ShellTranquilizer
       - ExplosivePayload
       - FlashPayload
       - HoloprojectorSecurity
       - MagazineBoxMagnumIncendiary
       - MagazineBoxPistolIncendiary
       - MagazineBoxRifleIncendiary
+      - BoxShotgunIncendiary
       - MagazineBoxLightRifleUranium
       - MagazineBoxMagnumUranium
       - MagazineBoxPistolUranium
       - MagazineBoxRifleUranium
+      - BoxShotgunUranium
+      - BoxBeanbag
       - MagazineGrenadeEmpty
       - GrenadeEMP
       - GrenadeFlash
-      - ShellShotgunIncendiary
-      - ShellShotgunUranium
       - Signaller
       - SignalTrigger
       - TelescopicShield
       - TimerTrigger
       - Truncheon
       - VoiceTrigger
-      - WeaponDisablerPractice
       - WeaponAdvancedLaser
+      - WeaponDisabler
       - WeaponDisablerSMG
       - WeaponLaserCannon
       - WeaponLaserCarbine
index f536242238a447507f45d861225b20cb7ec1649f..f5d538618b0b097846ca965bd7b1644d9c2ae8ed 100644 (file)
   materials:
     Steel: 500
 
+- type: latheRecipe
+  id: MagazinePistolEmpty
+  result: MagazinePistolEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+
 - type: latheRecipe
   id: MagazinePistol
   result: MagazinePistol
   category: Ammo
   completetime: 5
   materials:
-    Steel: 100
+    Steel: 145
+
+- type: latheRecipe
+  id: MagazinePistolPractice
+  result: MagazinePistolPractice
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 85
+
+- type: latheRecipe
+  id: MagazinePistolUranium
+  result: MagazinePistolUranium
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+    Plastic: 65
+    Uranium: 120
+
+- type: latheRecipe
+  id: MagazinePistolIncendiary
+  result: MagazinePistolIncendiary
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+    Plastic: 120
+
+- type: latheRecipe
+  id: MagazinePistolSubMachineGunEmpty
+  result: MagazinePistolSubMachineGunEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 30
 
 - type: latheRecipe
   id: MagazinePistolSubMachineGun
   materials:
     Steel: 300
 
+- type: latheRecipe
+  id: MagazinePistolSubMachineGunTopMountedEmpty
+  result: MagazinePistolSubMachineGunTopMountedEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 30
+
 - type: latheRecipe
   id: MagazinePistolSubMachineGunTopMounted
   result: MagazinePistolSubMachineGunTopMounted
   category: Ammo
   completetime: 5
   materials:
-    Steel: 650
+    Steel: 600
 
 - type: latheRecipe
   id: MagazineBoxMagnum
   category: Ammo
   completetime: 5
   materials:
-    Steel: 1250
+    Steel: 240
+
+- type: latheRecipe
+  id: MagazineRifleEmpty
+  result: MagazineRifleEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
 
 - type: latheRecipe
   id: MagazineRifle
   category: Ammo
   completetime: 5
   materials:
-    Steel: 375
+    Steel: 475
+
+
+- type: latheRecipe
+  id: MagazineRiflePractice
+  result: MagazineRiflePractice
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 175
+
+- type: latheRecipe
+  id: MagazineRifleUranium
+  result: MagazineRifleUranium
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+    Plastic: 300
+    Uranium: 300
+
+- type: latheRecipe
+  id: MagazineRifleIncendiary
+  result: MagazineRifleIncendiary
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+    Plastic: 450
+
+- type: latheRecipe
+  id: MagazineLightRifleEmpty
+  result: MagazineLightRifleEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
 
 - type: latheRecipe
   id: MagazineLightRifle
   category: Ammo
   completetime: 5
   materials:
-    Steel: 375
+    Steel: 565
+
+- type: latheRecipe
+  id: MagazineLightRiflePractice
+  result: MagazineLightRiflePractice
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 205
+
+
+- type: latheRecipe
+  id: MagazineLightRifleUranium
+  result: MagazineLightRifleUranium
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+    Plastic: 360
+    Uranium: 360
+
+- type: latheRecipe
+  id: MagazineLightRifleIncendiary
+  result: MagazineLightRifleIncendiary
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 25
+    Plastic: 540
 
 - type: latheRecipe
   id: MagazineBoxRifle
   category: Ammo
   completetime: 5
   materials:
-    Steel: 950
+    Steel: 750
 
 - type: latheRecipe
   id: MagazineBoxLightRifle
   category: Ammo
   completetime: 5
   materials:
-    Steel: 1800
+    Steel: 900
+
+- type: latheRecipe
+  id: BoxLethalshot
+  result: BoxLethalshot
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 320
+
+- type: latheRecipe
+  id: BoxBeanbag
+  result: BoxBeanbag
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 160
+    Plastic: 240
+
+- type: latheRecipe
+  id: BoxShotgunSlug
+  result: BoxShotgunSlug
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 240
+    Plastic: 160
+
+- type: latheRecipe
+  id: SpeedLoaderMagnumEmpty
+  result: SpeedLoaderMagnumEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 50
 
 - type: latheRecipe
   id: SpeedLoaderMagnum
   category: Ammo
   completetime: 5
   materials:
-    Steel: 200
+    Steel: 190
+
+- type: latheRecipe
+  id: SpeedLoaderMagnumPractice
+  result: SpeedLoaderMagnumPractice
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 90
+
+- type: latheRecipe
+  id: SpeedLoaderMagnumUranium
+  result: SpeedLoaderMagnumUranium
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 50
+    Plastic: 150
+    Uranium: 110
+
+- type: latheRecipe
+  id: SpeedLoaderMagnumIncendiary
+  result: SpeedLoaderMagnumIncendiary
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 50
+    Plastic: 150
+
+- type: latheRecipe
+  id: MagazineShotgunEmpty
+  result: MagazineShotgunEmpty
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 50
+
+- type: latheRecipe
+  id: MagazineShotgun
+  result: MagazineShotgun
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 240
+
+- type: latheRecipe
+  id: MagazineShotgunBeanbag
+  result: MagazineShotgunBeanbag
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 150
+    Plastic: 140
+
+- type: latheRecipe
+  id: MagazineShotgunSlug
+  result: MagazineShotgunSlug
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 190
+    Plastic: 100
+
+- type: latheRecipe
+  id: MagazineShotgunIncendiary
+  result: MagazineShotgunIncendiary
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 100
+    Plastic: 190
 
 - type: latheRecipe
   id: ShellShotgunIncendiary
   category: Ammo
   completetime: 2
   materials:
-    Plastic: 20
+    Plastic: 15
 
 - type: latheRecipe
   id: CartridgeRifleIncendiary
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 650
+    Plastic: 600
 
 - type: latheRecipe
   id: MagazineBoxMagnumIncendiary
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 1250
+    Plastic: 240
 
 - type: latheRecipe
   id: MagazineBoxLightRifleIncendiary
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 1800
+    Plastic: 900
 
 - type: latheRecipe
   id: MagazineBoxRifleIncendiary
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 950
+    Plastic: 750
+
+- type: latheRecipe
+  id: BoxShotgunFlare
+  result: BoxShotgunFlare
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 80
+    Plastic: 80
+
+- type: latheRecipe
+  id: BoxShotgunIncendiary
+  result: BoxShotgunIncendiary
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 80
+    Plastic: 320
 
 - type: latheRecipe
   id: ShellShotgunPractice
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 600
+    Steel: 300
 
 - type: latheRecipe
   id: MagazineBoxMagnumPractice
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 1200
+    Steel: 60
 
 - type: latheRecipe
   id: MagazineBoxLightRiflePractice
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 1000
+    Steel: 300
 
 - type: latheRecipe
   id: MagazineBoxRiflePractice
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 900
+    Steel: 250
 
 - type: latheRecipe
   id: WeaponLaserCarbinePractice
     Glass: 100
     Plastic: 200
 
+- type: latheRecipe
+  id: BoxShotgunPractice
+  result: BoxShotgunPractice
+  category: Ammo
+  completetime: 5
+  materials:
+    Steel: 80
+
 - type: latheRecipe
   id: ShellShotgunUranium
   result: ShellShotgunUranium
   category: Ammo
   completetime: 2
   materials:
-    Plastic: 15
-    Uranium: 10
+    Plastic: 20
+    Uranium: 15
 
 - type: latheRecipe
   id: CartridgePistolUranium
   completetime: 2
   materials:
     Plastic: 20
-    Uranium: 10
+    Uranium: 15
 
 - type: latheRecipe
   id: CartridgeLightRifleUranium
   category: Ammo
   completetime: 2
   materials:
-    Plastic: 20
+    Plastic: 10
     Uranium: 10
 
 - type: latheRecipe
   category: Ammo
   completetime: 2
   materials:
-    Plastic: 15
+    Plastic: 10
     Uranium: 10
 
 - type: latheRecipe
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 650
-    Uranium: 65
+    Plastic: 300
+    Uranium: 600
 
 - type: latheRecipe
   id: MagazineBoxMagnumUranium
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 1250
-    Uranium: 125
+    Plastic: 240
+    Uranium: 180
 
 - type: latheRecipe
   id: MagazineBoxLightRifleUranium
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 1800
-    Uranium: 180
+    Plastic: 600
+    Uranium: 600
 
 - type: latheRecipe
   id: MagazineBoxRifleUranium
   category: Ammo
   completetime: 5
   materials:
-    Plastic: 950
-    Uranium: 95
+    Plastic: 500
+    Uranium: 500
+
+- type: latheRecipe
+  id: BoxShotgunUranium
+  result: BoxShotgunUranium
+  category: Ammo
+  completetime: 5
+  materials:
+    Plastic: 320
+    Uranium: 240
+
+- type: latheRecipe
+  id: WeaponDisabler
+  result: WeaponDisabler
+  category: Weapons
+  completetime: 6
+  materials:
+    Steel: 300
+    Glass: 200
+    Plastic: 200
 
 - type: latheRecipe
   id: WeaponDisablerSMG
      Steel: 150
      Plastic: 100
      Glass: 20
-     
\ No newline at end of file
index 3b7284c7497a0959baabe8db43419f80d0a2f54e..264a7df1094c4dd00bfa148c3e0eadbaf6208545 100644 (file)
   tier: 1
   cost: 10000
   recipeUnlocks:
-  - ShellShotgunIncendiary
-  - CartridgePistolIncendiary
-  - CartridgeMagnumIncendiary
-  - CartridgeLightRifleIncendiary
-  - CartridgeRifleIncendiary
+  - BoxShotgunIncendiary
+  - MagazineRifleIncendiary
+  - MagazinePistolIncendiary
+  - MagazineLightRifleIncendiary
+  - SpeedLoaderMagnumIncendiary
+  - MagazineShotgunIncendiary
   - MagazineBoxPistolIncendiary
   - MagazineBoxMagnumIncendiary
   - MagazineBoxLightRifleIncendiary
   recipeUnlocks:
   - WeaponLaserCarbine
 
+- type: technology
+  id: NonlethalAmmunition
+  name: research-technology-nonlethal-ammunition
+  icon:
+    sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi
+    state: beanbag
+  discipline: Arsenal
+  tier: 1
+  cost: 5000
+  recipeUnlocks:
+  - ShellTranquilizer 
+  - BoxBeanbag 
+  - WeaponDisabler
+
 - type: technology
   id: UraniumMunitions
   name: research-technology-uranium-munitions
   tier: 1
   cost: 7500
   recipeUnlocks:
-  - ShellShotgunUranium
-  - CartridgePistolUranium
-  - CartridgeMagnumUranium
-  - CartridgeLightRifleUranium
-  - CartridgeRifleUranium
+  - MagazineRifleUranium
+  - MagazinePistolUranium
+  - MagazineLightRifleUranium
+  - SpeedLoaderMagnumUranium
   - MagazineBoxPistolUranium
   - MagazineBoxMagnumUranium
   - MagazineBoxLightRifleUranium
   - MagazineBoxRifleUranium
+  - BoxShotgunUranium
 
 - type: technology
   id: AdvancedRiotControl
index 53ac39b639b234801dc6a29c33ee0972442827d7..788c43845cd51e77717f1fbaf84c88b3ebdf697f 100644 (file)
         {
             "name": "shellslug"
         },
+        {
+            "name": "shelluranium"
+        },
         {
             "name": "shelltoy"
         },
diff --git a/Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png b/Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png
new file mode 100644 (file)
index 0000000..2a4e1de
Binary files /dev/null and b/Resources/Textures/Objects/Storage/boxes.rsi/shelluranium.png differ