diff --git a/Content.Server/Cargo/Components/MobPriceComponent.cs b/Content.Server/Cargo/Components/MobPriceComponent.cs
index ee9f53d0871..e5ddca09652 100644
--- a/Content.Server/Cargo/Components/MobPriceComponent.cs
+++ b/Content.Server/Cargo/Components/MobPriceComponent.cs
@@ -1,4 +1,4 @@
-namespace Content.Server.Cargo.Components;
+namespace Content.Server.Cargo.Components;
///
/// This is used for calculating the price of mobs.
@@ -23,4 +23,10 @@ public sealed partial class MobPriceComponent : Component
///
[DataField("deathPenalty")]
public double DeathPenalty = 0.2f;
+
+ ///
+ /// The percentage of the actual price that should be granted should the appraised mob be lab grown calc added after DeathPenalty, will use tag "LabGrown".
+ ///
+ [DataField("labGrownPenalty")]
+ public double LabGrownPenalty = 0.2f;
}
diff --git a/Content.Server/Cargo/Systems/PricingSystem.cs b/Content.Server/Cargo/Systems/PricingSystem.cs
index 64ba671adf8..83174d7915e 100644
--- a/Content.Server/Cargo/Systems/PricingSystem.cs
+++ b/Content.Server/Cargo/Systems/PricingSystem.cs
@@ -17,6 +17,7 @@
using Robust.Shared.Map;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
+using Content.Shared.Tag;
namespace Content.Server.Cargo.Systems;
@@ -32,6 +33,8 @@ public sealed class PricingSystem : EntitySystem
[Dependency] private readonly BodySystem _bodySystem = default!;
[Dependency] private readonly MobStateSystem _mobStateSystem = default!;
+ [Dependency] private readonly TagSystem _tagSystem = default!;
+
///
public override void Initialize()
{
@@ -103,7 +106,7 @@ private void CalculateMobPrice(EntityUid uid, MobPriceComponent component, ref P
var partRatio = totalPartsPresent / (double) totalParts;
var partPenalty = component.Price * (1 - partRatio) * component.MissingBodyPartPenalty;
- args.Price += (component.Price - partPenalty) * (_mobStateSystem.IsAlive(uid, state) ? 1.0 : component.DeathPenalty);
+ args.Price += (component.Price - partPenalty) * (_mobStateSystem.IsAlive(uid, state) ? 1.0 : component.DeathPenalty) * (!_tagSystem.HasTag(uid, "LabGrown") ? 1.0 : component.LabGrownPenalty);
}
private double GetSolutionPrice(SolutionContainerManagerComponent component)
diff --git a/Resources/Prototypes/Body/Organs/Animal/animal.yml b/Resources/Prototypes/Body/Organs/Animal/animal.yml
index e84528fbb41..7fdb3274de9 100644
--- a/Resources/Prototypes/Body/Organs/Animal/animal.yml
+++ b/Resources/Prototypes/Body/Organs/Animal/animal.yml
@@ -7,7 +7,7 @@
- type: Sprite
sprite: Mobs/Species/Human/organs.rsi
- type: StaticPrice
- price: 50
+ price: 5 # Why will anyone pay big money for animal organs
- type: entity
diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml
index cf65fd21360..49376b4e367 100644
--- a/Resources/Prototypes/Body/Parts/animal.yml
+++ b/Resources/Prototypes/Body/Parts/animal.yml
@@ -19,7 +19,7 @@
bodypart: !type:Container
ents: []
- type: StaticPrice
- price: 50
+ price: 5 # Why will anyone pay big money for animal organs
- type: Tag
tags:
- Trash
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml
index 77ccafd6c50..2f7503b9a16 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_livestock.yml
@@ -114,7 +114,7 @@
sprite: Mobs/Animals/monkey.rsi
state: monkey
product: CrateNPCMonkeyCube
- cost: 4500
+ cost: 900
category: Livestock
group: market
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
index ab6ac3295c1..8c0eecb347e 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/chefvend.yml
@@ -7,15 +7,15 @@
ReagentContainerRice: 2
FoodCondimentPacketSalt: 4
FoodCondimentBottleEnzyme: 2
- FoodCondimentBottleHotsauce: 1
- FoodCondimentBottleKetchup: 1
- FoodCondimentBottleBBQ: 1
+ FoodCondimentBottleHotsauce: 2
+ FoodCondimentBottleKetchup: 2
+ FoodCondimentBottleBBQ: 2
FoodCondimentBottleVinegar: 2
ReagentContainerOliveoil: 2
- MonkeyCubeBox: 1
- FoodContainerEgg: 1
+ MonkeyCubeBox: 3
+ FoodContainerEgg: 2
ReagentContainerMilk: 2
- ReagentContainerMilkSoy: 1
+ ReagentContainerMilkSoy: 2
FoodButter: 4
- FoodCheese: 1
+ FoodCheese: 2
FoodMeat: 6
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index 26ebf88ec39..3527d3e42b5 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -882,6 +882,9 @@
clumsySound:
path: /Audio/Animals/monkey_scream.ogg
- type: IdExaminable
+ - type: Tag
+ tags:
+ - LabGrown
- type: entity
name: guidebook monkey
diff --git a/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml b/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml
index 4ef79c90890..ff093700449 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml
@@ -19,7 +19,7 @@
- type: StaticPrice
price: 20
- type: VendPrice
- price: 4500 # Yep, same price as the crate
+ price: 900 # 150 per monkey (Meat worth 200)
- type: entity
parent: BaseItem
@@ -40,7 +40,7 @@
tags:
- MonkeyCube
- type: StaticPrice
- price: 460 # The same price as dead (-20)
+ price: 55 # The same price as dead (-20)
- type: entity
parent: BoxCardboard
diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
index c553079c002..4406963b58c 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
@@ -47,7 +47,7 @@
layer:
- LowImpassable
- type: StaticPrice
- price: 460 # The same price as dead (-20)
+ price: 35 # The same price as dead (-20)
- type: entity
parent: PlushieCarp
@@ -104,7 +104,7 @@
sound:
path: /Audio/Effects/bite.ogg
- type: StaticPrice
- price: 580 # The same price as dead (-20)
+ price: 220 # The same price as dead (-20)
- type: entity
parent: BaseItem
diff --git a/Resources/Prototypes/_NF/tags.yml b/Resources/Prototypes/_NF/tags.yml
new file mode 100644
index 00000000000..8c063eddeda
--- /dev/null
+++ b/Resources/Prototypes/_NF/tags.yml
@@ -0,0 +1,5 @@
+- type: Tag
+ id: CaveFactory
+
+- type: Tag
+ id: LabGrown
diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml
index ac83a683ebe..ac32aaaae29 100644
--- a/Resources/Prototypes/tags.yml
+++ b/Resources/Prototypes/tags.yml
@@ -1036,7 +1036,3 @@
- type: Tag
id: ModularReceiver
-
-##Custom ones here I suppose
-- type: Tag
- id: CaveFactory