]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Rip out remaining machine upgrades (#24413)
authorNemanja <98561806+EmoGarbage404@users.noreply.github.com>
Mon, 22 Jan 2024 22:13:04 +0000 (17:13 -0500)
committerGitHub <noreply@github.com>
Mon, 22 Jan 2024 22:13:04 +0000 (09:13 +1100)
* Rip out remaining machine upgrades

* eek

79 files changed:
Content.Server/Anomaly/AnomalySystem.Vessel.cs
Content.Server/Atmos/Piping/Binary/Components/GasRecyclerComponent.cs
Content.Server/Atmos/Piping/Binary/EntitySystems/GasRecyclerSystem.cs
Content.Server/Atmos/Portable/PortableScrubberComponent.cs
Content.Server/Atmos/Portable/PortableScrubberSystem.cs
Content.Server/Bed/BedSystem.cs
Content.Server/Bed/Components/StasisBedComponent.cs
Content.Server/Botany/Components/SeedExtractorComponent.cs
Content.Server/Botany/Systems/SeedExtractorSystem.cs
Content.Server/Cargo/Systems/CargoSystem.Telepad.cs
Content.Server/Chemistry/Components/SolutionHeaterComponent.cs
Content.Server/Chemistry/EntitySystems/SolutionHeaterSystem.cs
Content.Server/Cloning/CloningSystem.cs
Content.Server/Construction/ConstructionSystem.Machine.cs
Content.Server/Construction/PartExchangerSystem.cs
Content.Server/Gravity/GravityGeneratorComponent.cs
Content.Server/Gravity/GravityGeneratorSystem.cs
Content.Server/Kitchen/Components/MicrowaveComponent.cs
Content.Server/Kitchen/Components/ReagentGrinderComponent.cs
Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs
Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs
Content.Server/Materials/MaterialReclaimerSystem.cs
Content.Server/Medical/BiomassReclaimer/BiomassReclaimerComponent.cs
Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs
Content.Server/Medical/Components/MedicalScannerComponent.cs
Content.Server/Medical/MedicalScannerSystem.cs
Content.Server/Nutrition/Components/FatExtractorComponent.cs
Content.Server/Nutrition/EntitySystems/FatExtractorSystem.cs
Content.Server/Power/Components/UpgradeBatteryComponent.cs [deleted file]
Content.Server/Power/Components/UpgradePowerDrawComponent.cs [deleted file]
Content.Server/Power/Components/UpgradePowerSupplierComponent.cs [deleted file]
Content.Server/Power/Components/UpgradePowerSupplyRampingComponent.cs [deleted file]
Content.Server/Power/EntitySystems/UpgradeBatterySystem.cs [deleted file]
Content.Server/Power/EntitySystems/UpgradePowerSystem.cs [deleted file]
Content.Server/Power/Generator/GeneratorSystem.cs
Content.Server/Shuttles/Components/ThrusterComponent.cs
Content.Server/Shuttles/Systems/ThrusterSystem.cs
Content.Server/Singularity/EntitySystems/EmitterSystem.cs
Content.Server/Xenoarchaeology/Equipment/Components/TraversalDistorterComponent.cs
Content.Server/Xenoarchaeology/Equipment/Systems/TraversalDistorterSystem.cs
Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs
Content.Shared/Cargo/Components/SharedCargoTelepadComponent.cs
Content.Shared/Cloning/CloningPodComponent.cs
Content.Shared/Construction/MachinePartSystem.cs
Content.Shared/Materials/MaterialReclaimerComponent.cs
Content.Shared/Singularity/Components/SharedEmitterComponent.cs
Resources/Locale/en-US/anomaly/anomaly.ftl
Resources/Locale/en-US/atmos/gas-recycler-system.ftl
Resources/Locale/en-US/atmos/portable-scrubber.ftl
Resources/Locale/en-US/botany/components/seed-extractor-component.ftl
Resources/Locale/en-US/cargo/cargo-console-component.ftl
Resources/Locale/en-US/chemistry/components/solution-heater-component.ftl [deleted file]
Resources/Locale/en-US/construction/components/machine-part-component.ftl [deleted file]
Resources/Locale/en-US/kitchen/components/microwave-component.ftl
Resources/Locale/en-US/kitchen/components/reagent-grinder-component.ftl
Resources/Locale/en-US/machine/machine.ftl
Resources/Locale/en-US/materials/materials.ftl
Resources/Locale/en-US/medical/components/biomass-reclaimer-component.ftl
Resources/Locale/en-US/medical/components/cloning-pod-component.ftl
Resources/Locale/en-US/medical/components/medical-scanner-component.ftl
Resources/Locale/en-US/medical/components/stasis-bed-component.ftl [deleted file]
Resources/Locale/en-US/nutrition/components/fat-extractor.ftl
Resources/Locale/en-US/shuttles/thruster.ftl
Resources/Locale/en-US/singularity/components/emitter-component.ftl
Resources/Locale/en-US/xenoarchaeology/traversal-distorter.ftl
Resources/Maps/Test/test_teg.yml
Resources/Prototypes/Entities/Objects/Misc/machine_parts.yml
Resources/Prototypes/Entities/Objects/Specific/Research/rped.yml
Resources/Prototypes/Entities/Structures/Dispensers/chem.yml
Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml
Resources/Prototypes/Entities/Structures/Machines/anomaly_sync.yml
Resources/Prototypes/Entities/Structures/Machines/artifact_analyzer.yml
Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml
Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml
Resources/Prototypes/Entities/Structures/Power/smes.yml
Resources/Prototypes/Entities/Structures/Power/substation.yml
Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml
Resources/Prototypes/Guidebook/science.yml
Resources/ServerInfo/Guidebook/Science/MachineUpgrading.xml [deleted file]

index e1394ec44875d0fde2eb9d1e22f9856a6cf45298..7c7feacb8792e5cc7b4d187fc9afc9ca81983a32 100644 (file)
@@ -1,5 +1,4 @@
 using Content.Server.Anomaly.Components;
-using Content.Server.Construction;
 using Content.Server.Power.EntitySystems;
 using Content.Shared.Anomaly;
 using Content.Shared.Anomaly.Components;
@@ -20,7 +19,6 @@ public sealed partial class AnomalySystem
     {
         SubscribeLocalEvent<AnomalyVesselComponent, ComponentShutdown>(OnVesselShutdown);
         SubscribeLocalEvent<AnomalyVesselComponent, MapInitEvent>(OnVesselMapInit);
-        SubscribeLocalEvent<AnomalyVesselComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         SubscribeLocalEvent<AnomalyVesselComponent, InteractUsingEvent>(OnVesselInteractUsing);
         SubscribeLocalEvent<AnomalyVesselComponent, ExaminedEvent>(OnExamined);
         SubscribeLocalEvent<AnomalyVesselComponent, ResearchServerGetPointsPerSecondEvent>(OnVesselGetPointsPerSecond);
@@ -67,11 +65,6 @@ public sealed partial class AnomalySystem
         UpdateVesselAppearance(uid,  component);
     }
 
-    private void OnUpgradeExamine(EntityUid uid, AnomalyVesselComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("anomaly-vessel-component-upgrade-output", component.PointMultiplier);
-    }
-
     private void OnVesselInteractUsing(EntityUid uid, AnomalyVesselComponent component, InteractUsingEvent args)
     {
         if (component.Anomaly != null ||
index 9129557c225bc8b18fe507d85061b450a08d83ec..e1eb0072b9d1b5bc04c7ea688037ea84d233b57b 100644 (file)
@@ -1,6 +1,4 @@
 using Content.Shared.Atmos;
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Atmos.Piping.Binary.Components
 {
@@ -19,28 +17,10 @@ namespace Content.Server.Atmos.Piping.Binary.Components
         [DataField("outlet")]
         public string OutletName { get; set; } = "outlet";
 
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float MinTemp = 300 + Atmospherics.T0C;
 
-        [DataField("BaseMinTemp")]
-        public float BaseMinTemp = 300 + Atmospherics.T0C;
-
-        [DataField("machinePartMinTemp", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartMinTemp = "Capacitor";
-
-        [DataField("partRatingMinTempMultiplier")]
-        public float PartRatingMinTempMultiplier = 0.95f;
-
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float MinPressure = 30 * Atmospherics.OneAtmosphere;
-
-        [DataField("BaseMinPressure")]
-        public float BaseMinPressure = 30 * Atmospherics.OneAtmosphere;
-
-        [DataField("machinePartMinPressure", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartMinPressure = "Manipulator";
-
-        [DataField("partRatingMinPressureMultiplier")]
-        public float PartRatingMinPressureMultiplier = 0.8f;
     }
 }
index 6a4a16eac3df0aa82872e8b8575f22f253035ce8..e14069b8a766bc4762a92200207eb278a09d63e2 100644 (file)
@@ -1,7 +1,6 @@
 using Content.Server.Atmos.EntitySystems;
 using Content.Server.Atmos.Piping.Binary.Components;
 using Content.Server.Atmos.Piping.Components;
-using Content.Server.Construction;
 using Content.Server.NodeContainer;
 using Content.Server.NodeContainer.EntitySystems;
 using Content.Server.NodeContainer.Nodes;
@@ -29,8 +28,6 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems
             SubscribeLocalEvent<GasRecyclerComponent, AtmosDeviceUpdateEvent>(OnUpdate);
             SubscribeLocalEvent<GasRecyclerComponent, AtmosDeviceDisabledEvent>(OnDisabled);
             SubscribeLocalEvent<GasRecyclerComponent, ExaminedEvent>(OnExamined);
-            SubscribeLocalEvent<GasRecyclerComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<GasRecyclerComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         }
 
         private void OnEnabled(EntityUid uid, GasRecyclerComponent comp, ref AtmosDeviceEnabledEvent args)
@@ -125,20 +122,5 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems
 
             _appearance.SetData(uid, PumpVisuals.Enabled, comp.Reacting);
         }
-
-        private void OnRefreshParts(EntityUid uid, GasRecyclerComponent component, RefreshPartsEvent args)
-        {
-            var ratingTemp = args.PartRatings[component.MachinePartMinTemp];
-            var ratingPressure = args.PartRatings[component.MachinePartMinPressure];
-
-            component.MinTemp = component.BaseMinTemp * MathF.Pow(component.PartRatingMinTempMultiplier, ratingTemp - 1);
-            component.MinPressure = component.BaseMinPressure * MathF.Pow(component.PartRatingMinPressureMultiplier, ratingPressure - 1);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, GasRecyclerComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("gas-recycler-upgrade-min-temp", component.MinTemp / component.BaseMinTemp);
-            args.AddPercentageUpgrade("gas-recycler-upgrade-min-pressure", component.MinPressure / component.BaseMinPressure);
-        }
     }
 }
index 7ded9beb01c2ff189d6ed8e6256d72a8540dcdfb..ae9a5da963976dc782be62b9960a3d026508b822 100644 (file)
@@ -1,6 +1,4 @@
 using Content.Shared.Atmos;
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Atmos.Portable
 {
@@ -39,51 +37,13 @@ namespace Content.Server.Atmos.Portable
         /// <summary>
         /// Maximum internal pressure before it refuses to take more.
         /// </summary>
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float MaxPressure = 2500;
 
-        /// <summary>
-        /// The base amount of maximum internal pressure
-        /// </summary>
-        [DataField("baseMaxPressure")]
-        public float BaseMaxPressure = 2500;
-
-        /// <summary>
-        /// The machine part that modifies the maximum internal pressure
-        /// </summary>
-        [DataField("machinePartMaxPressure", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartMaxPressure = "MatterBin";
-
-        /// <summary>
-        /// How much the <see cref="MachinePartMaxPressure"/> will affect the pressure.
-        /// The value will be multiplied by this amount for each increasing part tier.
-        /// </summary>
-        [DataField("partRatingMaxPressureModifier")]
-        public float PartRatingMaxPressureModifier = 1.5f;
-
         /// <summary>
         /// The speed at which gas is scrubbed from the environment.
         /// </summary>
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float TransferRate = 800;
-
-        /// <summary>
-        /// The base speed at which gas is scrubbed from the environment.
-        /// </summary>
-        [DataField("baseTransferRate")]
-        public float BaseTransferRate = 800;
-
-        /// <summary>
-        /// The machine part which modifies the speed of <see cref="TransferRate"/>
-        /// </summary>
-        [DataField("machinePartTransferRate", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartTransferRate = "Manipulator";
-
-        /// <summary>
-        /// How much the <see cref="MachinePartTransferRate"/> will modify the rate.
-        /// The value will be multiplied by this amount for each increasing part tier.
-        /// </summary>
-        [DataField("partRatingTransferRateModifier")]
-        public float PartRatingTransferRateModifier = 1.4f;
     }
 }
index 922943f25fe7fdc59a575f3027f64b583dfaa65b..f1be5ac51506c8c2bb4d6c53ec31101b10ef5e0e 100644 (file)
@@ -12,7 +12,6 @@ using Content.Server.NodeContainer.Nodes;
 using Content.Server.NodeContainer.NodeGroups;
 using Content.Server.Audio;
 using Content.Server.Administration.Logs;
-using Content.Server.Construction;
 using Content.Server.NodeContainer.EntitySystems;
 using Content.Shared.Database;
 
@@ -39,8 +38,6 @@ namespace Content.Server.Atmos.Portable
             SubscribeLocalEvent<PortableScrubberComponent, ExaminedEvent>(OnExamined);
             SubscribeLocalEvent<PortableScrubberComponent, DestructionEventArgs>(OnDestroyed);
             SubscribeLocalEvent<PortableScrubberComponent, GasAnalyzerScanEvent>(OnScrubberAnalyzed);
-            SubscribeLocalEvent<PortableScrubberComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<PortableScrubberComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         }
 
         private bool IsFull(PortableScrubberComponent component)
@@ -170,20 +167,5 @@ namespace Content.Server.Atmos.Portable
             }
             args.GasMixtures = gasMixDict;
         }
-
-        private void OnRefreshParts(EntityUid uid, PortableScrubberComponent component, RefreshPartsEvent args)
-        {
-            var pressureRating = args.PartRatings[component.MachinePartMaxPressure];
-            var transferRating = args.PartRatings[component.MachinePartTransferRate];
-
-            component.MaxPressure = component.BaseMaxPressure * MathF.Pow(component.PartRatingMaxPressureModifier, pressureRating - 1);
-            component.TransferRate = component.BaseTransferRate * MathF.Pow(component.PartRatingTransferRateModifier, transferRating - 1);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, PortableScrubberComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("portable-scrubber-component-upgrade-max-pressure", component.MaxPressure / component.BaseMaxPressure);
-            args.AddPercentageUpgrade("portable-scrubber-component-upgrade-transfer-rate", component.TransferRate / component.BaseTransferRate);
-        }
     }
 }
index 9616d6ffa197cfeab84af43cef3f6326f1c683c3..131bd4b18298177f63cf13098995e6436ad97af2 100644 (file)
@@ -2,7 +2,6 @@ using Content.Server.Actions;
 using Content.Server.Bed.Components;
 using Content.Server.Bed.Sleep;
 using Content.Server.Body.Systems;
-using Content.Server.Construction;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
 using Content.Shared.Bed;
@@ -10,7 +9,6 @@ using Content.Shared.Bed.Sleep;
 using Content.Shared.Body.Components;
 using Content.Shared.Buckle.Components;
 using Content.Shared.Damage;
-using Content.Shared.Emag.Components;
 using Content.Shared.Emag.Systems;
 using Content.Shared.Mobs.Systems;
 using Robust.Shared.Timing;
@@ -33,8 +31,6 @@ namespace Content.Server.Bed
             SubscribeLocalEvent<StasisBedComponent, BuckleChangeEvent>(OnBuckleChange);
             SubscribeLocalEvent<StasisBedComponent, PowerChangedEvent>(OnPowerChanged);
             SubscribeLocalEvent<StasisBedComponent, GotEmaggedEvent>(OnEmagged);
-            SubscribeLocalEvent<StasisBedComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<StasisBedComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         }
 
         private void ManageUpdateList(EntityUid uid, HealOnBuckleComponent component, ref BuckleChangeEvent args)
@@ -130,18 +126,5 @@ namespace Content.Server.Bed
                 RaiseLocalEvent(buckledEntity, metabolicEvent);
             }
         }
-
-        private void OnRefreshParts(EntityUid uid, StasisBedComponent component, RefreshPartsEvent args)
-        {
-            var metabolismRating = args.PartRatings[component.MachinePartMetabolismModifier];
-            component.Multiplier = component.BaseMultiplier * metabolismRating; //linear scaling so it's not OP
-            if (HasComp<EmaggedComponent>(uid))
-                component.Multiplier = 1f / component.Multiplier;
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, StasisBedComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("stasis-bed-component-upgrade-stasis", component.Multiplier / component.BaseMultiplier);
-        }
     }
 }
index f658d01c9fb5210ec746453e7a5851722036217e..e2175d6e6467e374bf119b8015771307d8475ae1 100644 (file)
@@ -1,21 +1,12 @@
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
 namespace Content.Server.Bed.Components
 {
     [RegisterComponent]
     public sealed partial class StasisBedComponent : Component
     {
-        [DataField("baseMultiplier", required: true), ViewVariables(VVAccess.ReadWrite)]
-        public float BaseMultiplier = 10f;
-
         /// <summary>
         /// What the metabolic update rate will be multiplied by (higher = slower metabolism)
         /// </summary>
         [ViewVariables(VVAccess.ReadWrite)]
         public float Multiplier = 10f;
-
-        [DataField("machinePartMetabolismModifier", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartMetabolismModifier = "Capacitor";
     }
 }
index d497f027bf176833301bc0111669046d38b18aa6..ddb04f213d15ffc07b0c246e9cce1d2c173b05b3 100644 (file)
@@ -1,7 +1,4 @@
 using Content.Server.Botany.Systems;
-using Content.Server.Construction;
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Botany.Components;
 
@@ -10,33 +7,14 @@ namespace Content.Server.Botany.Components;
 public sealed partial class SeedExtractorComponent : Component
 {
     /// <summary>
-    /// The minimum amount of seed packets dropped with no machine upgrades.
+    /// The minimum amount of seed packets dropped.
     /// </summary>
     [DataField("baseMinSeeds"), ViewVariables(VVAccess.ReadWrite)]
     public int BaseMinSeeds = 1;
 
     /// <summary>
-    /// The maximum amount of seed packets dropped with no machine upgrades.
+    /// The maximum amount of seed packets dropped.
     /// </summary>
     [DataField("baseMaxSeeds"), ViewVariables(VVAccess.ReadWrite)]
     public int BaseMaxSeeds = 3;
-
-    /// <summary>
-    /// Modifier to the amount of seeds outputted, set on <see cref="RefreshPartsEvent"/>.
-    /// </summary>
-    [ViewVariables(VVAccess.ReadWrite)]
-    public float SeedAmountMultiplier;
-
-    /// <summary>
-    /// Machine part whose rating modifies the amount of seed packets dropped.
-    /// </summary>
-    [DataField("machinePartYieldAmount", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-    public string MachinePartSeedAmount = "Manipulator";
-
-    /// <summary>
-    /// How much the machine part quality affects the amount of seeds outputted.
-    /// Going up a tier will multiply the seed output by this amount.
-    /// </summary>
-    [DataField("partRatingSeedAmountMultiplier")]
-    public float PartRatingSeedAmountMultiplier = 1.5f;
 }
index 4c547b96f09bc5e4b55a0bead3cf02b86f279056..f1ae6c9f11ae9ea5f297914f3fc202716e6f1861 100644 (file)
@@ -1,10 +1,8 @@
 using Content.Server.Botany.Components;
-using Content.Server.Construction;
 using Content.Server.Popups;
 using Content.Server.Power.EntitySystems;
 using Content.Shared.Interaction;
 using Content.Shared.Popups;
-using Robust.Shared.Player;
 using Robust.Shared.Random;
 
 namespace Content.Server.Botany.Systems;
@@ -20,8 +18,6 @@ public sealed class SeedExtractorSystem : EntitySystem
         base.Initialize();
 
         SubscribeLocalEvent<SeedExtractorComponent, InteractUsingEvent>(OnInteractUsing);
-        SubscribeLocalEvent<SeedExtractorComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<SeedExtractorComponent, UpgradeExamineEvent>(OnUpgradeExamine);
     }
 
     private void OnInteractUsing(EntityUid uid, SeedExtractorComponent seedExtractor, InteractUsingEvent args)
@@ -29,7 +25,8 @@ public sealed class SeedExtractorSystem : EntitySystem
         if (!this.IsPowered(uid, EntityManager))
             return;
 
-        if (!TryComp(args.Used, out ProduceComponent? produce)) return;
+        if (!TryComp(args.Used, out ProduceComponent? produce))
+            return;
         if (!_botanySystem.TryGetSeed(produce, out var seed) || seed.Seedless)
         {
             _popupSystem.PopupCursor(Loc.GetString("seed-extractor-component-no-seeds",("name", args.Used)),
@@ -42,7 +39,7 @@ public sealed class SeedExtractorSystem : EntitySystem
 
         QueueDel(args.Used);
 
-        var amount = (int) _random.NextFloat(seedExtractor.BaseMinSeeds, seedExtractor.BaseMaxSeeds + 1) * seedExtractor.SeedAmountMultiplier;
+        var amount = _random.Next(seedExtractor.BaseMinSeeds, seedExtractor.BaseMaxSeeds + 1);
         var coords = Transform(uid).Coordinates;
 
         if (amount > 1)
@@ -53,15 +50,4 @@ public sealed class SeedExtractorSystem : EntitySystem
             _botanySystem.SpawnSeedPacket(seed, coords, args.User);
         }
     }
-
-    private void OnRefreshParts(EntityUid uid, SeedExtractorComponent seedExtractor, RefreshPartsEvent args)
-    {
-        var manipulatorQuality = args.PartRatings[seedExtractor.MachinePartSeedAmount];
-        seedExtractor.SeedAmountMultiplier = MathF.Pow(seedExtractor.PartRatingSeedAmountMultiplier, manipulatorQuality - 1);
-    }
-
-    private void OnUpgradeExamine(EntityUid uid, SeedExtractorComponent seedExtractor, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("seed-extractor-component-upgrade-seed-yield", seedExtractor.SeedAmountMultiplier);
-    }
 }
index 1c25b0e79d2bad75ee791fcde7e5dc9dfae2f4c2..42aabf2578ef1a673b893b134383d07e4a20abfb 100644 (file)
@@ -1,6 +1,4 @@
 using Content.Server.Cargo.Components;
-using Content.Server.Construction;
-using Content.Server.Paper;
 using Content.Server.Power.Components;
 using Content.Shared.Cargo;
 using Content.Shared.Cargo.Components;
@@ -15,8 +13,6 @@ public sealed partial class CargoSystem
     private void InitializeTelepad()
     {
         SubscribeLocalEvent<CargoTelepadComponent, ComponentInit>(OnInit);
-        SubscribeLocalEvent<CargoTelepadComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<CargoTelepadComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         SubscribeLocalEvent<CargoTelepadComponent, PowerChangedEvent>(OnTelepadPowerChange);
         // Shouldn't need re-anchored event
         SubscribeLocalEvent<CargoTelepadComponent, AnchorStateChangedEvent>(OnTelepadAnchorChange);
@@ -83,17 +79,6 @@ public sealed partial class CargoSystem
         _linker.EnsureSinkPorts(uid, telepad.ReceiverPort);
     }
 
-    private void OnRefreshParts(EntityUid uid, CargoTelepadComponent component, RefreshPartsEvent args)
-    {
-        var rating = args.PartRatings[component.MachinePartTeleportDelay] - 1;
-        component.Delay = component.BaseDelay * MathF.Pow(component.PartRatingTeleportDelay, rating);
-    }
-
-    private void OnUpgradeExamine(EntityUid uid, CargoTelepadComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("cargo-telepad-delay-upgrade", component.Delay / component.BaseDelay);
-    }
-
     private void SetEnabled(EntityUid uid, CargoTelepadComponent component, ApcPowerReceiverComponent? receiver = null,
         TransformComponent? xform = null)
     {
index 71956701250d7dcd918aa8ee2d263101b84f049c..c1841e022c74a60583a81fe62f84bf3bdb7c47f8 100644 (file)
@@ -3,27 +3,9 @@ namespace Content.Server.Chemistry.Components;
 [RegisterComponent]
 public sealed partial class SolutionHeaterComponent : Component
 {
-    /// <summary>
-    /// How much heat is added per second to the solution, with no upgrades.
-    /// </summary>
-    [DataField("baseHeatPerSecond")]
-    public float BaseHeatPerSecond = 120;
-
     /// <summary>
     /// How much heat is added per second to the solution, taking upgrades into account.
     /// </summary>
-    [ViewVariables(VVAccess.ReadWrite)]
+    [DataField, ViewVariables(VVAccess.ReadWrite)]
     public float HeatPerSecond;
-
-    /// <summary>
-    /// The machine part that affects the heat multiplier.
-    /// </summary>
-    [DataField("machinePartHeatMultiplier")]
-    public string MachinePartHeatMultiplier = "Capacitor";
-
-    /// <summary>
-    /// How much each upgrade multiplies the heat by.
-    /// </summary>
-    [DataField("partRatingHeatMultiplier")]
-    public float PartRatingHeatMultiplier = 1.5f;
 }
index 1ef589ab5cb0dd26f30be27de50ddac442e8a820..6e6373e10bf7570c434c5612dbfab7fc332807c6 100644 (file)
@@ -1,6 +1,5 @@
 using Content.Server.Chemistry.Components;
 using Content.Server.Chemistry.Containers.EntitySystems;
-using Content.Server.Construction;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
 using Content.Shared.Chemistry;
@@ -21,8 +20,6 @@ public sealed class SolutionHeaterSystem : EntitySystem
         base.Initialize();
 
         SubscribeLocalEvent<SolutionHeaterComponent, PowerChangedEvent>(OnPowerChanged);
-        SubscribeLocalEvent<SolutionHeaterComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<SolutionHeaterComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         SubscribeLocalEvent<SolutionHeaterComponent, ItemPlacedEvent>(OnItemPlaced);
         SubscribeLocalEvent<SolutionHeaterComponent, ItemRemovedEvent>(OnItemRemoved);
     }
@@ -64,18 +61,6 @@ public sealed class SolutionHeaterSystem : EntitySystem
         }
     }
 
-    private void OnRefreshParts(Entity<SolutionHeaterComponent> entity, ref RefreshPartsEvent args)
-    {
-        var heatRating = args.PartRatings[entity.Comp.MachinePartHeatMultiplier] - 1;
-
-        entity.Comp.HeatPerSecond = entity.Comp.BaseHeatPerSecond * MathF.Pow(entity.Comp.PartRatingHeatMultiplier, heatRating);
-    }
-
-    private void OnUpgradeExamine(Entity<SolutionHeaterComponent> entity, ref UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("solution-heater-upgrade-heat", entity.Comp.HeatPerSecond / entity.Comp.BaseHeatPerSecond);
-    }
-
     private void OnItemPlaced(Entity<SolutionHeaterComponent> entity, ref ItemPlacedEvent args)
     {
         TryTurnOn(entity);
index da8de13af2d6755f05796113d5a2efba7fc47992..def9950d9049f609ada4f2093fea23b197e452de 100644 (file)
@@ -1,7 +1,6 @@
 using Content.Server.Atmos.EntitySystems;
 using Content.Server.Chat.Systems;
 using Content.Server.Cloning.Components;
-using Content.Server.Construction;
 using Content.Server.DeviceLinking.Systems;
 using Content.Server.EUI;
 using Content.Server.Fluids.EntitySystems;
@@ -10,7 +9,6 @@ using Content.Server.Jobs;
 using Content.Server.Materials;
 using Content.Server.Popups;
 using Content.Server.Power.EntitySystems;
-using Content.Server.Traits.Assorted;
 using Content.Shared.Atmos;
 using Content.Shared.CCVar;
 using Content.Shared.Chemistry.Components;
@@ -71,8 +69,6 @@ namespace Content.Server.Cloning
             base.Initialize();
 
             SubscribeLocalEvent<CloningPodComponent, ComponentInit>(OnComponentInit);
-            SubscribeLocalEvent<CloningPodComponent, RefreshPartsEvent>(OnPartsRefreshed);
-            SubscribeLocalEvent<CloningPodComponent, UpgradeExamineEvent>(OnUpgradeExamine);
             SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
             SubscribeLocalEvent<BeingClonedComponent, MindAddedMessage>(HandleMindAdded);
             SubscribeLocalEvent<CloningPodComponent, PortDisconnectedEvent>(OnPortDisconnected);
@@ -87,21 +83,6 @@ namespace Content.Server.Cloning
             _signalSystem.EnsureSinkPorts(uid, CloningPodComponent.PodPort);
         }
 
-        private void OnPartsRefreshed(EntityUid uid, CloningPodComponent component, RefreshPartsEvent args)
-        {
-            var materialRating = args.PartRatings[component.MachinePartMaterialUse];
-            var speedRating = args.PartRatings[component.MachinePartCloningSpeed];
-
-            component.BiomassRequirementMultiplier = MathF.Pow(component.PartRatingMaterialMultiplier, materialRating - 1);
-            component.CloningTime = component.BaseCloningTime * MathF.Pow(component.PartRatingSpeedMultiplier, speedRating - 1);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, CloningPodComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("cloning-pod-component-upgrade-speed", component.BaseCloningTime / component.CloningTime);
-            args.AddPercentageUpgrade("cloning-pod-component-upgrade-biomass-requirement", component.BiomassRequirementMultiplier);
-        }
-
         internal void TransferMindToClone(EntityUid mindId, MindComponent mind)
         {
             if (!ClonesWaitingForMind.TryGetValue(mind, out var entity) ||
@@ -190,7 +171,7 @@ namespace Content.Server.Cloning
             if (!TryComp<PhysicsComponent>(bodyToClone, out var physics))
                 return false;
 
-            var cloningCost = (int) Math.Round(physics.FixturesMass * clonePod.BiomassRequirementMultiplier);
+            var cloningCost = (int) Math.Round(physics.FixturesMass);
 
             if (_configManager.GetCVar(CCVars.BiomassEasyMode))
                 cloningCost = (int) Math.Round(cloningCost * EasyModeCloningCost);
index 65b0b704761794fd653d65ea97308cb45a60ec4f..2e670dbe40d4acfe39fe79f31eb2de05af37bac4 100644 (file)
@@ -5,7 +5,6 @@ using Content.Shared.Construction.Components;
 using Content.Shared.Construction.Prototypes;
 using Content.Shared.Verbs;
 using Robust.Shared.Containers;
-using Robust.Shared.Map.Components;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Construction;
@@ -144,7 +143,7 @@ public sealed partial class ConstructionSystem
                 var p = EntityManager.SpawnEntity(partProto.StockPartPrototype, xform.Coordinates);
 
                 if (!_container.Insert(p, partContainer))
-                    throw new Exception($"Couldn't insert machine part of type {part} to machine with prototype {partProto.StockPartPrototype ?? "N/A"}!");
+                    throw new Exception($"Couldn't insert machine part of type {part} to machine with prototype {partProto.StockPartPrototype}!");
             }
         }
 
@@ -184,7 +183,7 @@ public sealed class RefreshPartsEvent : EntityEventArgs
 {
     public IReadOnlyList<MachinePartComponent> Parts = new List<MachinePartComponent>();
 
-    public Dictionary<string, float> PartRatings = new Dictionary<string, float>();
+    public Dictionary<string, float> PartRatings = new();
 }
 
 public sealed class UpgradeExamineEvent : EntityEventArgs
index f364d1b547d078b9dee67b8e44c28059cb574de3..ee5edcbd0a03ec475542d1198a93902716cfba8c 100644 (file)
@@ -10,7 +10,6 @@ using Content.Shared.Storage;
 using Robust.Shared.Containers;
 using Robust.Shared.Utility;
 using Content.Shared.Wires;
-using Robust.Shared.Audio;
 using Robust.Shared.Audio.Systems;
 using Robust.Shared.Collections;
 
@@ -43,7 +42,7 @@ public sealed class PartExchangerSystem : EntitySystem
         if (args.Handled || args.Args.Target == null)
             return;
 
-        if (!TryComp<StorageComponent>(uid, out var storage) || storage.Container == null)
+        if (!TryComp<StorageComponent>(uid, out var storage))
             return; //the parts are stored in here
 
         var machinePartQuery = GetEntityQuery<MachinePartComponent>();
index 4168de43df728fdbeb9e1029153ca63148d1884b..f946292038499ce5d9f4b3cdaa58e393c6e31235 100644 (file)
@@ -37,9 +37,6 @@ namespace Content.Server.Gravity
         // 0 -> 1
         [ViewVariables(VVAccess.ReadWrite)] [DataField("charge")] public float Charge { get; set; } = 1;
 
-        [DataField("machinePartMaxChargeMultiplier", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartMaxChargeMultiplier = "Capacitor";
-
         /// <summary>
         /// Is the gravity generator currently "producing" gravity?
         /// </summary>
index 0bd159f61afa8a5d486644bab8f0cc945cd1d321..b0c4bb56ff375353e930d3a5cfa597074645f4ad 100644 (file)
@@ -1,6 +1,5 @@
 using Content.Server.Administration.Logs;
 using Content.Server.Audio;
-using Content.Server.Construction;
 using Content.Server.Power.Components;
 using Content.Shared.Database;
 using Content.Shared.Gravity;
@@ -27,7 +26,6 @@ namespace Content.Server.Gravity
             SubscribeLocalEvent<GravityGeneratorComponent, ComponentShutdown>(OnComponentShutdown);
             SubscribeLocalEvent<GravityGeneratorComponent, EntParentChangedMessage>(OnParentChanged); // Or just anchor changed?
             SubscribeLocalEvent<GravityGeneratorComponent, InteractHandEvent>(OnInteractHand);
-            SubscribeLocalEvent<GravityGeneratorComponent, RefreshPartsEvent>(OnRefreshParts);
             SubscribeLocalEvent<GravityGeneratorComponent, SharedGravityGeneratorComponent.SwitchGeneratorMessage>(
                 OnSwitchGenerator);
         }
@@ -256,12 +254,6 @@ namespace Content.Server.Gravity
             }
         }
 
-        private void OnRefreshParts(EntityUid uid, GravityGeneratorComponent component, RefreshPartsEvent args)
-        {
-            var maxChargeMultipler = args.PartRatings[component.MachinePartMaxChargeMultiplier];
-            component.MaxCharge = maxChargeMultipler * 1;
-        }
-
         private void MakeBroken(Entity<GravityGeneratorComponent> ent, AppearanceComponent? appearance)
         {
             _ambientSoundSystem.SetAmbience(ent, false);
index 1fb5d8d2fd6cb3e76f25a5529bfc157613311575..b11370c991fb2c408ce285367a1465639a7fad61 100644 (file)
@@ -1,4 +1,3 @@
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.DeviceLinking;
 using Content.Shared.Item;
 using Robust.Shared.Audio;
@@ -13,10 +12,6 @@ namespace Content.Server.Kitchen.Components
     {
         [DataField("cookTimeMultiplier"), ViewVariables(VVAccess.ReadWrite)]
         public float CookTimeMultiplier = 1;
-        [DataField("machinePartCookTimeMultiplier", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartCookTimeMultiplier = "Capacitor";
-        [DataField("cookTimeScalingConstant")]
-        public float CookTimeScalingConstant = 0.5f;
         [DataField("baseHeatMultiplier"), ViewVariables(VVAccess.ReadWrite)]
         public float BaseHeatMultiplier = 100;
         [DataField("objectHeatMultiplier"), ViewVariables(VVAccess.ReadWrite)]
index 2a028a85805b7db70323b2479610b45a4c6628eb..27834aa5735cd4eabebd43c3be330289269dd5ef 100644 (file)
@@ -1,8 +1,6 @@
 using Content.Shared.Kitchen;
 using Content.Server.Kitchen.EntitySystems;
-using Content.Shared.Construction.Prototypes;
 using Robust.Shared.Audio;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Kitchen.Components
 {
@@ -15,30 +13,15 @@ namespace Content.Server.Kitchen.Components
     [Access(typeof(ReagentGrinderSystem)), RegisterComponent]
     public sealed partial class ReagentGrinderComponent : Component
     {
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public int StorageMaxEntities = 6;
 
-        [DataField("baseStorageMaxEntities"), ViewVariables(VVAccess.ReadWrite)]
-        public int BaseStorageMaxEntities = 4;
-
-        [DataField("machinePartStorageMax", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartStorageMax = "MatterBin";
-
-        [DataField("storagePerPartRating")]
-        public int StoragePerPartRating = 4;
-
         [DataField("workTime"), ViewVariables(VVAccess.ReadWrite)]
         public TimeSpan WorkTime = TimeSpan.FromSeconds(3.5); // Roughly matches the grind/juice sounds.
 
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float WorkTimeMultiplier = 1;
 
-        [DataField("machinePartWorkTime", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartWorkTime = "Manipulator";
-
-        [DataField("partRatingWorkTimeMultiplier")]
-        public float PartRatingWorkTimerMulitplier = 0.6f;
-
         [DataField("clickSound"), ViewVariables(VVAccess.ReadWrite)]
         public SoundSpecifier ClickSound { get; set; } = new SoundPathSpecifier("/Audio/Machines/machine_switch.ogg");
 
index 1411f8501306ca5d71ee3c3eb2b9795d696d0b84..efa963f2d081572fbbce4a863069109e21884342 100644 (file)
@@ -31,7 +31,6 @@ using Robust.Shared.Audio.Systems;
 using Robust.Shared.Containers;
 using Robust.Shared.Player;
 using System.Linq;
-using Content.Shared.Access.Components;
 
 namespace Content.Server.Kitchen.EntitySystems
 {
@@ -67,8 +66,6 @@ namespace Content.Server.Kitchen.EntitySystems
             SubscribeLocalEvent<MicrowaveComponent, PowerChangedEvent>(OnPowerChanged);
             SubscribeLocalEvent<MicrowaveComponent, AnchorStateChangedEvent>(OnAnchorChanged);
             SubscribeLocalEvent<MicrowaveComponent, SuicideEvent>(OnSuicide);
-            SubscribeLocalEvent<MicrowaveComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<MicrowaveComponent, UpgradeExamineEvent>(OnUpgradeExamine);
 
             SubscribeLocalEvent<MicrowaveComponent, SignalReceivedEvent>(OnSignalReceived);
 
@@ -335,17 +332,6 @@ namespace Content.Server.Kitchen.EntitySystems
                 _sharedContainer.EmptyContainer(component.Storage);
         }
 
-        private void OnRefreshParts(Entity<MicrowaveComponent> ent, ref RefreshPartsEvent args)
-        {
-            var cookRating = args.PartRatings[ent.Comp.MachinePartCookTimeMultiplier];
-            ent.Comp.CookTimeMultiplier = MathF.Pow(ent.Comp.CookTimeScalingConstant, cookRating - 1);
-        }
-
-        private void OnUpgradeExamine(Entity<MicrowaveComponent> ent, ref UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("microwave-component-upgrade-cook-time", ent.Comp.CookTimeMultiplier);
-        }
-
         private void OnSignalReceived(Entity<MicrowaveComponent> ent, ref SignalReceivedEvent args)
         {
             if (args.Port != ent.Comp.OnPort)
index e309c3bd374926ffc0d4362dfc0e1a67aa5f351a..07f8849b4a973da500c893f7a611dfb2a7dce76e 100644 (file)
@@ -1,5 +1,4 @@
 using Content.Server.Chemistry.Containers.EntitySystems;
-using Content.Server.Construction;
 using Content.Server.Kitchen.Components;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
@@ -49,8 +48,6 @@ namespace Content.Server.Kitchen.EntitySystems
             SubscribeLocalEvent<ReagentGrinderComponent, ComponentStartup>((uid, _, _) => UpdateUiState(uid));
             SubscribeLocalEvent((EntityUid uid, ReagentGrinderComponent _, ref PowerChangedEvent _) => UpdateUiState(uid));
             SubscribeLocalEvent<ReagentGrinderComponent, InteractUsingEvent>(OnInteractUsing);
-            SubscribeLocalEvent<ReagentGrinderComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<ReagentGrinderComponent, UpgradeExamineEvent>(OnUpgradeExamine);
 
             SubscribeLocalEvent<ReagentGrinderComponent, EntInsertedIntoContainerMessage>(OnContainerModified);
             SubscribeLocalEvent<ReagentGrinderComponent, EntRemovedFromContainerMessage>(OnContainerModified);
@@ -186,24 +183,6 @@ namespace Content.Server.Kitchen.EntitySystems
             args.Handled = true;
         }
 
-        /// <remarks>
-        /// Gotta be efficient, you know? you're saving a whole extra second here and everything.
-        /// </remarks>
-        private void OnRefreshParts(Entity<ReagentGrinderComponent> entity, ref RefreshPartsEvent args)
-        {
-            var ratingWorkTime = args.PartRatings[entity.Comp.MachinePartWorkTime];
-            var ratingStorage = args.PartRatings[entity.Comp.MachinePartStorageMax];
-
-            entity.Comp.WorkTimeMultiplier = MathF.Pow(entity.Comp.PartRatingWorkTimerMulitplier, ratingWorkTime - 1);
-            entity.Comp.StorageMaxEntities = entity.Comp.BaseStorageMaxEntities + (int) (entity.Comp.StoragePerPartRating * (ratingStorage - 1));
-        }
-
-        private void OnUpgradeExamine(Entity<ReagentGrinderComponent> entity, ref UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("reagent-grinder-component-upgrade-work-time", entity.Comp.WorkTimeMultiplier);
-            args.AddNumberUpgrade("reagent-grinder-component-upgrade-storage", entity.Comp.StorageMaxEntities - entity.Comp.BaseStorageMaxEntities);
-        }
-
         private void UpdateUiState(EntityUid uid)
         {
             var inputContainer = _containerSystem.EnsureContainer<Container>(uid, SharedReagentGrinder.InputContainerId);
index ff05a72ef09e4a90779242c3e2756bcdcc0e2bb7..c976543f7ca9b39dd4a196fced6b2e285a6ce6b8 100644 (file)
@@ -1,6 +1,5 @@
 using Content.Server.Chemistry.Containers.EntitySystems;
 using Content.Server.Chemistry.EntitySystems;
-using Content.Server.Construction;
 using Content.Server.Fluids.EntitySystems;
 using Content.Server.GameTicking;
 using Content.Server.Nutrition.EntitySystems;
@@ -43,8 +42,6 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem
         base.Initialize();
 
         SubscribeLocalEvent<MaterialReclaimerComponent, ComponentStartup>(OnStartup);
-        SubscribeLocalEvent<MaterialReclaimerComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<MaterialReclaimerComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         SubscribeLocalEvent<MaterialReclaimerComponent, PowerChangedEvent>(OnPowerChanged);
         SubscribeLocalEvent<MaterialReclaimerComponent, InteractUsingEvent>(OnInteractUsing,
             before: new []{typeof(WiresSystem), typeof(SolutionTransferSystem)});
@@ -56,18 +53,6 @@ public sealed class MaterialReclaimerSystem : SharedMaterialReclaimerSystem
         _solutionContainer.EnsureSolution(entity.Owner, entity.Comp.SolutionContainerId);
     }
 
-    private void OnUpgradeExamine(Entity<MaterialReclaimerComponent> entity, ref UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade(Loc.GetString("material-reclaimer-upgrade-process-rate"), entity.Comp.MaterialProcessRate / entity.Comp.BaseMaterialProcessRate);
-    }
-
-    private void OnRefreshParts(Entity<MaterialReclaimerComponent> entity, ref RefreshPartsEvent args)
-    {
-        var rating = args.PartRatings[entity.Comp.MachinePartProcessRate] - 1;
-        entity.Comp.MaterialProcessRate = entity.Comp.BaseMaterialProcessRate * MathF.Pow(entity.Comp.PartRatingProcessRateMultiplier, rating);
-        Dirty(entity);
-    }
-
     private void OnPowerChanged(Entity<MaterialReclaimerComponent> entity, ref PowerChangedEvent args)
     {
         AmbientSound.SetAmbience(entity.Owner, entity.Comp.Enabled && args.Powered);
index 744f579af049aff39245a384f6615fc515dd303f..25378bb3ede272e39098757175784ab0a9e3607e 100644 (file)
@@ -1,8 +1,4 @@
-using System.Threading;
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.Storage;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Medical.BiomassReclaimer
 {
@@ -50,53 +46,14 @@ namespace Content.Server.Medical.BiomassReclaimer
         /// <summary>
         /// How many units of biomass it produces for each unit of mass.
         /// </summary>
-        [ViewVariables(VVAccess.ReadWrite)]
-        public float YieldPerUnitMass = default;
-
-        /// <summary>
-        /// The base yield per mass unit when no components are upgraded.
-        /// </summary>
-        [DataField("baseYieldPerUnitMass")]
-        public float BaseYieldPerUnitMass = 0.4f;
-
-        /// <summary>
-        /// Machine part whose rating modifies the yield per mass.
-        /// </summary>
-        [DataField("machinePartYieldAmount", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartYieldAmount = "MatterBin";
-
-        /// <summary>
-        /// How much the machine part quality affects the yield.
-        /// Going up a tier will multiply the yield by this amount.
-        /// </summary>
-        [DataField("partRatingYieldAmountMultiplier")]
-        public float PartRatingYieldAmountMultiplier = 1.25f;
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
+        public float YieldPerUnitMass = 0.4f;
 
         /// <summary>
         /// The time it takes to process a mob, per mass.
         /// </summary>
-        [ViewVariables(VVAccess.ReadWrite)]
-        public float ProcessingTimePerUnitMass = default;
-
-        /// <summary>
-        /// The base time per mass unit that it takes to process a mob
-        /// when no components are upgraded.
-        /// </summary>
-        [DataField("baseProcessingTimePerUnitMass")]
-        public float BaseProcessingTimePerUnitMass = 0.5f;
-
-        /// <summary>
-        /// The machine part that increses the processing speed.
-        /// </summary>
-        [DataField("machinePartProcessSpeed", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartProcessingSpeed = "Manipulator";
-
-        /// <summary>
-        /// How much the machine part quality affects the yield.
-        /// Going up a tier will multiply the speed by this amount.
-        /// </summary>
-        [DataField("partRatingSpeedMultiplier")]
-        public float PartRatingSpeedMultiplier = 1.35f;
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
+        public float ProcessingTimePerUnitMass = 0.5f;
 
         /// <summary>
         /// Will this refuse to gib a living mob?
index 20ac9420aab60271fde1ad3f214d30c6a546190a..b126c74a10aa1bfbda1bb44aa8a218ad8e01c9e8 100644 (file)
@@ -1,6 +1,5 @@
 using System.Numerics;
 using Content.Server.Body.Components;
-using Content.Server.Construction;
 using Content.Server.Fluids.EntitySystems;
 using Content.Server.Materials;
 using Content.Server.Power.Components;
@@ -24,7 +23,6 @@ using Content.Shared.Nutrition.Components;
 using Content.Shared.Popups;
 using Content.Shared.Throwing;
 using Robust.Server.Player;
-using Robust.Shared.Audio;
 using Robust.Shared.Audio.Systems;
 using Robust.Shared.Configuration;
 using Robust.Shared.Physics.Components;
@@ -96,8 +94,6 @@ namespace Content.Server.Medical.BiomassReclaimer
             SubscribeLocalEvent<ActiveBiomassReclaimerComponent, UnanchorAttemptEvent>(OnUnanchorAttempt);
             SubscribeLocalEvent<BiomassReclaimerComponent, AfterInteractUsingEvent>(OnAfterInteractUsing);
             SubscribeLocalEvent<BiomassReclaimerComponent, ClimbedOnEvent>(OnClimbedOn);
-            SubscribeLocalEvent<BiomassReclaimerComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<BiomassReclaimerComponent, UpgradeExamineEvent>(OnUpgradeExamine);
             SubscribeLocalEvent<BiomassReclaimerComponent, PowerChangedEvent>(OnPowerChanged);
             SubscribeLocalEvent<BiomassReclaimerComponent, SuicideEvent>(OnSuicide);
             SubscribeLocalEvent<BiomassReclaimerComponent, ReclaimerDoAfterEvent>(OnDoAfter);
@@ -176,26 +172,6 @@ namespace Content.Server.Medical.BiomassReclaimer
             StartProcessing(args.Climber, reclaimer);
         }
 
-        private void OnRefreshParts(EntityUid uid, BiomassReclaimerComponent component, RefreshPartsEvent args)
-        {
-            var laserRating = args.PartRatings[component.MachinePartProcessingSpeed];
-            var manipRating = args.PartRatings[component.MachinePartYieldAmount];
-
-            // Processing time slopes downwards with part rating.
-            component.ProcessingTimePerUnitMass =
-                component.BaseProcessingTimePerUnitMass / MathF.Pow(component.PartRatingSpeedMultiplier, laserRating - 1);
-
-            // Yield slopes upwards with part rating.
-            component.YieldPerUnitMass =
-                component.BaseYieldPerUnitMass * MathF.Pow(component.PartRatingYieldAmountMultiplier, manipRating - 1);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, BiomassReclaimerComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("biomass-reclaimer-component-upgrade-speed", component.BaseProcessingTimePerUnitMass / component.ProcessingTimePerUnitMass);
-            args.AddPercentageUpgrade("biomass-reclaimer-component-upgrade-biomass-yield", component.YieldPerUnitMass / component.BaseYieldPerUnitMass);
-        }
-
         private void OnDoAfter(Entity<BiomassReclaimerComponent> reclaimer, ref ReclaimerDoAfterEvent args)
         {
             if (args.Handled || args.Cancelled || args.Args.Target == null || HasComp<BiomassReclaimerComponent>(args.Args.Target.Value))
index fdfb19cbacd366550ec92ddc1155b341249ef390..aef56d6c0b7ff9db794efc0e87470eabcb810531 100644 (file)
@@ -13,13 +13,7 @@ namespace Content.Server.Medical.Components
         public ContainerSlot BodyContainer = default!;
         public EntityUid? ConnectedConsole;
 
-        [ViewVariables(VVAccess.ReadWrite)]
+        [DataField, ViewVariables(VVAccess.ReadWrite)]
         public float CloningFailChanceMultiplier = 1f;
-
-        [DataField("machinePartCloningFailChance", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartCloningFailChance = "Capacitor";
-
-        [DataField("partRatingCloningFailChanceMultiplier")]
-        public float PartRatingFailMultiplier = 0.75f;
     }
 }
index 54de0bc3b5cec7beda9ffe5433eefb5b950cc6c8..91184ddc162827c108e08cc67ec197de43323471 100644 (file)
@@ -7,7 +7,6 @@ using Content.Shared.Movement.Events;
 using Content.Shared.Verbs;
 using Robust.Shared.Containers;
 using Content.Server.Cloning.Components;
-using Content.Server.Construction;
 using Content.Server.DeviceLinking.Systems;
 using Content.Shared.DeviceLinking.Events;
 using Content.Server.Power.EntitySystems;
@@ -45,8 +44,6 @@ namespace Content.Server.Medical
             SubscribeLocalEvent<MedicalScannerComponent, DragDropTargetEvent>(OnDragDropOn);
             SubscribeLocalEvent<MedicalScannerComponent, PortDisconnectedEvent>(OnPortDisconnected);
             SubscribeLocalEvent<MedicalScannerComponent, AnchorStateChangedEvent>(OnAnchorChanged);
-            SubscribeLocalEvent<MedicalScannerComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<MedicalScannerComponent, UpgradeExamineEvent>(OnUpgradeExamine);
             SubscribeLocalEvent<MedicalScannerComponent, CanDropTargetEvent>(OnCanDragDropOn);
         }
 
@@ -249,17 +246,5 @@ namespace Content.Server.Medical
             _climbSystem.ForciblySetClimbing(contained, uid);
             UpdateAppearance(uid, scannerComponent);
         }
-
-        private void OnRefreshParts(EntityUid uid, MedicalScannerComponent component, RefreshPartsEvent args)
-        {
-            var ratingFail = args.PartRatings[component.MachinePartCloningFailChance];
-
-            component.CloningFailChanceMultiplier = MathF.Pow(component.PartRatingFailMultiplier, ratingFail - 1);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, MedicalScannerComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("medical-scanner-upgrade-cloning", component.CloningFailChanceMultiplier);
-        }
     }
 }
index 7bd9b85c7913941cac567217bb2b4aeb7266fb88..bf81a173e4f907dbae5b6d2208e92d3253326634 100644 (file)
@@ -1,5 +1,4 @@
 using Content.Server.Nutrition.EntitySystems;
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.Nutrition.Components;
 using Robust.Shared.Audio;
 using Robust.Shared.Prototypes;
@@ -26,26 +25,6 @@ public sealed partial class FatExtractorComponent : Component
     [DataField("nutritionPerSecond"), ViewVariables(VVAccess.ReadWrite)]
     public int NutritionPerSecond = 10;
 
-    /// <summary>
-    /// The base rate of extraction
-    /// </summary>
-    [DataField("baseNutritionPerSecond"), ViewVariables(VVAccess.ReadWrite)]
-    public int BaseNutritionPerSecond = 10;
-
-    #region Machine Upgrade
-    /// <summary>
-    /// Which machine part affects the nutrition rate
-    /// </summary>
-    [DataField("machinePartNutritionRate", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-    public string MachinePartNutritionRate = "Manipulator";
-
-    /// <summary>
-    /// The increase in rate per each rating above 1.
-    /// </summary>
-    [DataField("partRatingRateMultiplier")]
-    public float PartRatingRateMultiplier = 10;
-    #endregion
-
     /// <summary>
     /// An accumulator which tracks extracted nutrition to determine
     /// when to spawn a meat.
@@ -57,7 +36,7 @@ public sealed partial class FatExtractorComponent : Component
     /// How high <see cref="NutrientAccumulator"/> has to be to spawn meat
     /// </summary>
     [DataField("nutrientPerMeat"), ViewVariables(VVAccess.ReadWrite)]
-    public int NutrientPerMeat = 60;
+    public int NutrientPerMeat = 30;
 
     /// <summary>
     /// Meat spawned by the extractor.
index 63ca590f5d60f0fd4b2b750b76cc9ae904ef9e81..4bd8c94ac814b2c15fc84008e442787f7e1d6a65 100644 (file)
@@ -1,6 +1,5 @@
 using System.Diagnostics.CodeAnalysis;
 using System.Linq;
-using Content.Server.Construction;
 using Content.Server.Nutrition.Components;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
@@ -10,7 +9,6 @@ using Content.Shared.Emag.Systems;
 using Content.Shared.Nutrition.Components;
 using Content.Shared.Nutrition.EntitySystems;
 using Content.Shared.Storage.Components;
-using Robust.Shared.Audio;
 using Robust.Shared.Audio.Systems;
 using Robust.Shared.Timing;
 
@@ -29,8 +27,6 @@ public sealed class FatExtractorSystem : EntitySystem
     /// <inheritdoc/>
     public override void Initialize()
     {
-        SubscribeLocalEvent<FatExtractorComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<FatExtractorComponent, UpgradeExamineEvent>(OnUpgradeExamine);
         SubscribeLocalEvent<FatExtractorComponent, EntityUnpausedEvent>(OnUnpaused);
         SubscribeLocalEvent<FatExtractorComponent, GotEmaggedEvent>(OnGotEmagged);
         SubscribeLocalEvent<FatExtractorComponent, StorageAfterCloseEvent>(OnClosed);
@@ -38,17 +34,6 @@ public sealed class FatExtractorSystem : EntitySystem
         SubscribeLocalEvent<FatExtractorComponent, PowerChangedEvent>(OnPowerChanged);
     }
 
-    private void OnRefreshParts(EntityUid uid, FatExtractorComponent component, RefreshPartsEvent args)
-    {
-        var rating = args.PartRatings[component.MachinePartNutritionRate] - 1;
-        component.NutritionPerSecond = component.BaseNutritionPerSecond + (int) (component.PartRatingRateMultiplier * rating);
-    }
-
-    private void OnUpgradeExamine(EntityUid uid, FatExtractorComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("fat-extractor-component-rate", (float) component.NutritionPerSecond / component.BaseNutritionPerSecond);
-    }
-
     private void OnUnpaused(EntityUid uid, FatExtractorComponent component, ref EntityUnpausedEvent args)
     {
         component.NextUpdate += args.PausedTime;
diff --git a/Content.Server/Power/Components/UpgradeBatteryComponent.cs b/Content.Server/Power/Components/UpgradeBatteryComponent.cs
deleted file mode 100644 (file)
index ff91cfa..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
-namespace Content.Server.Power.Components
-{
-
-    [RegisterComponent]
-    public sealed partial class UpgradeBatteryComponent : Component
-    {
-        /// <summary>
-        ///     The machine part that affects the power capacity.
-        /// </summary>
-        [DataField("machinePartPowerCapacity", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartPowerCapacity = "PowerCell";
-
-        /// <summary>
-        ///     The machine part rating is raised to this power when calculating power gain
-        /// </summary>
-        [DataField("maxChargeMultiplier")]
-        public float MaxChargeMultiplier = 2f;
-
-        /// <summary>
-        ///     Power gain scaling
-        /// </summary>
-        [DataField("baseMaxCharge")]
-        public float BaseMaxCharge = 8000000;
-    }
-}
diff --git a/Content.Server/Power/Components/UpgradePowerDrawComponent.cs b/Content.Server/Power/Components/UpgradePowerDrawComponent.cs
deleted file mode 100644 (file)
index 02a6c57..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-using Content.Server.Construction.Components;
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
-namespace Content.Server.Power.Components;
-
-/// <summary>
-/// This is used for machines whose power draw
-/// can be decreased through machine part upgrades.
-/// </summary>
-[RegisterComponent]
-public sealed partial class UpgradePowerDrawComponent : Component
-{
-    /// <summary>
-    /// The base power draw of the machine.
-    /// Prioritizes hv/mv draw over lv draw.
-    /// Value is initializezd on map init from <see cref="ApcPowerReceiverComponent"/>
-    /// </summary>
-    [ViewVariables(VVAccess.ReadWrite)]
-    public float BaseLoad;
-
-    /// <summary>
-    /// The machine part that affects the power draw.
-    /// </summary>
-    [DataField("machinePartPowerDraw", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>)), ViewVariables(VVAccess.ReadWrite)]
-    public string MachinePartPowerDraw = "Capacitor";
-
-    /// <summary>
-    /// The multiplier used for scaling the power draw.
-    /// </summary>
-    [DataField("powerDrawMultiplier", required: true), ViewVariables(VVAccess.ReadWrite)]
-    public float PowerDrawMultiplier = 1f;
-
-    /// <summary>
-    /// What type of scaling is being used?
-    /// </summary>
-    [DataField("scaling", required: true), ViewVariables(VVAccess.ReadWrite)]
-    public MachineUpgradeScalingType Scaling;
-}
-
-
diff --git a/Content.Server/Power/Components/UpgradePowerSupplierComponent.cs b/Content.Server/Power/Components/UpgradePowerSupplierComponent.cs
deleted file mode 100644 (file)
index 35b4386..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using Content.Server.Construction.Components;
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
-namespace Content.Server.Power.Components;
-
-[RegisterComponent]
-public sealed partial class UpgradePowerSupplierComponent : Component
-{
-    [ViewVariables(VVAccess.ReadWrite)]
-    public float BaseSupplyRate;
-
-    /// <summary>
-    /// The machine part that affects the power supplu.
-    /// </summary>
-    [DataField("machinePartPowerSupply", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>)), ViewVariables(VVAccess.ReadWrite)]
-    public string MachinePartPowerSupply = "Capacitor";
-
-    /// <summary>
-    /// The multiplier used for scaling the power supply.
-    /// </summary>
-    [DataField("powerSupplyMultiplier", required: true), ViewVariables(VVAccess.ReadWrite)]
-    public float PowerSupplyMultiplier = 1f;
-
-    /// <summary>
-    /// What type of scaling is being used?
-    /// </summary>
-    [DataField("scaling", required: true), ViewVariables(VVAccess.ReadWrite)]
-    public MachineUpgradeScalingType Scaling;
-
-    /// <summary>
-    /// The current value that the power supply is being scaled by,
-    /// </summary>
-    [DataField("actualScalar"), ViewVariables(VVAccess.ReadWrite)]
-    public float ActualScalar = 1f;
-}
diff --git a/Content.Server/Power/Components/UpgradePowerSupplyRampingComponent.cs b/Content.Server/Power/Components/UpgradePowerSupplyRampingComponent.cs
deleted file mode 100644 (file)
index 7bd29f2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-using Content.Server.Construction.Components;
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
-namespace Content.Server.Power.Components
-{
-
-    [RegisterComponent]
-    public sealed partial class UpgradePowerSupplyRampingComponent : Component
-    {
-        [ViewVariables(VVAccess.ReadWrite)]
-        public float BaseRampRate;
-
-        /// <summary>
-        ///     The machine part that affects the power supply ramping
-        /// </summary>
-        [DataField("machinePartPowerCapacity", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartRampRate = "Capacitor";
-
-        /// <summary>
-        ///     The multiplier used for scaling the power supply ramping
-        /// </summary>
-        [DataField("supplyRampingMultiplier")]
-        public float SupplyRampingMultiplier = 1f;
-
-        /// <summary>
-        ///     What type of scaling is being used?
-        /// </summary>
-        [DataField("scaling", required: true), ViewVariables(VVAccess.ReadWrite)]
-        public MachineUpgradeScalingType Scaling;
-
-        /// <summary>
-        ///     The current value that the power supply is being scaled by
-        /// </summary>
-        [DataField("actualScalar"), ViewVariables(VVAccess.ReadWrite)]
-        public float ActualScalar = 1f;
-    }
-}
diff --git a/Content.Server/Power/EntitySystems/UpgradeBatterySystem.cs b/Content.Server/Power/EntitySystems/UpgradeBatterySystem.cs
deleted file mode 100644 (file)
index 734cf9d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-using Content.Server.Construction;
-using Content.Server.Power.Components;
-using JetBrains.Annotations;
-
-namespace Content.Server.Power.EntitySystems
-{
-    [UsedImplicitly]
-    public sealed class UpgradeBatterySystem : EntitySystem
-    {
-        [Dependency] private readonly BatterySystem _batterySystem = default!;
-
-        public override void Initialize()
-        {
-            base.Initialize();
-
-            SubscribeLocalEvent<UpgradeBatteryComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<UpgradeBatteryComponent, UpgradeExamineEvent>(OnUpgradeExamine);
-        }
-
-        public void OnRefreshParts(EntityUid uid, UpgradeBatteryComponent component, RefreshPartsEvent args)
-        {
-            var powerCellRating = args.PartRatings[component.MachinePartPowerCapacity];
-
-            if (TryComp<BatteryComponent>(uid, out var batteryComp))
-            {
-                _batterySystem.SetMaxCharge(uid, MathF.Pow(component.MaxChargeMultiplier, powerCellRating - 1) * component.BaseMaxCharge, batteryComp);
-            }
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, UpgradeBatteryComponent component, UpgradeExamineEvent args)
-        {
-            // UpgradeBatteryComponent.MaxChargeMultiplier is not the actual multiplier, so we have to do this.
-            if (TryComp<BatteryComponent>(uid, out var batteryComp))
-            {
-                args.AddPercentageUpgrade("upgrade-max-charge", batteryComp.MaxCharge / component.BaseMaxCharge);
-            }
-        }
-    }
-}
diff --git a/Content.Server/Power/EntitySystems/UpgradePowerSystem.cs b/Content.Server/Power/EntitySystems/UpgradePowerSystem.cs
deleted file mode 100644 (file)
index 9cf28c3..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-using Content.Server.Construction;
-using Content.Server.Construction.Components;
-using Content.Server.Power.Components;
-
-namespace Content.Server.Power.EntitySystems;
-
-/// <summary>
-/// This handles using upgraded machine parts
-/// to modify the power supply/generation of a machine.
-/// </summary>
-public sealed class UpgradePowerSystem : EntitySystem
-{
-    /// <inheritdoc/>
-    public override void Initialize()
-    {
-        SubscribeLocalEvent<UpgradePowerDrawComponent, MapInitEvent>(OnMapInit);
-        SubscribeLocalEvent<UpgradePowerDrawComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<UpgradePowerDrawComponent, UpgradeExamineEvent>(OnUpgradeExamine);
-
-        SubscribeLocalEvent<UpgradePowerSupplierComponent, MapInitEvent>(OnSupplierMapInit);
-        SubscribeLocalEvent<UpgradePowerSupplierComponent, RefreshPartsEvent>(OnSupplierRefreshParts);
-        SubscribeLocalEvent<UpgradePowerSupplierComponent, UpgradeExamineEvent>(OnSupplierUpgradeExamine);
-
-        SubscribeLocalEvent<UpgradePowerSupplyRampingComponent, MapInitEvent>(OnSupplyRampingMapInit);
-        SubscribeLocalEvent<UpgradePowerSupplyRampingComponent, RefreshPartsEvent>(OnSupplyRampingRefreshParts);
-        SubscribeLocalEvent<UpgradePowerSupplyRampingComponent, UpgradeExamineEvent>(OnSupplyRampingUpgradeExamine);
-    }
-
-    private void OnMapInit(EntityUid uid, UpgradePowerDrawComponent component, MapInitEvent args)
-    {
-        if (TryComp<PowerConsumerComponent>(uid, out var powa))
-            component.BaseLoad = powa.DrawRate;
-        else if (TryComp<ApcPowerReceiverComponent>(uid, out var powa2))
-            component.BaseLoad = powa2.Load;
-    }
-
-    private void OnRefreshParts(EntityUid uid, UpgradePowerDrawComponent component, RefreshPartsEvent args)
-    {
-        var load = component.BaseLoad;
-        var rating = args.PartRatings[component.MachinePartPowerDraw];
-        switch (component.Scaling)
-        {
-            case MachineUpgradeScalingType.Linear:
-                load += component.PowerDrawMultiplier * (rating - 1);
-                break;
-            case MachineUpgradeScalingType.Exponential:
-                load *= MathF.Pow(component.PowerDrawMultiplier, rating - 1);
-                break;
-            default:
-                Log.Error($"invalid power scaling type for {ToPrettyString(uid)}.");
-                load = 0;
-                break;
-        }
-        if (TryComp<ApcPowerReceiverComponent>(uid, out var powa))
-            powa.Load = load;
-        if (TryComp<PowerConsumerComponent>(uid, out var powa2))
-            powa2.DrawRate = load;
-    }
-
-    private void OnUpgradeExamine(EntityUid uid, UpgradePowerDrawComponent component, UpgradeExamineEvent args)
-    {
-        // UpgradePowerDrawComponent.PowerDrawMultiplier is not the actual multiplier, so we have to do this.
-        var powerDrawMultiplier = CompOrNull<ApcPowerReceiverComponent>(uid)?.Load / component.BaseLoad
-            ?? CompOrNull<PowerConsumerComponent>(uid)?.DrawRate / component.BaseLoad;
-
-        if (powerDrawMultiplier is not null)
-            args.AddPercentageUpgrade("upgrade-power-draw", powerDrawMultiplier.Value);
-    }
-
-    private void OnSupplierMapInit(EntityUid uid, UpgradePowerSupplierComponent component, MapInitEvent args)
-    {
-        if (TryComp<PowerSupplierComponent>(uid, out var supplier))
-            component.BaseSupplyRate = supplier.MaxSupply;
-    }
-
-    private void OnSupplierRefreshParts(EntityUid uid, UpgradePowerSupplierComponent component, RefreshPartsEvent args)
-    {
-        var supply = component.BaseSupplyRate;
-        var rating = args.PartRatings[component.MachinePartPowerSupply];
-        switch (component.Scaling)
-        {
-            case MachineUpgradeScalingType.Linear:
-                supply += component.PowerSupplyMultiplier * component.BaseSupplyRate * (rating - 1);
-                break;
-            case MachineUpgradeScalingType.Exponential:
-                supply *= MathF.Pow(component.PowerSupplyMultiplier, rating - 1);
-                break;
-            default:
-                Log.Error($"invalid power scaling type for {ToPrettyString(uid)}.");
-                supply = component.BaseSupplyRate;
-                break;
-        }
-
-        component.ActualScalar = supply / component.BaseSupplyRate;
-
-        if (TryComp<PowerSupplierComponent>(uid, out var powa))
-            powa.MaxSupply = supply;
-    }
-
-    private void OnSupplierUpgradeExamine(EntityUid uid, UpgradePowerSupplierComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("upgrade-power-supply", component.ActualScalar);
-    }
-
-    private void OnSupplyRampingMapInit(EntityUid uid, UpgradePowerSupplyRampingComponent component, MapInitEvent args)
-    {
-        if (TryComp<PowerNetworkBatteryComponent>(uid, out var battery))
-            component.BaseRampRate = battery.SupplyRampRate;
-    }
-
-    private void OnSupplyRampingRefreshParts(EntityUid uid, UpgradePowerSupplyRampingComponent component, RefreshPartsEvent args)
-    {
-        var rampRate = component.BaseRampRate;
-        var rating = args.PartRatings[component.MachinePartRampRate];
-        switch (component.Scaling)
-        {
-            case MachineUpgradeScalingType.Linear:
-                rampRate += component.SupplyRampingMultiplier * component.BaseRampRate * (rating - 1);
-                break;
-            case MachineUpgradeScalingType.Exponential:
-                rampRate *= MathF.Pow(component.SupplyRampingMultiplier, rating - 1);
-                break;
-            default:
-                Log.Error($"invalid power supply ramping type for {ToPrettyString(uid)}.");
-                rampRate = component.BaseRampRate;
-                break;
-        }
-
-        component.ActualScalar = rampRate / component.BaseRampRate;
-
-        if (TryComp<PowerNetworkBatteryComponent>(uid, out var battery))
-            battery.SupplyRampRate = rampRate;
-    }
-
-    private void OnSupplyRampingUpgradeExamine(EntityUid uid, UpgradePowerSupplyRampingComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("upgrade-power-supply-ramping", component.ActualScalar);
-    }
-}
index fc6ac073400269981fed5f3f667092e3f41599f4..a9ec2e642bcdbace07aff940ce2fb4407c5869e4 100644 (file)
@@ -26,11 +26,8 @@ public sealed class GeneratorSystem : SharedGeneratorSystem
     [Dependency] private readonly PopupSystem _popup = default!;
     [Dependency] private readonly PuddleSystem _puddle = default!;
 
-    private EntityQuery<UpgradePowerSupplierComponent> _upgradeQuery;
-
     public override void Initialize()
     {
-        _upgradeQuery = GetEntityQuery<UpgradePowerSupplierComponent>();
 
         UpdatesBefore.Add(typeof(PowerNetSystem));
 
@@ -216,9 +213,7 @@ public sealed class GeneratorSystem : SharedGeneratorSystem
 
             supplier.Enabled = true;
 
-            var upgradeMultiplier = _upgradeQuery.CompOrNull(uid)?.ActualScalar ?? 1f;
-
-            supplier.MaxSupply = gen.TargetPower * upgradeMultiplier;
+            supplier.MaxSupply = gen.TargetPower;
 
             var eff = 1 / CalcFuelEfficiency(gen.TargetPower, gen.OptimalPower, gen);
             var consumption = gen.OptimalBurnRate * frameTime * eff;
index d8350991154f6e22fbe838396e0ca86018fc55b4..3bba9b5a7f0635f7b61d048a0b6b95fa0fe81fdb 100644 (file)
@@ -1,10 +1,8 @@
 using System.Numerics;
 using Content.Server.Shuttles.Systems;
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.Damage;
 using Robust.Shared.GameStates;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Shuttles.Components
 {
@@ -27,9 +25,6 @@ namespace Content.Server.Shuttles.Components
         [ViewVariables(VVAccess.ReadWrite), DataField("thrust")]
         public float Thrust = 100f;
 
-        [DataField("baseThrust"), ViewVariables(VVAccess.ReadWrite)]
-        public float BaseThrust = 100f;
-
         [DataField("thrusterType")]
         public ThrusterType Type = ThrusterType.Linear;
 
@@ -60,12 +55,6 @@ namespace Content.Server.Shuttles.Components
         /// </summary>
         [ViewVariables(VVAccess.ReadWrite), DataField("nextFire", customTypeSerializer:typeof(TimeOffsetSerializer))]
         public TimeSpan NextFire;
-
-        [DataField("machinePartThrust", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-        public string MachinePartThrust = "Capacitor";
-
-        [DataField("partRatingThrustMultiplier")]
-        public float PartRatingThrustMultiplier = 1.5f;
     }
 
     public enum ThrusterType
index 73e1ab0bebe8cdbb6044f836a0a2bcd81c057fe1..1baffd4690e2089d5e407079a6393400235c7374 100644 (file)
@@ -52,9 +52,6 @@ public sealed class ThrusterSystem : EntitySystem
 
         SubscribeLocalEvent<ThrusterComponent, ExaminedEvent>(OnThrusterExamine);
 
-        SubscribeLocalEvent<ThrusterComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<ThrusterComponent, UpgradeExamineEvent>(OnUpgradeExamine);
-
         SubscribeLocalEvent<ShuttleComponent, TileChangedEvent>(OnShuttleTileChange);
     }
 
@@ -204,12 +201,10 @@ public sealed class ThrusterSystem : EntitySystem
         if (component.Type == ThrusterType.Linear)
         {
             oldShuttleComponent.LinearThrust[oldDirection] -= component.Thrust;
-            oldShuttleComponent.BaseLinearThrust[oldDirection] -= component.BaseThrust;
             DebugTools.Assert(oldShuttleComponent.LinearThrusters[oldDirection].Contains(uid));
             oldShuttleComponent.LinearThrusters[oldDirection].Remove(uid);
 
             shuttleComponent.LinearThrust[direction] += component.Thrust;
-            shuttleComponent.BaseLinearThrust[direction] += component.BaseThrust;
             DebugTools.Assert(!shuttleComponent.LinearThrusters[direction].Contains(uid));
             shuttleComponent.LinearThrusters[direction].Add(uid);
         }
@@ -283,7 +278,6 @@ public sealed class ThrusterSystem : EntitySystem
                 var direction = (int) xform.LocalRotation.GetCardinalDir() / 2;
 
                 shuttleComponent.LinearThrust[direction] += component.Thrust;
-                shuttleComponent.BaseLinearThrust[direction] += component.BaseThrust;
                 DebugTools.Assert(!shuttleComponent.LinearThrusters[direction].Contains(uid));
                 shuttleComponent.LinearThrusters[direction].Add(uid);
 
@@ -382,7 +376,6 @@ public sealed class ThrusterSystem : EntitySystem
                 var direction = (int) angle.Value.GetCardinalDir() / 2;
 
                 shuttleComponent.LinearThrust[direction] -= component.Thrust;
-                shuttleComponent.BaseLinearThrust[direction] -= component.BaseThrust;
                 DebugTools.Assert(shuttleComponent.LinearThrusters[direction].Contains(uid));
                 shuttleComponent.LinearThrusters[direction].Remove(uid);
                 break;
@@ -578,24 +571,6 @@ public sealed class ThrusterSystem : EntitySystem
         }
     }
 
-    private void OnRefreshParts(EntityUid uid, ThrusterComponent component, RefreshPartsEvent args)
-    {
-        if (component.IsOn) // safely disable thruster to prevent negative thrust
-            DisableThruster(uid, component);
-
-        var thrustRating = args.PartRatings[component.MachinePartThrust];
-
-        component.Thrust = component.BaseThrust * MathF.Pow(component.PartRatingThrustMultiplier, thrustRating - 1);
-
-        if (component.Enabled && CanEnable(uid, component))
-            EnableThruster(uid, component);
-    }
-
-    private void OnUpgradeExamine(EntityUid uid, ThrusterComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("thruster-comp-upgrade-thrust", component.Thrust / component.BaseThrust);
-    }
-
     #endregion
 
     private int GetFlagIndex(DirectionFlag flag)
index 652ca236e441110eff08686e3eed6e9fbd432670..a9763b64d90bac4b96161218b7671c2fb66237e8 100644 (file)
@@ -1,7 +1,6 @@
 using System.Numerics;
 using System.Threading;
 using Content.Server.Administration.Logs;
-using Content.Server.Construction;
 using Content.Server.DeviceLinking.Events;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
@@ -48,8 +47,6 @@ namespace Content.Server.Singularity.EntitySystems
             SubscribeLocalEvent<EmitterComponent, InteractHandEvent>(OnInteractHand);
             SubscribeLocalEvent<EmitterComponent, GetVerbsEvent<Verb>>(OnGetVerb);
             SubscribeLocalEvent<EmitterComponent, ExaminedEvent>(OnExamined);
-            SubscribeLocalEvent<EmitterComponent, RefreshPartsEvent>(OnRefreshParts);
-            SubscribeLocalEvent<EmitterComponent, UpgradeExamineEvent>(OnUpgradeExamine);
             SubscribeLocalEvent<EmitterComponent, AnchorStateChangedEvent>(OnAnchorStateChanged);
             SubscribeLocalEvent<EmitterComponent, SignalReceivedEvent>(OnSignalReceived);
         }
@@ -179,20 +176,6 @@ namespace Content.Server.Singularity.EntitySystems
             }
         }
 
-        private void OnRefreshParts(EntityUid uid, EmitterComponent component, RefreshPartsEvent args)
-        {
-            var fireRateRating = args.PartRatings[component.MachinePartFireRate];
-
-            component.FireInterval = component.BaseFireInterval * MathF.Pow(component.FireRateMultiplier, fireRateRating - 1);
-            component.FireBurstDelayMin = component.BaseFireBurstDelayMin * MathF.Pow(component.FireRateMultiplier, fireRateRating - 1);
-            component.FireBurstDelayMax = component.BaseFireBurstDelayMax * MathF.Pow(component.FireRateMultiplier, fireRateRating - 1);
-        }
-
-        private void OnUpgradeExamine(EntityUid uid, EmitterComponent component, UpgradeExamineEvent args)
-        {
-            args.AddPercentageUpgrade("emitter-component-upgrade-fire-rate", (float) (component.BaseFireInterval.TotalSeconds / component.FireInterval.TotalSeconds));
-        }
-
         public void SwitchOff(EntityUid uid, EmitterComponent component)
         {
             component.IsOn = false;
index a7a58778ef52fa503620d764932f54b7a87e4c34..ec16083c538752cd8e74000ddfe54cb25fe764da 100644 (file)
@@ -1,7 +1,4 @@
-using Content.Shared.Construction.Prototypes;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
-namespace Content.Server.Xenoarchaeology.Equipment.Components;
+namespace Content.Server.Xenoarchaeology.Equipment.Components;
 
 /// <summary>
 /// This is used for a machine that biases
@@ -10,18 +7,6 @@ namespace Content.Server.Xenoarchaeology.Equipment.Components;
 [RegisterComponent]
 public sealed partial class TraversalDistorterComponent : Component
 {
-    [ViewVariables(VVAccess.ReadWrite)]
-    public float BiasChance;
-
-    [DataField("baseBiasChance")]
-    public float BaseBiasChance = 0.7f;
-
-    [DataField("machinePartBiasChance", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-    public string MachinePartBiasChance = "Manipulator";
-
-    [DataField("partRatingBiasChance")]
-    public float PartRatingBiasChance = 1.1f;
-
     [ViewVariables(VVAccess.ReadWrite)]
     public BiasDirection BiasDirection = BiasDirection.In;
 
index d313f9a25bf3fb84e81421f79f3c3237cd814fcd..230e639af495c7d87da283e1d94cfd57584e1699 100644 (file)
@@ -1,12 +1,9 @@
-using Content.Server.Construction;
-using Content.Server.Popups;
+using Content.Server.Popups;
 using Content.Server.Power.EntitySystems;
 using Content.Server.Xenoarchaeology.Equipment.Components;
-using Content.Server.Xenoarchaeology.XenoArtifacts;
 using Content.Shared.Examine;
 using Content.Shared.Interaction;
 using Content.Shared.Placeable;
-using Robust.Shared.Player;
 using Robust.Shared.Timing;
 
 namespace Content.Server.Xenoarchaeology.Equipment.Systems;
@@ -23,8 +20,6 @@ public sealed class TraversalDistorterSystem : EntitySystem
 
         SubscribeLocalEvent<TraversalDistorterComponent, ActivateInWorldEvent>(OnInteract);
         SubscribeLocalEvent<TraversalDistorterComponent, ExaminedEvent>(OnExamine);
-        SubscribeLocalEvent<TraversalDistorterComponent, RefreshPartsEvent>(OnRefreshParts);
-        SubscribeLocalEvent<TraversalDistorterComponent, UpgradeExamineEvent>(OnUpgradeExamine);
 
         SubscribeLocalEvent<TraversalDistorterComponent, ItemPlacedEvent>(OnItemPlaced);
         SubscribeLocalEvent<TraversalDistorterComponent, ItemRemovedEvent>(OnItemRemoved);
@@ -73,20 +68,8 @@ public sealed class TraversalDistorterSystem : EntitySystem
                 examine = Loc.GetString("traversal-distorter-desc-out");
                 break;
         }
-        
-        args.PushMarkup(examine);
-    }
-
-    private void OnRefreshParts(EntityUid uid, TraversalDistorterComponent component, RefreshPartsEvent args)
-    {
-        var biasRating = args.PartRatings[component.MachinePartBiasChance];
 
-        component.BiasChance = component.BaseBiasChance * MathF.Pow(component.PartRatingBiasChance, biasRating - 1);
-    }
-
-    private void OnUpgradeExamine(EntityUid uid, TraversalDistorterComponent component, UpgradeExamineEvent args)
-    {
-        args.AddPercentageUpgrade("traversal-distorter-upgrade-bias", component.BiasChance / component.BaseBiasChance);
+        args.PushMarkup(examine);
     }
 
     private void OnItemPlaced(EntityUid uid, TraversalDistorterComponent component, ref ItemPlacedEvent args)
index a7948aa7ff98202b2b459ea19adb4d13cdf71e9f..955fe827d72eb185a32a5a8c94fd13fab1375422 100644 (file)
@@ -206,7 +206,6 @@ public sealed partial class ArtifactSystem : EntitySystem
 
         if (TryComp<BiasedArtifactComponent>(uid, out var bias) &&
             TryComp<TraversalDistorterComponent>(bias.Provider, out var trav) &&
-            _random.Prob(trav.BiasChance) &&
             this.IsPowered(bias.Provider, EntityManager))
         {
             switch (trav.BiasDirection)
index 911066207ccb1e714f23bc05e47ff004a1a9b1fa..911ea41cca5bddbbf2e53087553944714f3d0031 100644 (file)
@@ -1,4 +1,3 @@
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.DeviceLinking;
 using Robust.Shared.Audio;
 using Robust.Shared.GameStates;
@@ -13,30 +12,12 @@ namespace Content.Shared.Cargo.Components;
 [RegisterComponent, NetworkedComponent, Access(typeof(SharedCargoSystem))]
 public sealed partial class CargoTelepadComponent : Component
 {
-    /// <summary>
-    /// The base amount of time it takes to teleport from the telepad
-    /// </summary>
-    [DataField("baseDelay"), ViewVariables(VVAccess.ReadWrite)]
-    public float BaseDelay = 10f;
-
     /// <summary>
     /// The actual amount of time it takes to teleport from the telepad
     /// </summary>
     [DataField("delay"), ViewVariables(VVAccess.ReadWrite)]
     public float Delay = 10f;
 
-    /// <summary>
-    /// The machine part that affects <see cref="Delay"/>
-    /// </summary>
-    [DataField("machinePartTeleportDelay", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>)), ViewVariables(VVAccess.ReadWrite)]
-    public string MachinePartTeleportDelay = "Capacitor";
-
-    /// <summary>
-    /// A multiplier applied to <see cref="Delay"/> for each level of <see cref="MachinePartTeleportDelay"/>
-    /// </summary>
-    [DataField("partRatingTeleportDelay"), ViewVariables(VVAccess.ReadWrite)]
-    public float PartRatingTeleportDelay = 0.8f;
-
     /// <summary>
     /// How much time we've accumulated until next teleport.
     /// </summary>
index 60d4c1e64e587aad73f7231afa6a3de1a3ee6643..88d587c14577125bffd7194c9c0bfa9a29660aca 100644 (file)
@@ -1,11 +1,9 @@
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.DeviceLinking;
 using Content.Shared.Materials;
 using Robust.Shared.Audio;
 using Robust.Shared.Containers;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Serialization;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Shared.Cloning;
 
@@ -36,28 +34,10 @@ public sealed partial class CloningPodComponent : Component
     [DataField("requiredMaterial"), ViewVariables(VVAccess.ReadWrite)]
     public ProtoId<MaterialPrototype> RequiredMaterial = "Biomass";
 
-    /// <summary>
-    /// The base amount of time it takes to clone a body
-    /// </summary>
-    [DataField("baseCloningTime")]
-    public float BaseCloningTime = 30f;
-
-    /// <summary>
-    /// The multiplier for cloning duration
-    /// </summary>
-    [DataField("partRatingSpeedMultiplier")]
-    public float PartRatingSpeedMultiplier = 0.75f;
-
-    /// <summary>
-    /// The machine part that affects cloning speed
-    /// </summary>
-    [DataField("machinePartCloningSpeed"), ViewVariables(VVAccess.ReadWrite)]
-    public ProtoId<MachinePartPrototype> MachinePartCloningSpeed = "Manipulator";
-
     /// <summary>
     /// The current amount of time it takes to clone a body
     /// </summary>
-    [ViewVariables(VVAccess.ReadWrite)]
+    [DataField, ViewVariables(VVAccess.ReadWrite)]
     public float CloningTime = 30f;
 
     /// <summary>
@@ -82,25 +62,6 @@ public sealed partial class CloningPodComponent : Component
         Params = AudioParams.Default.WithVolume(4),
     };
 
-    /// <summary>
-    /// The machine part that affects how much biomass is needed to clone a body.
-    /// </summary>
-    [DataField("partRatingMaterialMultiplier")]
-    public float PartRatingMaterialMultiplier = 0.85f;
-
-    /// <summary>
-    /// The current multiplier on the body weight, which determines the
-    /// amount of biomass needed to clone.
-    /// </summary>
-    [ViewVariables(VVAccess.ReadWrite)]
-    public float BiomassRequirementMultiplier = 1;
-
-    /// <summary>
-    /// The machine part that decreases the amount of material needed for cloning
-    /// </summary>
-    [DataField("machinePartMaterialUse"), ViewVariables(VVAccess.ReadWrite)]
-    public ProtoId<MachinePartPrototype> MachinePartMaterialUse = "MatterBin";
-
     [ViewVariables(VVAccess.ReadWrite)]
     public CloningPodStatus Status;
 
index 01db7fbade3dd27d7a302276dff6068271a0b72f..1a19040b41062aa12384e1e24e7f095a6a3786ba 100644 (file)
@@ -21,7 +21,6 @@ namespace Content.Shared.Construction
         {
             base.Initialize();
             SubscribeLocalEvent<MachineBoardComponent, ExaminedEvent>(OnMachineBoardExamined);
-            SubscribeLocalEvent<MachinePartComponent, ExaminedEvent>(OnMachinePartExamined);
         }
 
         private void OnMachineBoardExamined(EntityUid uid, MachineBoardComponent component, ExaminedEvent args)
@@ -62,20 +61,6 @@ namespace Content.Shared.Construction
             }
         }
 
-        private void OnMachinePartExamined(EntityUid uid, MachinePartComponent component, ExaminedEvent args)
-        {
-            if (!args.IsInDetailsRange)
-                return;
-
-            using (args.PushGroup(nameof(MachinePartComponent)))
-            {
-                args.PushMarkup(Loc.GetString("machine-part-component-on-examine-rating-text",
-                    ("rating", component.Rating)));
-                args.PushMarkup(Loc.GetString("machine-part-component-on-examine-type-text", ("type",
-                    Loc.GetString(_prototype.Index<MachinePartPrototype>(component.PartType).Name))));
-            }
-        }
-
         public Dictionary<string, int> GetMachineBoardMaterialCost(Entity<MachineBoardComponent> entity, int coefficient = 1)
         {
             var (_, comp) = entity;
index 91bd59614a1bd7bcbb1eefab7a29cd2ed8fdaf87..6c625e2fa2583731919b8f0b0442d2c44841fd87 100644 (file)
@@ -1,8 +1,6 @@
-using Content.Shared.Construction.Prototypes;
-using Content.Shared.Whitelist;
+using Content.Shared.Whitelist;
 using Robust.Shared.Audio;
 using Robust.Shared.GameStates;
-using Robust.Shared.Prototypes;
 using Robust.Shared.Serialization;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
 
@@ -44,13 +42,6 @@ public sealed partial class MaterialReclaimerComponent : Component
     [DataField]
     public bool ScaleProcessSpeed = true;
 
-    /// <summary>
-    /// How quickly it takes to consume X amount of materials per second.
-    /// For example, with a rate of 50, an entity with 100 total material takes 2 seconds to process.
-    /// </summary>
-    [DataField, ViewVariables(VVAccess.ReadWrite)]
-    public float BaseMaterialProcessRate = 100f;
-
     /// <summary>
     /// How quickly it takes to consume X amount of materials per second.
     /// For example, with a rate of 50, an entity with 100 total material takes 2 seconds to process.
@@ -58,18 +49,6 @@ public sealed partial class MaterialReclaimerComponent : Component
     [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)]
     public float MaterialProcessRate = 100f;
 
-    /// <summary>
-    /// Machine part whose rating modifies <see cref="MaterialProcessRate"/>
-    /// </summary>
-    [DataField, ViewVariables(VVAccess.ReadWrite)]
-    public ProtoId<MachinePartPrototype> MachinePartProcessRate = "Manipulator";
-
-    /// <summary>
-    /// How much the machine part quality affects the <see cref="MaterialProcessRate"/>
-    /// </summary>
-    [DataField, ViewVariables(VVAccess.ReadWrite)]
-    public float PartRatingProcessRateMultiplier = 1.5f;
-
     /// <summary>
     /// The minimum amount fo time it can take to process an entity.
     /// this value supercedes the calculated one using <see cref="MaterialProcessRate"/>
index 426b991a7514d6c5085c9b5eb301e02e6ffcf115..c2e7af717b109324b22573e252dcde6179cffc48 100644 (file)
@@ -1,5 +1,4 @@
 using System.Threading;
-using Content.Shared.Construction.Prototypes;
 using Content.Shared.DeviceLinking;
 using Robust.Shared.GameStates;
 using Robust.Shared.Prototypes;
@@ -53,12 +52,6 @@ public sealed partial class EmitterComponent : Component
     [DataField("fireInterval")]
     public TimeSpan FireInterval = TimeSpan.FromSeconds(2);
 
-    /// <summary>
-    /// The base amount of time between each shot during a burst.
-    /// </summary>
-    [DataField("baseFireInterval"), ViewVariables(VVAccess.ReadWrite)]
-    public TimeSpan BaseFireInterval = TimeSpan.FromSeconds(2);
-
     /// <summary>
     /// The current minimum delay between bursts.
     /// </summary>
@@ -71,33 +64,6 @@ public sealed partial class EmitterComponent : Component
     [DataField("fireBurstDelayMax")]
     public TimeSpan FireBurstDelayMax = TimeSpan.FromSeconds(10);
 
-    /// <summary>
-    /// The base minimum delay between shot bursts.
-    /// Used for machine part rating calculations.
-    /// </summary>
-    [DataField("baseFireBurstDelayMin")]
-    public TimeSpan BaseFireBurstDelayMin = TimeSpan.FromSeconds(4);
-
-    /// <summary>
-    /// The base maximum delay between shot bursts.
-    /// Used for machine part rating calculations.
-    /// </summary>
-    [DataField("baseFireBurstDelayMax")]
-    public TimeSpan BaseFireBurstDelayMax = TimeSpan.FromSeconds(10);
-
-    /// <summary>
-    /// The multiplier for the base delay between shot bursts as well as
-    /// the fire interval
-    /// </summary>
-    [DataField("fireRateMultiplier"), ViewVariables(VVAccess.ReadWrite)]
-    public float FireRateMultiplier = 0.8f;
-
-    /// <summary>
-    /// The machine part that affects burst delay.
-    /// </summary>
-    [DataField("machinePartFireRate", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
-    public string MachinePartFireRate = "Capacitor";
-
     /// <summary>
     /// The visual state that is set when the emitter is turned on
     /// </summary>
index df4cbfe20cd8e8f6730cc6c56ce651cff3ebcc0b..3a398d482e789dbd136573d80c0b0892e86b0f81 100644 (file)
@@ -3,7 +3,6 @@ anomaly-component-contact-damage = The anomaly sears off your skin!
 anomaly-vessel-component-anomaly-assigned = Anomaly assigned to vessel.
 anomaly-vessel-component-not-assigned = This vessel is not assigned to any anomaly. Try using a scanner on it.
 anomaly-vessel-component-assigned = This vessel is currently assigned to an anomaly.
-anomaly-vessel-component-upgrade-output = point output
 
 anomaly-particles-delta = Delta particles
 anomaly-particles-epsilon = Epsilon particles
index a72e137732c9c79b6936e3c5e011982fe881f739..cc527adf5c865495eabe296b603b0b54f7cdac8a 100644 (file)
@@ -1,6 +1,3 @@
 gas-recycler-reacting = It is [color=green]converting[/color] waste gases.
 gas-recycler-low-pressure = The input pressure is [color=darkred]too low[/color].
 gas-recycler-low-temperature = The input temperature is [color=darkred]too low[/color].
-
-gas-recycler-upgrade-min-temp = Minimum temperature
-gas-recycler-upgrade-min-pressure = Minimum pressure
index 8aadf076d9658c246414ee17cb7b451b121a8a05..c4071b4acce7a288d828cf2a564df69fa2f49fb4 100644 (file)
@@ -1,4 +1 @@
 portable-scrubber-fill-level = It's at about [color=yellow]{$percent}%[/color] of its maximum internal pressure.
-
-portable-scrubber-component-upgrade-max-pressure = max pressure
-portable-scrubber-component-upgrade-transfer-rate = transfer rate
index c586a594a9a9c0e2bbc6fc2a13e7fac2c2642468..84d5a5ed283677649a28a4bc5f54ebf5504d1bfc 100644 (file)
@@ -2,5 +2,3 @@
 
 seed-extractor-component-interact-message = You extract some seeds from the { THE($name) }.
 seed-extractor-component-no-seeds = { CAPITALIZE(THE($name)) } has no seeds!
-
-seed-extractor-component-upgrade-seed-yield = seed yield
index 1caa810f1b7472d08d5a08c0d5db760c63748b6b..b56f4730ccd641d4c717c259b755d868cb8be842 100644 (file)
@@ -45,5 +45,3 @@ cargo-shuttle-console-station-unknown = Unknown
 cargo-shuttle-console-shuttle-not-found = Not found
 cargo-shuttle-console-organics = Detected organic lifeforms on the shuttle
 cargo-no-shuttle = No cargo shuttle found!
-
-cargo-telepad-delay-upgrade = Teleport delay
diff --git a/Resources/Locale/en-US/chemistry/components/solution-heater-component.ftl b/Resources/Locale/en-US/chemistry/components/solution-heater-component.ftl
deleted file mode 100644 (file)
index cecf155..0000000
+++ /dev/null
@@ -1 +0,0 @@
-solution-heater-upgrade-heat = Heat strength
diff --git a/Resources/Locale/en-US/construction/components/machine-part-component.ftl b/Resources/Locale/en-US/construction/components/machine-part-component.ftl
deleted file mode 100644 (file)
index 2db3b92..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-machine-part-component-on-examine-rating-text = [color=white]Rating:[/color] [color=cyan]{$rating}[/color]
-machine-part-component-on-examine-type-text = [color=white]Type:[/color] [color=cyan]{$type}[/color]
\ No newline at end of file
index 41d42a744e087a41eb2c5eb3fef1c1a9b05cd8fd..8e8781fe40cda786b991164a6192bcf826672aa2 100644 (file)
@@ -9,7 +9,6 @@ microwave-component-suicide-multi-head-others-message = {$victim} is trying to c
 microwave-component-suicide-others-message = {$victim} is trying to cook their head!
 microwave-component-suicide-multi-head-message = You cook your heads!
 microwave-component-suicide-message = You cook your head!
-microwave-component-upgrade-cook-time = cook time
 microwave-component-interact-full = It's full.
 microwave-component-interact-item-too-big = { CAPITALIZE(THE($item)) } is too big to fit in the microwave!
 
index ffff7c4e6f1b3a90e1d96cfdc20ce6f0dd10c8f7..30af6e9872e058ff9ee3fd0d8fe73734b4e4b733 100644 (file)
@@ -4,9 +4,6 @@ reagent-grinder-bound-user-interface-instant-button = INSTANT
 reagent-grinder-bound-user-interface-cook-time-label = COOK TIME
 reagent-grinder-component-cannot-put-entity-message = You can't put this in the reagent grinder!
 
-reagent-grinder-component-upgrade-work-time = Work time
-reagent-grinder-component-upgrade-storage = Storage
-
 grinder-menu-title = All-In-One Grinder 3000
 grinder-menu-grind-button = Grind
 grinder-menu-juice-button = Juice
index 458e78305966d8704e8be4a6dac81aca7fc9d8ff..ce8873df6f87b42b8c8a19a768d0a8d812b1b2a7 100644 (file)
@@ -13,15 +13,10 @@ machine-part-name-manipulator = Manipulator
 machine-part-name-matter-bin = Matter Bin
 machine-part-name-power-cell = Power Cell
 
-upgrade-power-draw = power draw
-upgrade-max-charge = max charge
-upgrade-power-supply = power supply
-upgrade-power-supply-ramping = power ramp rate
-
 two-way-lever-left = push left
 two-way-lever-right = push right
 two-way-lever-cant = can't push the lever that way!
 
 recycler-count-items = Recycled {$items} objects.
 
-machine-already-in-use = {CAPITALIZE(THE($machine))} is already in use.
\ No newline at end of file
+machine-already-in-use = {CAPITALIZE(THE($machine))} is already in use.
index 689fca4dd795c6c812c08eb2e943c30f5449992a..de95753233104c1844a652b18ac76b6fff6c2d68 100644 (file)
@@ -34,6 +34,3 @@ materials-raw-silver = raw silver
 materials-raw-plasma = raw plasma
 materials-raw-uranium = raw uranium
 materials-raw-bananium = raw bananium
-
-# Material Reclaimer
-material-reclaimer-upgrade-process-rate = process rate
index 0c0b8faf59e9d7afdc1eb61683afda4f72375c8c..443429c1ef317a4d356c14a2717e913a257164a8 100644 (file)
@@ -1,4 +1 @@
 biomass-reclaimer-suicide-others = {CAPITALIZE(THE($victim))} threw themselves into the biomass reclaimer!
-
-biomass-reclaimer-component-upgrade-speed = speed
-biomass-reclaimer-component-upgrade-biomass-yield = biomass yield
index e92ac86a1e4caabadcd3021da0e319fa0e96c385..b222d707a0a266ed7c5a537a9757c5fa99d453ee 100644 (file)
@@ -1,5 +1,3 @@
 cloning-pod-biomass = It currently has [color=red]{$number}[/color] units of biomass.
 
-cloning-pod-component-upgrade-speed = cloning speed
-cloning-pod-component-upgrade-biomass-requirement = biomass requirement
 cloning-pod-component-upgrade-emag-requirement = The card zaps something inside the cloning pod.
index da4dc7a38470c70599ef356e081583f69a037f64..c4b194265452bfc8f98e047c9fc1dc31e176445e 100644 (file)
@@ -2,5 +2,3 @@
 
 medical-scanner-verb-enter = Enter
 medical-scanner-verb-noun-occupant = occupant
-
-medical-scanner-upgrade-cloning = Cloning fail chance
diff --git a/Resources/Locale/en-US/medical/components/stasis-bed-component.ftl b/Resources/Locale/en-US/medical/components/stasis-bed-component.ftl
deleted file mode 100644 (file)
index 2d8a18c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-stasis-bed-component-upgrade-stasis = stasis effect
index b2df0e079ec30758ae38feb25378438282391c2d..20a31cd8c402d6c217086007fa4e94f27ca1b490 100644 (file)
@@ -1,8 +1,6 @@
-fat-extractor-component-rate = extraction rate
-
 fat-extractor-fact-1 = Fats are triglycerides made up of a combination of different building blocks; glycerol and fatty acids.
 fat-extractor-fact-2 = Adults should get a recommended 20-35% of their energy intake from fat.
 fat-extractor-fact-3 = Being overweight or obese puts you at an increased risk of chronic diseases, such as cardiovascular diseases, metabolic syndrome, type 2 diabetes, and some types of cancers.
 fat-extractor-fact-4 = Not all fats are bad. A certain amount of fat is an essential part of a healthy balanced diet.
 fat-extractor-fact-5 = Saturated fat should form no more than 11% of your daily calories.
-fat-extractor-fact-6 = Unsaturated fat, that is monounsaturated fats, polyunsaturated fats, and omega-3 fatty acids, is found in plants and fish.
\ No newline at end of file
+fat-extractor-fact-6 = Unsaturated fat, that is monounsaturated fats, polyunsaturated fats, and omega-3 fatty acids, is found in plants and fish.
index faed6e8dd28d26fc29c1196e7a13fc9c14b33ae6..94035811c73dea5c0841df8f28026520a441241d 100644 (file)
@@ -3,5 +3,3 @@ thruster-comp-disabled = The thruster is turned [color=red]off[/color].
 thruster-comp-nozzle-direction = The nozzle is facing [color=yellow]{$direction}[/color].
 thruster-comp-nozzle-exposed = The nozzle [color=green]exposed[/color] to space.
 thruster-comp-nozzle-not-exposed = The nozzle [color=red]is not exposed[/color] to space.
-
-thruster-comp-upgrade-thrust = Thrust strength
index 7c1b33d96b43551a1879495a859ff74c7f7b4ff0..c71b3d6bdfd73642ba07726f6a1653a574f47d20 100644 (file)
@@ -11,8 +11,5 @@ comp-emitter-turned-off = The {$target} turns off.
 # Shows if the user attempts to activate the emitter while it's un-anchored.
 comp-emitter-not-anchored = The {$target} isn't anchored to the ground!
 
-# Upgrades
-emitter-component-upgrade-fire-rate = fire rate
-
 emitter-component-current-type = The current selected type is: {$type}.
-emitter-component-type-set = Type set to: {$type}
\ No newline at end of file
+emitter-component-type-set = Type set to: {$type}
index af3039e864efe04ebc60ae1c7edf6f460cbd3cfb..5c9eac57a5dbc8420c1f197d7a853a66a0a1e67b 100644 (file)
@@ -3,5 +3,3 @@ traversal-distorter-set-out = Traversal bias set to "out"
 
 traversal-distorter-desc-in = The affected artifact's traversal now favors moving inwards to the beginning.
 traversal-distorter-desc-out = The affected artifact's traversal now favors moving outwards towards more dangerous nodes.
-
-traversal-distorter-upgrade-bias = Bias effectiveness
index 3af67049803faa66e80c4b0faf221cfd3bd7b361..bbca702d00e91e6651a3defe56b3f67eb5f5d594 100644 (file)
@@ -2545,8 +2545,6 @@ entities:
     - ShutdownSubscribers:
       - 433
       type: DeviceNetwork
-    missingComponents:
-    - UpgradeBattery
 - proto: SpawnPointChiefEngineer
   entities:
   - uid: 145
index 4fe9a503efece4d9497617e10927391e552c5c41..62a63c80c31a233a859d5541dfd897f6f7619bb8 100644 (file)
@@ -9,9 +9,6 @@
       sprite: Objects/Misc/stock_parts.rsi
     - type: Item
       size: Tiny
-    - type: GuideHelp
-      guides:
-      - MachineUpgrading
 
 - type: entity
   id: CapacitorStockPart
index 6c61c63435f3f444616ecb78831c5a66879a50db..199e2d8cba2568494e9ed4bbaed687df45f5d3f8 100644 (file)
@@ -10,9 +10,6 @@
   - type: Item
     sprite: Objects/Specific/Research/rped.rsi
     size: Normal
-  - type: GuideHelp
-    guides:
-    - MachineUpgrading
   - type: PartExchanger
   - type: Storage
     grid:
index 79a17153abf9578d7d51fdf88a37524ab39e02fb..6c70cf9bcace3e91d4352dfcd5436133dd3967ac 100644 (file)
@@ -34,9 +34,6 @@
   - type: Wires
     boardName: wires-board-name-chemdispenser
     layoutId: ChemDispenser
-  - type: UpgradePowerDraw
-    powerDrawMultiplier: 0.75
-    scaling: Exponential
   - type: GuideHelp
     guides:
     - Chemicals
index f846eea0050bf3f650198f57fe3c61cb8058640f..7fb8ec771d8aa4b5978b8dd187baf0f6c3e2e1fd 100644 (file)
       SetParticleEpsilon: AnomalousParticleEpsilon
       SetParticleZeta: AnomalousParticleZeta
     fireBurstSize: 1
-    baseFireBurstDelayMin: 2
-    baseFireBurstDelayMax: 6
+    fireBurstDelayMin: 2
+    fireBurstDelayMax: 6
   - type: ApcPowerReceiver
     powerLoad: 100
   - type: GuideHelp
index d37cc714e28fa0769fa6be9779b36fcbc86d4421..88169ecd675334a750d01ea3c883fb932fcd3884 100644 (file)
     noRot: false
   - type: ApcPowerReceiver
     powerLoad: 15000
-    needsPower: true 
-  - type: UpgradePowerDraw
-    powerDrawMultiplier: 0.80
-    scaling: Exponential
+    needsPower: true
   - type: ItemPlacer
     whitelist:
       components:
index 815c3247ee9c68a7b8283c9d65a081e6dbba3fd6..1b183661f51682a0d0e26d59c5f3ecc76aa66b37 100644 (file)
         hard: False
   - type: Transform
     noRot: false
-  - type: UpgradePowerDraw
-    powerDrawMultiplier: 0.80
-    scaling: Exponential
   - type: TraversalDistorter
   - type: ItemPlacer
     # don't limit the number of artifacts that can be biased
index 4ecd1c29e278a5f97c1ad95db2aa243cae75f623..ec07294bfb121f23ac5ff1fd1cb8029dab47fc80 100644 (file)
@@ -35,6 +35,3 @@
   - type: SeedExtractor
   - type: Machine
     board: SeedExtractorMachineCircuitboard
-  - type: UpgradePowerDraw
-    powerDrawMultiplier: 0.75
-    scaling: Exponential
index d1f84f5b6e1cdd79cf4f3fbc3166537d82d7ddbb..ce343892cc6a366d26d6828ee50b51ec40a82138 100644 (file)
       materialWhiteList: [Plasma]
     - type: PortableGenerator
       startChance: 0.8
-    - type: UpgradePowerSupplier
-      powerSupplyMultiplier: 1.25
-      scaling: Exponential
     - type: GeneratorExhaustGas
       gasType: CarbonDioxide
       # 2 moles of gas for every sheet of plasma.
       storageLimit: 3000
       materialWhiteList: [Uranium]
     - type: PortableGenerator
-    - type: UpgradePowerSupplier
-      powerSupplyMultiplier: 1.25
-      scaling: Exponential
     - type: PowerMonitoringDevice
       group: Generator
       loadNodes:
index 4a3b8e5d98ee2c5ef8d2d21dc0c44eaad567821a..c2170a127adf586ddd25c53d0dbc2d6b6d8443ef 100644 (file)
           state: "smes-op1"
           shader: unshaded
     - type: Smes
-    - type: UpgradeBattery
-      maxChargeMultiplier: 2
-      baseMaxCharge: 8000000
-    - type: UpgradePowerSupplyRamping
-      scaling: Linear
-      supplyRampingMultiplier: 1     
     - type: Appearance
     - type: Battery
       startingCharge: 0
+      maxCharge: 8000000
     - type: ExaminableBattery
     - type: NodeContainer
       examinable: true
index 9d701564eb49f4956d9c3cc17869ffa947ed4a56..94de12be1859e073e12d8cfb6a503243ac77b014 100644 (file)
       shader: unshaded
     - state: full
       shader: unshaded
-  - type: UpgradeBattery
-    maxChargeMultiplier: 2
-    baseMaxCharge: 2500000
-  - type: UpgradePowerSupplyRamping
-    scaling: Linear
-    supplyRampingMultiplier: 1
   - type: Battery
+    maxCharge: 2500000
     startingCharge: 0
   - type: ExaminableBattery
   - type: PointLight
index eb299e3f3a6600239d31e24873a078e8d563f752..f87be426598252289dcc6a06a2b75dc85cec7b89 100644 (file)
   - type: Thruster
     thrusterType: Angular
     requireSpace: false
-    baseThrust: 2000
     thrust: 2000
     machinePartThrust: Manipulator
   - type: Sprite
             collection: MetalBreak
         - !type:ChangeConstructionNodeBehavior
           node: machineFrame
-  - type: UpgradePowerDraw
-    powerDrawMultiplier: 0.75
-    scaling: Exponential
   - type: Damageable
     damageContainer: Inorganic
     damageModifierSet: Electronic
   - type: Thruster
     thrusterType: Angular
     requireSpace: false
-    baseThrust: 100
     thrust: 100
   - type: ApcPowerReceiver
     needsPower: false
index 4a7558423b3d1d7063f2c86415252fd91b417c9f..4382696df8575069237899de823f08c605ea0f23 100644 (file)
@@ -7,7 +7,6 @@
   - AnomalousResearch
   - Xenoarchaeology
   - Robotics
-  - MachineUpgrading
 
 - type: guideEntry
   id: Technologies
   name: guide-entry-traversal-distorter
   text: "/ServerInfo/Guidebook/Science/TraversalDistorter.xml"
 
-- type: guideEntry
-  id: MachineUpgrading
-  name: guide-entry-machine-upgrading
-  text: "/ServerInfo/Guidebook/Science/MachineUpgrading.xml"
-
 - type: guideEntry
   id: Cyborgs
   name: guide-entry-cyborgs
diff --git a/Resources/ServerInfo/Guidebook/Science/MachineUpgrading.xml b/Resources/ServerInfo/Guidebook/Science/MachineUpgrading.xml
deleted file mode 100644 (file)
index b6658f6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<Document>
-# Machine Upgrading
-
-Machines help the station run smoothly, and as a scientist, you can help them run even better!
-
-## Parts
-<Box>Stock Parts:</Box>
-<Box>
-<GuideEntityEmbed Entity="CapacitorStockPart"/>
-<GuideEntityEmbed Entity="MatterBinStockPart"/>
-<GuideEntityEmbed Entity="MicroManipulatorStockPart"/>
-</Box>
-Machine Parts can be used to create many machines.
-
-## Upgrading
-To know if a machine can be upgraded, you can examine it and check for the [color=#a4885c]lightning bolt[/color] icon in the lower right corner. Clicking on it will allow you to see what kinds of upgrades the machine has.
-
-To check what parts a machine needs, you can examine its board. Try it here:
-<Box Orientation="Vertical">
-<GuideEntityEmbed Entity="ProtolatheMachineCircuitboard"/>
-<GuideEntityEmbed Entity="CloningPodMachineCircuitboard"/>
-<GuideEntityEmbed Entity="TraversalDistorterMachineCircuitboard"/>
-<GuideEntityEmbed Entity="ThermomachineFreezerMachineCircuitBoard"/>
-</Box>
-
-You can also quickly build machines by using an RPED, loading it with machine parts, and then clicking on a machine.
-<GuideEntityEmbed Entity="RPED"/>
-</Document>