Mr. Friday
Wanderer
~1_nothing~
I recently attempted to add several new ores/ingots to my server both as an exercise in improving my scripting skill and to add something new for players to do.
I examined Daat's system some for a model, but I did 100% of the actual scripting from scratch. Everything seems to be compiling fine, and I can mine, smelt, etc. the new ores in game, but there is one small problem. The ores and ingots (the new ones) all have the same name:
~1_NOTHING~
I have an idea that it has something to do with this part in the scripts:
from OreInfo.cs.
But the weird thing is that I double checked against Daat's system and he seems to have all 0's for the "number" column too. Any crafting system experts know what might be causing this problem?
EDIT:
On second thought, could it have something to do with this section?
And just since I know some one will want to examine the full code, here is my OreInfo.cs:
I recently attempted to add several new ores/ingots to my server both as an exercise in improving my scripting skill and to add something new for players to do.
I examined Daat's system some for a model, but I did 100% of the actual scripting from scratch. Everything seems to be compiling fine, and I can mine, smelt, etc. the new ores in game, but there is one small problem. The ores and ingots (the new ones) all have the same name:
~1_NOTHING~
I have an idea that it has something to do with this part in the scripts:
Code:
new CraftResourceInfo( 639, 0, "Spike", CraftAttributeInfo.Spike, CraftResource.Spike, typeof( SpikeIngot ), typeof( SpikeOre ) ),
new CraftResourceInfo( 1266, 0, "Ice Rock", CraftAttributeInfo.IceRock, CraftResource.IceRock, typeof( IceRockIngot ), typeof( IceRockOre ) ),
new CraftResourceInfo( 1149, 0, "Gypsum", CraftAttributeInfo.Gypsum, CraftResource.Gypsum, typeof( GypsumIngot ), typeof( GypsumOre ) ),
new CraftResourceInfo( 961, 0, "Platinum", CraftAttributeInfo.Platinum, CraftResource.Platinum, typeof( PlatinumIngot ), typeof( PlatinumOre ) ),
new CraftResourceInfo( 1154, 0, "Silver Rock", CraftAttributeInfo.SilverRock, CraftResource.SilverRock, typeof( SilverRockIngot ), typeof( SilverRockOre ) ),
from OreInfo.cs.
But the weird thing is that I double checked against Daat's system and he seems to have all 0's for the "number" column too. Any crafting system experts know what might be causing this problem?
EDIT:
On second thought, could it have something to do with this section?
Code:
else if ( info.Level == 9 )
return CraftResource.Spike;
else if ( info.Level == 10 )
return CraftResource.IceRock;
else if ( info.Level == 11 )
return CraftResource.Gypsum;
else if ( info.Level == 12 )
return CraftResource.Platinum;
else if ( info.Level == 13 )
return CraftResource.SilverRock;
And just since I know some one will want to examine the full code, here is my OreInfo.cs:
Code:
using System;
using System.Collections;
namespace Server.Items
{
public enum CraftResource
{
None = 0,
Iron = 1,
DullCopper,
ShadowIron,
Copper,
Bronze,
Gold,
Agapite,
Verite,
Valorite,
Spike,
IceRock,
Gypsum,
Platinum,
SilverRock,
DarkPagan,
Mystic,
Spectral,
OldBritain,
Onyx,
RedElven,
Undead,
Pyrite,
Virginity,
Malachite,
LavaRock,
Azurite,
Dripstone,
Executor,
Peachblue,
Destruction,
Anra,
Crystal,
Doom,
Goddess,
NewCarpathia,
RegularLeather = 101,
SpinedLeather,
HornedLeather,
BarbedLeather,
RedScales = 201,
YellowScales,
BlackScales,
GreenScales,
WhiteScales,
BlueScales
}
public enum CraftResourceType
{
None,
Metal,
Leather,
Scales
}
public class CraftAttributeInfo
{
private int m_WeaponFireDamage;
private int m_WeaponColdDamage;
private int m_WeaponPoisonDamage;
private int m_WeaponEnergyDamage;
private int m_WeaponDurability;
private int m_WeaponLuck;
private int m_WeaponGoldIncrease;
private int m_WeaponLowerRequirements;
private SlayerName m_WeaponSlayer;
private int m_ArmorPhysicalResist;
private int m_ArmorFireResist;
private int m_ArmorColdResist;
private int m_ArmorPoisonResist;
private int m_ArmorEnergyResist;
private int m_ArmorDurability;
private int m_ArmorLuck;
private int m_ArmorGoldIncrease;
private int m_ArmorLowerRequirements;
private int m_RunicMinAttributes;
private int m_RunicMaxAttributes;
private int m_RunicMinIntensity;
private int m_RunicMaxIntensity;
public int WeaponFireDamage{ get{ return m_WeaponFireDamage; } set{ m_WeaponFireDamage = value; } }
public int WeaponColdDamage{ get{ return m_WeaponColdDamage; } set{ m_WeaponColdDamage = value; } }
public int WeaponPoisonDamage{ get{ return m_WeaponPoisonDamage; } set{ m_WeaponPoisonDamage = value; } }
public int WeaponEnergyDamage{ get{ return m_WeaponEnergyDamage; } set{ m_WeaponEnergyDamage = value; } }
public int WeaponDurability{ get{ return m_WeaponDurability; } set{ m_WeaponDurability = value; } }
public int WeaponLuck{ get{ return m_WeaponLuck; } set{ m_WeaponLuck = value; } }
public int WeaponGoldIncrease{ get{ return m_WeaponGoldIncrease; } set{ m_WeaponGoldIncrease = value; } }
public int WeaponLowerRequirements{ get{ return m_WeaponLowerRequirements; } set{ m_WeaponLowerRequirements = value; } }
public SlayerName WeaponSlayer{ get{ return m_WeaponSlayer; } set{ m_WeaponSlayer = value; } }
public int ArmorPhysicalResist{ get{ return m_ArmorPhysicalResist; } set{ m_ArmorPhysicalResist = value; } }
public int ArmorFireResist{ get{ return m_ArmorFireResist; } set{ m_ArmorFireResist = value; } }
public int ArmorColdResist{ get{ return m_ArmorColdResist; } set{ m_ArmorColdResist = value; } }
public int ArmorPoisonResist{ get{ return m_ArmorPoisonResist; } set{ m_ArmorPoisonResist = value; } }
public int ArmorEnergyResist{ get{ return m_ArmorEnergyResist; } set{ m_ArmorEnergyResist = value; } }
public int ArmorDurability{ get{ return m_ArmorDurability; } set{ m_ArmorDurability = value; } }
public int ArmorLuck{ get{ return m_ArmorLuck; } set{ m_ArmorLuck = value; } }
public int ArmorGoldIncrease{ get{ return m_ArmorGoldIncrease; } set{ m_ArmorGoldIncrease = value; } }
public int ArmorLowerRequirements{ get{ return m_ArmorLowerRequirements; } set{ m_ArmorLowerRequirements = value; } }
public int RunicMinAttributes{ get{ return m_RunicMinAttributes; } set{ m_RunicMinAttributes = value; } }
public int RunicMaxAttributes{ get{ return m_RunicMaxAttributes; } set{ m_RunicMaxAttributes = value; } }
public int RunicMinIntensity{ get{ return m_RunicMinIntensity; } set{ m_RunicMinIntensity = value; } }
public int RunicMaxIntensity{ get{ return m_RunicMaxIntensity; } set{ m_RunicMaxIntensity = value; } }
public CraftAttributeInfo()
{
}
public static readonly CraftAttributeInfo Blank;
public static readonly CraftAttributeInfo DullCopper, ShadowIron, Copper, Bronze, Golden, Agapite, Verite, Valorite, Spike, IceRock, Gypsum, Platinum, SilverRock, DarkPagan, Mystic, Spectral, OldBritain, Onyx, RedElven, Undead, Pyrite, Virginity, Malachite, LavaRock, Azurite, Dripstone, Executor, Peachblue, Destruction, Anra, Crystal, Doom, Goddess, NewCarpathia;
public static readonly CraftAttributeInfo Spined, Horned, Barbed;
public static readonly CraftAttributeInfo RedScales, YellowScales, BlackScales, GreenScales, WhiteScales, BlueScales;
static CraftAttributeInfo()
{
Blank = new CraftAttributeInfo();
CraftAttributeInfo dullCopper = DullCopper = new CraftAttributeInfo();
dullCopper.ArmorPhysicalResist = 6;
dullCopper.ArmorDurability = 50;
dullCopper.ArmorLowerRequirements = 20;
dullCopper.WeaponDurability = 100;
dullCopper.WeaponLowerRequirements = 50;
dullCopper.RunicMinAttributes = 1;
dullCopper.RunicMaxAttributes = 2;
dullCopper.RunicMinIntensity = 10;
dullCopper.RunicMaxIntensity = 35;
CraftAttributeInfo shadowIron = ShadowIron = new CraftAttributeInfo();
shadowIron.ArmorPhysicalResist = 2;
shadowIron.ArmorFireResist = 1;
shadowIron.ArmorEnergyResist = 5;
shadowIron.ArmorDurability = 100;
shadowIron.WeaponColdDamage = 20;
shadowIron.WeaponDurability = 50;
shadowIron.RunicMinAttributes = 2;
shadowIron.RunicMaxAttributes = 2;
shadowIron.RunicMinIntensity = 20;
shadowIron.RunicMaxIntensity = 45;
CraftAttributeInfo copper = Copper = new CraftAttributeInfo();
copper.ArmorPhysicalResist = 1;
copper.ArmorFireResist = 1;
copper.ArmorPoisonResist = 5;
copper.ArmorEnergyResist = 2;
copper.WeaponPoisonDamage = 10;
copper.WeaponEnergyDamage = 20;
copper.RunicMinAttributes = 2;
copper.RunicMaxAttributes = 3;
copper.RunicMinIntensity = 25;
copper.RunicMaxIntensity = 50;
CraftAttributeInfo bronze = Bronze = new CraftAttributeInfo();
bronze.ArmorPhysicalResist = 3;
bronze.ArmorColdResist = 5;
bronze.ArmorPoisonResist = 1;
bronze.ArmorEnergyResist = 1;
bronze.WeaponFireDamage = 40;
bronze.RunicMinAttributes = 3;
bronze.RunicMaxAttributes = 3;
bronze.RunicMinIntensity = 30;
bronze.RunicMaxIntensity = 65;
CraftAttributeInfo golden = Golden = new CraftAttributeInfo();
golden.ArmorPhysicalResist = 1;
golden.ArmorFireResist = 1;
golden.ArmorColdResist = 2;
golden.ArmorEnergyResist = 2;
golden.ArmorLuck = 40;
golden.ArmorLowerRequirements = 30;
golden.WeaponLuck = 40;
golden.WeaponLowerRequirements = 50;
golden.RunicMinAttributes = 3;
golden.RunicMaxAttributes = 4;
golden.RunicMinIntensity = 35;
golden.RunicMaxIntensity = 75;
CraftAttributeInfo agapite = Agapite = new CraftAttributeInfo();
agapite.ArmorPhysicalResist = 2;
agapite.ArmorFireResist = 3;
agapite.ArmorColdResist = 2;
agapite.ArmorPoisonResist = 2;
agapite.ArmorEnergyResist = 2;
agapite.WeaponColdDamage = 30;
agapite.WeaponEnergyDamage = 20;
agapite.RunicMinAttributes = 4;
agapite.RunicMaxAttributes = 4;
agapite.RunicMinIntensity = 40;
agapite.RunicMaxIntensity = 80;
CraftAttributeInfo verite = Verite = new CraftAttributeInfo();
verite.ArmorPhysicalResist = 3;
verite.ArmorFireResist = 3;
verite.ArmorColdResist = 2;
verite.ArmorPoisonResist = 3;
verite.ArmorEnergyResist = 1;
verite.WeaponPoisonDamage = 40;
verite.WeaponEnergyDamage = 20;
verite.RunicMinAttributes = 4;
verite.RunicMaxAttributes = 5;
verite.RunicMinIntensity = 45;
verite.RunicMaxIntensity = 90;
CraftAttributeInfo valorite = Valorite = new CraftAttributeInfo();
valorite.ArmorPhysicalResist = 4;
valorite.ArmorColdResist = 3;
valorite.ArmorPoisonResist = 3;
valorite.ArmorEnergyResist = 3;
valorite.ArmorDurability = 50;
valorite.WeaponFireDamage = 10;
valorite.WeaponColdDamage = 20;
valorite.WeaponPoisonDamage = 10;
valorite.WeaponEnergyDamage = 20;
valorite.RunicMinAttributes = 5;
valorite.RunicMaxAttributes = 5;
valorite.RunicMinIntensity = 50;
valorite.RunicMaxIntensity = 100;
CraftAttributeInfo spike = Spike = new CraftAttributeInfo();
spike.ArmorPhysicalResist = 8;
spike.ArmorFireResist = 1;
spike.ArmorColdResist = 1;
spike.ArmorPoisonResist = 1;
spike.ArmorEnergyResist = 2;
spike.ArmorDurability = 150;
spike.ArmorLuck = 0;
spike.ArmorLowerRequirements = 0;
spike.WeaponFireDamage = 0;
spike.WeaponColdDamage = 0;
spike.WeaponPoisonDamage = 0;
spike.WeaponEnergyDamage = 0;
spike.WeaponDurability = 150;
spike.WeaponLuck = 0;
spike.WeaponLowerRequirements = 0;
//spike.RunicMinAttributes = 5;
//spike.RunicMaxAttributes = 5;
//spike.RunicMinIntensity = 50;
//spike.RunicMaxIntensity = 100;
CraftAttributeInfo iceRock = IceRock = new CraftAttributeInfo();
iceRock.ArmorPhysicalResist = 2;
iceRock.ArmorFireResist = -10;
iceRock.ArmorColdResist = 10;
iceRock.ArmorPoisonResist = 1;
iceRock.ArmorEnergyResist = 1;
iceRock.ArmorDurability = 50;
iceRock.ArmorLuck = 0;
iceRock.ArmorLowerRequirements = 0;
iceRock.WeaponFireDamage = 0;
iceRock.WeaponColdDamage = 100;
iceRock.WeaponPoisonDamage = 0;
iceRock.WeaponEnergyDamage = 0;
iceRock.WeaponDurability = 50;
iceRock.WeaponLuck = 0;
iceRock.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo gypsum = Gypsum = new CraftAttributeInfo();
gypsum.ArmorPhysicalResist = 4;
gypsum.ArmorFireResist = 4;
gypsum.ArmorColdResist = 4;
gypsum.ArmorPoisonResist = 1;
gypsum.ArmorEnergyResist = 4;
gypsum.ArmorDurability = 50;
gypsum.ArmorLuck = 20;
gypsum.ArmorLowerRequirements = 0;
gypsum.WeaponFireDamage = 20;
gypsum.WeaponColdDamage = 20;
gypsum.WeaponPoisonDamage = 0;
gypsum.WeaponEnergyDamage = 20;
gypsum.WeaponDurability = 50;
gypsum.WeaponLuck = 20;
gypsum.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo platinum = Platinum = new CraftAttributeInfo();
platinum.ArmorPhysicalResist = 0;
platinum.ArmorFireResist = 1;
platinum.ArmorColdResist = 3;
platinum.ArmorPoisonResist = 4;
platinum.ArmorEnergyResist = -10;
platinum.ArmorDurability = 30;
platinum.ArmorLuck = 100;
platinum.ArmorLowerRequirements = 00;
platinum.WeaponFireDamage = 0;
platinum.WeaponColdDamage = 0;
platinum.WeaponPoisonDamage = 0;
platinum.WeaponEnergyDamage = 0;
platinum.WeaponDurability = 30;
platinum.WeaponLuck = 100;
platinum.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo silverRock = SilverRock = new CraftAttributeInfo();
silverRock.ArmorPhysicalResist = 3;
silverRock.ArmorFireResist = 1;
silverRock.ArmorColdResist = 2;
silverRock.ArmorPoisonResist = 10;
silverRock.ArmorEnergyResist = 0;
silverRock.ArmorDurability = 50;
silverRock.ArmorLuck = 0;
silverRock.ArmorLowerRequirements = 0;
silverRock.WeaponFireDamage = 0;
silverRock.WeaponColdDamage = 0;
silverRock.WeaponPoisonDamage = 0;
silverRock.WeaponEnergyDamage = 0;
silverRock.WeaponDurability = 50;
silverRock.WeaponLuck = 0;
silverRock.WeaponLowerRequirements = 0;
silverRock.WeaponSlayer = SlayerName.Silver;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo darkPagan = DarkPagan = new CraftAttributeInfo();
darkPagan.ArmorPhysicalResist = 4;
darkPagan.ArmorFireResist = 4;
darkPagan.ArmorColdResist = 4;
darkPagan.ArmorPoisonResist = 3;
darkPagan.ArmorEnergyResist = 4;
darkPagan.ArmorDurability = 100;
darkPagan.ArmorLuck = 0;
darkPagan.ArmorLowerRequirements = 0;
darkPagan.WeaponFireDamage = 10;
darkPagan.WeaponColdDamage = 10;
darkPagan.WeaponPoisonDamage = 10;
darkPagan.WeaponEnergyDamage = 10;
darkPagan.WeaponDurability = 100;
darkPagan.WeaponLuck = 0;
darkPagan.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo mystic = Mystic = new CraftAttributeInfo();
mystic.ArmorPhysicalResist = 1;
mystic.ArmorFireResist = 5;
mystic.ArmorColdResist = 5;
mystic.ArmorPoisonResist = 5;
mystic.ArmorEnergyResist = 5;
mystic.ArmorDurability = 100;
mystic.ArmorLuck = 0;
mystic.ArmorLowerRequirements = 0;
mystic.WeaponFireDamage = 25;
mystic.WeaponColdDamage = 25;
mystic.WeaponPoisonDamage = 25;
mystic.WeaponEnergyDamage = 25;
mystic.WeaponDurability = 100;
mystic.WeaponLuck = 0;
mystic.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo spectral = Spectral = new CraftAttributeInfo();
spectral.ArmorPhysicalResist = 3;
spectral.ArmorFireResist = 3;
spectral.ArmorColdResist = 3;
spectral.ArmorPoisonResist = 3;
spectral.ArmorEnergyResist = 3;
spectral.ArmorDurability = 40;
spectral.ArmorLuck = 0;
spectral.ArmorLowerRequirements = 0;
spectral.WeaponFireDamage = 0;
spectral.WeaponColdDamage = 0;
spectral.WeaponPoisonDamage = 0;
spectral.WeaponEnergyDamage = 0;
spectral.WeaponDurability = 40;
spectral.WeaponLuck = 0;
spectral.WeaponLowerRequirements = 0;
////////////SSI 10%
////////////REDUCE DEX PEN BY 3
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo oldBritain = OldBritain = new CraftAttributeInfo();
oldBritain.ArmorPhysicalResist = 5;
oldBritain.ArmorFireResist = 5;
oldBritain.ArmorColdResist = 5;
oldBritain.ArmorPoisonResist = 5;
oldBritain.ArmorEnergyResist = 5;
oldBritain.ArmorDurability = 100;
oldBritain.ArmorLuck = 0;
oldBritain.ArmorLowerRequirements = 0;
oldBritain.WeaponFireDamage = 0;
oldBritain.WeaponColdDamage = 0;
oldBritain.WeaponPoisonDamage = 0;
oldBritain.WeaponEnergyDamage = 0;
oldBritain.WeaponDurability = 100;
oldBritain.WeaponLuck = 0;
oldBritain.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo onyx = Onyx = new CraftAttributeInfo();
onyx.ArmorPhysicalResist = 5;
onyx.ArmorFireResist = 4;
onyx.ArmorColdResist = 4;
onyx.ArmorPoisonResist = 4;
onyx.ArmorEnergyResist = 4;
onyx.ArmorDurability = 100;
onyx.ArmorLuck = 0;
onyx.ArmorLowerRequirements = 0;
onyx.WeaponFireDamage = 0;
onyx.WeaponColdDamage = 0;
onyx.WeaponPoisonDamage = 0;
onyx.WeaponEnergyDamage = 0;
onyx.WeaponDurability = 100;
onyx.WeaponLuck = 0;
onyx.WeaponLowerRequirements = 0;
////////////SSI 5%
////////////REDUCE DEX PEN BY 1
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo redElven = RedElven = new CraftAttributeInfo();
redElven.ArmorPhysicalResist = 3;
redElven.ArmorFireResist = 6;
redElven.ArmorColdResist = 6;
redElven.ArmorPoisonResist = 6;
redElven.ArmorEnergyResist = 6;
redElven.ArmorDurability = 150;
redElven.ArmorLuck = 0;
redElven.ArmorLowerRequirements = 0;
redElven.WeaponFireDamage = 10;
redElven.WeaponColdDamage = 10;
redElven.WeaponPoisonDamage = 10;
redElven.WeaponEnergyDamage = 10;
redElven.WeaponDurability = 150;
redElven.WeaponLuck = 0;
redElven.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo undead = Undead = new CraftAttributeInfo();
undead.ArmorPhysicalResist = 3;
undead.ArmorFireResist = -5;
undead.ArmorColdResist = 8;
undead.ArmorPoisonResist = 10;
undead.ArmorEnergyResist = 2;
undead.ArmorDurability = 100;
undead.ArmorLuck = 0;
undead.ArmorLowerRequirements = 0;
undead.WeaponFireDamage = 0;
undead.WeaponColdDamage = 50;
undead.WeaponPoisonDamage = 50;
undead.WeaponEnergyDamage = 0;
undead.WeaponDurability = 100;
undead.WeaponLuck = 0;
undead.WeaponLowerRequirements = 0;
////////////50% Necro protection
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo pyrite = Pyrite = new CraftAttributeInfo();
pyrite.ArmorPhysicalResist = 6;
pyrite.ArmorFireResist = 5;
pyrite.ArmorColdResist = 3;
pyrite.ArmorPoisonResist = 3;
pyrite.ArmorEnergyResist = 5;
pyrite.ArmorDurability = 100;
pyrite.ArmorLuck = -25;
pyrite.ArmorLowerRequirements = 0;
pyrite.WeaponFireDamage = 0;
pyrite.WeaponColdDamage = 0;
pyrite.WeaponPoisonDamage = 0;
pyrite.WeaponEnergyDamage = 0;
pyrite.WeaponDurability = 100;
pyrite.WeaponLuck = -25;
pyrite.WeaponLowerRequirements = 0;
////////////SSI 5%
////////////REDUCE DEX PEN BY 1
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo virginity = Virginity = new CraftAttributeInfo();
virginity.ArmorPhysicalResist = 5;
virginity.ArmorFireResist = 4;
virginity.ArmorColdResist = 4;
virginity.ArmorPoisonResist = 4;
virginity.ArmorEnergyResist = 4;
virginity.ArmorDurability = 100;
virginity.ArmorLuck = 0;
virginity.ArmorLowerRequirements = 00;
virginity.WeaponFireDamage = 0;
virginity.WeaponColdDamage = 0;
virginity.WeaponPoisonDamage = 0;
virginity.WeaponEnergyDamage = 0;
virginity.WeaponDurability = 100;
virginity.WeaponLuck = 0;
virginity.WeaponLowerRequirements = 0;
////////////50% Necro protection
////////////SSI 5%
////////////REDUCE DEX PEN BY 1
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo malachite = Malachite = new CraftAttributeInfo();
malachite.ArmorPhysicalResist = 6;
malachite.ArmorFireResist = 6;
malachite.ArmorColdResist = 6;
malachite.ArmorPoisonResist = 6;
malachite.ArmorEnergyResist = 6;
malachite.ArmorDurability = 100;
malachite.ArmorLuck = 0;
malachite.ArmorLowerRequirements = 0;
malachite.WeaponFireDamage = 10;
malachite.WeaponColdDamage = 10;
malachite.WeaponPoisonDamage = 10;
malachite.WeaponEnergyDamage = 10;
malachite.WeaponDurability = 100;
malachite.WeaponLuck = 0;
malachite.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo lavaRock = LavaRock = new CraftAttributeInfo();
lavaRock.ArmorPhysicalResist = 5;
lavaRock.ArmorFireResist = 10;
lavaRock.ArmorColdResist = -10;
lavaRock.ArmorPoisonResist = 0;
lavaRock.ArmorEnergyResist = 0;
lavaRock.ArmorDurability = 00;
lavaRock.ArmorLuck = 00;
lavaRock.ArmorLowerRequirements = 00;
lavaRock.WeaponFireDamage = 00;
lavaRock.WeaponColdDamage = 00;
lavaRock.WeaponPoisonDamage = 00;
lavaRock.WeaponEnergyDamage = 00;
lavaRock.WeaponDurability = 00;
lavaRock.WeaponLuck = 00;
lavaRock.WeaponLowerRequirements = 00;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo azurite = Azurite = new CraftAttributeInfo();
azurite.ArmorPhysicalResist = 6;
azurite.ArmorFireResist = 6;
azurite.ArmorColdResist = 6;
azurite.ArmorPoisonResist = 6;
azurite.ArmorEnergyResist = 6;
azurite.ArmorDurability = 100;
azurite.ArmorLuck = 0;
azurite.ArmorLowerRequirements = 0;
azurite.WeaponFireDamage = 10;
azurite.WeaponColdDamage = 10;
azurite.WeaponPoisonDamage = 10;
azurite.WeaponEnergyDamage = 10;
azurite.WeaponDurability = 100;
azurite.WeaponLuck = 0;
azurite.WeaponLowerRequirements = 0;
////////////SSI 5%
////////////REDUCE DEX PEN BY 1
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo dripstone = Dripstone = new CraftAttributeInfo();
dripstone.ArmorPhysicalResist = 4;
dripstone.ArmorFireResist = 8;
dripstone.ArmorColdResist = 8;
dripstone.ArmorPoisonResist = 8;
dripstone.ArmorEnergyResist = 8;
dripstone.ArmorDurability = 100;
dripstone.ArmorLuck = 0;
dripstone.ArmorLowerRequirements = 0;
dripstone.WeaponFireDamage = 20;
dripstone.WeaponColdDamage = 20;
dripstone.WeaponPoisonDamage = 20;
dripstone.WeaponEnergyDamage = 20;
dripstone.WeaponDurability = 100;
dripstone.WeaponLuck = 0;
dripstone.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo executor = Executor = new CraftAttributeInfo();
executor.ArmorPhysicalResist = 5;
executor.ArmorFireResist = 8;
executor.ArmorColdResist = 8;
executor.ArmorPoisonResist = 8;
executor.ArmorEnergyResist = 8;
executor.ArmorDurability = 100;
executor.ArmorLuck = 0;
executor.ArmorLowerRequirements = 0;
executor.WeaponFireDamage = 10;
executor.WeaponColdDamage = 10;
executor.WeaponPoisonDamage = 10;
executor.WeaponEnergyDamage = 10;
executor.WeaponDurability = 100;
executor.WeaponLuck = 0;
executor.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo peachblue = Peachblue = new CraftAttributeInfo();
peachblue.ArmorPhysicalResist = 7;
peachblue.ArmorFireResist = 7;
peachblue.ArmorColdResist = 7;
peachblue.ArmorPoisonResist = 7;
peachblue.ArmorEnergyResist = 7;
peachblue.ArmorDurability = 100;
peachblue.ArmorLuck = 0;
peachblue.ArmorLowerRequirements = 0;
peachblue.WeaponFireDamage = 0;
peachblue.WeaponColdDamage = 0;
peachblue.WeaponPoisonDamage = 0;
peachblue.WeaponEnergyDamage = 0;
peachblue.WeaponDurability = 100;
peachblue.WeaponLuck = 0;
peachblue.WeaponLowerRequirements = 0;
////////////SSI 10%
////////////REDUCE DEX PEN BY 2
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo destruction = Destruction = new CraftAttributeInfo();
destruction.ArmorPhysicalResist = 7;
destruction.ArmorFireResist = 7;
destruction.ArmorColdResist = 7;
destruction.ArmorPoisonResist = 7;
destruction.ArmorEnergyResist = 9;
destruction.ArmorDurability = 200;
destruction.ArmorLuck = 0;
destruction.ArmorLowerRequirements = 0;
destruction.WeaponFireDamage = 10;
destruction.WeaponColdDamage = 10;
destruction.WeaponPoisonDamage = 10;
destruction.WeaponEnergyDamage = 10;
destruction.WeaponDurability = 200;
destruction.WeaponLuck = 0;
destruction.WeaponLowerRequirements = 0;
////////////SSI 5%
////////////REDUCE DEX PEN BY 1
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo anra = Anra = new CraftAttributeInfo();
anra.ArmorPhysicalResist = 8;
anra.ArmorFireResist = 8;
anra.ArmorColdResist = 8;
anra.ArmorPoisonResist = 8;
anra.ArmorEnergyResist = 8;
anra.ArmorDurability = 100;
anra.ArmorLuck = 0;
anra.ArmorLowerRequirements = 0;
anra.WeaponFireDamage = 10;
anra.WeaponColdDamage = 10;
anra.WeaponPoisonDamage = 10;
anra.WeaponEnergyDamage = 10;
anra.WeaponDurability = 100;
anra.WeaponLuck = 0;
anra.WeaponLowerRequirements = 0;
////////////SSI 10%
////////////REDUCE DEX PEN BY 2
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo crystal = Crystal = new CraftAttributeInfo();
crystal.ArmorPhysicalResist = 6;
crystal.ArmorFireResist = 9;
crystal.ArmorColdResist = 9;
crystal.ArmorPoisonResist = 9;
crystal.ArmorEnergyResist = 9;
crystal.ArmorDurability = 100;
crystal.ArmorLuck = 0;
crystal.ArmorLowerRequirements = 0;
crystal.WeaponFireDamage = 20;
crystal.WeaponColdDamage = 20;
crystal.WeaponPoisonDamage = 20;
crystal.WeaponEnergyDamage = 20;
crystal.WeaponDurability = 100;
crystal.WeaponLuck = 0;
crystal.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo doom = Doom = new CraftAttributeInfo();
doom.ArmorPhysicalResist = 9;
doom.ArmorFireResist = 9;
doom.ArmorColdResist = 9;
doom.ArmorPoisonResist = 9;
doom.ArmorEnergyResist = 9;
doom.ArmorDurability = 100;
doom.ArmorLuck = 0;
doom.ArmorLowerRequirements = 0;
doom.WeaponFireDamage = 0;
doom.WeaponColdDamage = 0;
doom.WeaponPoisonDamage = 0;
doom.WeaponEnergyDamage = 0;
doom.WeaponDurability = 100;
doom.WeaponLuck = 0;
doom.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo goddess = Goddess = new CraftAttributeInfo();
goddess.ArmorPhysicalResist = 8;
goddess.ArmorFireResist = 10;
goddess.ArmorColdResist = 10;
goddess.ArmorPoisonResist = 10;
goddess.ArmorEnergyResist = 10;
goddess.ArmorDurability = 100;
goddess.ArmorLuck = 0;
goddess.ArmorLowerRequirements = 0;
goddess.WeaponFireDamage = 10;
goddess.WeaponColdDamage = 10;
goddess.WeaponPoisonDamage = 0;
goddess.WeaponEnergyDamage = 10;
goddess.WeaponDurability = 100;
goddess.WeaponLuck = 0;
goddess.WeaponLowerRequirements = 0;
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo newCarpathia = NewCarpathia = new CraftAttributeInfo();
newCarpathia.ArmorPhysicalResist = 10;
newCarpathia.ArmorFireResist = 10;
newCarpathia.ArmorColdResist = 10;
newCarpathia.ArmorPoisonResist = 10;
newCarpathia.ArmorEnergyResist = 10;
newCarpathia.ArmorDurability = 100;
newCarpathia.ArmorLuck = 0;
newCarpathia.ArmorLowerRequirements = 0;
newCarpathia.WeaponFireDamage = 20;
newCarpathia.WeaponColdDamage = 20;
newCarpathia.WeaponPoisonDamage = 20;
newCarpathia.WeaponEnergyDamage = 20;
newCarpathia.WeaponDurability = 100;
newCarpathia.WeaponLuck = 0;
newCarpathia.WeaponLowerRequirements = 0;
////////////SSI 10%
////////////REDUCE DEX PEN BY 2
//xxx.RunicMinAttributes = 5;
//xxx.RunicMaxAttributes = 5;
//xxx.RunicMinIntensity = 50;
//xxx.RunicMaxIntensity = 100;
CraftAttributeInfo spined = Spined = new CraftAttributeInfo();
spined.ArmorPhysicalResist = 5;
spined.ArmorLuck = 40;
spined.RunicMinAttributes = 1;
spined.RunicMaxAttributes = 3;
spined.RunicMinIntensity = 20;
spined.RunicMaxIntensity = 40;
CraftAttributeInfo horned = Horned = new CraftAttributeInfo();
horned.ArmorPhysicalResist = 2;
horned.ArmorFireResist = 3;
horned.ArmorColdResist = 2;
horned.ArmorPoisonResist = 2;
horned.ArmorEnergyResist = 2;
horned.RunicMinAttributes = 3;
horned.RunicMaxAttributes = 4;
horned.RunicMinIntensity = 30;
horned.RunicMaxIntensity = 70;
CraftAttributeInfo barbed = Barbed = new CraftAttributeInfo();
barbed.ArmorPhysicalResist = 2;
barbed.ArmorFireResist = 1;
barbed.ArmorColdResist = 2;
barbed.ArmorPoisonResist = 3;
barbed.ArmorEnergyResist = 4;
barbed.RunicMinAttributes = 4;
barbed.RunicMaxAttributes = 5;
barbed.RunicMinIntensity = 40;
barbed.RunicMaxIntensity = 100;
CraftAttributeInfo red = RedScales = new CraftAttributeInfo();
red.ArmorFireResist = 10;
red.ArmorColdResist = -3;
CraftAttributeInfo yellow = YellowScales = new CraftAttributeInfo();
yellow.ArmorPhysicalResist = -3;
yellow.ArmorLuck = 20;
CraftAttributeInfo black = BlackScales = new CraftAttributeInfo();
black.ArmorPhysicalResist = 10;
black.ArmorEnergyResist = -3;
CraftAttributeInfo green = GreenScales = new CraftAttributeInfo();
green.ArmorFireResist = -3;
green.ArmorPoisonResist = 10;
CraftAttributeInfo white = WhiteScales = new CraftAttributeInfo();
white.ArmorPhysicalResist = -3;
white.ArmorColdResist = 10;
CraftAttributeInfo blue = BlueScales = new CraftAttributeInfo();
blue.ArmorPoisonResist = -3;
blue.ArmorEnergyResist = 10;
}
}
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[]
{
// hue number name attributeInfo resource resourceTypes
new CraftResourceInfo( 0x000, 1053109, "Iron", CraftAttributeInfo.Blank, CraftResource.Iron, typeof( IronIngot ), typeof( IronOre ), typeof( Granite ) ),
new CraftResourceInfo( 0x973, 1053108, "Dull Copper", CraftAttributeInfo.DullCopper, CraftResource.DullCopper, typeof( DullCopperIngot ), typeof( DullCopperOre ), typeof( DullCopperGranite ) ),
new CraftResourceInfo( 0x966, 1053107, "Shadow Iron", CraftAttributeInfo.ShadowIron, CraftResource.ShadowIron, typeof( ShadowIronIngot ), typeof( ShadowIronOre ), typeof( ShadowIronGranite ) ),
new CraftResourceInfo( 0x96D, 1053106, "Copper", CraftAttributeInfo.Copper, CraftResource.Copper, typeof( CopperIngot ), typeof( CopperOre ), typeof( CopperGranite ) ),
new CraftResourceInfo( 0x972, 1053105, "Bronze", CraftAttributeInfo.Bronze, CraftResource.Bronze, typeof( BronzeIngot ), typeof( BronzeOre ), typeof( BronzeGranite ) ),
new CraftResourceInfo( 0x8A5, 1053104, "Gold", CraftAttributeInfo.Golden, CraftResource.Gold, typeof( GoldIngot ), typeof( GoldOre ), typeof( GoldGranite ) ),
new CraftResourceInfo( 0x979, 1053103, "Agapite", CraftAttributeInfo.Agapite, CraftResource.Agapite, typeof( AgapiteIngot ), typeof( AgapiteOre ), typeof( AgapiteGranite ) ),
new CraftResourceInfo( 0x89F, 1053102, "Verite", CraftAttributeInfo.Verite, CraftResource.Verite, typeof( VeriteIngot ), typeof( VeriteOre ), typeof( VeriteGranite ) ),
new CraftResourceInfo( 0x8AB, 1053101, "Valorite", CraftAttributeInfo.Valorite, CraftResource.Valorite, typeof( ValoriteIngot ), typeof( ValoriteOre ), typeof( ValoriteGranite ) ),
new CraftResourceInfo( 639, 0, "Spike", CraftAttributeInfo.Spike, CraftResource.Spike, typeof( SpikeIngot ), typeof( SpikeOre ) ),
new CraftResourceInfo( 1266, 0, "Ice Rock", CraftAttributeInfo.IceRock, CraftResource.IceRock, typeof( IceRockIngot ), typeof( IceRockOre ) ),
new CraftResourceInfo( 1149, 0, "Gypsum", CraftAttributeInfo.Gypsum, CraftResource.Gypsum, typeof( GypsumIngot ), typeof( GypsumOre ) ),
new CraftResourceInfo( 961, 0, "Platinum", CraftAttributeInfo.Platinum, CraftResource.Platinum, typeof( PlatinumIngot ), typeof( PlatinumOre ) ),
new CraftResourceInfo( 1154, 0, "Silver Rock", CraftAttributeInfo.SilverRock, CraftResource.SilverRock, typeof( SilverRockIngot ), typeof( SilverRockOre ) ),
new CraftResourceInfo( 545, 0, "Dark Pagan", CraftAttributeInfo.DarkPagan, CraftResource.DarkPagan, typeof( DarkPaganIngot ), typeof( DarkPaganOre ) ),
new CraftResourceInfo( 1151, 0, "Mystic", CraftAttributeInfo.Mystic, CraftResource.Mystic, typeof( MysticIngot ), typeof( MysticOre ) ),
new CraftResourceInfo( 1284, 0, "Spectral", CraftAttributeInfo.Spectral, CraftResource.Spectral, typeof( SpectralIngot ), typeof( SpectralOre ) ),
new CraftResourceInfo( 843, 0, "Old Britain", CraftAttributeInfo.OldBritain, CraftResource.OldBritain, typeof( OldBritainIngot ), typeof( OldBritainOre ) ),
new CraftResourceInfo( 1175, 0, "Onyx", CraftAttributeInfo.Onyx, CraftResource.Onyx, typeof( OnyxIngot ), typeof( OnyxOre ) ),
new CraftResourceInfo( 337, 0, "Red Elven", CraftAttributeInfo.RedElven, CraftResource.RedElven, typeof( RedElvenIngot ), typeof( RedElvenOre ) ),
new CraftResourceInfo( 666, 0, "Undead", CraftAttributeInfo.Undead, CraftResource.Undead, typeof( UndeadIngot ), typeof( UndeadOre ) ),
new CraftResourceInfo( 2213, 0, "Pyrite", CraftAttributeInfo.Pyrite, CraftResource.Pyrite, typeof( PyriteIngot ), typeof( PyriteOre ) ),
new CraftResourceInfo( 1153, 0, "Virginity", CraftAttributeInfo.Virginity, CraftResource.Virginity, typeof( VirginityIngot ), typeof( VirginityOre ) ),
new CraftResourceInfo( 667, 0, "Malachite", CraftAttributeInfo.Malachite, CraftResource.Malachite, typeof( MalachiteIngot ), typeof( MalachiteOre ) ),
new CraftResourceInfo( 1172, 0, "Lava Rock", CraftAttributeInfo.LavaRock, CraftResource.LavaRock, typeof( LavaRockIngot ), typeof( LavaRockOre ) ),
new CraftResourceInfo( 403, 0, "Azurite", CraftAttributeInfo.Azurite, CraftResource.Azurite, typeof( AzuriteIngot ), typeof( AzuriteOre ) ),
new CraftResourceInfo( 711, 0, "Dripstone", CraftAttributeInfo.Dripstone, CraftResource.Dripstone, typeof( DripStoneIngot ), typeof( DripStoneOre ) ),
new CraftResourceInfo( 988, 0, "Executor", CraftAttributeInfo.Executor, CraftResource.Executor, typeof( ExecutorIngot ), typeof( ExecutorOre ) ),
new CraftResourceInfo( 185, 0, "Peachblue", CraftAttributeInfo.Peachblue, CraftResource.Peachblue, typeof( PeachblueIngot ), typeof( PeachblueOre ) ),
new CraftResourceInfo( 1267, 0, "Destruction", CraftAttributeInfo.Destruction, CraftResource.Destruction, typeof( DestructionIngot ), typeof( DestructionOre ) ),
new CraftResourceInfo( 730, 0, "Anra", CraftAttributeInfo.Anra, CraftResource.Anra, typeof( AnraIngot ), typeof( AnraOre ) ),
new CraftResourceInfo( 91, 0, "Crystal", CraftAttributeInfo.Crystal, CraftResource.Crystal, typeof( CrystalIngot ), typeof( CrystalOre ) ),
new CraftResourceInfo( 60, 0, "Doom", CraftAttributeInfo.Doom, CraftResource.Doom, typeof( DoomIngot ), typeof( DoomOre ) ),
new CraftResourceInfo( 1167, 0, "Goddess", CraftAttributeInfo.Goddess, CraftResource.Goddess, typeof( GoddessIngot ), typeof( GoddessOre ) ),
new CraftResourceInfo( 1169, 0, "New Carpathia", CraftAttributeInfo.NewCarpathia,CraftResource.NewCarpathia, typeof( NewCarpathiaIngot ),typeof( NewCarpathiaOre ) )
};
private static CraftResourceInfo[] m_ScaleInfo = new CraftResourceInfo[]
{
new CraftResourceInfo( 0x66D, 1053129, "Red Scales", CraftAttributeInfo.RedScales, CraftResource.RedScales, typeof( RedScales ) ),
new CraftResourceInfo( 0x8A8, 1053130, "Yellow Scales", CraftAttributeInfo.YellowScales, CraftResource.YellowScales, typeof( YellowScales ) ),
new CraftResourceInfo( 0x455, 1053131, "Black Scales", CraftAttributeInfo.BlackScales, CraftResource.BlackScales, typeof( BlackScales ) ),
new CraftResourceInfo( 0x851, 1053132, "Green Scales", CraftAttributeInfo.GreenScales, CraftResource.GreenScales, typeof( GreenScales ) ),
new CraftResourceInfo( 0x8FD, 1053133, "White Scales", CraftAttributeInfo.WhiteScales, CraftResource.WhiteScales, typeof( WhiteScales ) ),
new CraftResourceInfo( 0x8B0, 1053134, "Blue Scales", CraftAttributeInfo.BlueScales, CraftResource.BlueScales, typeof( BlueScales ) )
};
private static CraftResourceInfo[] m_LeatherInfo = new CraftResourceInfo[]
{
new CraftResourceInfo( 0x000, 1049353, "Normal", CraftAttributeInfo.Blank, CraftResource.RegularLeather, typeof( Leather ), typeof( Hides ) ),
new CraftResourceInfo( 0x283, 1049354, "Spined", CraftAttributeInfo.Spined, CraftResource.SpinedLeather, typeof( SpinedLeather ), typeof( SpinedHides ) ),
new CraftResourceInfo( 0x227, 1049355, "Horned", CraftAttributeInfo.Horned, CraftResource.HornedLeather, typeof( HornedLeather ), typeof( HornedHides ) ),
new CraftResourceInfo( 0x1C1, 1049356, "Barbed", CraftAttributeInfo.Barbed, CraftResource.BarbedLeather, typeof( BarbedLeather ), typeof( BarbedHides ) )
};
private static CraftResourceInfo[] m_AOSLeatherInfo = new CraftResourceInfo[]
{
new CraftResourceInfo( 0x000, 1049353, "Normal", CraftAttributeInfo.Blank, CraftResource.RegularLeather, typeof( Leather ), typeof( Hides ) ),
new CraftResourceInfo( 0x8AC, 1049354, "Spined", CraftAttributeInfo.Spined, CraftResource.SpinedLeather, typeof( SpinedLeather ), typeof( SpinedHides ) ),
new CraftResourceInfo( 0x845, 1049355, "Horned", CraftAttributeInfo.Horned, CraftResource.HornedLeather, typeof( HornedLeather ), typeof( HornedHides ) ),
new CraftResourceInfo( 0x851, 1049356, "Barbed", CraftAttributeInfo.Barbed, CraftResource.BarbedLeather, typeof( BarbedLeather ), typeof( BarbedHides ) ),
};
/// <summary>
/// Returns true if '<paramref name="resource"/>' is None, Iron, or RegularLeather. False if otherwise.
/// </summary>
public static bool IsStandard( CraftResource resource )
{
return ( resource == CraftResource.None || resource == CraftResource.Iron || resource == CraftResource.RegularLeather );
}
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 = Core.AOS ? m_AOSLeatherInfo : m_LeatherInfo; break;
case CraftResourceType.Scales: list = m_ScaleInfo; 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 && resource <= CraftResource.Valorite )
return CraftResourceType.Metal;
if ( resource >= CraftResource.RegularLeather && resource <= CraftResource.BarbedLeather )
return CraftResourceType.Leather;
if ( resource >= CraftResource.RedScales && resource <= CraftResource.BlueScales )
return CraftResourceType.Scales;
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.RegularLeather;
case CraftResourceType.Scales: return CraftResource.RedScales;
}
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( "Spined" ) >= 0 )
return CraftResource.SpinedLeather;
else if ( info.Name.IndexOf( "Horned" ) >= 0 )
return CraftResource.HornedLeather;
else if ( info.Name.IndexOf( "Barbed" ) >= 0 )
return CraftResource.BarbedLeather;
else if ( info.Name.IndexOf( "Leather" ) >= 0 )
return CraftResource.RegularLeather;
if ( info.Level == 0 )
return CraftResource.Iron;
else if ( info.Level == 1 )
return CraftResource.DullCopper;
else if ( info.Level == 2 )
return CraftResource.ShadowIron;
else if ( info.Level == 3 )
return CraftResource.Copper;
else if ( info.Level == 4 )
return CraftResource.Bronze;
else if ( info.Level == 5 )
return CraftResource.Gold;
else if ( info.Level == 6 )
return CraftResource.Agapite;
else if ( info.Level == 7 )
return CraftResource.Verite;
else if ( info.Level == 8 )
return CraftResource.Valorite;
else if ( info.Level == 9 )
return CraftResource.Spike;
else if ( info.Level == 10 )
return CraftResource.IceRock;
else if ( info.Level == 11 )
return CraftResource.Gypsum;
else if ( info.Level == 12 )
return CraftResource.Platinum;
else if ( info.Level == 13 )
return CraftResource.SilverRock;
else if ( info.Level == 14 )
return CraftResource.DarkPagan;
else if ( info.Level == 15 )
return CraftResource.Mystic;
else if ( info.Level == 16 )
return CraftResource.Spectral;
else if ( info.Level == 17 )
return CraftResource.OldBritain;
else if ( info.Level == 18 )
return CraftResource.Onyx;
else if ( info.Level == 19 )
return CraftResource.RedElven;
else if ( info.Level == 20 )
return CraftResource.Undead;
else if ( info.Level == 21 )
return CraftResource.Pyrite;
else if ( info.Level == 22 )
return CraftResource.Virginity;
else if ( info.Level == 23 )
return CraftResource.Malachite;
else if ( info.Level == 24 )
return CraftResource.LavaRock;
else if ( info.Level == 25 )
return CraftResource.Azurite;
else if ( info.Level == 26 )
return CraftResource.Dripstone;
else if ( info.Level == 27 )
return CraftResource.Executor;
else if ( info.Level == 28 )
return CraftResource.Peachblue;
else if ( info.Level == 29 )
return CraftResource.Destruction;
else if ( info.Level == 30 )
return CraftResource.Anra;
else if ( info.Level == 31 )
return CraftResource.Crystal;
else if ( info.Level == 32 )
return CraftResource.Doom;
else if ( info.Level == 33 )
return CraftResource.Goddess;
else if ( info.Level == 34 )
return CraftResource.NewCarpathia;
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 || material == ArmorMaterialType.Spined ||
material == ArmorMaterialType.Horned || material == ArmorMaterialType.Barbed )
{
if ( info.Level == 0 )
return CraftResource.RegularLeather;
else if ( info.Level == 1 )
return CraftResource.SpinedLeather;
else if ( info.Level == 2 )
return CraftResource.HornedLeather;
else if ( info.Level == 3 )
return CraftResource.BarbedLeather;
return CraftResource.None;
}
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" );
public static readonly OreInfo DullCopper = new OreInfo( 1, 0x973, "Dull Copper" );
public static readonly OreInfo ShadowIron = new OreInfo( 2, 0x966, "Shadow Iron" );
public static readonly OreInfo Copper = new OreInfo( 3, 0x96D, "Copper" );
public static readonly OreInfo Bronze = new OreInfo( 4, 0x972, "Bronze" );
public static readonly OreInfo Gold = new OreInfo( 5, 0x8A5, "Gold" );
public static readonly OreInfo Agapite = new OreInfo( 6, 0x979, "Agapite" );
public static readonly OreInfo Verite = new OreInfo( 7, 0x89F, "Verite" );
public static readonly OreInfo Valorite = new OreInfo( 8, 0x8AB, "Valorite" );
public static readonly OreInfo Spike = new OreInfo( 9, 639, "Spike" );
public static readonly OreInfo IceRock = new OreInfo( 10, 1266, "Ice Rock" );
public static readonly OreInfo Gypsum = new OreInfo( 11, 1149, "Gypsum" );
public static readonly OreInfo Platinum = new OreInfo( 12, 961, "Platinum" );
public static readonly OreInfo SilverRock = new OreInfo( 13, 1154, "Silver Rock" );
public static readonly OreInfo DarkPagan = new OreInfo( 14, 545, "Dark Pagan" );
public static readonly OreInfo Mystic = new OreInfo( 15, 1151, "Mystic" );
public static readonly OreInfo Spectral = new OreInfo( 16, 1284, "Spectral" );
public static readonly OreInfo OldBritain = new OreInfo( 17, 843, "Old Britain" );
public static readonly OreInfo Onyx = new OreInfo( 18, 1175, "Onyx" );
public static readonly OreInfo RedElven = new OreInfo( 19, 337, "Red Elven" );
public static readonly OreInfo Undead = new OreInfo( 20, 666, "Undead" );
public static readonly OreInfo Pyrite = new OreInfo( 21, 2213, "Pyrite" );
public static readonly OreInfo Virginity = new OreInfo( 22, 1153, "Virginity" );
public static readonly OreInfo Malachite = new OreInfo( 23, 667, "Malachite" );
public static readonly OreInfo LavaRock = new OreInfo( 24, 1172, "Lava Rock" );
public static readonly OreInfo Azurite = new OreInfo( 25, 403, "Azurite" );
public static readonly OreInfo Dripstone = new OreInfo( 26, 711, "Dripstone" );
public static readonly OreInfo Executor = new OreInfo( 27, 988, "Executor" );
public static readonly OreInfo Peachblue = new OreInfo( 28, 185, "Peachblue" );
public static readonly OreInfo Destruction = new OreInfo( 29, 1267, "Destruction" );
public static readonly OreInfo Anra = new OreInfo( 30, 730, "Anra" );
public static readonly OreInfo Crystal = new OreInfo( 31, 91, "Crystal" );
public static readonly OreInfo Doom = new OreInfo( 32, 60, "Doom" );
public static readonly OreInfo Goddess = new OreInfo( 33, 1167, "Goddess" );
public static readonly OreInfo NewCarpathia = new OreInfo( 34, 1169, "New Carpathia" );
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;
}
}
}
}