| 12345678910111213141516171819202122232425262728293031323334353637 |
- using Content.Server.Objectives.Components;
- using Content.Shared.Mind;
- using Content.Shared.Objectives.Components;
- namespace Content.Server.Objectives.Systems;
- /// <summary>
- /// Handles keep alive condition logic.
- /// </summary>
- public sealed class KeepAliveConditionSystem : EntitySystem
- {
- [Dependency] private readonly SharedMindSystem _mind = default!;
- [Dependency] private readonly TargetObjectiveSystem _target = default!;
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent<KeepAliveConditionComponent, ObjectiveGetProgressEvent>(OnGetProgress);
- }
- private void OnGetProgress(EntityUid uid, KeepAliveConditionComponent comp, ref ObjectiveGetProgressEvent args)
- {
- if (!_target.GetTarget(uid, out var target))
- return;
- args.Progress = GetProgress(target.Value);
- }
- private float GetProgress(EntityUid target)
- {
- if (!TryComp<MindComponent>(target, out var mind))
- return 0f;
- return _mind.IsCharacterDeadIc(mind) ? 0f : 1f;
- }
- }
|