fish-station/Content.Server/Objectives/Systems/TerminatorTargetOverrideSystem.cs
pacable 556d234b0a
Терминатор (#333)
* Revert Revert Exterminator pending newmed/redesign (#26978)

This reverts commit f544c912

Signed-off-by: pacable <igor.mamaev1@gmail.com>

* Revert "remove GenericAntag completely (#28218)"

This reverts commit 489efeb717.

* Revert "remove TerminatorRoleComponent (#30733)"

This reverts commit 0a4b220854.

* fix broken tag

Signed-off-by: pacable <igor.mamaev1@gmail.com>

* delete invisible symbol

Signed-off-by: pacable <igor.mamaev1@gmail.com>

* ru locale

Signed-off-by: pacable <igor.mamaev1@gmail.com>

---------

Signed-off-by: pacable <igor.mamaev1@gmail.com>
2024-08-29 16:07:25 +03:00

41 lines
1.2 KiB
C#

using Content.Server.Objectives.Components;
using Content.Server.Terminator.Components;
using Content.Shared.Mind;
using Content.Shared.Objectives.Components;
namespace Content.Server.Objectives.Systems;
/// <summary>
/// Handles copying the exterminator's target override to this objective.
/// </summary>
public sealed class TerminatorTargetOverrideSystem : EntitySystem
{
[Dependency] private readonly TargetObjectiveSystem _target = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<TerminatorTargetOverrideComponent, ObjectiveAssignedEvent>(OnAssigned);
}
private void OnAssigned(EntityUid uid, TerminatorTargetOverrideComponent comp, ref ObjectiveAssignedEvent args)
{
if (args.Mind.OwnedEntity == null)
{
args.Cancelled = true;
return;
}
var user = args.Mind.OwnedEntity.Value;
if (!TryComp<TerminatorComponent>(user, out var terminator))
{
args.Cancelled = true;
return;
}
// this exterminator has a target override so set its objective target accordingly
if (terminator.Target != null)
_target.SetTarget(uid, terminator.Target.Value);
}
}