#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
5df497787a
7510 changed files with 416048 additions and 0 deletions
302
Scripts/Misc/ResourceInfo.cs
Normal file
302
Scripts/Misc/ResourceInfo.cs
Normal file
|
|
@ -0,0 +1,302 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum CraftResource
|
||||
{
|
||||
None = 0,
|
||||
Iron = 1,
|
||||
Leathered = 2,
|
||||
Wooden = 3
|
||||
}
|
||||
|
||||
public enum CraftResourceType
|
||||
{
|
||||
None,
|
||||
Metal,
|
||||
Leather,
|
||||
Wood
|
||||
}
|
||||
|
||||
public class CraftAttributeInfo
|
||||
{
|
||||
private int m_WeaponDurability;
|
||||
private int m_WeaponLowerRequirements;
|
||||
|
||||
private int m_ArmorDurability;
|
||||
private int m_ArmorLowerRequirements;
|
||||
|
||||
public int WeaponDurability{ get{ return m_WeaponDurability; } set{ m_WeaponDurability = value; } }
|
||||
public int WeaponLowerRequirements{ get{ return m_WeaponLowerRequirements; } set{ m_WeaponLowerRequirements = value; } }
|
||||
|
||||
public int ArmorDurability{ get{ return m_ArmorDurability; } set{ m_ArmorDurability = value; } }
|
||||
public int ArmorLowerRequirements{ get{ return m_ArmorLowerRequirements; } set{ m_ArmorLowerRequirements = value; } }
|
||||
|
||||
public CraftAttributeInfo()
|
||||
{
|
||||
}
|
||||
|
||||
public static readonly CraftAttributeInfo Blank;
|
||||
|
||||
static CraftAttributeInfo()
|
||||
{
|
||||
Blank = new CraftAttributeInfo();
|
||||
}
|
||||
}
|
||||
|
||||
public class CraftResourceInfo
|
||||
{
|
||||
private int m_Hue;
|
||||
private int m_Number;
|
||||
private string m_Name;
|
||||
private CraftAttributeInfo m_AttributeInfo;
|
||||
private CraftResource m_Resource;
|
||||
private Type[] m_ResourceTypes;
|
||||
|
||||
public int Hue{ get{ return m_Hue; } }
|
||||
public int Number{ get{ return m_Number; } }
|
||||
public string Name{ get{ return m_Name; } }
|
||||
public CraftAttributeInfo AttributeInfo{ get{ return m_AttributeInfo; } }
|
||||
public CraftResource Resource{ get{ return m_Resource; } }
|
||||
public Type[] ResourceTypes{ get{ return m_ResourceTypes; } }
|
||||
|
||||
public CraftResourceInfo( int hue, int number, string name, CraftAttributeInfo attributeInfo, CraftResource resource, params Type[] resourceTypes )
|
||||
{
|
||||
m_Hue = hue;
|
||||
m_Number = number;
|
||||
m_Name = name;
|
||||
m_AttributeInfo = attributeInfo;
|
||||
m_Resource = resource;
|
||||
m_ResourceTypes = resourceTypes;
|
||||
|
||||
for ( int i = 0; i < resourceTypes.Length; ++i )
|
||||
CraftResources.RegisterType( resourceTypes[i], resource );
|
||||
}
|
||||
}
|
||||
|
||||
public class CraftResources
|
||||
{
|
||||
private static CraftResourceInfo[] m_MetalInfo = new CraftResourceInfo[]
|
||||
{
|
||||
new CraftResourceInfo( 0x000, 1053109, "Iron", CraftAttributeInfo.Blank, CraftResource.Iron, typeof( IronIngot ), typeof( IronOre ) )
|
||||
};
|
||||
|
||||
private static CraftResourceInfo[] m_LeatherInfo = new CraftResourceInfo[]
|
||||
{
|
||||
new CraftResourceInfo( 0x000, 1049353, "Leather", CraftAttributeInfo.Blank, CraftResource.Leathered, typeof( Leather ), typeof( Hides ) )
|
||||
};
|
||||
|
||||
private static CraftResourceInfo[] m_WoodInfo = new CraftResourceInfo[]
|
||||
{
|
||||
new CraftResourceInfo( 0x000, 1011542, "Wood", CraftAttributeInfo.Blank, CraftResource.Wooden, typeof( WoodBoard ), typeof( WoodBoard ) )
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if '<paramref name="resource"/>' is None, Iron, Leathered or Wooden. False if otherwise.
|
||||
/// </summary>
|
||||
public static bool IsStandard( CraftResource resource )
|
||||
{
|
||||
return ( resource == CraftResource.None || resource == CraftResource.Iron || resource == CraftResource.Leathered || resource == CraftResource.Wooden );
|
||||
}
|
||||
|
||||
private static Hashtable m_TypeTable;
|
||||
|
||||
/// <summary>
|
||||
/// Registers that '<paramref name="resourceType"/>' uses '<paramref name="resource"/>' so that it can later be queried by <see cref="CraftResources.GetFromType"/>
|
||||
/// </summary>
|
||||
public static void RegisterType( Type resourceType, CraftResource resource )
|
||||
{
|
||||
if ( m_TypeTable == null )
|
||||
m_TypeTable = new Hashtable();
|
||||
|
||||
m_TypeTable[resourceType] = resource;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="CraftResource"/> value for which '<paramref name="resourceType"/>' uses -or- CraftResource.None if an unregistered type was specified.
|
||||
/// </summary>
|
||||
public static CraftResource GetFromType( Type resourceType )
|
||||
{
|
||||
if ( m_TypeTable == null )
|
||||
return CraftResource.None;
|
||||
|
||||
object obj = m_TypeTable[resourceType];
|
||||
|
||||
if ( !(obj is CraftResource) )
|
||||
return CraftResource.None;
|
||||
|
||||
return (CraftResource)obj;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a <see cref="CraftResourceInfo"/> instance describing '<paramref name="resource"/>' -or- null if an invalid resource was specified.
|
||||
/// </summary>
|
||||
public static CraftResourceInfo GetInfo( CraftResource resource )
|
||||
{
|
||||
CraftResourceInfo[] list = null;
|
||||
|
||||
switch ( GetType( resource ) )
|
||||
{
|
||||
case CraftResourceType.Metal: list = m_MetalInfo; break;
|
||||
case CraftResourceType.Leather: list = m_LeatherInfo; break;
|
||||
case CraftResourceType.Wood: list = m_WoodInfo; break;
|
||||
}
|
||||
|
||||
if ( list != null )
|
||||
{
|
||||
int index = GetIndex( resource );
|
||||
|
||||
if ( index >= 0 && index < list.Length )
|
||||
return list[index];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a <see cref="CraftResourceType"/> value indiciating the type of '<paramref name="resource"/>'.
|
||||
/// </summary>
|
||||
public static CraftResourceType GetType( CraftResource resource )
|
||||
{
|
||||
if ( resource == CraftResource.Iron )
|
||||
return CraftResourceType.Metal;
|
||||
|
||||
if ( resource == CraftResource.Leathered )
|
||||
return CraftResourceType.Leather;
|
||||
|
||||
if ( resource == CraftResource.Wooden )
|
||||
return CraftResourceType.Wood;
|
||||
|
||||
return CraftResourceType.None;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the first <see cref="CraftResource"/> in the series of resources for which '<paramref name="resource"/>' belongs.
|
||||
/// </summary>
|
||||
public static CraftResource GetStart( CraftResource resource )
|
||||
{
|
||||
switch ( GetType( resource ) )
|
||||
{
|
||||
case CraftResourceType.Metal: return CraftResource.Iron;
|
||||
case CraftResourceType.Leather: return CraftResource.Leathered;
|
||||
case CraftResourceType.Wood: return CraftResource.Wooden;
|
||||
}
|
||||
|
||||
return CraftResource.None;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the index of '<paramref name="resource"/>' in the seriest of resources for which it belongs.
|
||||
/// </summary>
|
||||
public static int GetIndex( CraftResource resource )
|
||||
{
|
||||
CraftResource start = GetStart( resource );
|
||||
|
||||
if ( start == CraftResource.None )
|
||||
return 0;
|
||||
|
||||
return (int)(resource - start);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="CraftResourceInfo.Number"/> property of '<paramref name="resource"/>' -or- 0 if an invalid resource was specified.
|
||||
/// </summary>
|
||||
public static int GetLocalizationNumber( CraftResource resource )
|
||||
{
|
||||
CraftResourceInfo info = GetInfo( resource );
|
||||
|
||||
return ( info == null ? 0 : info.Number );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="CraftResourceInfo.Hue"/> property of '<paramref name="resource"/>' -or- 0 if an invalid resource was specified.
|
||||
/// </summary>
|
||||
public static int GetHue( CraftResource resource )
|
||||
{
|
||||
CraftResourceInfo info = GetInfo( resource );
|
||||
|
||||
return ( info == null ? 0 : info.Hue );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="CraftResourceInfo.Name"/> property of '<paramref name="resource"/>' -or- an empty string if the resource specified was invalid.
|
||||
/// </summary>
|
||||
public static string GetName( CraftResource resource )
|
||||
{
|
||||
CraftResourceInfo info = GetInfo( resource );
|
||||
|
||||
return ( info == null ? String.Empty : info.Name );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="CraftResource"/> value which represents '<paramref name="info"/>' -or- CraftResource.None if unable to convert.
|
||||
/// </summary>
|
||||
public static CraftResource GetFromOreInfo( OreInfo info )
|
||||
{
|
||||
if ( info.Name.IndexOf( "Wood" ) >= 0 )
|
||||
return CraftResource.Wooden;
|
||||
else if ( info.Name.IndexOf( "Leather" ) >= 0 )
|
||||
return CraftResource.Leathered;
|
||||
else if ( info.Name.IndexOf( "Iron" ) >= 0 )
|
||||
return CraftResource.Iron;
|
||||
|
||||
return CraftResource.None;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="CraftResource"/> value which represents '<paramref name="info"/>', using '<paramref name="material"/>' to help resolve leather OreInfo instances.
|
||||
/// </summary>
|
||||
public static CraftResource GetFromOreInfo( OreInfo info, ArmorMaterialType material )
|
||||
{
|
||||
if ( material == ArmorMaterialType.Studded || material == ArmorMaterialType.Leather )
|
||||
{
|
||||
return CraftResource.Leathered;
|
||||
}
|
||||
|
||||
return GetFromOreInfo( info );
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: This class is only for compatability with very old RunUO versions.
|
||||
// No changes to it should be required for custom resources.
|
||||
public class OreInfo
|
||||
{
|
||||
public static readonly OreInfo Iron = new OreInfo( 0, 0x000, "Iron" );
|
||||
|
||||
private int m_Level;
|
||||
private int m_Hue;
|
||||
private string m_Name;
|
||||
|
||||
public OreInfo( int level, int hue, string name )
|
||||
{
|
||||
m_Level = level;
|
||||
m_Hue = hue;
|
||||
m_Name = name;
|
||||
}
|
||||
|
||||
public int Level
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Level;
|
||||
}
|
||||
}
|
||||
|
||||
public int Hue
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Hue;
|
||||
}
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue