57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using ClassicAssist.Shared;
|
|
using ClassicAssist.Misc;
|
|
using ClassicAssist.UO.Data;
|
|
using ClassicAssist.UO.Network;
|
|
using ClassicAssist.UO.Network.Packets;
|
|
using ClassicAssist.UO.Objects;
|
|
|
|
namespace ClassicAssist.Data.Hotkeys.Commands
|
|
{
|
|
[HotkeyCommand( Name = "Interrupt Spell" )]
|
|
public class InterruptSpellCommand : HotkeyCommand
|
|
{
|
|
public override void Execute()
|
|
{
|
|
PlayerMobile player = Engine.Player;
|
|
|
|
if ( player == null )
|
|
{
|
|
return;
|
|
}
|
|
|
|
Layer[] layerPriority =
|
|
{
|
|
Layer.Shirt, Layer.Shoes, Layer.Pants, Layer.Helm, Layer.Gloves, Layer.Ring, Layer.Neck,
|
|
Layer.Waist, Layer.InnerTorso, Layer.Bracelet, Layer.MiddleTorso, Layer.Earrings, Layer.Arms,
|
|
Layer.Cloak, Layer.OuterTorso, Layer.OuterLegs, Layer.InnerLegs, Layer.TwoHanded, Layer.OneHanded
|
|
};
|
|
|
|
Layer selectedLayer = Layer.Invalid;
|
|
int serial = 0;
|
|
|
|
foreach ( Layer layer in layerPriority )
|
|
{
|
|
serial = player.GetLayer( layer );
|
|
|
|
if ( serial == 0 )
|
|
{
|
|
continue;
|
|
}
|
|
|
|
selectedLayer = layer;
|
|
break;
|
|
}
|
|
|
|
if ( selectedLayer == Layer.Invalid )
|
|
{
|
|
return;
|
|
}
|
|
|
|
ActionPacketQueue.EnqueueActionPackets(
|
|
new BasePacket[]
|
|
{
|
|
new DragItem( serial, 1 ), new EquipRequest( serial, selectedLayer, player.Serial )
|
|
}, QueuePriority.High );
|
|
}
|
|
}
|
|
} |