using Content.Server.Interaction; using Content.Server.Weapons.Ranged.Systems; using Content.Shared.Weapons.Melee; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; using Robust.Shared.Physics.Systems; using Robust.Shared.Random; using Robust.Shared.Timing; namespace Content.Server.NPC.Systems; /// /// Handles combat for NPCs. /// public sealed partial class NPCCombatSystem : EntitySystem { [Dependency] private IGameTiming _timing = default!; [Dependency] private IRobustRandom _random = default!; [Dependency] private GunSystem _gun = default!; [Dependency] private InteractionSystem _interaction = default!; [Dependency] private SharedAudioSystem _audio = default!; [Dependency] private NPCSteeringSystem _steering = default!; [Dependency] private SharedMapSystem _map = default!; [Dependency] private SharedMeleeWeaponSystem _melee = default!; [Dependency] private SharedTransformSystem _transform = default!; /// /// If disabled we'll move into range but not attack. /// public bool Enabled = true; public override void Initialize() { base.Initialize(); InitializeMelee(); InitializeRanged(); } public override void Update(float frameTime) { base.Update(frameTime); UpdateMelee(frameTime); UpdateRanged(frameTime); } }