ML quest system; first SVN release.

Secondary changes:
- Region fixes, mainly for New Haven.
- Recipe system changes.
- Enabled ML craftables.
- Dyeing/cutting restrictions for quest items.
- Moved IsInvulnerable from BaseVendor to BaseCreature.
- Moved RandomBrightHue to Utility.
- Items no longer decay when attached to a spawner.
- Quest item hue is now faked through packets, instead of overriding Hue.
- Re-enabled item drag effects for SA clients.
- Fixed AssignRandomFacialHair bug in Utility.
- Added random hue comments to Utility.
This commit is contained in:
eos 2013-02-03 01:05:17 +00:00
parent 5c7af18dfb
commit 35fbffdb51
167 changed files with 23218 additions and 234 deletions

View file

@ -1146,7 +1146,7 @@ namespace Server.Engines.Craft
}
}
if ( tool.UsesRemaining < 1 )
if ( tool.UsesRemaining < 1 && tool.BreakOnDepletion )
toolBroken = true;
if ( toolBroken )
@ -1267,7 +1267,7 @@ namespace Server.Engines.Craft
tool.UsesRemaining--;
if ( tool.UsesRemaining < 1 )
if ( tool.UsesRemaining < 1 && tool.BreakOnDepletion )
toolBroken = true;
if ( toolBroken )

View file

@ -26,6 +26,9 @@ namespace Server.Engines.Craft
private CraftSubResCol m_CraftSubRes;
private CraftSubResCol m_CraftSubRes2;
private List<int> m_Recipes;
private List<int> m_RareRecipes;
public int MinCraftEffect { get { return m_MinCraftEffect; } }
public int MaxCraftEffect { get { return m_MaxCraftEffect; } }
public double Delay { get { return m_Delay; } }
@ -34,7 +37,7 @@ namespace Server.Engines.Craft
public CraftGroupCol CraftGroups{ get { return m_CraftGroups; } }
public CraftSubResCol CraftSubRes{ get { return m_CraftSubRes; } }
public CraftSubResCol CraftSubRes2{ get { return m_CraftSubRes2; } }
public abstract SkillName MainSkill{ get; }
public virtual int GumpTitleNumber{ get{ return 0; } }
@ -114,6 +117,9 @@ namespace Server.Engines.Craft
m_CraftSubRes = new CraftSubResCol();
m_CraftSubRes2 = new CraftSubResCol();
m_Recipes = new List<int>();
m_RareRecipes = new List<int>();
InitCraftList();
}
@ -135,6 +141,22 @@ namespace Server.Engines.Craft
}
}
public int RandomRecipe()
{
if ( m_Recipes.Count == 0 )
return -1;
return m_Recipes[Utility.Random( m_Recipes.Count )];
}
public int RandomRareRecipe()
{
if ( m_RareRecipes.Count == 0 )
return -1;
return m_RareRecipes[Utility.Random( m_RareRecipes.Count )];
}
public int AddCraft( Type typeItem, TextDefinition group, TextDefinition name, double minSkill, double maxSkill, Type typeRes, TextDefinition nameRes, int amount )
{
@ -262,12 +284,29 @@ namespace Server.Engines.Craft
craftItem.UseSubRes2 = val;
}
public void AddRecipe( int index, int id )
private void AddRecipeBase( int index, int id )
{
CraftItem craftItem = m_CraftItems.GetAt( index );
craftItem.AddRecipe( id, this );
}
public void AddRecipe( int index, int id )
{
AddRecipeBase( index, id );
m_Recipes.Add( id );
}
public void AddRareRecipe( int index, int id )
{
AddRecipeBase( index, id );
m_RareRecipes.Add( id );
}
public void AddQuestRecipe( int index, int id )
{
AddRecipeBase( index, id );
}
public void ForceNonExceptional( int index )
{
CraftItem craftItem = m_CraftItems.GetAt( index );

View file

@ -281,7 +281,7 @@ namespace Server.Engines.Craft
index = AddCraft( typeof( StandardPlateKabuto ), 1011079, 1030196, 90.0, 140.0, typeof( IronIngot ), 1044036, 25, 1044037 );
SetNeededExpansion( index, Expansion.SE );
/*
if( Core.ML )
{
index = AddCraft( typeof( Circlet ), 1011079, 1032645, 62.1, 112.1, typeof( IronIngot ), 1044036, 6, 1044037 );
@ -296,7 +296,6 @@ namespace Server.Engines.Craft
AddRes( index, typeof( BlueDiamond ), 1032696, 1, 1044240 );
SetNeededExpansion( index, Expansion.ML );
}
* */
}
#endregion
@ -351,7 +350,7 @@ namespace Server.Engines.Craft
SetNeededExpansion( index, Expansion.SE );
index = AddCraft( typeof( Sai ), 1011081, 1030234, 50.0, 100.0, typeof( IronIngot ), 1044036, 12, 1044037 );
SetNeededExpansion( index, Expansion.SE );
/*
if( Core.ML )
{
index = AddCraft( typeof( RadiantScimitar ), 1011081, 1031571, 75.0, 125.0, typeof( IronIngot ), 1044036, 15, 1044037 );
@ -379,7 +378,7 @@ namespace Server.Engines.Craft
AddRes( index, typeof( DreadHornMane ), 1032682, 1, 1053098 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1053098 );
AddRes( index, typeof( Muculent ), 1032680, 10, 1053098 );
AddRecipe( index, 0 );
AddRareRecipe( index, 0 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
@ -387,7 +386,7 @@ namespace Server.Engines.Craft
AddRes( index, typeof( GrizzledBones ), 1032684, 1, 1053098 );
AddRes( index, typeof( Taint ), 1032684, 10, 1053098 );
AddRes( index, typeof( Blight ), 1032675, 10, 1053098 );
AddRecipe( index, 1 );
AddRareRecipe( index, 1 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
@ -395,7 +394,7 @@ namespace Server.Engines.Craft
AddRes( index, typeof( GrizzledBones ), 1032684, 1, 1053098 );
AddRes( index, typeof( Blight ), 1032675, 10, 1053098 );
AddRes( index, typeof( Scourge ), 1032677, 10, 1053098 );
AddRecipe( index, 2 );
AddRareRecipe( index, 2 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
@ -403,7 +402,7 @@ namespace Server.Engines.Craft
AddRes( index, typeof( GrizzledBones ), 1032684, 1, 1053098 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1053098 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1053098 );
AddRecipe( index, 3 );
AddRareRecipe( index, 3 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
@ -472,10 +471,11 @@ namespace Server.Engines.Craft
AddRecipe( index, 16 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( ButchersWarCleaver ), 1011081, 1073526, 75.0, 125.0, typeof( IronIngot ), 1044036, 18, 1044037 );
AddRes( index, typeof( Turquoise ), 1032691, 1, 1044240 );
AddRecipe( index, 17 );
SetNeededExpansion( index, Expansion.ML );
// TODO
//index = AddCraft( typeof( ButchersWarCleaver ), 1011081, 1073526, 75.0, 125.0, typeof( IronIngot ), 1044036, 18, 1044037 );
//AddRes( index, typeof( Turquoise ), 1032691, 1, 1044240 );
//AddRecipe( index, 17 );
//SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( SerratedWarCleaver ), 1011081, 1073527, 75.0, 125.0, typeof( IronIngot ), 1044036, 18, 1044037 );
AddRes( index, typeof( EcruCitrine ), 1032693, 1, 1044240 );
@ -507,10 +507,11 @@ namespace Server.Engines.Craft
AddRecipe( index, 23 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( RuneSabre ), 1011081, 1073537, 75.0, 125.0, typeof( IronIngot ), 1044036, 15, 1044037 );
AddRes( index, typeof( Turquoise ), 1032691, 1, 1044240 );
AddRecipe( index, 24 );
SetNeededExpansion( index, Expansion.ML );
// TODO
//index = AddCraft( typeof( RuneSabre ), 1011081, 1073537, 75.0, 125.0, typeof( IronIngot ), 1044036, 15, 1044037 );
//AddRes( index, typeof( Turquoise ), 1032691, 1, 1044240 );
//AddRecipe( index, 24 );
//SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( MagesRuneBlade ), 1011081, 1073538, 75.0, 125.0, typeof( IronIngot ), 1044036, 15, 1044037 );
AddRes( index, typeof( BlueDiamond ), 1032696, 1, 1044240 );
@ -547,12 +548,11 @@ namespace Server.Engines.Craft
AddRecipe( index, 31 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( BoneMachete ), 1011081, 1020526, 75.0, 125.0, typeof( IronIngot ), 1044036, 20, 1044037 );
index = AddCraft( typeof( BoneMachete ), 1011081, 1020526, 45.0, 95.0, typeof( IronIngot ), 1044036, 20, 1044037 );
AddRes( index, typeof( Bone ), 1049064, 6, 1049063 );
AddRecipe( index, 32 );
AddQuestRecipe( index, 32 );
SetNeededExpansion( index, Expansion.ML );
}
*/
}
#endregion
@ -564,7 +564,7 @@ namespace Server.Engines.Craft
AddCraft( typeof( LargeBattleAxe ), 1011082, 1025115, 28.0, 78.0, typeof( IronIngot ), 1044036, 12, 1044037 );
AddCraft( typeof( TwoHandedAxe ), 1011082, 1025187, 33.0, 83.0, typeof( IronIngot ), 1044036, 16, 1044037 );
AddCraft( typeof( WarAxe ), 1011082, 1025040, 39.1, 89.1, typeof( IronIngot ), 1044036, 16, 1044037 );
/*
if( Core.ML )
{
index = AddCraft( typeof( OrnateAxe ), 1011082, 1031572, 70.0, 120.0, typeof( IronIngot ), 1044036, 18, 1044037 );
@ -590,7 +590,7 @@ namespace Server.Engines.Craft
AddRecipe( index, 36 );
SetNeededExpansion( index, Expansion.ML );
}*/
}
#endregion
#region Pole Arms
@ -641,17 +641,17 @@ namespace Server.Engines.Craft
AddRes( index, typeof( Cloth ), 1044286, 10, 1044287 );
SetNeededExpansion( index, Expansion.SE );
}
/*
if( Core.ML )
{
index = AddCraft( typeof( DiamondMace ), 1011084, 1073568, 70.0, 120.0, typeof( IronIngot ), 1044036, 20, 1044037 );
index = AddCraft( typeof( DiamondMace ), 1011084, 1031556, 70.0, 120.0, typeof( IronIngot ), 1044036, 20, 1044037 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( ShardThrasher ), 1011084, 1072918, 70.0, 120.0, typeof( IronIngot ), 1044036, 20, 1044037 );
AddRes( index, typeof( EyeOfTheTravesty ), 1073126, 1, 1042081 );
AddRes( index, typeof( Muculent ), 1072139, 10, 1042081 );
AddRes( index, typeof( Corruption ), 1072135, 10, 1042081 );
AddRecipe( index, 37 );
AddRareRecipe( index, 37 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
@ -674,7 +674,7 @@ namespace Server.Engines.Craft
AddRes( index, typeof( BlueDiamond ), 1032696, 1, 1044240 );
AddRecipe( index, 41 );
SetNeededExpansion( index, Expansion.ML );
}*/
}
#endregion
#region Dragon Scale Armor

