public static string ComputeName( Item i )
{
if( i is BaseWeapon )
return ComputeName( ( i as BaseWeapon ) );
if( i is BaseArmor )
return ComputeName( ( i as BaseArmor ) );
if( i is BaseClothing )
return ComputeName( ( i as BaseClothing ) );
if (i is BaseInstrument)
return ComputeName((i as BaseInstrument));
if (i is SpellScroll)
return ComputeName((i as SpellScroll));
if (i is RepairDeed)
return ComputeName((i as RepairDeed));
return GenericComputeName( i );
}
public static string ComputeName( BaseArmor ba )
{
if( ba.IsRenamed && !string.IsNullOrEmpty( ba.Name ) )
return ba.Name;
string name;
if( ba.Name == null )
name = CliLoc.LocToString( ba.LabelNumber );
else
name = ba.Name;
if (ba.Amount > 1)
name = name + "s";
var resource = string.Empty;
if( ba.Resource != CraftResource.None && ba.Resource != CraftResource.Iron )
resource = CraftResources.GetName( ba.Resource );
if ((ba.ProtectionLevel != ArmorProtectionLevel.Regular))// && ba.Resource == CraftResource.Iron )
//If the armor is magical
{
if (ba.Quality == ArmorQuality.Exceptional)
name = string.Format("{0} {1} de {2}", "Excepcional", name.ToLower(), CliLoc.LocToString((1038005 + (int)ba.ProtectionLevel)).ToLower());
else
name = string.Format("{0} de {1}", name, CliLoc.LocToString((1038005 + (int) ba.ProtectionLevel)).ToLower());
}
else if (ba.Resource == CraftResource.None && ba.ProtectionLevel == ArmorProtectionLevel.Regular)
//If the armor is not magical and not crafted
{
if (ba.Quality == ArmorQuality.Exceptional)
name = string.Format("{0} {1}", "Excepcional", name );
}
else if (ba.Resource != CraftResource.None)
{
//If it's crafted by a player
if (ba.Crafter != null)
{
if (ba.Quality == ArmorQuality.Exceptional)
{
if (ba.Resource != CraftResource.Iron)
name = string.Format("{0} {1} {2} Crafteado por {3}", "Excepcional", resource.ToLower(), name.ToLower(), ba.Crafter.Name);
else
name = string.Format("{0} {1} Crafteado por {2}", "Excepcional", name.ToLower(), ba.Crafter.Name);
}
else if (ba.Resource != CraftResource.Iron)
name = string.Format("{0} {1}", resource, name.ToLower());
else
name = string.Format("{0}", name);
}
else
if (ba.Quality == ArmorQuality.Exceptional)
if (!string.IsNullOrEmpty(resource))
name = string.Format("{0} {1} {2}", "Excepcional", resource.ToLower(), name.ToLower());
else
name = string.Format("{0} {1}", "Excepcional", name.ToLower());
else
if (!string.IsNullOrEmpty(resource))
name = string.Format("{0} {1}", resource, name.ToLower());
else
name = string.Format(name);
}
if (ba.Amount > 1)
name = ba.Amount + " " + name;
return name;
}
public static string ComputeCustomWeaponName( BaseWeapon bw )
{
string name = bw.Name;
if (bw.Crafter == null)
{
if (bw.Quality == WeaponQuality.Exceptional)
name = "Excepcional " + bw.Name.ToLower();
}
else
{
if (bw.Quality == WeaponQuality.Exceptional)
name = string.Format("Excepcional {0} Crafteado por {1} ", bw.Name.ToLower(), bw.Crafter.Name);
else
name = string.Format("{0} Crafteado por {1}", bw.Name, bw.Crafter.Name);
}
return name;
}
public static string ComputeName( BaseWeapon bw )
{
if( bw.IsRenamed && !string.IsNullOrEmpty( bw.Name ) )
return bw.Name;
string name;
if( bw.Name == null )
name = CliLoc.LocToString( bw.LabelNumber );
else
name = bw.Name;
if (bw.Amount > 1)
name = name + "s";
var resource = string.Empty;
if (bw.Slayer != SlayerName.None)
{
SlayerEntry entry = SlayerGroup.GetEntryByName(bw.Slayer);
if (entry != null)
{
string slayername = CliLoc.LocToString( entry.Title );
name = slayername + " " + name.ToLower();
}
}
if( bw.Resource != CraftResource.None && bw.Resource != CraftResource.Iron )
resource = CraftResources.GetName( bw.Resource );
if ((bw.DamageLevel != WeaponDamageLevel.Regular || bw.AccuracyLevel != WeaponAccuracyLevel.Regular) && bw.Resource == CraftResource.Iron)
{
//If the weapon is accurate or magical
if (bw.DamageLevel != WeaponDamageLevel.Regular && bw.AccuracyLevel != WeaponAccuracyLevel.Regular)
name = string.Format("{0} {1} of {2}", ComputeAccuracyLevel(bw), name.ToLower(), CliLoc.LocToString((1038015 + (int) bw.DamageLevel)).ToLower());
else if (bw.AccuracyLevel != WeaponAccuracyLevel.Regular)
name = string.Format("{0} {1}", ComputeAccuracyLevel(bw), name.ToLower());
else
name = string.Format("{0} of {1}", name, CliLoc.LocToString((1038015 + (int) bw.DamageLevel)).ToLower());
if (bw.Quality == WeaponQuality.Exceptional)
name = "Excepcional" + name.ToLower();
}
else if (bw.Resource != CraftResource.None)
{
//If it's crafted by a player
if (bw.Crafter != null)
if (bw.Quality == WeaponQuality.Exceptional)
if (bw.Resource != CraftResource.Iron)
name = string.Format("{0} {1} {2} Crafteado por {3}", "Excepcional", resource.ToLower(), name.ToLower(), bw.Crafter.Name);
else
name = string.Format("{0} {1} Crafteado por {2}", "Excepcional", name.ToLower(), bw.Crafter.Name);
else if (bw.Resource != CraftResource.Iron)
if (!string.IsNullOrEmpty(resource))
name = string.Format("{0} {1} Crafteado por {2}", resource, name.ToLower(), bw.Crafter.Name);
else
name = string.Format("{0} Crafteado por {1}", name, bw.Crafter.Name);
else
name = string.Format("{0} Crafteado por {1}", name, bw.Crafter.Name);
else if (bw.Resource != CraftResource.Iron)
if (bw.Quality == WeaponQuality.Exceptional)
if (!string.IsNullOrEmpty(resource))
name = string.Format("{0} {1} {2}", "Excepcional", resource.ToLower(), name.ToLower());
else
name = string.Format("{0}, {1}", "Excepcional", name.ToLower());
else if (!string.IsNullOrEmpty(resource))
name = string.Format("{0} {1}", resource, name.ToLower());
else
name = string.Format(name);
else if (bw.Resource == CraftResource.Iron)
if (bw.Quality == WeaponQuality.Exceptional)
name = string.Format("{0} {1}", "Excepcional", name.ToLower());
}
if (bw.Amount > 1)
name = bw.Amount + " " + name;
return name;
}
public static string ComputeName( BaseClothing bc )
{
if( bc.IsRenamed && !string.IsNullOrEmpty( bc.Name ) )
return bc.Name;
string name;
if( bc.Name == null )
name = CliLoc.LocToString( bc.LabelNumber );
else
name = bc.Name;
if (bc.Amount > 1)
name = name + "s";
var resource = string.Empty;
if( bc.Resource != CraftResource.None && bc.Resource != CraftResource.Iron )
resource = CraftResources.GetName( bc.Resource );
if( bc.Crafter != null )
if( bc.Quality == ClothingQuality.Exceptional )
if( bc.Resource != CraftResource.None )
name = string.Format( "{0} {1} {2} Crafteado por {3}", "Excepcional", resource.ToLower(), name.ToLower(), bc.Crafter.Name );
else
name = string.Format( "{0} {1} Crafteado por {2}", "Excepcional", name.ToLower(), bc.Crafter.Name );
else if( bc.Resource != CraftResource.None )
if (!string.IsNullOrEmpty(resource))
name = string.Format( "{0} {1} Crafteado por {2}", resource, name.ToLower(), bc.Crafter.Name );
else
name = string.Format("{0} Crafteado por {1}", name, bc.Crafter.Name);
else
name = string.Format( "{0} Crafteado por {1}", name.ToLower(), bc.Crafter.Name );
else if( bc.Resource != CraftResource.None )
if (bc.Quality == ClothingQuality.Exceptional)
if (!string.IsNullOrEmpty(resource))
name = string.Format( "{0} {1} {2}", "Excepcional", resource.ToLower(), name.ToLower() );
else
name = string.Format(" {0} {1}", "Excepcional", name.ToLower());
else
if (!string.IsNullOrEmpty(resource))
name = string.Format("{0} {1}", resource, name.ToLower());
else
name = string.Format(name);
else if (bc.Resource == CraftResource.None)
if (bc.Quality == ClothingQuality.Exceptional)
name = string.Format("{0} {1}", "Excepcional", name.ToLower());
if (bc.Amount > 1)
name = bc.Amount + " " + name;
return name;
}
public static string ComputeName(BaseInstrument bi)
{
string name;
if (bi.Name == null)
name = CliLoc.LocToString(bi.LabelNumber);
else
name = bi.Name;
if (bi.Crafter != null)
name = string.Format("{0} Crafteado por {1}", name, bi.Crafter.Name);
return name;
}
public static string ComputeName(SpellScroll ss)
{
string name = string.IsNullOrEmpty(ss.Name) ? CliLoc.LocToString(ss.LabelNumber) : ss.Name;
return (name + " scroll");
}
public static string ComputeName(RepairDeed rd)
{
string name = string.Format("Servicio de reparacion {0} {1} Crafteado por {2}",
CliLoc.LocToString(rd.GetSkillTitle(rd.SkillLevel)).ToLower(),
rd.CrafterSkill().ToLower(),
rd.Crafter != null ? rd.Crafter.Name : "unknown");
return name;
}
public static string GenericComputeName( Item i )
{
string name;
if( i.Name == null )
name = CliLoc.LocToString( i.LabelNumber );
else
name = i.Name;
return name;
}
public static string ComputeAccuracyLevel(BaseWeapon bw)
{
string level;
switch (bw.AccuracyLevel)
{
case WeaponAccuracyLevel.Accurate:
level = "Accurate";
break;
case WeaponAccuracyLevel.Surpassingly:
level = "Surpassingly accurate";
break;
case WeaponAccuracyLevel.Eminently:
level = "Eminently accurate";
break;
case WeaponAccuracyLevel.Exceedingly:
level = "Exceedingly accurate";
break;
case WeaponAccuracyLevel.Supremely:
level = "Supremely accurate";
break;
default:
level = "";
break;
}
return level;
}
public static bool CanUse( Mobile from, Item toUse )
{
if( from == null || toUse == null )
return false;
if( from.Frozen )
from.SendAsciiMessage( "Estas paralizado y no puedes hacer eso." );
else if( !toUse.Movable )
from.SendAsciiMessage( "No puedes usar eso." );
else if( !toUse.IsChildOf( from.Backpack ) && toUse.Parent != from && !from.InRange( toUse.Location, 4 ) && !toUse.IsChildOf( from.BankBox ) && !from.BankBox.Opened )
from.SendAsciiMessage( "No puedes alcanzar eso." );
else if( !from.InLOS( toUse ) && !toUse.IsChildOf( from.BankBox ) && !from.BankBox.Opened )
from.SendAsciiMessage( "No puedes ver eso." );
else
return toUse.CanEquip( from );
return false;
}
public static bool EquipOnDouble( Mobile from, Item toEquip )
{
Item toDrop;
//Can we use it?
if( !CanUse( from, toEquip ) )
return false;
//Is the item equiped already?
if( from.FindItemOnLayer( toEquip.Layer ) == toEquip )
return true;
//Turn towards the item.
if( toEquip.Parent == null )
SpellHelper.Turn( from, toEquip );
if( toEquip.Layer == Layer.TwoHanded )
{
//Always drop the 2 handed item, if it exists.
toDrop = from.FindItemOnLayer( Layer.TwoHanded );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
//All non sheild 2handed need all the hand players.
if( !( toEquip is BaseArmor ) )
{
toDrop = from.FindItemOnLayer( Layer.FirstValid );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
toDrop = from.FindItemOnLayer( Layer.OneHanded );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
}
}
else if( toEquip.Layer == Layer.OneHanded )
{
//All non shield 2 hands use both hands.
toDrop = from.FindItemOnLayer( Layer.TwoHanded );
if( toDrop != null && !( toDrop is BaseArmor ) )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
//Drop first valid.
toDrop = from.FindItemOnLayer( Layer.FirstValid );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
//Drop onehand.
toDrop = from.FindItemOnLayer( Layer.OneHanded );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
}
else if( toEquip.Layer == Layer.FirstValid )
{
//Drop first valid.
toDrop = from.FindItemOnLayer( Layer.FirstValid );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
//Drop onehand.
toDrop = from.FindItemOnLayer( Layer.OneHanded );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
}
else
{
//Drop the item that's occupying the layer.
toDrop = from.FindItemOnLayer( toEquip.Layer );
if( toDrop != null )
{
from.SendAsciiMessage( string.Format( m_DropFormat, ComputeName( toDrop ) ) );
from.AddToBackpack( toDrop );
}
}
from.EquipItem(toEquip);
from.PlaySound(0x57);
return true;
}
}
}