diff --git a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs
index 9f6cba8483..fe77ff9c5f 100644
--- a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs
+++ b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs
@@ -63,7 +63,7 @@ namespace Content.Client.Cargo.UI
Products.RemoveAllChildren();
var products = ProductPrototypes.ToList();
products.Sort((x, y) =>
- string.Compare(x.Name, y.Name, StringComparison.Ordinal));
+ string.Compare(x.Name, y.Name, StringComparison.CurrentCultureIgnoreCase));
var search = SearchBar.Text.Trim().ToLowerInvariant();
foreach (var prototype in products)
diff --git a/Content.Client/UserInterface/StatValuesEui.cs b/Content.Client/UserInterface/StatValuesEui.cs
new file mode 100644
index 0000000000..33035940b5
--- /dev/null
+++ b/Content.Client/UserInterface/StatValuesEui.cs
@@ -0,0 +1,29 @@
+using Content.Client.Eui;
+using Content.Shared.Eui;
+using Content.Shared.UserInterface;
+
+namespace Content.Client.UserInterface;
+
+public sealed class StatValuesEui : BaseEui
+{
+ private readonly StatsWindow _window;
+
+ public StatValuesEui()
+ {
+ _window = new StatsWindow();
+ _window.Title = "Melee stats";
+ _window.OpenCentered();
+ _window.OnClose += Closed;
+ }
+
+ public override void HandleMessage(EuiMessageBase msg)
+ {
+ base.HandleMessage(msg);
+
+ if (msg is not StatValuesEuiMessage eui)
+ return;
+
+ _window.Title = eui.Title;
+ _window.UpdateValues(eui.Headers, eui.Values);
+ }
+}
diff --git a/Content.Client/UserInterface/StatsWindow.xaml b/Content.Client/UserInterface/StatsWindow.xaml
new file mode 100644
index 0000000000..9cda4e41c6
--- /dev/null
+++ b/Content.Client/UserInterface/StatsWindow.xaml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/Content.Client/UserInterface/StatsWindow.xaml.cs b/Content.Client/UserInterface/StatsWindow.xaml.cs
new file mode 100644
index 0000000000..29c48fff67
--- /dev/null
+++ b/Content.Client/UserInterface/StatsWindow.xaml.cs
@@ -0,0 +1,48 @@
+using Content.Client.Administration.UI.CustomControls;
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.CustomControls;
+using Robust.Client.UserInterface.XAML;
+
+namespace Content.Client.UserInterface
+{
+ [GenerateTypedNameReferences]
+ public sealed partial class StatsWindow : DefaultWindow
+ {
+ public StatsWindow()
+ {
+ RobustXamlLoader.Load(this);
+ IoCManager.InjectDependencies(this);
+ }
+
+ public void UpdateValues(List headers, List values)
+ {
+ Values.DisposeAllChildren();
+ Values.Columns = headers.Count;
+
+ for (var i = 0; i < headers.Count; i++)
+ {
+ var item = headers[i];
+ Values.AddChild(new Label()
+ {
+ Text = item,
+ });
+ }
+
+ values.Sort((x, y) => string.Compare(x[0], y[0], StringComparison.CurrentCultureIgnoreCase));
+
+ for (var i = 0; i < values.Count; i++)
+ {
+ var value = values[i];
+
+ for (var j = 0; j < value.Length; j++)
+ {
+ Values.AddChild(new Label()
+ {
+ Text = value[j],
+ });
+ }
+ }
+ }
+ }
+}
diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs
index 4ce1d3a720..c6f713723d 100644
--- a/Content.IntegrationTests/Tests/CargoTest.cs
+++ b/Content.IntegrationTests/Tests/CargoTest.cs
@@ -13,7 +13,7 @@ namespace Content.IntegrationTests.Tests;
public sealed class CargoTest
{
[Test]
- public async Task NoArbitrage()
+ public async Task NoCargoOrderArbitrage()
{
await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings() {NoClient = true});
var server = pairTracker.Pair.Server;
@@ -32,8 +32,13 @@ public sealed class CargoTest
var ent = entManager.SpawnEntity(proto.Product, new MapCoordinates(Vector2.Zero, mapId));
var price = pricing.GetPrice(ent);
- Assert.That(price, Is.LessThan(proto.PointCost), $"Found arbitrage on {proto.ID} cargo product!");
+ Assert.That(price, Is.LessThan(proto.PointCost), $"Found arbitrage on {proto.ID} cargo product! Cost is {proto.PointCost} but sell is {price}!");
+ entManager.DeleteEntity(ent);
}
+
+ mapManager.DeleteMap(mapId);
});
+
+ await pairTracker.CleanReturnAsync();
}
}
diff --git a/Content.Server/Cargo/Components/StationBankAccountComponent.cs b/Content.Server/Cargo/Components/StationBankAccountComponent.cs
index a2d56b3fd8..961c6ac9a6 100644
--- a/Content.Server/Cargo/Components/StationBankAccountComponent.cs
+++ b/Content.Server/Cargo/Components/StationBankAccountComponent.cs
@@ -15,5 +15,5 @@ public sealed class StationBankAccountComponent : Component
/// How much the bank balance goes up per second, every Delay period. Rounded down when multiplied.
///
[ViewVariables(VVAccess.ReadWrite), DataField("increasePerSecond")]
- public int IncreasePerSecond = 10;
+ public int IncreasePerSecond = 2;
}
diff --git a/Content.Server/Cargo/Systems/PricingSystem.cs b/Content.Server/Cargo/Systems/PricingSystem.cs
index af21e9ae30..d8c0239c66 100644
--- a/Content.Server/Cargo/Systems/PricingSystem.cs
+++ b/Content.Server/Cargo/Systems/PricingSystem.cs
@@ -9,6 +9,7 @@ using Content.Shared.MobState.Components;
using Robust.Shared.Console;
using Robust.Shared.Containers;
using Robust.Shared.Map;
+using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Server.Cargo.Systems;
@@ -111,6 +112,33 @@ public sealed class PricingSystem : EntitySystem
args.Price += component.Price;
}
+ ///
+ /// Get a rough price for an entityprototype. Does not consider contained entities.
+ ///
+ public double GetEstimatedPrice(EntityPrototype prototype, IComponentFactory? factory = null)
+ {
+ IoCManager.Resolve(ref factory);
+ var price = 0.0;
+
+ if (prototype.Components.TryGetValue(factory.GetComponentName(typeof(StaticPriceComponent)),
+ out var staticPriceProto))
+ {
+ var staticComp = (StaticPriceComponent) staticPriceProto.Component;
+
+ price += staticComp.Price;
+ }
+
+ if (prototype.Components.TryGetValue(factory.GetComponentName(typeof(StackPriceComponent)), out var stackpriceProto) &&
+ prototype.Components.TryGetValue(factory.GetComponentName(typeof(StackComponent)), out var stackProto))
+ {
+ var stackPrice = (StackPriceComponent) stackpriceProto.Component;
+ var stack = (StackComponent) stackProto.Component;
+ price += stack.Count * stackPrice.Price;
+ }
+
+ return price;
+ }
+
///
/// Appraises an entity, returning it's price.
///
@@ -123,7 +151,7 @@ public sealed class PricingSystem : EntitySystem
public double GetPrice(EntityUid uid)
{
var ev = new PriceCalculationEvent();
- RaiseLocalEvent(uid, ref ev, true);
+ RaiseLocalEvent(uid, ref ev);
//TODO: Add an OpaqueToAppraisal component or similar for blocking the recursive descent into containers, or preventing material pricing.
diff --git a/Content.Server/Lathe/LatheSystem.cs b/Content.Server/Lathe/LatheSystem.cs
index 1641060cad..2e7a827644 100644
--- a/Content.Server/Lathe/LatheSystem.cs
+++ b/Content.Server/Lathe/LatheSystem.cs
@@ -15,6 +15,7 @@ using Robust.Shared.Prototypes;
using Robust.Shared.Player;
using JetBrains.Annotations;
using System.Linq;
+using Content.Server.Cargo.Systems;
using Content.Server.Power.Components;
using Robust.Server.Player;
diff --git a/Content.Server/UserInterface/StatValuesCommand.cs b/Content.Server/UserInterface/StatValuesCommand.cs
new file mode 100644
index 0000000000..51f0a160fc
--- /dev/null
+++ b/Content.Server/UserInterface/StatValuesCommand.cs
@@ -0,0 +1,144 @@
+using Content.Server.Administration;
+using Content.Server.Cargo.Systems;
+using Content.Server.EUI;
+using Content.Shared.Administration;
+using Content.Shared.Materials;
+using Content.Shared.Research.Prototypes;
+using Content.Shared.UserInterface;
+using Robust.Server.Player;
+using Robust.Shared.Console;
+using Robust.Shared.Prototypes;
+
+namespace Content.Server.UserInterface;
+
+[AdminCommand(AdminFlags.Debug)]
+public sealed class StatValuesCommand : IConsoleCommand
+{
+ public string Command => "showvalues";
+ public string Description => "Dumps all stats for a particular category into a table.";
+ public string Help => $"{Command} ";
+ public void Execute(IConsoleShell shell, string argStr, string[] args)
+ {
+ if (shell.Player is not IPlayerSession pSession)
+ {
+ shell.WriteError($"{Command} can't be run on server!");
+ return;
+ }
+
+ if (args.Length != 1)
+ {
+ shell.WriteError($"Invalid number of args, need 1");
+ return;
+ }
+
+ StatValuesEuiMessage message;
+
+ switch (args[0])
+ {
+ case "cargosell":
+ message = GetCargo();
+ break;
+ case "lathesell":
+ message = GetLatheMessage();
+ break;
+ default:
+ shell.WriteError($"{args[0]} is not a valid stat!");
+ return;
+ }
+
+ var euiManager = IoCManager.Resolve();
+ var eui = new StatValuesEui();
+ euiManager.OpenEui(eui, pSession);
+ eui.SendMessage(message);
+ }
+
+ private StatValuesEuiMessage GetCargo()
+ {
+ // Okay so there's no easy way to do this with how pricing works
+ // So we'll just get the first value for each prototype ID which is probably good enough for the majority.
+
+ var values = new List();
+ var entManager = IoCManager.Resolve();
+ var priceSystem = IoCManager.Resolve().GetEntitySystem();
+ var metaQuery = entManager.GetEntityQuery();
+ var prices = new HashSet(256);
+
+ foreach (var entity in entManager.GetEntities())
+ {
+ if (!metaQuery.TryGetComponent(entity, out var meta))
+ continue;
+
+ var id = meta.EntityPrototype?.ID;
+
+ // We'll add it even if we don't have it so we don't have to raise the event again because this is probably faster.
+ if (id == null || !prices.Add(id))
+ continue;
+
+ var price = priceSystem.GetPrice(entity);
+
+ if (price == 0)
+ continue;
+
+ values.Add(new string[]
+ {
+ id,
+ $"{price:0}",
+ });
+ }
+
+ var state = new StatValuesEuiMessage()
+ {
+ Title = "Cargo sell prices",
+ Headers = new List()
+ {
+ "ID",
+ "Price",
+ },
+ Values = values,
+ };
+
+ return state;
+ }
+
+ private StatValuesEuiMessage GetLatheMessage()
+ {
+ var values = new List();
+ var protoManager = IoCManager.Resolve();
+ var factory = IoCManager.Resolve();
+ var priceSystem = IoCManager.Resolve().GetEntitySystem();
+
+ foreach (var proto in protoManager.EnumeratePrototypes())
+ {
+ var cost = 0.0;
+
+ foreach (var (material, count) in proto.RequiredMaterials)
+ {
+ var materialPrice = protoManager.Index(material).Price;
+ cost += materialPrice * count;
+ }
+
+ var sell = priceSystem.GetEstimatedPrice(protoManager.Index(proto.Result), factory);
+
+ values.Add(new[]
+ {
+ proto.ID,
+ $"{cost:0}",
+ $"{sell:0}",
+ });
+ }
+
+ var state = new StatValuesEuiMessage()
+ {
+ Title = "Lathe sell prices",
+ Headers = new List()
+ {
+ "ID",
+ "Cost",
+ "Sell price",
+ },
+ Values = values,
+ };
+
+ return state;
+ }
+}
diff --git a/Content.Server/UserInterface/StatValuesEui.cs b/Content.Server/UserInterface/StatValuesEui.cs
new file mode 100644
index 0000000000..96dda1b1a6
--- /dev/null
+++ b/Content.Server/UserInterface/StatValuesEui.cs
@@ -0,0 +1,5 @@
+using Content.Server.EUI;
+
+namespace Content.Server.UserInterface;
+
+public sealed class StatValuesEui : BaseEui {}
diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs
index 5eb0856332..ae18a47643 100644
--- a/Content.Server/VendingMachines/VendingMachineSystem.cs
+++ b/Content.Server/VendingMachines/VendingMachineSystem.cs
@@ -1,3 +1,4 @@
+using Content.Server.Cargo.Systems;
using Content.Server.Popups;
using Content.Server.Power.Components;
using Content.Server.Power.EntitySystems;
@@ -21,24 +22,30 @@ namespace Content.Server.VendingMachines
{
public sealed class VendingMachineSystem : SharedVendingMachineSystem
{
+ [Dependency] private readonly IComponentFactory _factory = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly AccessReaderSystem _accessReader = default!;
- [Dependency] private readonly PopupSystem _popupSystem = default!;
- [Dependency] private readonly ThrowingSystem _throwingSystem = default!;
- [Dependency] private readonly SharedActionsSystem _action = default!;
- [Dependency] private readonly AudioSystem _audioSystem = default!;
- [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
[Dependency] private readonly AppearanceSystem _appearanceSystem = default!;
+ [Dependency] private readonly AudioSystem _audioSystem = default!;
+ [Dependency] private readonly PopupSystem _popupSystem = default!;
+ [Dependency] private readonly SharedActionsSystem _action = default!;
+ [Dependency] private readonly PricingSystem _pricing = default!;
+ [Dependency] private readonly ThrowingSystem _throwingSystem = default!;
+ [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
+
+ private ISawmill _sawmill = default!;
public override void Initialize()
{
base.Initialize();
+ _sawmill = Logger.GetSawmill("vending");
SubscribeLocalEvent(OnPowerChanged);
SubscribeLocalEvent(OnBreak);
SubscribeLocalEvent(OnEmagged);
SubscribeLocalEvent(OnDamage);
+ SubscribeLocalEvent(OnVendingPrice);
SubscribeLocalEvent(OnActivatableUIOpenAttempt);
SubscribeLocalEvent(OnBoundUIOpened);
@@ -47,6 +54,24 @@ namespace Content.Server.VendingMachines
SubscribeLocalEvent(OnSelfDispense);
}
+ private void OnVendingPrice(EntityUid uid, VendingMachineComponent component, ref PriceCalculationEvent args)
+ {
+ var price = 0.0;
+
+ foreach (var (id, entry) in component.Inventory)
+ {
+ if (!_prototypeManager.TryIndex(entry.ID, out var proto))
+ {
+ _sawmill.Error($"Unable to find entity prototype {entry.ID} on {ToPrettyString(uid)} vending.");
+ continue;
+ }
+
+ price += entry.Amount * _pricing.GetEstimatedPrice(proto, _factory);
+ }
+
+ args.Price += price;
+ }
+
protected override void OnComponentInit(EntityUid uid, SharedVendingMachineComponent sharedComponent, ComponentInit args)
{
base.OnComponentInit(uid, sharedComponent, args);
@@ -113,7 +138,7 @@ namespace Content.Server.VendingMachines
component.Emagged = true;
args.Handled = true;
}
-
+
private void OnDamage(EntityUid uid, VendingMachineComponent component, DamageChangedEvent args)
{
if (component.Broken || component.DispenseOnHitCoolingDown ||
@@ -320,7 +345,7 @@ namespace Content.Server.VendingMachines
vendComponent.ThrowNextItem = false;
return;
}
-
+
var ent = EntityManager.SpawnEntity(vendComponent.NextItemToEject, Transform(vendComponent.Owner).Coordinates);
if (vendComponent.ThrowNextItem)
{
diff --git a/Content.Server/Weapon/Ranged/Systems/GunSystem.cs b/Content.Server/Weapon/Ranged/Systems/GunSystem.cs
index 3c9a3f2a9b..7d451c7491 100644
--- a/Content.Server/Weapon/Ranged/Systems/GunSystem.cs
+++ b/Content.Server/Weapon/Ranged/Systems/GunSystem.cs
@@ -1,4 +1,5 @@
using System.Linq;
+using Content.Server.Cargo.Systems;
using Content.Server.Damage.Systems;
using Content.Server.Examine;
using Content.Server.Interaction;
@@ -23,6 +24,7 @@ using Robust.Shared.Map;
using Robust.Shared.Physics;
using Robust.Shared.Physics.Components;
using Robust.Shared.Player;
+using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
using SharedGunSystem = Content.Shared.Weapons.Ranged.Systems.SharedGunSystem;
@@ -33,12 +35,35 @@ public sealed partial class GunSystem : SharedGunSystem
[Dependency] private readonly IComponentFactory _factory = default!;
[Dependency] private readonly ExamineSystem _examine = default!;
[Dependency] private readonly InteractionSystem _interaction = default!;
+ [Dependency] private readonly PricingSystem _pricing = default!;
[Dependency] private readonly StaminaSystem _stamina = default!;
[Dependency] private readonly StunSystem _stun = default!;
public const float DamagePitchVariation = MeleeWeaponSystem.DamagePitchVariation;
public const float GunClumsyChance = 0.5f;
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent(OnBallisticPrice);
+ }
+
+ private void OnBallisticPrice(EntityUid uid, BallisticAmmoProviderComponent component, ref PriceCalculationEvent args)
+ {
+ if (string.IsNullOrEmpty(component.FillProto) || component.UnspawnedCount == 0)
+ return;
+
+ if (!ProtoManager.TryIndex(component.FillProto, out var proto))
+ {
+ Sawmill.Error($"Unable to find fill prototype for price on {component.FillProto} on {ToPrettyString(uid)}");
+ return;
+ }
+
+ // Probably good enough for most.
+ var price = _pricing.GetEstimatedPrice(proto);
+ args.Price += price * component.UnspawnedCount;
+ }
+
public override void Shoot(GunComponent gun, List ammo, EntityCoordinates fromCoordinates, EntityCoordinates toCoordinates, EntityUid? user = null)
{
// Try a clumsy roll
diff --git a/Content.Shared/Cargo/Components/CargoShuttleComponent.cs b/Content.Shared/Cargo/Components/CargoShuttleComponent.cs
index cba2196160..a4174bde15 100644
--- a/Content.Shared/Cargo/Components/CargoShuttleComponent.cs
+++ b/Content.Shared/Cargo/Components/CargoShuttleComponent.cs
@@ -12,7 +12,7 @@ public sealed class CargoShuttleComponent : Component
public TimeSpan? NextCall;
[ViewVariables(VVAccess.ReadWrite), DataField("cooldown")]
- public float Cooldown = 150f;
+ public float Cooldown = 30f;
[ViewVariables]
public bool CanRecall;
diff --git a/Content.Shared/UserInterface/StatValuesEuiMessage.cs b/Content.Shared/UserInterface/StatValuesEuiMessage.cs
new file mode 100644
index 0000000000..4af086c872
--- /dev/null
+++ b/Content.Shared/UserInterface/StatValuesEuiMessage.cs
@@ -0,0 +1,18 @@
+using Content.Shared.Eui;
+using Robust.Shared.Serialization;
+
+namespace Content.Shared.UserInterface;
+
+///
+/// It's a message not a state because it's for debugging and it makes it easier to bootstrap more data dumping.
+///
+[Serializable, NetSerializable]
+public sealed class StatValuesEuiMessage : EuiMessageBase
+{
+ ///
+ /// Titles for the window.
+ ///
+ public string Title = string.Empty;
+ public List Headers = new();
+ public List Values = new();
+}
diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml
index c2aa321d64..4f915ca87e 100644
--- a/Resources/Prototypes/Body/Parts/animal.yml
+++ b/Resources/Prototypes/Body/Parts/animal.yml
@@ -15,6 +15,8 @@
containers:
bodypart: !type:Container
ents: []
+ - type: StaticPrice
+ price: 50
# For primates mainly
- type: entity
@@ -79,6 +81,8 @@
- type: Sprite
netsync: false
sprite: Mobs/Species/Human/organs.rsi
+ - type: StaticPrice
+ price: 50
- type: entity
id: OrganAnimalLungs
diff --git a/Resources/Prototypes/Body/Parts/human.yml b/Resources/Prototypes/Body/Parts/human.yml
index 874b306a4e..6055e2752d 100644
--- a/Resources/Prototypes/Body/Parts/human.yml
+++ b/Resources/Prototypes/Body/Parts/human.yml
@@ -13,6 +13,8 @@
containers:
bodypart: !type:Container
ents: []
+ - type: StaticPrice
+ price: 100
- type: entity
id: TorsoHuman
diff --git a/Resources/Prototypes/Body/Parts/silicon.yml b/Resources/Prototypes/Body/Parts/silicon.yml
index 05eb122dbd..633fd8c1e9 100644
--- a/Resources/Prototypes/Body/Parts/silicon.yml
+++ b/Resources/Prototypes/Body/Parts/silicon.yml
@@ -11,6 +11,8 @@
containers:
bodypart: !type:Container
ents: []
+ - type: StaticPrice
+ price: 100
- type: entity
id: LeftArmBorg
diff --git a/Resources/Prototypes/Body/Parts/skeleton.yml b/Resources/Prototypes/Body/Parts/skeleton.yml
index 9494f6b5c6..d6477a134f 100644
--- a/Resources/Prototypes/Body/Parts/skeleton.yml
+++ b/Resources/Prototypes/Body/Parts/skeleton.yml
@@ -12,6 +12,8 @@
containers:
bodypart: !type:Container
ents: []
+ - type: StaticPrice
+ price: 20
- type: entity
id: TorsoSkeleton
diff --git a/Resources/Prototypes/Body/Parts/slime.yml b/Resources/Prototypes/Body/Parts/slime.yml
index 9c3c11747a..c2e77ecc1e 100644
--- a/Resources/Prototypes/Body/Parts/slime.yml
+++ b/Resources/Prototypes/Body/Parts/slime.yml
@@ -12,6 +12,8 @@
containers:
bodypart: !type:Container
ents: []
+ - type: StaticPrice
+ price: 100
- type: entity
id: TorsoSlime
diff --git a/Resources/Prototypes/Body/Parts/vox.yml b/Resources/Prototypes/Body/Parts/vox.yml
index 5bbd4e15fb..f2bbe87138 100644
--- a/Resources/Prototypes/Body/Parts/vox.yml
+++ b/Resources/Prototypes/Body/Parts/vox.yml
@@ -13,6 +13,8 @@
containers:
bodypart: !type:Container
ents: []
+ - type: StaticPrice
+ price: 100
- type: entity
id: TorsoVox
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml
index f4eb92fe25..c1dd69dbcf 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml
@@ -54,6 +54,6 @@
sprite: Objects/Vehicles/atv.rsi
state: vehicle
product: CrateFunATV
- cost: 6000
+ cost: 1500
category: Fun
group: market
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml
index b2859f7ad9..1e5cc2da3f 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml
@@ -4,7 +4,7 @@
sprite: Mobs/Animals/bee.rsi
state: 0
product: CrateNPCBee
- cost: 1000
+ cost: 4000
category: Livestock
group: market
@@ -14,7 +14,7 @@
sprite: Mobs/Animals/butterfly.rsi
state: butterfly
product: CrateNPCButterflies
- cost: 1000
+ cost: 2500
category: Livestock
group: market
@@ -34,7 +34,7 @@
sprite: Mobs/Animals/chicken.rsi
state: icon-1
product: CrateNPCChicken
- cost: 1500
+ cost: 2500
category: Livestock
group: market
@@ -44,7 +44,7 @@
sprite: Mobs/Animals/duck.rsi
state: icon-0
product: CrateNPCDuck
- cost: 2000
+ cost: 3500
category: Livestock
group: market
@@ -114,7 +114,7 @@
sprite: Mobs/Animals/mouse.rsi
state: icon-0
product: CrateNPCMouse
- cost: 1500
+ cost: 2500
category: Livestock
group: market
@@ -124,7 +124,7 @@
sprite: Mobs/Animals/parrot.rsi
state: parrot
product: CrateNPCParrot
- cost: 1000
+ cost: 2000
category: Livestock
group: market
@@ -144,6 +144,6 @@
sprite: Mobs/Animals/snake.rsi
state: snake
product: CrateNPCSnake
- cost: 1000
+ cost: 2000
category: Livestock
group: market
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml
index f63a94d912..078e2ccbdb 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml
@@ -4,7 +4,7 @@
sprite: Objects/Specific/Medical/firstaidkits.rsi
state: firstaid
product: CrateMedicalSupplies
- cost: 1000
+ cost: 2400
category: Medical
group: market
@@ -14,6 +14,6 @@
sprite: Objects/Specific/Chemistry/beaker.rsi
state: beaker
product: CrateChemistrySupplies
- cost: 500
+ cost: 650
category: Medical
group: market
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_security.yml b/Resources/Prototypes/Catalog/Cargo/cargo_security.yml
index a69ca24572..7c98f19cf4 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_security.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_security.yml
@@ -24,7 +24,7 @@
sprite: Objects/Weapons/Guns/Battery/disabler.rsi
state: base
product: CrateSecurityNonlethal
- cost: 1500
+ cost: 2100
category: Security
group: market
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml
index 2c0079d502..ba68a4718a 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml
@@ -40,6 +40,8 @@
interfaces:
- key: enum.StorageUiKey.Key
type: StorageBoundUserInterface
+ - type: StaticPrice
+ price: 80
- type: entity
abstract: true
diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml
index bfa406c41e..2a16608d73 100644
--- a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml
+++ b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml
@@ -31,6 +31,8 @@
enum.ToggleVisuals.Layer:
True: {state: icon-on}
False: {state: icon}
+ - type: StaticPrice
+ price: 200
- type: entity
parent: ClothingShoesBootsMag
diff --git a/Resources/Prototypes/Entities/Clothing/base_clothing.yml b/Resources/Prototypes/Entities/Clothing/base_clothing.yml
index d110a13775..2f57dc258e 100644
--- a/Resources/Prototypes/Entities/Clothing/base_clothing.yml
+++ b/Resources/Prototypes/Entities/Clothing/base_clothing.yml
@@ -8,3 +8,5 @@
- type: Tag
tags:
- WhitelistChameleon
+ - type: StaticPrice
+ price: 15
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/food_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/food_base.yml
index f9877da959..6142e2076e 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Food/food_base.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/food_base.yml
@@ -14,6 +14,8 @@
- type: SpaceGarbage
- type: Sprite
netsync: false
+ - type: StaticPrice
+ price: 50
# This base type is used to cover all of the "obvious" things that should be doable to open-package food.
# Practically this means injection.
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml
index 87b84eeb16..13569c5754 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cigarette.yml
@@ -1,6 +1,3 @@
-- type: Tag
- id: Cigarette
-
- type: entity
id: Cigarette
parent: BaseCigar
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base_smokeables.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base_smokeables.yml
index 896ac02a45..cf9bfa476b 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base_smokeables.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/base_smokeables.yml
@@ -15,6 +15,8 @@
- Trash
- type: Recyclable
- type: SpaceGarbage
+ - type: StaticPrice
+ price: 5
# Base for all cigars and cigarettes.
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml
index 63e2e5fae6..0ff99e2902 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/base_machineboard.yml
@@ -13,4 +13,4 @@
tags:
- DroneUsable
- type: StaticPrice
- price: 75
+ price: 100
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
index ab47c8edc2..57e60c0b7b 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
@@ -12,7 +12,7 @@
tags:
- DroneUsable
- type: StaticPrice
- price: 75
+ price: 100
- type: entity
parent: BaseComputerCircuitboard
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/firelock.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/firelock.yml
index 8e4648aa5f..1e66ada1ea 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/firelock.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/firelock.yml
@@ -12,3 +12,5 @@
sprite: Objects/Misc/module.rsi
state: mainboard
netsync: false
+ - type: StaticPrice
+ price: 100
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml
index b009247232..4932bfdbb0 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/power_electronics.yml
@@ -10,6 +10,8 @@
sprite: Objects/Misc/module.rsi
state: charger_APC
netsync: false
+ - type: StaticPrice
+ price: 100
# Wallmount Substation
- type: entity
@@ -22,7 +24,9 @@
sprite: Objects/Misc/module.rsi
state: charger_APC
netsync: false
-
+ - type: StaticPrice
+ price: 100
+
# Wallmount Generator
- type: entity
id: WallmountGeneratorElectronics
@@ -34,7 +38,9 @@
sprite: Objects/Misc/module.rsi
state: charger_APC
netsync: false
-
+ - type: StaticPrice
+ price: 100
+
# APU
- type: entity
id: WallmountGeneratorAPUElectronics
@@ -46,6 +52,8 @@
sprite: Objects/Misc/module.rsi
state: charger_APC
netsync: false
+ - type: StaticPrice
+ price: 100
# Solar Tracker Electronics
- type: entity
@@ -58,3 +66,5 @@
sprite: Objects/Misc/module.rsi
state: generic
netsync: false
+ - type: StaticPrice
+ price: 100
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml
index f46e3b4f26..126ef5668a 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml
@@ -5,9 +5,11 @@
id: RemoteSignaller
name: remote signaller
description: A handheld device used for remotely sending signals to objects.
- components:
+ components:
- type: Sprite
sprite: Objects/Devices/signaller.rsi
state: signaller
- type: Signaller
- - type: UseDelay
\ No newline at end of file
+ - type: UseDelay
+ - type: StaticPrice
+ price: 40
diff --git a/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml b/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml
index 3b5083116a..f8bae2881c 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml
@@ -25,6 +25,8 @@
delayOptions: [3, 5, 10, 15, 30]
initialBeepDelay: 0
beepSound: /Audio/Machines/Nuke/general_beep.ogg
+ - type: StaticPrice
+ price: 40
- type: entity
parent: TimerTrigger
@@ -38,4 +40,6 @@
- type: PayloadTrigger
components:
- type: TriggerOnSignal
- - type: SignalReceiver
\ No newline at end of file
+ - type: SignalReceiver
+ - type: StaticPrice
+ price: 40
diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
index e99c0d00d7..a2789a15f2 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
@@ -33,3 +33,5 @@
sprite: Objects/Devices/Holoprojectors/atmos.rsi
state: icon
netsync: false
+ - type: StaticPrice
+ price: 80
diff --git a/Resources/Prototypes/Entities/Objects/Devices/payload.yml b/Resources/Prototypes/Entities/Objects/Devices/payload.yml
index fce48952e0..beab635e9e 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/payload.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/payload.yml
@@ -81,6 +81,8 @@
containers:
BeakerSlotA: !type:ContainerSlot
BeakerSlotB: !type:ContainerSlot
+ - type: StaticPrice
+ price: 60
- type: entity
name: flash payload
diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml
index 3bff802b41..df8cc5dc19 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/base_instruments.yml
@@ -18,6 +18,8 @@
type: InstrumentBoundUserInterface
- type: Item
size: 24
+ - type: StaticPrice
+ price: 200
#These are for instruments that are larger, can't be picked up, or have collision
- type: entity
@@ -67,6 +69,8 @@
- HighImpassable
- MidImpassable
- BulletImpassable
+ - type: StaticPrice
+ price: 300
- type: entity
parent: BasePlaceableInstrument
@@ -75,4 +79,4 @@
abstract: true
components:
- type: Rotatable
- rotateWhileAnchored: true
\ No newline at end of file
+ rotateWhileAnchored: true
diff --git a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml
index 0085148ed7..0dc6cb3045 100644
--- a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml
+++ b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml
@@ -27,6 +27,8 @@
Quantity: 3
- ReagentId: MindbreakerToxin
Quantity: 2
+ - type: StaticPrice
+ price: 5
- type: entity
parent: Crayon
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
index 9b7fb8d34c..0a0c876e99 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
@@ -175,7 +175,7 @@
components:
- type: Material
materials:
- ReinforcedPlasmaGlass: 500
+ ReinforcedPlasmaGlass: 100
- type: Stack
stackType: ReinforcedPlasmaGlass
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
index be10a0001f..632b287ecd 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
@@ -64,7 +64,7 @@
components:
- type: Material
materials:
- Plasma: 500
+ Plasma: 100
- type: Stack
stackType: Plasma
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Objects/Materials/parts.yml b/Resources/Prototypes/Entities/Objects/Materials/parts.yml
index 1e2a325dd3..b629352d47 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/parts.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/parts.yml
@@ -28,7 +28,7 @@
- type: entity
parent: PartBase
id: PartRodMetal
- name: metals rods
+ name: metal rods
suffix: Full
components:
- type: Stack
@@ -53,6 +53,10 @@
outputs:
- Lattice
- FloorReinforced
+ - type: StaticPrice
+ price: 0
+ - type: StackPrice
+ price: 5
- type: entity
parent: PartRodMetal
diff --git a/Resources/Prototypes/Entities/Objects/Misc/bedsheets.yml b/Resources/Prototypes/Entities/Objects/Misc/bedsheets.yml
index 9edc1aeb31..9c0713d3ca 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/bedsheets.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/bedsheets.yml
@@ -19,6 +19,8 @@
quickEquip: true
slots:
- neck
+ - type: StaticPrice
+ price: 100
- type: entity
id: BedsheetBlack
diff --git a/Resources/Prototypes/Entities/Objects/Misc/botparts.yml b/Resources/Prototypes/Entities/Objects/Misc/botparts.yml
index a0dffdc3f6..fbbdca3909 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/botparts.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/botparts.yml
@@ -10,3 +10,5 @@
- type: Tag
tags:
- ProximitySensor
+ - type: StaticPrice
+ price: 40
diff --git a/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml b/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml
index d856cc506e..6145dd3361 100644
--- a/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml
+++ b/Resources/Prototypes/Entities/Objects/Power/antimatter_jar.yml
@@ -12,3 +12,5 @@
state: jar
netsync: false
- type: AMEFuelContainer
+ - type: StaticPrice
+ price: 500
diff --git a/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml b/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml
index 14da557dca..ecf110f09b 100644
--- a/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml
+++ b/Resources/Prototypes/Entities/Objects/Power/antimatter_part.yml
@@ -11,3 +11,5 @@
sprite: Objects/Power/AME/ame_part.rsi
state: box
- type: AMEPart
+ - type: StaticPrice
+ price: 500
diff --git a/Resources/Prototypes/Entities/Objects/Power/powercells.yml b/Resources/Prototypes/Entities/Objects/Power/powercells.yml
index c0bdd68228..5a5147c03d 100644
--- a/Resources/Prototypes/Entities/Objects/Power/powercells.yml
+++ b/Resources/Prototypes/Entities/Objects/Power/powercells.yml
@@ -28,6 +28,8 @@
- DroneUsable
- type: Appearance
- type: PowerCellVisuals
+ - type: StaticPrice
+ price: 100
- type: entity
name: potato battery
diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml
index b5fceeea21..09e7e28bb4 100644
--- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml
+++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml
@@ -50,6 +50,9 @@
parent: BaseShield
id: RiotShield
description: A large tower shield. Good for controlling crowds.
+ components:
+ - type: StaticPrice
+ price: 100
- type: entity
name: riot laser shield
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml
index 271a4f6c88..c84b855c00 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml
@@ -10,6 +10,8 @@
netsync: true
- type: Item
size: 2
+ - type: StaticPrice
+ price: 20
- type: entity
parent: SeedBase
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml
index 383e14ed1c..750c28d3ac 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml
@@ -61,6 +61,8 @@
sprite: Objects/Tools/Hydroponics/scythe.rsi
slots:
- back
+ - type: StaticPrice
+ price: 40
- type: entity
name: hatchet
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml
index 4a553949b9..21e20ba61f 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml
@@ -19,3 +19,5 @@
receiveFrequencyId: SuitSensor
- type: WirelessNetworkConnection
range: 500
+ - type: StaticPrice
+ price: 500
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
index 34e2bca274..8111288894 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
@@ -8,6 +8,9 @@
- type: Item
sprite: Objects/Specific/Medical/medical.rsi
heldPrefix: ointment
+ # Inherited
+ - type: StaticPrice
+ price: 0
- type: entity
name: ointment
@@ -35,6 +38,8 @@
stackType: Ointment
max: 10
count: 10
+ - type: StackPrice
+ price: 10
- type: entity
name: bruise pack
@@ -61,6 +66,8 @@
stackType: Brutepack
max: 10
count: 10
+ - type: StackPrice
+ price: 10
- type: entity
name: roll of gauze
@@ -91,6 +98,8 @@
stackType: Gauze
max: 10
count: 10
+ - type: StackPrice
+ price: 10
- type: entity
id: Gauze1
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
index 3a081b80ca..e6d0af9afc 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
@@ -72,6 +72,8 @@
containers:
entity_storage: !type:Container
paper_label: !type:ContainerSlot
+ - type: StaticPrice
+ price: 50
- type: entity
id: BodyBag_Folded
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml
index dc98802deb..98780d7489 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml
@@ -7,6 +7,8 @@
components:
- type: Sprite
netsync: false
+ - type: StaticPrice
+ price: 60
# Cautery
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml
index 3ae354ce1c..dd60d484cf 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml
@@ -54,3 +54,5 @@
- type: Appearance
visuals:
- type: DeployableBarrierVisualizer
+ - type: StaticPrice
+ price: 200
diff --git a/Resources/Prototypes/Entities/Objects/Specific/atmos.yml b/Resources/Prototypes/Entities/Objects/Specific/atmos.yml
index 2312a239cb..21ce9f46d4 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/atmos.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/atmos.yml
@@ -30,3 +30,5 @@
- type: Tag
tags:
- DroneUsable
+ - type: StaticPrice
+ price: 80
diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
index 2c806a84dc..0f68f4befe 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
@@ -78,6 +78,8 @@
damage:
types:
Blunt: 5
+ - type: StaticPrice
+ price: 30
- type: entity
name: beaker
@@ -113,6 +115,8 @@
- type: SolutionContainerVisuals
maxFillLevels: 6
fillBaseName: beakerlarge
+ - type: StaticPrice
+ price: 40
- type: entity
name: cryostasis beaker
@@ -205,6 +209,8 @@
- type: SolutionContainerVisuals
maxFillLevels: 1
fillBaseName: dropper
+ - type: StaticPrice
+ price: 40
- type: entity
name: syringe
diff --git a/Resources/Prototypes/Entities/Objects/Tools/airlock_painter.yml b/Resources/Prototypes/Entities/Objects/Tools/airlock_painter.yml
index 760b871827..2f540ac934 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/airlock_painter.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/airlock_painter.yml
@@ -18,3 +18,5 @@
whitelist:
tags:
- PaintableAirlock
+ - type: StaticPrice
+ price: 40
diff --git a/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml b/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml
index dbbf2963a4..5efab18f72 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml
@@ -52,6 +52,8 @@
- type: Appearance
visuals:
- type: FlashLightVisualizer
+ - type: StaticPrice
+ price: 40
- type: entity
name: seclite
diff --git a/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml b/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml
index b755f18470..b9b526f1a5 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/light_replacer.yml
@@ -20,3 +20,5 @@
- type: Tag
tags:
- DroneUsable
+ - type: StaticPrice
+ price: 100
diff --git a/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml b/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml
index 7b180ab655..24a6a238e2 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/t-ray.yml
@@ -22,3 +22,5 @@
- type: Tag
tags:
- DroneUsable
+ - type: StaticPrice
+ price: 60
diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
index b2249bf9c6..bc50916b7e 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
@@ -35,6 +35,8 @@
- type: Item
sprite: Objects/Tools/wirecutters.rsi
- type: LatticeCutting
+ - type: StaticPrice
+ price: 40
- type: entity
name: screwdriver
@@ -71,6 +73,8 @@
available:
- enum.DamageStateVisualLayers.Base:
screwdriver: Rainbow
+ - type: StaticPrice
+ price: 40
- type: entity
name: wrench
@@ -100,6 +104,8 @@
- Anchoring
useSound:
path: /Audio/Items/ratchet.ogg
+ - type: StaticPrice
+ price: 40
- type: entity
name: crowbar
@@ -131,6 +137,8 @@
useSound:
path: /Audio/Items/crowbar.ogg
- type: TilePrying
+ - type: StaticPrice
+ price: 40
- type: entity
name: emergency crowbar
@@ -190,6 +198,8 @@
- type: Tag
tags:
- DroneUsable
+ - type: StaticPrice
+ price: 60
- type: entity
name: power drill
@@ -229,6 +239,8 @@
path: /Audio/Items/drill_use.ogg
changeSound:
path: /Audio/Items/change_drill.ogg
+ - type: StaticPrice
+ price: 60
- type: entity
name: RCD
@@ -249,6 +261,8 @@
quickEquip: false
slots:
- Belt
+ - type: StaticPrice
+ price: 100
- type: entity
name: RCD Ammo
@@ -263,6 +277,8 @@
- type: Item
sprite: Objects/Tools/rcd.rsi
heldPrefix: ammo
+ - type: StaticPrice
+ price: 60
- type: entity
name: shovel
diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml
index d3c694f7c1..313eb70ec5 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml
@@ -51,6 +51,8 @@
color: orange
- type: Appearance
- type: RequiresEyeProtection
+ - type: StaticPrice
+ price: 40
- type: entity
name: industrial welding tool
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimaterial.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimaterial.yml
index 5618adfdfe..57612048d1 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimaterial.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimaterial.yml
@@ -16,3 +16,5 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 20
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml
index 4d9b184c5f..6200c50499 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml
@@ -19,6 +19,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 10
- type: entity
id: CartridgeCaselessRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml
index d8f9dde395..c3b3ced849 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml
@@ -18,6 +18,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 10
- type: entity
id: CartridgeMinigun
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml
index 8eadd268b1..5ffb67b65b 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml
@@ -18,6 +18,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 10
- type: entity
id: CartridgeLightRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml
index 335dfbd402..aa82621138 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml
@@ -18,6 +18,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 10
- type: entity
id: CartridgeMagnum
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml
index dde7304678..1a11d21dfc 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml
@@ -18,6 +18,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 10
- type: entity
id: CartridgePistol
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml
index e058757a50..8da032ebb3 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml
@@ -18,6 +18,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
+ - type: StaticPrice
+ price: 10
- type: entity
id: CartridgeRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/toy.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/toy.yml
index b28f05adf6..b05202a170 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/toy.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/toy.yml
@@ -17,6 +17,8 @@
map: ["enum.AmmoVisualLayers.Base"]
- type: SpentAmmoVisuals
- type: Appearance
+ - type: StaticPrice
+ price: 5
- type: entity
id: CartridgeCap
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml
index a2c926b8dd..cca919abc5 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml
@@ -18,6 +18,8 @@
netsync: false
sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi
state: rpg
+ - type: StaticPrice
+ price: 20
- type: entity
id: CartridgeRocketSlow
@@ -36,6 +38,8 @@
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi
state: frag
+ - type: StaticPrice
+ price: 20
# Grenades
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 da81d464d5..1017a35d29 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
@@ -29,6 +29,8 @@
steps: 5
zeroVisible: false
- type: Appearance
+ - type: StaticPrice
+ price: 500
- type: entity
id: BaseWeaponBatterySmall
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml
index 957aa63004..264842d2bb 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml
@@ -17,6 +17,8 @@
path: /Audio/Weapons/Guns/Gunshots/lmg.ogg
soundEmpty:
path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg
+ - type: StaticPrice
+ price: 500
# No chamber because HMG may want its own
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml
index 89bda8748b..a46c8ec7c3 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml
@@ -51,6 +51,8 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: StaticPrice
+ price: 500
- type: entity
name: L6 SAW
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml
index a548a16ffc..7d554b8d12 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml
@@ -14,6 +14,8 @@
- Back
- type: Item
size: 60
+ - type: StaticPrice
+ price: 500
- type: entity
name: china lake
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml
index ef57db9612..c80552e96b 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml
@@ -55,6 +55,8 @@
steps: 1
zeroVisible: true
- type: Appearance
+ - type: StaticPrice
+ price: 500
- type: entity
name: viper
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml
index c75774b43f..4d9e640a0f 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml
@@ -38,6 +38,8 @@
path: /Audio/Weapons/Guns/MagOut/revolver_magout.ogg
soundInsert:
path: /Audio/Weapons/Guns/MagIn/revolver_magin.ogg
+ - type: StaticPrice
+ price: 500
- type: entity
name: Deckard
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
index 07a1dd29e7..e43a11d508 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
@@ -46,6 +46,8 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: StaticPrice
+ price: 500
- type: entity
name: AKMS
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
index e2e7ac857e..1ed0e17654 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
@@ -49,6 +49,8 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: StaticPrice
+ price: 500
- type: entity
name: Atreides
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
index 833f43a286..0fed3a6e61 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
@@ -42,6 +42,8 @@
containers:
ballistic-ammo: !type:Container
ents: []
+ - type: StaticPrice
+ price: 500
- type: entity
name: Bulldog
@@ -96,6 +98,8 @@
steps: 1
zeroVisible: true
- type: Appearance
+ - type: StaticPrice
+ price: 500
- type: entity
name: double-barreled shotgun
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml
index c2a9502503..035ceb07fe 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml
@@ -36,6 +36,8 @@
containers:
ballistic-ammo: !type:Container
ents: []
+ - type: StaticPrice
+ price: 500
- type: entity
name: Kardashev-Mosin
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml
index 9a4616e080..508b94d782 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml
@@ -45,6 +45,8 @@
enum.ToggleVisuals.Layer:
True: {state: stunbaton_on}
False: {state: stunbaton_off}
+ - type: StaticPrice
+ price: 100
- type: entity
name: flash
@@ -67,6 +69,8 @@
size: 5
sprite: Objects/Weapons/Melee/flash.rsi
- type: ItemCooldown
+ - type: StaticPrice
+ price: 40
- type: entity
name: portable flasher
diff --git a/Resources/Prototypes/Entities/Objects/base_item.yml b/Resources/Prototypes/Entities/Objects/base_item.yml
index 71372ab368..de09c0aa89 100644
--- a/Resources/Prototypes/Entities/Objects/base_item.yml
+++ b/Resources/Prototypes/Entities/Objects/base_item.yml
@@ -6,7 +6,7 @@
- type: Item
size: 5
- type: StaticPrice
- price: 5
+ price: 20
- type: Clickable
- type: InteractionOutline
- type: MovedByPressure
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
index c2855fb121..59ab255968 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
@@ -59,3 +59,5 @@
machine_board: !type:Container
machine_parts: !type:Container
ReagentDispenser-beaker: !type:ContainerSlot
+ - type: StaticPrice
+ price: 1000
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
index b35a58bd21..fecab7ada1 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
@@ -99,5 +99,7 @@
mode: NoSprite
- type: PaintableAirlock
group: Standard
+ - type: StaticPrice
+ price: 150
placement:
mode: SnapgridCenter
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
index 0aef5f1338..1b7f75cefe 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
@@ -99,6 +99,8 @@
node: Firelock
- type: WallMount
arc: 360
+ - type: StaticPrice
+ price: 150
- type: entity
id: FirelockGlass
@@ -152,3 +154,5 @@
occludes: false
- type: Physics
canCollide: false
+ - type: StaticPrice
+ price: 100
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
index 43056ffda8..6d399d3d4c 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
@@ -111,6 +111,8 @@
- type: Construction
graph: Windoor
node: windoor
+ - type: StaticPrice
+ price: 100
- type: entity
id: BaseSecureWindoor
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
index ff829d9254..94c003589c 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
@@ -40,6 +40,8 @@
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
+ - type: StaticPrice
+ price: 50
- type: entity
name: chair
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
index edbbce118d..59b42c2ecf 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
@@ -55,6 +55,8 @@
key: rollerbed
- type: RollerbedVisualizer
key: rollerbed
+ - type: StaticPrice
+ price: 200
- type: entity
id: CheapRollerBed
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml
index c9d4e553fb..2af2d95236 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/arcades.yml
@@ -33,6 +33,8 @@
bodyBroken: arcade
- type: Anchorable
- type: Pullable
+ - type: StaticPrice
+ price: 300
- type: entity
id: SpaceVillainArcade
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
index d66c499153..f1bca1fd55 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
@@ -53,3 +53,5 @@
containers:
board: !type:Container
ents: []
+ - type: StaticPrice
+ price: 400
diff --git a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
index 53e01e9e4c..4b178056f9 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
@@ -63,3 +63,5 @@
enum.CloningPodStatus.Gore: pod_g
enum.CloningPodStatus.Idle: pod_0
- type: Climbable
+ - type: StaticPrice
+ price: 1000
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index f1246a135f..d8d72d0252 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -85,6 +85,8 @@
anchored: true
- type: Pullable
- type: Lathe
+ - type: StaticPrice
+ price: 800
- type: entity
parent: [ BaseMachinePowered, ConstructibleMachine ]
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
index a2e923cb5e..ee049039bc 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
@@ -48,6 +48,8 @@
range: 2
sound:
path: /Audio/Ambience/Objects/gas_hiss.ogg
+ - type: StaticPrice
+ price: 100
#Note: The PipeDirection of the PipeNode should be the south-facing version, because the entity starts at an angle of 0 (south)
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
index 2e9bf03450..80f3dcea50 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
@@ -246,6 +246,8 @@
!type:PipeNode
nodeGroupID: Pipe
pipeDirection: South
+ - type: StaticPrice
+ price: 500
- type: entity
parent: BaseGasThermoMachine
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml
index 00ea4dddf2..4ceb151459 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml
@@ -74,6 +74,8 @@
- type: ContainerContainer
containers:
DisposalUnit: !type:Container
+ - type: StaticPrice
+ price: 100
- type: entity
id: DisposalUnit
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml
index 02478b07c4..a02475ca1d 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml
@@ -67,6 +67,8 @@
maxIntensity: 100
intensitySlope: 2
totalIntensity: 200
+ - type: StaticPrice
+ price: 500
# Base Wallmount Generator
diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml
index 29c82cfc9d..5d0287b279 100644
--- a/Resources/Prototypes/Entities/Structures/Power/apc.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml
@@ -92,6 +92,8 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: StationInfiniteBatteryTarget
+ - type: StaticPrice
+ price: 500
# APC under construction
- type: entity
diff --git a/Resources/Prototypes/Entities/Structures/Power/smes.yml b/Resources/Prototypes/Entities/Structures/Power/smes.yml
index 39db24851c..e555728bdb 100644
--- a/Resources/Prototypes/Entities/Structures/Power/smes.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/smes.yml
@@ -58,6 +58,8 @@
- type: Machine
board: SMESMachineCircuitboard
- type: StationInfiniteBatteryTarget
+ - type: StaticPrice
+ price: 750
# SMES' in use
diff --git a/Resources/Prototypes/Entities/Structures/Storage/morgue.yml b/Resources/Prototypes/Entities/Structures/Storage/morgue.yml
index f7546a7172..dd72e44e1d 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/morgue.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/morgue.yml
@@ -68,6 +68,8 @@
- type: Transform
anchored: true
- type: AntiRottingContainer
+ - type: StaticPrice
+ price: 200
#needs to be removed
- type: entity
@@ -156,4 +158,4 @@
- type: Sprite
netsync: false
sprite: Structures/Storage/morgue.rsi
- state: crema_tray
\ No newline at end of file
+ state: crema_tray
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml
index e1a0aa1e84..61823c866f 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml
@@ -33,3 +33,5 @@
sprite: Structures/Wallmounts/signs.rsi
netsync: false
snapCardinals: true
+ - type: StaticPrice
+ price: 20
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml
index 3fb20fcac7..373504bf4d 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml
@@ -43,6 +43,8 @@
type: SurveillanceCameraSetupBoundUi
- key: enum.WiresUiKey.Key
type: WiresBoundUserInterface
+ - type: StaticPrice
+ price: 200
placement:
mode: SnapgridCenter
snap:
diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml
index 98d34f27bb..34b68de81a 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml
@@ -44,6 +44,8 @@
sizeX: 32
sizeY: 32
- type: Airtight
+ - type: StaticPrice
+ price: 75
- type: entity
parent: BaseWall
@@ -447,7 +449,7 @@
visuals:
- type: ReinforcedWallVisualizer
- type: StaticPrice
- price: 41.5 # total material cost. If you change the recipe for the wall you should recalculate this.
+ price: 150
# Riveting
- type: entity
@@ -479,6 +481,8 @@
- type: IconSmooth
key: walls
base: riveted
+ - type: StaticPrice
+ price: 150
- type: entity
parent: BaseWall
diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml
index 3e732c9118..3805c482bd 100644
--- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml
+++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml
@@ -49,7 +49,7 @@
damageOverlay:
sprite: Structures/Windows/cracks.rsi
- type: StaticPrice
- price: 0.75
+ price: 150
- type: entity
parent: ReinforcedWindow
diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml
index 6b188d8ce1..4fbef22d7a 100644
--- a/Resources/Prototypes/Entities/Structures/Windows/window.yml
+++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml
@@ -85,7 +85,7 @@
damageOverlay:
sprite: Structures/Windows/cracks.rsi
- type: StaticPrice
- price: 0.5
+ price: 100
- type: entity
id: WindowDirectional
diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml
index a486260f88..5855923001 100644
--- a/Resources/Prototypes/Entities/Structures/base_structure.yml
+++ b/Resources/Prototypes/Entities/Structures/base_structure.yml
@@ -53,6 +53,8 @@
- MidImpassable
- LowImpassable
- type: Anchorable
+ - type: StaticPrice
+ price: 50
- type: Tag
id: Structure
diff --git a/Resources/Prototypes/Entities/Structures/conveyor.yml b/Resources/Prototypes/Entities/Structures/conveyor.yml
index 513fc493df..8a82e0c294 100644
--- a/Resources/Prototypes/Entities/Structures/conveyor.yml
+++ b/Resources/Prototypes/Entities/Structures/conveyor.yml
@@ -81,4 +81,6 @@
- type: Construction
graph: ConveyorGraph
node: item
+ - type: StaticPrice
+ price: 40
diff --git a/Resources/Prototypes/Reagents/Materials/glass.yml b/Resources/Prototypes/Reagents/Materials/glass.yml
index 777463eebe..fdb19b4948 100644
--- a/Resources/Prototypes/Reagents/Materials/glass.yml
+++ b/Resources/Prototypes/Reagents/Materials/glass.yml
@@ -4,7 +4,7 @@
name: materials-glass
icon: Objects/Materials/Sheets/glass.rsi/glass.png
color: "#a8ccd7"
- price: 0.0025
+ price: 0.075
- type: material
id: ReinforcedGlass
@@ -12,7 +12,7 @@
name: materials-reinforced-glass
icon: Objects/Materials/Sheets/glass.rsi/rglass.png
color: "#549bb0"
- price: 0.00375 # 2-1 mix of glass and metal.
+ price: 0.22 # 2-1 mix of glass and metal.
- type: material
id: PlasmaGlass
@@ -20,7 +20,7 @@
name: materials-plasma-glass
icon: Objects/Materials/Sheets/glass.rsi/pglass.png
color: "#b35989"
- price: 0.1025 # 1-1 mix of plasma and glass.
+ price: 0.30 # 1-1 mix of plasma and glass.
- type: material
id: ReinforcedPlasmaGlass
@@ -28,4 +28,4 @@
name: materials-reinforced-plasma-glass
icon: Objects/Materials/Sheets/glass.rsi/rpglass.png
color: "#8c4069"
- price: 0.10375 # 2-2-1 mix of plasma, glass, and metal.
+ price: 0.66 # 2-2-1 mix of plasma, glass, and metal.
diff --git a/Resources/Prototypes/Reagents/Materials/materials.yml b/Resources/Prototypes/Reagents/Materials/materials.yml
index 9603987ea4..09e2749f65 100644
--- a/Resources/Prototypes/Reagents/Materials/materials.yml
+++ b/Resources/Prototypes/Reagents/Materials/materials.yml
@@ -4,7 +4,7 @@
name: materials-biomass
icon: /Textures/Objects/Misc/monkeycube.rsi/cube.png
color: "#8A9A5B"
- price: 0.05
+ price: 0.1
- type: material
id: Cloth
@@ -12,7 +12,7 @@
name: materials-cloth
icon: /Textures/Objects/Materials/materials.rsi/cloth.png
color: "#e7e7de"
- price: 0.005
+ price: 0.05
- type: material
id: Durathread
@@ -20,7 +20,7 @@
name: materials-durathread
icon: /Textures/Objects/Materials/materials.rsi/durathread.png
color: "#8291a1"
- price: 0.0175 # 1-1 mix of plastic and cloth.
+ price: 0.15 # 1-1 mix of plastic and cloth.
- type: material
id: Plasma
@@ -28,7 +28,7 @@
name: materials-plasma
icon: Objects/Materials/Sheets/other.rsi/plasma.png
color: "#7e009e"
- price: 0.1
+ price: 0.2
- type: material
id: Plastic
@@ -36,7 +36,7 @@
name: materials-plastic
icon: Objects/Materials/Sheets/other.rsi/plastic.png
color: "#d9d9d9"
- price: 0.0125
+ price: 0.1
- type: material
id: Wood
@@ -44,7 +44,7 @@
name: materials-wood
icon: Objects/Materials/materials.rsi/wood.png
color: "#966F33"
- price: 0.01
+ price: 0.05
- type: material
id: Uranium
@@ -52,4 +52,4 @@
name: materials-uranium
icon: Objects/Materials/Sheets/other.rsi/uranium.png
color: "#32a852"
- price: 0.05
+ price: 0.2
diff --git a/Resources/Prototypes/Reagents/Materials/metals.yml b/Resources/Prototypes/Reagents/Materials/metals.yml
index dec7bfff99..88870f973e 100644
--- a/Resources/Prototypes/Reagents/Materials/metals.yml
+++ b/Resources/Prototypes/Reagents/Materials/metals.yml
@@ -3,7 +3,7 @@
stack: Steel
name: materials-steel
icon: Objects/Materials/Sheets/metal.rsi/steel.png
- price: 0.0025
+ price: 0.05
- type: material
id: Gold
@@ -11,7 +11,7 @@
name: materials-gold
icon: Objects/Materials/ingots.rsi/gold.png
color: "#FFD700"
- price: 0.0625
+ price: 0.2
- type: material
id: Silver
@@ -19,7 +19,7 @@
name: materials-silver
icon: Objects/Materials/ingots.rsi/silver.png
color: "#C0C0C0"
- price: 0.025
+ price: 0.15
- type: material
id: Plasteel
@@ -27,4 +27,4 @@
name: materials-plasteel
icon: Objects/Materials/Sheets/metal.rsi/plasteel.png
color: "#696969" #Okay, this is epic
- price: 0.1025 # 1-1 mix of plasma and steel.
+ price: 0.28 # 1-1 mix of plasma and steel.
diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml
index 3b526bf665..817a60ccc5 100644
--- a/Resources/Prototypes/tags.yml
+++ b/Resources/Prototypes/tags.yml
@@ -96,6 +96,9 @@
- type: Tag
id: CartridgeRocket
+- type: Tag
+ id: Cigarette
+
- type: Tag
id: CigFilter