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;
}
}