- Added support for ML mods, as well as quivers. More ML artifacts are added

(http://www.uodemise.com/discussion/showthread.php?t=116685)

- Dog Form HPR rate is tweaked as per OSI
(http://www.uodemise.com/discussion/showthread.php?t=124422)

- Hairstylist gump now works for elves
(http://www.uodemise.com/discussion/showthread.php?t=120199)

- Bless buff icon now will report correct values
(http://www.uodemise.com/discussion/showthread.php?t=123760)

- When stealthing, the step just before a stealth check won't let you lose the stealth status (you can use shadowjump)
(http://www.uodemise.com/discussion/showthread.php?t=121250)

- You can open the blacksmith gump even if far from anvil and forge, but you still need to be near them to craft
(http://www.uodemise.com/discussion/showthread.php?t=122750)
This commit is contained in:
daedalus 2009-11-23 11:20:29 +00:00
parent aff5e22940
commit 30c7232a69
54 changed files with 1363 additions and 149 deletions

View file

@ -355,7 +355,8 @@ namespace Server.Engines.Craft
typeof( BaseTool ),
typeof( BaseHarvestTool ),
typeof( FukiyaDarts ), typeof( Shuriken ),
typeof( Spellbook ), typeof( Runebook )
typeof( Spellbook ), typeof( Runebook ),
typeof( BaseQuiver )
};
#endregion

View file

@ -7,6 +7,7 @@ namespace Server.Engines.Craft
{
public enum EnhanceResult
{
None,
NotInBackpack,
BadItem,
BadResource,
@ -33,6 +34,14 @@ namespace Server.Engines.Craft
if ( CraftResources.IsStandard( resource ) )
return EnhanceResult.BadResource;
int num = craftSystem.CanCraft( from, tool, item.GetType() );
if ( num > 0 )
{
resMessage = num;
return EnhanceResult.None;
}
CraftItem craftItem = craftSystem.CraftItems.SearchFor( item.GetType() );

View file

@ -150,8 +150,12 @@ namespace Server.Engines.Craft
bool toDelete = false;
//TODO: Make a IRepairable
if ( m_CraftSystem is DefTinkering && targeted is Golem )
if ( m_CraftSystem.CanCraft( from, m_Tool, targeted.GetType() ) == 1044267 )
{
number = 1044282; // You must be near a forge and and anvil to repair items. * Yes, there are two and's *
}
else if ( m_CraftSystem is DefTinkering && targeted is Golem )
{
Golem g = (Golem)targeted;
int damage = g.HitsMax - g.Hits;

View file

@ -22,7 +22,7 @@ namespace Server.Engines.Craft
{
int num = craftSystem.CanCraft( from, tool, null );
if ( num > 0 )
if ( num > 0 && num != 1044267 )
{
from.SendGump( new CraftGump( from, craftSystem, tool, num ) );
}
@ -111,6 +111,18 @@ namespace Server.Engines.Craft
if ( num > 0 )
{
if ( num == 1044267 )
{
bool anvil, forge;
DefBlacksmithy.CheckAnvilAndForge( from, 2, out anvil, out forge );
if ( !anvil )
num = 1044266; // You must be near an anvil
else if ( !forge )
num = 1044265; // You must be near a forge.
}
from.SendGump( new CraftGump( from, m_CraftSystem, m_Tool, num ) );
}
else

View file

@ -200,6 +200,33 @@ namespace Server.Engines.Craft
SetNeededExpansion( index, Expansion.SE );
}
if( Core.ML )
{
index = AddCraft( typeof( ElvenQuiver ), 1015283, 1032657, 65.0, 115.0, typeof( Leather ), 1044462, 28, 1044463 );
AddRecipe( index, 501 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( QuiverOfFire ), 1015283, 1073109, 65.0, 115.0, typeof( Leather ), 1044462, 28, 1044463 );
AddRes( index, typeof( FireRuby ), 1032695, 15, 1042081 );
AddRecipe( index, 502 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( QuiverOfIce ), 1015283, 1073110, 65.0, 115.0, typeof( Leather ), 1044462, 28, 1044463 );
AddRes( index, typeof( WhitePearl ), 1032694, 15, 1042081 );
AddRecipe( index, 503 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( QuiverOfBlight ), 1015283, 1073111, 65.0, 115.0, typeof( Leather ), 1044462, 28, 1044463 );
AddRes( index, typeof( Blight ), 1032675, 10, 1042081 );
AddRecipe( index, 504 );
SetNeededExpansion( index, Expansion.ML );
index = AddCraft( typeof( QuiverOfLightning ), 1015283, 1073112, 65.0, 115.0, typeof( Leather ), 1044462, 28, 1044463 );
AddRes( index, typeof( Corruption ), 1032676, 10, 1042081 );
AddRecipe( index, 505 );
SetNeededExpansion( index, Expansion.ML );
}
AddCraft( typeof( OilCloth ), 1015283, 1041498, 74.6, 99.6, typeof( Cloth ), 1044286, 1, 1044287 );
if( Core.SE )

View file

@ -20,9 +20,9 @@ namespace Server.Items
Attributes.WeaponDamage = 50;
}
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy )
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct )
{
phys = fire = pois = 0;
phys = fire = pois = chaos = direct = 0;
cold = nrgy = 50;
}
@ -190,9 +190,9 @@ namespace Server.Items
Attributes.WeaponDamage = 60;
}
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy )
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct )
{
phys = fire = pois = nrgy = 0;
phys = fire = pois = nrgy = chaos = direct = 0;
cold = 100;
}
@ -232,9 +232,9 @@ namespace Server.Items
Attributes.Luck = 200;
}
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy )
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct )
{
phys = cold = pois = nrgy = 0;
phys = cold = pois = nrgy = chaos = direct = 0;
fire = 100;
}
@ -345,9 +345,9 @@ namespace Server.Items
Attributes.DefendChance = 10;
}
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy )
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct )
{
phys = fire = cold = pois = 0;
phys = fire = cold = pois = chaos = direct = 0;
nrgy = 100;
}
@ -549,7 +549,7 @@ namespace Server.Items
|| IsInTypeList( t, TreasuresOfTokuno.GreaterArtifacts )
|| IsInTypeList( t, DemonKnight.ArtifactRarity10 )
|| IsInTypeList( t, DemonKnight.ArtifactRarity11 )
|| IsInTypeList( t, DemonKnight.ArtifactRarity10 )
|| IsInTypeList( t, BaseCreature.MinorArtifactsMl )
|| IsInTypeList( t, StealableArtifactsSpawner.TypesOfEntires )
|| IsInTypeList( t, Paragon.Artifacts )
|| IsInTypeList( t, Leviathan.Artifacts )

View file

@ -297,9 +297,9 @@ namespace Server.Items
Attributes.WeaponSpeed = 20;
}
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy )
public override void GetDamageTypes( Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct )
{
phys = fire = cold = pois = 0;
phys = fire = cold = pois = chaos = direct = 0;
nrgy = 100;
}