View file

@ -126,6 +126,93 @@ namespace Server.Engines.Craft
SetNeededExpansion( index, Expansion.SE );
}
if ( Core.ML )
{
index = AddCraft( typeof( BlightGrippedLongbow ), 1044566, 1072907, 75.0, 125.0, typeof( Log ), 1044041, 20, 1044351 );
AddRes( index, typeof( LardOfParoxysmus ), 1032681, 1, 1053098 );
AddRes( index, typeof( Blight ), 1032675, 10, 1053098 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1053098 );
AddRareRecipe( index, 200 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
/* TODO
index = AddCraft( typeof( FaerieFire ), 1044566, 1072908, 75.0, 125.0, typeof( Log ), 1044041, 20, 1044351 );
AddRes( index, typeof( LardOfParoxysmus ), 1032681, 1, 1053098 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1053098 );
AddRes( index, typeof( Taint ), 1032679, 10, 1053098 );
AddRareRecipe( index, 201 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
*/
index = AddCraft( typeof( SilvanisFeywoodBow ), 1044566, 1072955, 75.0, 125.0, typeof( Log ), 1044041, 20, 1044351 );
AddRes( index, typeof( LardOfParoxysmus ), 1032681, 1, 1053098 );
AddRes( index, typeof( Scourge ), 1032677, 10, 1053098 );
AddRes( index, typeof( Muculent ), 1032680, 10, 1053098 );
AddRareRecipe( index, 202 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
/* TODO
index = AddCraft( typeof( MischiefMaker ), 1044566, 1072910, 75.0, 125.0, typeof( Log ), 1044041, 15, 1044351 );
AddRes( index, typeof( DreadHornMane ), 1032682, 1, 1053098 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1053098 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1053098 );
AddRareRecipe( index, 203 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
*/
index = AddCraft( typeof( TheNightReaper ), 1044566, 1072912, 75.0, 125.0, typeof( Log ), 1044041, 10, 1044351 );
AddRes( index, typeof( DreadHornMane ), 1032682, 1, 1053098 );
AddRes( index, typeof( Blight ), 1032675, 10, 1053098 );
AddRes( index, typeof( Scourge ), 1032677, 10, 1053098 );
AddRareRecipe( index, 204 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( BarbedLongbow ), 1044566, 1073505, 75.0, 125.0, typeof( Log ), 1044041, 20, 1044351 );
AddRes( index, typeof( FireRuby ), 1026254, 1, 1053098 );
AddRecipe( index, 205 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( SlayerLongbow ), 1044566, 1073506, 75.0, 125.0, typeof( Log ), 1044041, 20, 1044351 );
AddRes( index, typeof( BrilliantAmber ), 1026256, 1, 1053098 );
AddRecipe( index, 206 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( FrozenLongbow ), 1044566, 1073507, 75.0, 125.0, typeof( Log ), 1044041, 20, 1044351 );
AddRes( index, typeof( Turquoise ), 1026250, 1, 1053098 );
AddRecipe( index, 207 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( LongbowOfMight ), 1044566, 1073508, 75.0, 125.0, typeof( Log ), 1044041, 10, 1044351 );
AddRes( index, typeof( BlueDiamond ), 1026255, 1, 1053098 );
AddRecipe( index, 208 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( RangersShortbow ), 1044566, 1073509, 75.0, 125.0, typeof( Log ), 1044041, 15, 1044351 );
AddRes( index, typeof( PerfectEmerald ), 1026251, 1, 1053098 );
AddRecipe( index, 209 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( LightweightShortbow ), 1044566, 1073510, 75.0, 125.0, typeof( Log ), 1044041, 15, 1044351 );
AddRes( index, typeof( WhitePearl ), 1026253, 1, 1053098 );
AddRecipe( index, 210 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( MysticalShortbow ), 1044566, 1073511, 75.0, 125.0, typeof( Log ), 1044041, 15, 1044351 );
AddRes( index, typeof( EcruCitrine ), 1026252, 1, 1053098 );
AddRecipe( index, 211 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( AssassinsShortbow ), 1044566, 1073512, 75.0, 125.0, typeof( Log ), 1044041, 15, 1044351 );
AddRes( index, typeof( DarkSapphire ), 1026249, 1, 1053098 );
AddRecipe( index, 212 );
SetNeededExpansion( index, Expansion.ML );
}
MarkOption = true;
Repair = Core.AOS;
}

View file

@ -97,6 +97,7 @@ namespace Server.Engines.Craft
AddCraft( typeof( ShortMusicStand ), 1044294, 1044313, 78.9, 103.9, typeof( Log ), 1044041, 15, 1044351 );
AddCraft( typeof( TallMusicStand ), 1044294, 1044315, 81.5, 106.5, typeof( Log ), 1044041, 20, 1044351 );
AddCraft( typeof( Easle ), 1044294, 1044317, 86.8, 111.8, typeof( Log ), 1044041, 20, 1044351 );
if( Core.SE )
{
index = AddCraft( typeof( RedHangingLantern ), 1044294, 1029412, 65.0, 90.0, typeof( Log ), 1044041, 5, 1044351 );
@ -132,6 +133,33 @@ namespace Server.Engines.Craft
AddRes( index, typeof( RunedPrism ), 1073465, 1, 1053098 );
AddRes( index, typeof( JeweledFiligree ), 1072894, 1, 1053098 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( WarriorStatueSouthDeed ), 1044294, 1072887, 0.0, 35.0, typeof( Log ), 1044041, 250, 1044351 );
AddRecipe( index, 300 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( WarriorStatueEastDeed ), 1044294, 1072888, 0.0, 35.0, typeof( Log ), 1044041, 250, 1044351 );
AddRecipe( index, 301 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( SquirrelStatueSouthDeed ), 1044294, 1072884, 0.0, 35.0, typeof( Log ), 1044041, 250, 1044351 );
AddRecipe( index, 302 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( SquirrelStatueEastDeed ), 1044294, 1073398, 0.0, 35.0, typeof( Log ), 1044041, 250, 1044351 );
AddRecipe( index, 303 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( AcidProofRope ), 1044294, 1074886, 80, 130.0, typeof( GreaterStrengthPotion ), 1073466, 2, 1044253 );
AddRes( index, typeof( ProtectionScroll ), 1044395, 1, 1053098 );
AddRes( index, typeof( SwitchItem ), 1032127, 1, 1053098 );
AddRecipe( index, 304 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
// Furniture
@ -158,6 +186,13 @@ namespace Server.Engines.Craft
SetNeededExpansion( index, Expansion.SE );
}
if ( Core.ML )
{
index = AddCraft( typeof( OrnateElvenChair ), 1044291, 1072870, 80.0, 105.0, typeof( Log ), 1044041, 30, 1044351 );
AddRecipe( index, 305 );
SetNeededExpansion( index, Expansion.ML );
}
// Containers
AddCraft( typeof( WoodenBox ), 1044292, 1023709, 21.0, 46.0, typeof( Log ), 1044041, 10, 1044351 );
AddCraft( typeof( SmallCrate ), 1044292, 1044309, 10.0, 35.0, typeof( Log ), 1044041, 8 , 1044351 );
@ -208,31 +243,124 @@ namespace Server.Engines.Craft
AddRes( index, typeof( BarrelHoops ), 1044289, 1, 1044253 );
AddRes( index, typeof( BarrelLid ), 1044251, 1, 1044253 );
if ( Core.ML )
{
index = AddCraft( typeof( ArcaneBookshelfSouthDeed ), 1044292, 1072871, 94.7, 119.7, typeof( Log ), 1044041, 80, 1044351 );
AddRecipe( index, 306 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( ArcaneBookshelfEastDeed ), 1044292, 1073371, 94.7, 119.7, typeof( Log ), 1044041, 80, 1044351 );
AddRecipe( index, 307 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
/* TODO
index = AddCraft( typeof( OrnateElvenChestSouthDeed ), 1044292, 1072862, 94.7, 119.7, typeof( Log ), 1044041, 40, 1044351 );
AddRecipe( index, 308 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( OrnateElvenChestEastDeed ), 1044292, 1073383, 94.7, 119.7, typeof( Log ), 1044041, 40, 1044351 );
AddRecipe( index, 309 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
*/
index = AddCraft( typeof( ElvenDresserSouthDeed ), 1044292, 1072864, 75.0, 100.0, typeof( Log ), 1044041, 45, 1044351 );
AddRecipe( index, 310 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( ElvenDresserEastDeed ), 1044292, 1073388, 75.0, 100.0, typeof( Log ), 1044041, 45, 1044351 );
AddRecipe( index, 311 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
/* TODO
index = AddCraft( typeof( FancyElvenArmoire ), 1044292, 1072866, 80.0, 105.0, typeof( Log ), 1044041, 60, 1044351 );
AddRecipe( index, 312 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
*/
}
// Staves and Shields
AddCraft( typeof( ShepherdsCrook ), 1044295, 1023713, 78.9, 103.9, typeof( Log ), 1044041, 7, 1044351 );
AddCraft( typeof( QuarterStaff ), 1044295, 1023721, 73.6, 98.6, typeof( Log ), 1044041, 6, 1044351 );
AddCraft( typeof( GnarledStaff ), 1044295, 1025112, 78.9, 103.9, typeof( Log ), 1044041, 7, 1044351 );
AddCraft( typeof( WoodenShield ), 1044295, 1027034, 52.6, 77.6, typeof( Log ), 1044041, 9, 1044351 );
AddCraft( typeof( ShepherdsCrook ), Core.ML ? 1044566 : 1044295, 1023713, 78.9, 103.9, typeof( Log ), 1044041, 7, 1044351 );
AddCraft( typeof( QuarterStaff ), Core.ML ? 1044566 : 1044295, 1023721, 73.6, 98.6, typeof( Log ), 1044041, 6, 1044351 );
AddCraft( typeof( GnarledStaff ), Core.ML ? 1044566 : 1044295, 1025112, 78.9, 103.9, typeof( Log ), 1044041, 7, 1044351 );
AddCraft( typeof( WoodenShield ), Core.ML ? 1062760 : 1044295, 1027034, 52.6, 77.6, typeof( Log ), 1044041, 9, 1044351 );
if( !Core.AOS ) //Duplicate Entries to preserve ordering depending on era
{
index = AddCraft( typeof( FishingPole ), 1044295, 1023519, 68.4, 93.4, typeof( Log ), 1044041, 5, 1044351 ); //This is in the categor of Other during AoS
index = AddCraft( typeof( FishingPole ), Core.ML ? 1044294 : 1044295, 1023519, 68.4, 93.4, typeof( Log ), 1044041, 5, 1044351 ); //This is in the categor of Other during AoS
AddSkill( index, SkillName.Tailoring, 40.0, 45.0 );
AddRes( index, typeof( Cloth ), 1044286, 5, 1044287 );
}
if( Core.SE )
{
index = AddCraft( typeof( Bokuto ), 1044295, 1030227, 70.0, 95.0, typeof( Log ), 1044041, 6, 1044351 );
index = AddCraft( typeof( Bokuto ), Core.ML ? 1044566 : 1044295, 1030227, 70.0, 95.0, typeof( Log ), 1044041, 6, 1044351 );
SetNeededExpansion( index, Expansion.SE );
index = AddCraft( typeof( Fukiya ), 1044295, 1030229, 60.0, 85.0, typeof( Log ), 1044041, 6, 1044351 );
index = AddCraft( typeof( Fukiya ), Core.ML ? 1044566 : 1044295, 1030229, 60.0, 85.0, typeof( Log ), 1044041, 6, 1044351 );
SetNeededExpansion( index, Expansion.SE );
index = AddCraft( typeof( Tetsubo ), 1044295, 1030225, 80.0, 140.3, typeof( Log ), 1044041, 10, 1044351 );
index = AddCraft( typeof( Tetsubo ), Core.ML ? 1044566 : 1044295, 1030225, 80.0, 140.3, typeof( Log ), 1044041, 10, 1044351 );
SetNeededExpansion( index, Expansion.SE );
}
if ( Core.ML )
{
index = AddCraft( typeof( PhantomStaff ), 1044566, 1072919, 90.0, 130.0, typeof( Log ), 1044041, 16, 1044351 );
AddRes( index, typeof( DiseasedBark ), 1032683, 1, 1053098 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1053098 );
AddRes( index, typeof( Taint ), 1032679, 10, 1053098 );
AddRareRecipe( index, 313 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( ArcanistsWildStaff ), 1044566, 1073549, 63.8, 113.8, typeof( Log ), 1044041, 16, 1044351 );
AddRes( index, typeof( WhitePearl ), 1026253, 1, 1053098 );
AddRecipe( index, 314 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( AncientWildStaff ), 1044566, 1073550, 63.8, 113.8, typeof( Log ), 1044041, 16, 1044351 );
AddRes( index, typeof( PerfectEmerald ), 1026251, 1, 1053098 );
AddRecipe( index, 315 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( ThornedWildStaff ), 1044566, 1073551, 63.8, 113.8, typeof( Log ), 1044041, 16, 1044351 );
AddRes( index, typeof( FireRuby ), 1026254, 1, 1053098 );
AddRecipe( index, 316 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( HardenedWildStaff ), 1044566, 1073552, 63.8, 113.8, typeof( Log ), 1044041, 16, 1044351 );
AddRes( index, typeof( Turquoise ), 1026250, 1, 1053098 );
AddRecipe( index, 317 );
SetNeededExpansion( index, Expansion.ML );
}
// Armor
if ( Core.ML )
{
index = AddCraft( typeof( IronwoodCrown ), 1062760, 1072924, 85.0, 120.0, typeof( Log ), 1044041, 10, 1044351 );
AddRes( index, typeof( DiseasedBark ), 1032683, 1, 1053098 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1053098 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1053098 );
AddRareRecipe( index, 318 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( BrambleCoat ), 1062760, 1072925, 85.0, 120.0, typeof( Log ), 1044041, 10, 1044351 );
AddRes( index, typeof( DiseasedBark ), 1032683, 1, 1053098 );
AddRes( index, typeof( Taint ), 1032679, 10, 1053098 );
AddRes( index, typeof( Scourge ), 1032677, 10, 1053098 );
AddRareRecipe( index, 319 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
// Instruments
index = AddCraft( typeof( LapHarp ), 1044293, 1023762, 63.1, 88.1, typeof( Log ), 1044041, 20, 1044351 );
AddSkill( index, SkillName.Musicianship, 45.0, 50.0 );
@ -265,6 +393,23 @@ namespace Server.Engines.Craft
SetNeededExpansion( index, Expansion.SE );
}
if ( Core.ML )
{
index = AddCraft( typeof( TallElvenBedSouthDeed ), 1044290, 1072858, 94.7, 119.7, typeof( Log ), 1044041, 200, 1044351 );
AddSkill( index, SkillName.Tailoring, 75.0, 80.0 );
AddRes( index, typeof( Cloth ), 1044286, 100, 1044287 );
AddRecipe( index, 320 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( TallElvenBedEastDeed ), 1044290, 1072859, 94.7, 119.7, typeof( Log ), 1044041, 200, 1044351 );
AddSkill( index, SkillName.Tailoring, 75.0, 80.0 );
AddRes( index, typeof( Cloth ), 1044286, 100, 1044287 );
AddRecipe( index, 321 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
// Misc
index = AddCraft( typeof( SmallBedSouthDeed ), 1044290, 1044321, 94.7, 119.8, typeof( Log ), 1044041, 100, 1044351 );
AddSkill( index, SkillName.Tailoring, 75.0, 80.0 );
@ -294,7 +439,7 @@ namespace Server.Engines.Craft
AddCraft( typeof( PlayerBBSouth ), 1044290, 1062421, 85.0, 110.0, typeof( Log ), 1044041, 50, 1044351 );
}
// Blacksmithy
// Blacksmithy - This changed to Anvils and Forges (1111809) for SA
index = AddCraft( typeof( SmallForgeDeed ), 1044296, 1044330, 73.6, 98.6, typeof( Log ), 1044041, 5, 1044351 );
AddSkill( index, SkillName.Blacksmith, 75.0, 80.0 );
AddRes( index, typeof( IronIngot ), 1044036, 75, 1044037 );
@ -343,20 +488,20 @@ namespace Server.Engines.Craft
AddRes( index, typeof( Cloth ), 1044286, 25, 1044287 );
// Cooking
index = AddCraft( typeof( StoneOvenEastDeed ), 1044299, 1044345, 68.4, 93.4, typeof( Log ), 1044041, 85, 1044351 );
index = AddCraft( typeof( StoneOvenEastDeed ), Core.ML ? 1044298 : 1044299, 1044345, 68.4, 93.4, typeof( Log ), 1044041, 85, 1044351 );
AddSkill( index, SkillName.Tinkering, 50.0, 55.0 );
AddRes( index, typeof( IronIngot ), 1044036, 125, 1044037 );
index = AddCraft( typeof( StoneOvenSouthDeed ), 1044299, 1044346, 68.4, 93.4, typeof( Log ), 1044041, 85, 1044351 );
index = AddCraft( typeof( StoneOvenSouthDeed ), Core.ML ? 1044298 : 1044299, 1044346, 68.4, 93.4, typeof( Log ), 1044041, 85, 1044351 );
AddSkill( index, SkillName.Tinkering, 50.0, 55.0 );
AddRes( index, typeof( IronIngot ), 1044036, 125, 1044037 );
index = AddCraft( typeof( FlourMillEastDeed ), 1044299, 1044347, 94.7, 119.7, typeof( Log ), 1044041, 100, 1044351 );
index = AddCraft( typeof( FlourMillEastDeed ), Core.ML ? 1044298 : 1044299, 1044347, 94.7, 119.7, typeof( Log ), 1044041, 100, 1044351 );
AddSkill( index, SkillName.Tinkering, 50.0, 55.0 );
AddRes( index, typeof( IronIngot ), 1044036, 50, 1044037 );
index = AddCraft( typeof( FlourMillSouthDeed ), 1044299, 1044348, 94.7, 119.7, typeof( Log ), 1044041, 100, 1044351 );
index = AddCraft( typeof( FlourMillSouthDeed ), Core.ML ? 1044298 : 1044299, 1044348, 94.7, 119.7, typeof( Log ), 1044041, 100, 1044351 );
AddSkill( index, SkillName.Tinkering, 50.0, 55.0 );
AddRes( index, typeof( IronIngot ), 1044036, 50, 1044037 );
AddCraft( typeof( WaterTroughEastDeed ), 1044299, 1044349, 94.7, 119.7, typeof( Log ), 1044041, 150, 1044351 );
AddCraft( typeof( WaterTroughSouthDeed ), 1044299, 1044350, 94.7, 119.7, typeof( Log ), 1044041, 150, 1044351 );
AddCraft( typeof( WaterTroughEastDeed ), Core.ML ? 1044298 : 1044299, 1044349, 94.7, 119.7, typeof( Log ), 1044041, 150, 1044351 );
AddCraft( typeof( WaterTroughSouthDeed ), Core.ML ? 1044298 : 1044299, 1044350, 94.7, 119.7, typeof( Log ), 1044041, 150, 1044351 );
MarkOption = true;
Repair = Core.AOS;

View file

@ -293,9 +293,8 @@ namespace Server.Engines.Craft
AddNecroSpell(16, 40, 79.6, typeof(ExorcismScroll), Reagent.NoxCrystal, Reagent.GraveDust);
}
int index;
if ( Core.ML )
{
index = AddCraft( typeof( EnchantedSwitch ), 1044294, 1072893, 45.0, 95.0, typeof( BlankScroll ), 1044377, 1, 1044378 );
@ -312,7 +311,7 @@ namespace Server.Engines.Craft
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
// Runebook
index = AddCraft( typeof( Runebook ), 1044294, 1041267, 45.0, 95.0, typeof( BlankScroll ), 1044377, 8, 1044378 );
AddRes( index, typeof( RecallScroll ), 1044445, 1, 1044253 );
@ -328,6 +327,19 @@ namespace Server.Engines.Craft
AddCraft(typeof(Spellbook), 1044294, 1023834, 50.0, 126, typeof(BlankScroll), 1044377, 10, 1044378);
}
/* TODO
if ( Core.ML )
{
index = AddCraft( typeof( ScrappersCompendium ), 1044294, 1072940, 75.0, 125.0, typeof( BlankScroll ), 1044377, 100, 1044378 );
AddRes( index, typeof( DreadHornMane ), 1032682, 1, 1044253 );
AddRes( index, typeof( Taint ), 1032679, 10, 1044253 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1044253 );
AddRareRecipe( index, 400 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
*/
MarkOption = true;
}
}

View file

@ -271,6 +271,33 @@ namespace Server.Engines.Craft
#region Leather Armor
if ( Core.ML )
{
index = AddCraft( typeof( SpellWovenBritches ), 1015293, 1072929, 92.5, 117.5, typeof( Leather ), 1044462, 15, 1044463 );
AddRes( index, typeof( EyeOfTheTravesty ), 1032685, 1, 1044253 );
AddRes( index, typeof( Putrefication ), 1032678, 10, 1044253 );
AddRes( index, typeof( Scourge ), 1032677, 10, 1044253 );
AddRareRecipe( index, 506 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( SongWovenMantle ), 1015293, 1072931, 92.5, 117.5, typeof( Leather ), 1044462, 15, 1044463 );
AddRes( index, typeof( EyeOfTheTravesty ), 1032685, 1, 1044253 );
AddRes( index, typeof( Blight ), 1032675, 10, 1044253 );
AddRes( index, typeof( Muculent ), 1032680, 10, 1044253 );
AddRareRecipe( index, 507 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( StitchersMittens ), 1015293, 1072932, 92.5, 117.5, typeof( Leather ), 1044462, 15, 1044463 );
AddRes( index, typeof( CapturedEssence ), 1032686, 1, 1044253 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1044253 );
AddRes( index, typeof( Taint ), 1032679, 10, 1044253 );
AddRareRecipe( index, 508 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
AddCraft( typeof( LeatherGorget ), 1015293, 1025063, 53.9, 78.9, typeof( Leather ), 1044462, 4, 1044463 );
AddCraft( typeof( LeatherCap ), 1015293, 1027609, 6.2, 31.2, typeof( Leather ), 1044462, 2, 1044463 );
AddCraft( typeof( LeatherGloves ), 1015293, 1025062, 51.8, 76.8, typeof( Leather ), 1044462, 3, 1044463 );

View file

@ -295,8 +295,7 @@ namespace Server.Engines.Craft
AddRes( index, typeof( Bottle ), 1044250, 10, 1044253 );
AddRes( index, typeof( BarrelLid ), 1044251, 1, 1044253 );
AddRes( index, typeof( BarrelTap ), 1044252, 1, 1044253 );
#endregion
#region Traps
@ -337,6 +336,34 @@ namespace Server.Engines.Craft
AddRes( index, typeof( IronIngot ), 1044036, 10, 1044037 );
#endregion
// Magic Jewelry
if ( Core.ML )
{
index = AddCraft( typeof( ResilientBracer ), 1073107, 1072933, 100.0, 125.0, typeof( IronIngot ), 1044036, 2, 1044037 );
AddRes( index, typeof( CapturedEssence ), 1032686, 1, 1044253 );
AddRes( index, typeof( BlueDiamond ), 1032696, 10, 1044253 );
AddRes( index, typeof( Diamond ), 1062608, 50, 1044253 );
AddRareRecipe( index, 600 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( EssenceOfBattle ), 1073107, 1072935, 100.0, 125.0, typeof( IronIngot ), 1044036, 2, 1044037 );
AddRes( index, typeof( CapturedEssence ), 1032686, 1, 1044253 );
AddRes( index, typeof( FireRuby ), 1032695, 10, 1044253 );
AddRes( index, typeof( Ruby ), 1062603, 50, 1044253 );
AddRareRecipe( index, 601 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( PendantOfTheMagi ), 1073107, 1072937, 100.0, 125.0, typeof( IronIngot ), 1044036, 2, 1044037 );
AddRes( index, typeof( EyeOfTheTravesty ), 1032685, 1, 1044253 );
AddRes( index, typeof( WhitePearl ), 1032694, 10, 1044253 );
AddRes( index, typeof( StarSapphire ), 1062600, 50, 1044253 );
AddRareRecipe( index, 602 );
ForceNonExceptional( index );
SetNeededExpansion( index, Expansion.ML );
}
// Set the overridable material
SetSubRes( typeof( IronIngot ), 1044022 );