RunUO/Scripts/Skills/ItemIdentification.cs

61 lines
No EOL
1.3 KiB
C#

using System;
using Server;
using Server.Targeting;
using Server.Mobiles;
namespace Server.Items
{
public class ItemIdentification
{
public static void Initialize()
{
SkillInfo.Table[(int)SkillName.ItemID].Callback = new SkillUseCallback( OnUse );
}
public static TimeSpan OnUse( Mobile from )
{
from.SendLocalizedMessage( 500343 ); // What do you wish to appraise and identify?
from.Target = new InternalTarget();
return TimeSpan.FromSeconds( 1.0 );
}
[PlayerVendorTarget]
private class InternalTarget : Target
{
public InternalTarget() : base ( 8, false, TargetFlags.None )
{
AllowNonlocal = true;
}
protected override void OnTarget( Mobile from, object o )
{
if ( o is Item )
{
if ( from.CheckTargetSkill( SkillName.ItemID, o, 0, 100 ) )
{
if ( o is BaseWeapon )
((BaseWeapon)o).Identified = true;
else if ( o is BaseArmor )
((BaseArmor)o).Identified = true;
if ( !Core.AOS )
((Item)o).OnSingleClick( from );
}
else
{
from.SendLocalizedMessage( 500353 ); // You are not certain...
}
}
else if ( o is Mobile )
{
((Mobile)o).OnSingleClick( from );
}
else
{
from.SendLocalizedMessage( 500353 ); // You are not certain...
}
}
}
}
}