Files
OldThink/Content.Server/Objectives/Systems/TerminatorTargetOverrideSystem.cs

42 lines
1.2 KiB
C#
Raw Normal View History

exterminator midround minor antag (#19946) * terminator locale * terminate objective * terminator components and shared system * terminator roles rules and system * terminator events * skeleton recolour * terminator and endoskeleton * ghost role spawn * damage modifier sets * :trollface: * :trollface: * add antag prototype * ghost role locale * skynet * :trollface: * :trollface: * :trollface: * add endoskeleton body prototype * :trollface: * :trollface: * smite locale * implement terminate smite * :trollface: * :trollface: * implement PopupBehavior * endoskeleton transform popup * move stuff from shared to server since nothing actually used it * recolour everything * update parts * :trollface: * :trollface: * ok fire was using the damage set, back to 1.0 * tweak * :trollface: * :trollface: * simplemob ops * 1 rule per pro * :trollface: * :trollface: * update some sprites * structural damage * :trollface: * :trollface: * Revert "update some sprites" This reverts commit 459196c6a8942c5412885d5fe2f1a83a48408ddc. * offbrand, add die objective to maybe remove fear of murderbone * add shut down objective to the list * fix ghost role * fix control mob * :trollface: * :trollface: * please * naming * code changes for GenericAntag terminator * yml changes for GenericAntag terminator * :trollface: * moved kill objective override to an objective component * use kill objective override * fix * oh * locale changes * change burn to heat for skin melting gib * change some endoskeleton stuff * pro * i already did this dementia ops * objective * fix * pro * swap out full sprite * update parts * forgor * fix mind transfer * type * endoskeleton has 500 mass * evil * fishops * warops --------- Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-12-25 03:16:56 +00:00
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);
}
}