213 lines
5.5 KiB
C#
213 lines
5.5 KiB
C#
using ClassicAssist.Shared;
|
|
using ClassicAssist.Data.Macros.Commands;
|
|
using ClassicAssist.Data.SpecialMoves;
|
|
using ClassicAssist.UO.Data;
|
|
using ClassicAssist.UO.Network;
|
|
using ClassicAssist.UO.Objects;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace ClassicAssist.Tests.MacroCommands
|
|
{
|
|
[TestClass]
|
|
public class MobileCommandTests
|
|
{
|
|
private PlayerMobile _player;
|
|
|
|
[TestInitialize]
|
|
public void Initialize()
|
|
{
|
|
_player = new PlayerMobile( 0x01 ) { Name = "Shmoo", Notoriety = Notoriety.Murderer };
|
|
Engine.Player = _player;
|
|
AliasCommands.SetAlias( "self", 0x01 );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetName()
|
|
{
|
|
string name = EntityCommands.Name( "self" );
|
|
|
|
Assert.AreEqual( "Shmoo", name );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillTrimNameItem()
|
|
{
|
|
Engine.Items.Add( new Item( 0x40000000 ) { Name = " need trim " } );
|
|
|
|
Assert.AreEqual( "need trim", EntityCommands.Name( 0x40000000 ) );
|
|
|
|
Assert.AreEqual( string.Empty, EntityCommands.Name( 0x40000001 ) );
|
|
|
|
Engine.Items.Remove( 0x40000000 );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetNotoriety()
|
|
{
|
|
Assert.IsTrue( NotorietyCommands.Murderer( "self" ) );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetHitsNoParam()
|
|
{
|
|
_player.Hits = 100;
|
|
|
|
int val = MobileCommands.Hits();
|
|
|
|
Assert.AreEqual( 100, val );
|
|
|
|
_player.Hits = 0;
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetHitsSerialParam()
|
|
{
|
|
Mobile mobile = new Mobile( 2 ) { Hits = 200 };
|
|
|
|
Engine.Mobiles.Add( mobile );
|
|
|
|
int val = MobileCommands.Hits( mobile.Serial );
|
|
|
|
Assert.AreEqual( 200, val );
|
|
|
|
Engine.Mobiles.Remove( mobile );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetHitsStringParam()
|
|
{
|
|
Mobile mobile = new Mobile( 2 ) { Hits = 250 };
|
|
|
|
Engine.Mobiles.Add( mobile );
|
|
|
|
AliasCommands.SetAlias( "mobile", mobile.Serial );
|
|
|
|
int val = MobileCommands.Hits( "mobile" );
|
|
|
|
Assert.AreEqual( 250, val );
|
|
|
|
Engine.Mobiles.Remove( mobile );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetHiddenNoParam()
|
|
{
|
|
_player.Status |= MobileStatus.Hidden;
|
|
_player.Status |= MobileStatus.Female;
|
|
|
|
bool hidden = MobileCommands.Hidden();
|
|
|
|
Assert.IsTrue( hidden );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetDead()
|
|
{
|
|
Assert.IsFalse( MobileCommands.Dead() );
|
|
|
|
_player.ID = 0x192;
|
|
|
|
Assert.IsTrue( MobileCommands.Dead() );
|
|
|
|
_player.ID = 0x190;
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetDeadParam()
|
|
{
|
|
Mobile m = new Mobile( 2 );
|
|
|
|
Engine.Mobiles.Add( m );
|
|
|
|
Assert.IsFalse( MobileCommands.Dead( 2 ) );
|
|
|
|
m.ID = 0x192;
|
|
|
|
Assert.IsTrue( MobileCommands.Dead( 2 ) );
|
|
|
|
Engine.Mobiles.Remove( m );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetMountedParam()
|
|
{
|
|
Item mount = new Item( 2 );
|
|
|
|
Engine.Items.Add( mount );
|
|
|
|
AliasCommands.SetAlias( "self", 1 );
|
|
AliasCommands.SetAlias( "mount", 2 );
|
|
|
|
Assert.IsFalse( MobileCommands.Mounted( "self" ) );
|
|
|
|
_player.SetLayer( Layer.Mount, 2 );
|
|
|
|
Assert.IsTrue( MobileCommands.Mounted( "self" ) );
|
|
|
|
Engine.Items.Remove( mount );
|
|
_player.SetLayer( Layer.Mount, 0 );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetMaxHits()
|
|
{
|
|
_player.HitsMax = 100;
|
|
|
|
Assert.AreEqual( 100, MobileCommands.MaxHits( _player.Serial ) );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetHits()
|
|
{
|
|
_player.Hits = 100;
|
|
|
|
Assert.AreEqual( 100, MobileCommands.Hits( _player.Serial ) );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetDiffHits()
|
|
{
|
|
_player.Hits = 90;
|
|
_player.HitsMax = 100;
|
|
|
|
Assert.AreEqual( 10, MobileCommands.DiffHits( _player.Serial ) );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillGetStats()
|
|
{
|
|
_player.Strength = 100;
|
|
_player.Int = 90;
|
|
_player.Dex = 25;
|
|
|
|
Assert.AreEqual( 100, MobileCommands.Str() );
|
|
Assert.AreEqual( 90, MobileCommands.Int() );
|
|
Assert.AreEqual( 25, MobileCommands.Dex() );
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WillEnableDisableSpecialMove()
|
|
{
|
|
SpecialMovesManager manager = SpecialMovesManager.GetInstance();
|
|
|
|
byte[] enablePacket = { 0xBF, 0x00, 0x08, 0x00, 0x25, 0x01, 0xF6, 0x01 };
|
|
byte[] disablePacket = { 0xBF, 0x00, 0x08, 0x00, 0x25, 0x01, 0xF6, 0x00 };
|
|
|
|
IncomingPacketHandlers.Initialize();
|
|
|
|
PacketHandler handler = IncomingPacketHandlers.GetHandler( 0xBF );
|
|
|
|
handler?.OnReceive( new PacketReader( enablePacket, enablePacket.Length, false ) );
|
|
|
|
bool result = EntityCommands.SpecialMoveExists( "Death Strike" );
|
|
|
|
Assert.IsTrue( result );
|
|
|
|
handler?.OnReceive( new PacketReader( disablePacket, disablePacket.Length, false ) );
|
|
|
|
result = EntityCommands.SpecialMoveExists( "Death Strike" );
|
|
|
|
Assert.IsFalse( result );
|
|
}
|
|
}
|
|
} |