From 3c9ce1fb8ac42139581800adfdae1d18b978ed7e Mon Sep 17 00:00:00 2001 From: Quanteey <61941975+Quanteey@users.noreply.github.com> Date: Tue, 5 Aug 2025 16:46:25 +0200 Subject: [PATCH] fixes --- .../EntityEffects/EntityEffectSystem.cs | 49 +++++++++++++++++++ .../Kitchen/EntitySystems/DeepFryerSystem.cs | 1 + .../XenoArtifacts/ArtifactSystem.cs | 1 + .../EntityEffects/Effects/ActivateArtifact.cs | 13 +---- .../Chemistry/Effects/ChemRemovePsionic.cs | 15 +----- .../Chemistry/Effects/ChemRerollPsionic.cs | 13 +---- .../_DV/EntityEffects/Effects/Addicted.cs | 2 +- .../_DV/EntityEffects/Effects/InPain.cs | 2 +- .../Effects/SuppressAddiction.cs | 2 +- .../_DV/EntityEffects/Effects/SuppressPain.cs | 2 +- 10 files changed, 60 insertions(+), 40 deletions(-) diff --git a/Content.Server/EntityEffects/EntityEffectSystem.cs b/Content.Server/EntityEffects/EntityEffectSystem.cs index 5d5e81a27f..d9120849d6 100644 --- a/Content.Server/EntityEffects/EntityEffectSystem.cs +++ b/Content.Server/EntityEffects/EntityEffectSystem.cs @@ -1,5 +1,6 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; +using Content.Server.Abilities.Psionics; using Content.Server.Atmos.Components; using Content.Server.Atmos.EntitySystems; using Content.Server.Body.Components; @@ -16,11 +17,13 @@ using Content.Server.Ghost.Roles.Components; using Content.Server.Medical; using Content.Server.Polymorph.Components; using Content.Server.Polymorph.Systems; +using Content.Server.Psionics; using Content.Server.Speech.Components; using Content.Server.Spreader; using Content.Server.Temperature.Components; using Content.Server.Temperature.Systems; using Content.Server.Traits.Assorted; +using Content.Server.Xenoarchaeology.XenoArtifacts; using Content.Server.Zombies; using Content.Shared.Atmos; using Content.Shared.Audio; @@ -30,8 +33,10 @@ using Content.Shared.EntityEffects.Effects.PlantMetabolism; using Content.Shared.EntityEffects.Effects.StatusEffects; using Content.Shared.EntityEffects.Effects; using Content.Shared.EntityEffects; +using Content.Shared.Humanoid; using Content.Shared.Maps; using Content.Shared.Mind.Components; +using Content.Shared.Nyanotrasen.Chemistry.Effects; using Content.Shared.Popups; using Content.Shared.Random; using Content.Shared.Zombies; @@ -123,6 +128,13 @@ public sealed class EntityEffectSystem : EntitySystem SubscribeLocalEvent>(OnExecutePlantSpeciesChange); SubscribeLocalEvent>(OnExecutePolymorph); SubscribeLocalEvent>(OnExecuteResetNarcolepsy); + SubscribeLocalEvent>(OnActivateArtifact); + + // Nyanotrasen + SubscribeLocalEvent>(OnChemRemovePsionic); + SubscribeLocalEvent>(OnChemRerollPsionic); + // Nyanotrasen end + } private void OnCheckTemperature(ref CheckEntityEffectConditionEvent args) @@ -761,8 +773,18 @@ public sealed class EntityEffectSystem : EntitySystem return; } + // Delta-V: Do not allow humanoids to become sentient. Intended to stop people from + // repeatedly cloning themselves and using cognizine on their bodies. + // HumanoidAppearanceComponent is common to all player species, and is also used for the + // Ripley pilot whitelist, so there's a precedent for using it for this kind of check. + if (HasComp(uid)) + { + return; + } + ghostRole = AddComp(uid); EnsureComp(uid); + EnsureComp(uid); //Nyano - Summary:. Makes the animated body able to get psionics. var entityData = EntityManager.GetComponent(uid); ghostRole.RoleName = entityData.EntityName; @@ -972,4 +994,31 @@ public sealed class EntityEffectSystem : EntitySystem _narcolepsy.AdjustNarcolepsyTimer(args.Args.TargetEntity, args.Effect.TimerReset); } + + private void OnActivateArtifact(ref ExecuteEntityEffectEvent args) + { + var artifact = args.Args.EntityManager.EntitySysManager.GetEntitySystem(); + artifact.TryActivateArtifact(args.Args.TargetEntity, logMissing: false); + } + + // Nyanotrasen + private void OnChemRemovePsionic(ref ExecuteEntityEffectEvent args) + { + if (args.Args is EntityEffectReagentArgs reagentArgs) + { + if (reagentArgs.Scale != 1f) + return; + } + + var psySys = args.Args.EntityManager.EntitySysManager.GetEntitySystem(); + + psySys.RemovePsionics(args.Args.TargetEntity); + } + + private void OnChemRerollPsionic(ref ExecuteEntityEffectEvent args) + { + var psySys = args.Args.EntityManager.EntitySysManager.GetEntitySystem(); + psySys.RerollPsionics(args.Args.TargetEntity, bonusMuliplier: args.Effect.BonusMuliplier); + } + // Nyanotrasen end } diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs index 892531803b..6493b58577 100644 --- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs +++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs @@ -19,6 +19,7 @@ using Content.Server.Storage.EntitySystems; using Content.Server.Temperature.Components; using Content.Server.Temperature.Systems; using Content.Server.UserInterface; +using Content.Shared.Cargo; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components.SolutionManager; using Content.Shared.Chemistry.EntitySystems; diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs index 6ddcd56abd..6ee57fa463 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Power.EntitySystems; using Content.Server.Xenoarchaeology.Equipment.Components; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Components; +using Content.Shared.Cargo; using Content.Shared.CCVar; using Content.Shared.Xenoarchaeology.XenoArtifacts; using JetBrains.Annotations; diff --git a/Content.Shared/EntityEffects/Effects/ActivateArtifact.cs b/Content.Shared/EntityEffects/Effects/ActivateArtifact.cs index 8540478362..d5b00112a6 100644 --- a/Content.Shared/EntityEffects/Effects/ActivateArtifact.cs +++ b/Content.Shared/EntityEffects/Effects/ActivateArtifact.cs @@ -1,18 +1,9 @@ -using Content.Server.Xenoarchaeology.XenoArtifacts; -using Content.Shared.Chemistry.Reagent; using Robust.Shared.Prototypes; -using Content.Shared.EntityEffects; -namespace Content.Server.EntityEffects.Effects; +namespace Content.Shared.EntityEffects.Effects; -public sealed partial class ActivateArtifact : EntityEffect +public sealed partial class ActivateArtifact : EventEntityEffect { - public override void Effect(EntityEffectBaseArgs args) - { - var artifact = args.EntityManager.EntitySysManager.GetEntitySystem(); - artifact.TryActivateArtifact(args.TargetEntity, logMissing: false); - } - protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("reagent-effect-guidebook-activate-artifact", ("chance", Probability)); } diff --git a/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs b/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs index ae4c684cae..cd7a534e20 100644 --- a/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs +++ b/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs @@ -8,22 +8,9 @@ namespace Content.Shared.Nyanotrasen.Chemistry.Effects /// Rerolls psionics once. /// [UsedImplicitly] - public sealed partial class ChemRemovePsionic : EntityEffect + public sealed partial class ChemRemovePsionic : EventEntityEffect { protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("reagent-effect-guidebook-chem-remove-psionic", ("chance", Probability)); - - public override void Effect(EntityEffectBaseArgs args) - { - if (args is EntityEffectReagentArgs reagentArgs) - { - if (reagentArgs.Scale != 1f) - return; - } - - var psySys = args.EntityManager.EntitySysManager.GetEntitySystem(); - - psySys.RemovePsionics(args.TargetEntity); - } } } diff --git a/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRerollPsionic.cs b/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRerollPsionic.cs index d1f6134df4..e804ee7b43 100644 --- a/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRerollPsionic.cs +++ b/Content.Shared/Nyanotrasen/Chemistry/Effects/ChemRerollPsionic.cs @@ -1,16 +1,14 @@ -using Content.Shared.Chemistry.Reagent; -using Content.Server.Psionics; using Content.Shared.EntityEffects; using JetBrains.Annotations; using Robust.Shared.Prototypes; -namespace Content.Server.Chemistry.ReagentEffects +namespace Content.Shared.Nyanotrasen.Chemistry.Effects { /// /// Rerolls psionics once. /// [UsedImplicitly] - public sealed partial class ChemRerollPsionic : EntityEffect + public sealed partial class ChemRerollPsionic : EventEntityEffect { protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("reagent-effect-guidebook-chem-reroll-psionic", ("chance", Probability)); @@ -20,12 +18,5 @@ namespace Content.Server.Chemistry.ReagentEffects /// [DataField("bonusMultiplier")] public float BonusMuliplier = 1f; - - public override void Effect(EntityEffectBaseArgs args) - { - var psySys = args.EntityManager.EntitySysManager.GetEntitySystem(); - - psySys.RerollPsionics(args.TargetEntity, bonusMuliplier: BonusMuliplier); - } } } diff --git a/Content.Shared/_DV/EntityEffects/Effects/Addicted.cs b/Content.Shared/_DV/EntityEffects/Effects/Addicted.cs index 4223b51f2c..e5369b56e1 100644 --- a/Content.Shared/_DV/EntityEffects/Effects/Addicted.cs +++ b/Content.Shared/_DV/EntityEffects/Effects/Addicted.cs @@ -2,7 +2,7 @@ using Content.Shared._DV.Addictions; using Content.Shared.EntityEffects; using Robust.Shared.Prototypes; -namespace Content.Server.EntityEffects.Effects; +namespace Content.Shared._DV.EntityEffects.Effects; public sealed partial class Addicted : EntityEffect { diff --git a/Content.Shared/_DV/EntityEffects/Effects/InPain.cs b/Content.Shared/_DV/EntityEffects/Effects/InPain.cs index a89c92f0b7..df33a63950 100644 --- a/Content.Shared/_DV/EntityEffects/Effects/InPain.cs +++ b/Content.Shared/_DV/EntityEffects/Effects/InPain.cs @@ -2,7 +2,7 @@ using Content.Shared._DV.Pain; using Content.Shared.EntityEffects; using Robust.Shared.Prototypes; -namespace Content.Server.EntityEffects.Effects; +namespace Content.Shared._DV.EntityEffects.Effects; public sealed partial class InPain : EntityEffect { diff --git a/Content.Shared/_DV/EntityEffects/Effects/SuppressAddiction.cs b/Content.Shared/_DV/EntityEffects/Effects/SuppressAddiction.cs index c5c7e4d1c7..c4a37cc6de 100644 --- a/Content.Shared/_DV/EntityEffects/Effects/SuppressAddiction.cs +++ b/Content.Shared/_DV/EntityEffects/Effects/SuppressAddiction.cs @@ -2,7 +2,7 @@ using Content.Shared._DV.Addictions; using Content.Shared.EntityEffects; using Robust.Shared.Prototypes; -namespace Content.Server.EntityEffects.Effects; +namespace Content.Shared._DV.EntityEffects.Effects; public sealed partial class SuppressAddiction : EntityEffect { diff --git a/Content.Shared/_DV/EntityEffects/Effects/SuppressPain.cs b/Content.Shared/_DV/EntityEffects/Effects/SuppressPain.cs index 75bb2bbbda..a0d058da18 100644 --- a/Content.Shared/_DV/EntityEffects/Effects/SuppressPain.cs +++ b/Content.Shared/_DV/EntityEffects/Effects/SuppressPain.cs @@ -2,7 +2,7 @@ using Content.Shared._DV.Pain; using Content.Shared.EntityEffects; using Robust.Shared.Prototypes; -namespace Content.Server.EntityEffects.Effects; +namespace Content.Shared._DV.EntityEffects.Effects; public sealed partial class SuppressPain : EntityEffect {