From f9b088a8e4b32f97504b23e8a9d464c4f734ae27 Mon Sep 17 00:00:00 2001 From: ReeZer2 <63300653+ReeZer2@users.noreply.github.com> Date: Sat, 22 Feb 2025 14:56:19 +0200 Subject: [PATCH] ADD: Pacified component to clone entity (#2598) * ADD: Pacified component to clone entity * fix fix commit --- .../CombatMode/Pacification/PacificationSystem.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Content.Shared/CombatMode/Pacification/PacificationSystem.cs b/Content.Shared/CombatMode/Pacification/PacificationSystem.cs index 6bc32c5b96c6..00d0d05d77e4 100644 --- a/Content.Shared/CombatMode/Pacification/PacificationSystem.cs +++ b/Content.Shared/CombatMode/Pacification/PacificationSystem.cs @@ -1,12 +1,14 @@ using System.Diagnostics.CodeAnalysis; using Content.Shared.Actions; using Content.Shared.Alert; +using Content.Shared.Cloning; using Content.Shared.FixedPoint; using Content.Shared.IdentityManagement; using Content.Shared.Interaction.Events; using Content.Shared.Popups; using Content.Shared.Throwing; using Content.Shared.Weapons.Ranged.Events; +using Robust.Shared.Serialization.Manager; using Robust.Shared.Timing; namespace Content.Shared.CombatMode.Pacification; @@ -18,6 +20,7 @@ public sealed class PacificationSystem : EntitySystem [Dependency] private readonly SharedCombatModeSystem _combatSystem = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; //ss220 add clone pacified comp to clone entity public override void Initialize() { @@ -28,6 +31,8 @@ public override void Initialize() SubscribeLocalEvent(OnAttackAttempt); SubscribeLocalEvent(OnShootAttempt); SubscribeLocalEvent(OnPacifiedDangerousAttack); + + SubscribeLocalEvent(OnCloning); //ss220 add clone pacified comp to clone entity } private bool PacifiedCanAttack(EntityUid user, EntityUid target, [NotNullWhen(false)] out string? reason) @@ -151,6 +156,15 @@ private void OnPacifiedDangerousAttack(Entity args.Cancelled = true; args.Reason = "pacified-cannot-harm-indirect"; } + + //ss220 add clone pacified comp to clone entity start + private void OnCloning(Entity ent, ref CloningEvent args) + { + RemComp(args.Target); + var newComp = EnsureComp(args.Target); + _serialization.CopyTo(ent.Comp, ref newComp, notNullableOverride: true); + } + //ss220 add clone pacified comp to clone entity end }