- Incognito spell won't change gender anymore

(http://www.uodemise.com/discussion/showthread.php?t=117148)
- Abyss Champion spawn has Greater Mongbats in tier 1 instead of Mongbats
(http://www.uodemise.com/discussion/showthread.php?t=125248)
- BOD books won't return to page 1 anymore when picking or dropping BODs
(http://www.uodemise.com/discussion/showthread.php?t=115354)
- Added Plague Beast Lords with relative puzzle; Plague Beasts release healty glands
(http://www.uodemise.com/discussion/showthread.php?t=116548)
- Arch Cure area effect will follow OSI rules in Felucca facet
(http://www.uodemise.com/discussion/showthread.php?t=115600)
- Solen Ants Holes can spawn randomly in forest
(http://www.uodemise.com/discussion/showthread.php?t=123899)
- Death Robes will decay after 60 seconds from dropping on the ground
(http://www.uodemise.com/discussion/showthread.php?t=121188)
- Weapon speeds are indicated in seconds of delay
(http://www.uodemise.com/discussion/showthread.php?t=123707)
This commit is contained in:
daedalus 2009-10-18 14:03:59 +00:00
parent 207be3f720
commit 123af436f9
99 changed files with 2341 additions and 75 deletions

View file

@ -97,7 +97,7 @@ namespace Server.Items
private int m_StrReq, m_DexReq, m_IntReq;
private int m_MinDamage, m_MaxDamage;
private int m_HitSound, m_MissSound;
private int m_Speed;
private float m_Speed;
private int m_MaxRange;
private SkillName m_Skill;
private WeaponType m_Type;
@ -121,6 +121,7 @@ namespace Server.Items
public virtual int AosMinDamage{ get{ return 0; } }
public virtual int AosMaxDamage{ get{ return 0; } }
public virtual int AosSpeed{ get{ return 0; } }
public virtual float MlSpeed{ get{ return 0.0f; } }
public virtual int AosMaxRange{ get{ return DefMaxRange; } }
public virtual int AosHitSound{ get{ return DefHitSound; } }
public virtual int AosMissSound{ get{ return DefMissSound; } }
@ -357,9 +358,20 @@ namespace Server.Items
}
[CommandProperty( AccessLevel.GameMaster )]
public int Speed
public float Speed
{
get{ return ( m_Speed == -1 ? Core.AOS ? AosSpeed : OldSpeed : m_Speed ); }
get
{
if ( m_Speed != -1 )
return m_Speed;
if ( Core.ML )
return MlSpeed;
else if ( Core.AOS )
return AosSpeed;
return m_Speed;
}
set{ m_Speed = value; InvalidateProperties(); }
}
@ -856,7 +868,7 @@ namespace Server.Items
public virtual TimeSpan GetDelay( Mobile m )
{
int speed = this.Speed;
double speed = this.Speed;
if ( speed == 0 )
return TimeSpan.FromHours( 1.0 );
@ -901,14 +913,26 @@ namespace Server.Items
if ( bonus > 60 )
bonus = 60;
double ticks;
speed = (int)Math.Floor( speed * (bonus + 100.0) / 100.0 );
if ( Core.ML )
{
int stamTicks = m.Stam / 30;
if ( speed <= 0 )
speed = 1;
ticks = speed * 4;
ticks = Math.Floor( ( ticks - stamTicks ) * ( 100.0 / ( 100 + bonus ) ) );
}
else
{
speed = Math.Floor( speed * ( bonus + 100.0 ) / 100.0 );
int ticks = (int)Math.Floor( (80000.0 / ((m.Stam + 100) * speed)) - 2 );
if ( speed <= 0 )
speed = 1;
ticks = Math.Floor( ( 80000.0 / ( ( m.Stam + 100 ) * speed ) ) - 2 );
}
// Swing speed currently capped at one swing every 1.25 seconds (5 ticks).
if ( ticks < 5 )
ticks = 5;
@ -917,7 +941,7 @@ namespace Server.Items
}
else if ( Core.AOS )
{
int v = (m.Stam + 100) * speed;
int v = (m.Stam + 100) * (int) speed;
int bonus = AosAttributes.GetValue( m, AosAttribute.WeaponSpeed );
@ -944,7 +968,7 @@ namespace Server.Items
}
else
{
int v = (m.Stam + 100) * speed;
int v = (m.Stam + 100) * (int) speed;
if ( v <= 0 )
v = 1;
@ -2412,7 +2436,7 @@ namespace Server.Items
{
base.Serialize( writer );
writer.Write( (int) 8 ); // version
writer.Write( (int) 9 ); // version
SaveFlag flags = SaveFlag.None;
@ -2502,7 +2526,7 @@ namespace Server.Items
writer.Write( (int) m_MissSound );
if ( GetSaveFlag( flags, SaveFlag.Speed ) )
writer.Write( (int) m_Speed );
writer.Write( (float) m_Speed );
if ( GetSaveFlag( flags, SaveFlag.MaxRange ) )
writer.Write( (int) m_MaxRange );
@ -2583,6 +2607,7 @@ namespace Server.Items
switch ( version )
{
case 9:
case 8:
case 7:
case 6:
@ -2676,7 +2701,12 @@ namespace Server.Items
m_MissSound = -1;
if ( GetSaveFlag( flags, SaveFlag.Speed ) )
m_Speed = reader.ReadInt();
{
if ( version < 9 )
m_Speed = reader.ReadInt();
else
m_Speed = reader.ReadFloat();
}
else
m_Speed = -1;
@ -3239,7 +3269,11 @@ namespace Server.Items
list.Add( 1060407, nrgy.ToString() ); // energy damage ~1_val~%
list.Add( 1061168, "{0}\t{1}", MinDamage.ToString(), MaxDamage.ToString() ); // weapon damage ~1_val~ - ~2_val~
list.Add( 1061167, Speed.ToString() ); // weapon speed ~1_val~
if ( Core.ML )
list.Add( 1061167, String.Format( "{0}s", Speed ) ); // weapon speed ~1_val~
else
list.Add( 1061167, Speed.ToString() );
if ( MaxRange > 1 )
list.Add( 1061169, MaxRange.ToString() ); // range ~1_val~