using Content.Shared.Inventory.Events; using Content.Shared.Ninja.Components; namespace Content.Shared.Ninja.Systems; /// /// System for katana binding and dash events. Recalling is handled by the suit. /// public sealed class EnergyKatanaSystem : EntitySystem { [Dependency] private readonly SharedSpaceNinjaSystem _ninja = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnEquipped); SubscribeLocalEvent(OnCheckDash); } /// /// When equipped by a ninja, try to bind it. /// private void OnEquipped(Entity ent, ref GotEquippedEvent args) { _ninja.BindKatana(args.Equipee, ent); } private void OnCheckDash(Entity ent, ref CheckDashEvent args) { // Just use a whitelist fam if (!_ninja.IsNinja(args.User)) args.Cancelled = true; } }