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;
{
[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;
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)
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>
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;
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;
tags:
- CartridgeLightRifle
proto: CartridgeLightRifle
- capacity: 50
+ capacity: 60
- type: Item
size: Small
- type: ContainerContainer
tags:
- CartridgeMagnum
proto: CartridgeMagnum
- capacity: 60
+ capacity: 12
- type: Item
size: Small
- type: ContainerContainer
tags:
- CartridgeRifle
proto: CartridgeRifle
- capacity: 60
+ capacity: 50
- type: Item
size: Small
- type: ContainerContainer
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
- 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)"
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)"
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)
- 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)"
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)
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)"
- 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
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
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
{
"name": "shellslug"
},
+ {
+ "name": "shelluranium"
+ },
{
"name": "shelltoy"
},