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