- 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:
parent
207be3f720
commit
123af436f9
99 changed files with 2341 additions and 75 deletions
|
|
@ -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~
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue