diff --git a/Content.Server/Radiation/Components/RadiationReceiverComponent.cs b/Content.Server/Radiation/Components/RadiationReceiverComponent.cs index 4a47007a9a..2d7ef4dcdd 100644 --- a/Content.Server/Radiation/Components/RadiationReceiverComponent.cs +++ b/Content.Server/Radiation/Components/RadiationReceiverComponent.cs @@ -16,5 +16,11 @@ public sealed partial class RadiationReceiverComponent : Component /// [ViewVariables(VVAccess.ReadOnly)] public float CurrentRadiation; + + /// + /// DeltaV - multiplier on the rads received if the RadiationSource is the same entity as this RadiationReceiver + /// + [DataField] + public float SelfSourceMultiplier = 1.0f; } diff --git a/Content.Server/Radiation/Systems/RadiationSystem.GridCast.cs b/Content.Server/Radiation/Systems/RadiationSystem.GridCast.cs index ed54e206f8..b2a6ff0683 100644 --- a/Content.Server/Radiation/Systems/RadiationSystem.GridCast.cs +++ b/Content.Server/Radiation/Systems/RadiationSystem.GridCast.cs @@ -79,7 +79,8 @@ public partial class RadiationSystem // add rads to total rad exposure if (ray.ReachedDestination) - rads += ray.Rads; + // DeltaV - apply a modifier if you are irradiating yourself + rads += ray.Rads * (source.Entity.Owner == destUid ? (source.Entity.Comp1.SelfReceiverMultiplier * dest.SelfSourceMultiplier) : 1f); if (!debug) continue; diff --git a/Content.Shared/Radiation/Components/RadiationSourceComponent.cs b/Content.Shared/Radiation/Components/RadiationSourceComponent.cs index 874024a905..deaa531b23 100644 --- a/Content.Shared/Radiation/Components/RadiationSourceComponent.cs +++ b/Content.Shared/Radiation/Components/RadiationSourceComponent.cs @@ -26,4 +26,10 @@ public sealed partial class RadiationSourceComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public bool Enabled = true; + + /// + /// DeltaV - multiplier on the rads delivered if the RadiationReceiver is the same entity as this RadiationSource + /// + [DataField] + public float SelfReceiverMultiplier = 1.0f; } diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml index d9364df27f..0dd47560bf 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/xenoartifacts.yml @@ -45,6 +45,7 @@ - type: Psionic # DeltaV - sentient artifacts are psionic # These components are needed for certain triggers to work. - type: RadiationReceiver + selfSourceMultiplier: 0.1 # DeltaV - a radiation effect triggering a radiation trigger on the same artifact is often annoying - type: Reactive groups: Flammable: [Touch]