BOD book item counts corrected

http://www.uodemise.com/forum/showthread.php?t=121015

Discordance cool down timer
http://www.uodemise.com/forum/showthread.php?t=122146

Summoned Hoarde minions dont behave correctly
http://www.uodemise.com/forum/showthread.php?t=149555

Fame and karma rewards should be 30% higher in fel
http://www.uodemise.com/forum/showthread.php?t=146893

Incorrect skill requirement in tailoring
http://www.uodemise.com/forum/showthread.php?t=149095

Mined resources should stack
http://www.uodemise.com/forum/showthread.php?t=147055

Runebook behavior
http://www.uodemise.com/forum/showthread.php?t=146030

Correct allowed guild name length
http://www.uodemise.com/forum/showthread.php?t=148603

Corrections to wool/sheep
http://www.uodemise.com/forum/showthread.php?t=150988
This commit is contained in:
xavier 2010-09-19 14:41:01 +00:00
parent 4dbb400ce3
commit 4dec86b91d
15 changed files with 252 additions and 61 deletions

View file

@ -24,6 +24,16 @@ namespace Server.Items
{
BaseClothing item = (BaseClothing)target;
if ( item is IArcaneEquip )
{
IArcaneEquip eq = (IArcaneEquip)item;
if ( eq.IsArcane )
{
from.SendLocalizedMessage( 1005019 ); // This bless deed is for Clothes only.
return;
}
}
if ( item.LootType == LootType.Blessed || item.BlessedFor == from || (Mobile.InsuranceEnabled && item.Insured) ) // Check if its already newbied (blessed)
{
from.SendLocalizedMessage( 1045113 ); // That item is already blessed

View file

@ -62,6 +62,15 @@ namespace Server.Items
if ( obj is IArcaneEquip && obj is Item )
{
Item item = (Item)obj;
CraftResource resource = CraftResource.None;
if( item is BaseClothing )
resource = ((BaseClothing)item).Resource;
else if( item is BaseArmor )
resource = ((BaseArmor)item).Resource;
else if( item is BaseWeapon ) // Sanity, weapons cannot recieve gems...
resource = ((BaseWeapon)item).Resource;
IArcaneEquip eq = (IArcaneEquip)obj;
if ( !item.IsChildOf( from.Backpack ) )
@ -69,6 +78,16 @@ namespace Server.Items
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
return;
}
else if ( item.LootType == LootType.Blessed )
{
from.SendMessage( "You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves." );
return;
}
else if ( resource != CraftResource.None && resource != CraftResource.RegularLeather )
{
from.SendLocalizedMessage( 1049690 ); // Arcane gems can not be used on that type of leather.
return;
}
int charges = GetChargesFor( from );
@ -108,11 +127,21 @@ namespace Server.Items
if ( isExceptional )
{
if ( item is BaseClothing )
{
((BaseClothing)item).Quality = ClothingQuality.Regular;
((BaseClothing)item).Crafter = from;
}
else if ( item is BaseArmor )
{
((BaseArmor)item).Quality = ArmorQuality.Regular;
((BaseArmor)item).Crafter = from;
else if ( item is BaseWeapon )
((BaseArmor)item).PhysicalBonus = ((BaseArmor)item).FireBonus = ((BaseArmor)item).ColdBonus = ((BaseArmor)item).PoisonBonus = ((BaseArmor)item).EnergyBonus = 0; // Is there a method to remove bonuses?
}
else if ( item is BaseWeapon ) // Sanity, weapons cannot recieve gems...
{
((BaseWeapon)item).Quality = WeaponQuality.Regular;
((BaseWeapon)item).Crafter = from;
}
eq.CurArcaneCharges = eq.MaxArcaneCharges = charges;
@ -135,7 +164,7 @@ namespace Server.Items
}
else
{
from.SendMessage( "You cannot use the gem on that." );
from.SendMessage( "You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves." );
}
}
@ -187,8 +216,6 @@ namespace Server.Items
return true;
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );

View file

@ -19,7 +19,7 @@ namespace Server.Items
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
writer.Write( (int) 1 ); // version
writer.Write( (int) m_Resource );
}
@ -32,22 +32,27 @@ namespace Server.Items
switch ( version )
{
case 1:
case 0:
{
m_Resource = (CraftResource)reader.ReadInt();
break;
}
}
if ( version < 1 )
Stackable = Core.ML;
}
public override double DefaultWeight
{
get { return 10.0; }
get { return Core.ML ? 1.0 : 10.0; } // Pub 57
}
public BaseGranite( CraftResource resource ) : base( 0x1779 )
{
Hue = CraftResources.GetHue( resource );
Stackable = Core.ML;
m_Resource = resource;
}
@ -71,7 +76,6 @@ namespace Server.Items
else
list.Add( CraftResources.GetName( m_Resource ) );
}
Stackable = Core.ML;
}
}

View file

@ -102,7 +102,8 @@ namespace Server.Items
else
{
m_Wool.Consume();
wheel.BeginSpin( new SpinCallback( Wool.OnSpun ), from, m_Wool.Hue );
if ( m_Wool is TaintedWool ) wheel.BeginSpin( new SpinCallback( TaintedWool.OnSpun ), from, m_Wool.Hue );
else wheel.BeginSpin( new SpinCallback( Wool.OnSpun ), from, m_Wool.Hue );
}
}
else
@ -112,4 +113,46 @@ namespace Server.Items
}
}
}
public class TaintedWool : Wool
{
[Constructable]
public TaintedWool() : this( 1 )
{
}
[Constructable]
public TaintedWool( int amount ) : base( 0x101F )
{
Stackable = true;
Weight = 4.0;
Amount = amount;
}
public TaintedWool( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
public static void OnSpun( ISpinningWheel wheel, Mobile from, int hue )
{
Item item = new DarkYarn( 1 );
item.Hue = hue;
from.AddToBackpack( item );
from.SendLocalizedMessage( 1010574 ); // You put a ball of yarn in your backpack.
}
}
}