first commit
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
using ClassicAssist.Shared;
|
||||
using ClassicAssist.Data.Abilities;
|
||||
using ClassicAssist.Shared.Resources;
|
||||
using ClassicAssist.UO.Data;
|
||||
using ClassicAssist.UO.Network.Packets;
|
||||
using ClassicAssist.UO.Objects;
|
||||
using UOC = ClassicAssist.Shared.UO.Commands;
|
||||
|
||||
namespace ClassicAssist.Data.Macros.Commands
|
||||
{
|
||||
public static class AbilitiesCommands
|
||||
{
|
||||
[CommandsDisplay( Category = nameof( Strings.Abilities ) )]
|
||||
public static void ClearAbility()
|
||||
{
|
||||
AbilitiesManager manager = AbilitiesManager.GetInstance();
|
||||
|
||||
if ( manager.IsPrimaryEnabled )
|
||||
{
|
||||
manager.SetAbility( AbilityType.Primary );
|
||||
}
|
||||
else if ( manager.IsSecondaryEnabled )
|
||||
{
|
||||
manager.SetAbility( AbilityType.Secondary );
|
||||
}
|
||||
}
|
||||
|
||||
[CommandsDisplay( Category = nameof( Strings.Abilities ),
|
||||
Parameters = new[] { nameof( ParameterType.Ability ), nameof( ParameterType.OnOff ) } )]
|
||||
public static void SetAbility( string ability, string onOff = "toggle" )
|
||||
{
|
||||
AbilitiesManager manager = AbilitiesManager.GetInstance();
|
||||
|
||||
if ( ability.ToLower().Equals( "stun" ) )
|
||||
{
|
||||
Engine.SendPacketToServer( new StunRequest() );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ability.ToLower().Equals( "disarm" ) )
|
||||
{
|
||||
Engine.SendPacketToServer( new DisarmRequest() );
|
||||
return;
|
||||
}
|
||||
|
||||
bool primary;
|
||||
|
||||
switch ( ability.ToLower() )
|
||||
{
|
||||
case "primary":
|
||||
primary = true;
|
||||
break;
|
||||
default:
|
||||
primary = false;
|
||||
break;
|
||||
}
|
||||
|
||||
string onOffNormalized = onOff.Trim().ToLower();
|
||||
|
||||
if ( onOffNormalized != "toggle" )
|
||||
{
|
||||
switch ( onOffNormalized )
|
||||
{
|
||||
case "on":
|
||||
{
|
||||
if ( primary && manager.IsPrimaryEnabled || !primary && manager.IsSecondaryEnabled )
|
||||
{
|
||||
if ( !MacroManager.QuietMode )
|
||||
{
|
||||
UOC.SystemMessage( Strings.Ability_already_set___, 0x3F );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "off":
|
||||
{
|
||||
if ( primary && !manager.IsPrimaryEnabled || !primary && !manager.IsSecondaryEnabled )
|
||||
{
|
||||
if ( !MacroManager.QuietMode )
|
||||
{
|
||||
UOC.SystemMessage( Strings.Ability_not_set___, 0x3F );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UOC.SystemMessage( string.Format( Strings.Setting_ability___0_____, ability ), 0x3F );
|
||||
manager.SetAbility( primary ? AbilityType.Primary : AbilityType.Secondary );
|
||||
}
|
||||
|
||||
[CommandsDisplay( Category = nameof( Strings.Abilities ) )]
|
||||
public static void Fly()
|
||||
{
|
||||
PlayerMobile player = Engine.Player;
|
||||
|
||||
if ( player == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !player.Status.HasFlag( MobileStatus.Flying ) )
|
||||
{
|
||||
UOC.ToggleGargoyleFlying();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandsDisplay( Category = nameof( Strings.Abilities ),
|
||||
Parameters = new[] { nameof( ParameterType.SerialOrAlias ) } )]
|
||||
public static bool Flying( object obj )
|
||||
{
|
||||
int serial = AliasCommands.ResolveSerial( obj );
|
||||
|
||||
if ( serial == 0 )
|
||||
{
|
||||
UOC.SystemMessage( Strings.Invalid_or_unknown_object_id );
|
||||
return false;
|
||||
}
|
||||
|
||||
Mobile mobile = Engine.Mobiles.GetMobile( serial );
|
||||
|
||||
if ( mobile == null )
|
||||
{
|
||||
// TODO better message
|
||||
UOC.SystemMessage( Strings.Cannot_find_item___ );
|
||||
return false;
|
||||
}
|
||||
|
||||
return mobile.Status.HasFlag( MobileStatus.Flying );
|
||||
}
|
||||
|
||||
[CommandsDisplay( Category = nameof( Strings.Abilities ) )]
|
||||
public static void Land()
|
||||
{
|
||||
PlayerMobile player = Engine.Player;
|
||||
|
||||
if ( player == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( player.Status.HasFlag( MobileStatus.Flying ) )
|
||||
{
|
||||
UOC.ToggleGargoyleFlying();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user