Sound/effect fixes, DeathStrike instant damage after 5 steps, Evasion of spells, with OSI data. Original data c/o Kenko

This commit is contained in:
asayre 2007-01-23 06:56:23 +00:00
parent 2cbc73ee85
commit f67a870208
10 changed files with 309 additions and 205 deletions

View file

@ -53,12 +53,12 @@ namespace Server.Spells.Ninjitsu
if( m_Table.Contains( defender ) )
{
attacker.SendLocalizedMessage( 1063092 ); // Your opponent lands another Death Strike!
defender.SendLocalizedMessage( 1063092 ); // Your opponent lands another Death Strike!
info = (DeathStrikeInfo)m_Table[defender];
if( info.m_Steps > 0 )
damageBonus = info.m_Attacker.Skills[SkillName.Ninjitsu].Fixed / 150;
damageBonus = attacker.Skills[SkillName.Ninjitsu].Fixed / 150;
if( info.m_Timer != null )
info.m_Timer.Stop();
@ -67,15 +67,16 @@ namespace Server.Spells.Ninjitsu
}
else
{
attacker.SendLocalizedMessage( 1063094 ); // You inflict a Death Strike upon your opponent!
defender.SendLocalizedMessage( 1063093 ); // You have been hit by a Death Strike! Move with caution!
}
attacker.SendLocalizedMessage( 1063094 ); // You inflict a Death Strike upon your opponent!
defender.FixedParticles( 0x374A, 1, 17, 0x26BC, EffectLayer.Waist );
attacker.PlaySound( 0x50D );
attacker.PlaySound( attacker.Female ? 0x50D : 0x50E );
info = new DeathStrikeInfo( defender, attacker, damageBonus );
info.m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 5.0 ), new TimerStateCallback( ProcessDeathStrike ), info );
info.m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 5.0 ), new TimerStateCallback( ProcessDeathStrike ), defender );
m_Table[defender] = info;
@ -108,12 +109,18 @@ namespace Server.Spells.Ninjitsu
if( info == null )
return;
info.m_Steps++;
if( ++info.m_Steps >= 5 )
ProcessDeathStrike( m );
}
private static void ProcessDeathStrike( object state )
{
DeathStrikeInfo info = (DeathStrikeInfo)state;
Mobile defender = (Mobile)state;
DeathStrikeInfo info = m_Table[defender] as DeathStrikeInfo;
if( info == null )
return;
double ninjitsu = info.m_Attacker.Skills[SkillName.Ninjitsu].Fixed;
int divisor = (info.m_Steps >= 5) ? 30 : 80;
@ -132,6 +139,10 @@ namespace Server.Spells.Ninjitsu
//info.m_Target.Damage( damage, info.m_Attacker );
AOS.Damage( info.m_Target, info.m_Attacker, damage, true, 100, 0, 0, 0, 0 );
if( info.m_Timer != null )
info.m_Timer.Stop();
m_Table.Remove( info.m_Target );
}
}

View file

@ -68,8 +68,9 @@ namespace Server.Spells.Ninjitsu
ClearCurrentMove( attacker );
attacker.SendLocalizedMessage( 1063098 ); // You focus all of your abilities and strike with deadly force!
attacker.PlaySound( 0x510 );
CheckGain( attacker );
}
}
}
}

View file

@ -71,8 +71,13 @@ namespace Server.Spells.Ninjitsu
}
else
{
attacker.FixedParticles( 0x37BE, 1, 5, 0x26BD, 0x0, 0x1, EffectLayer.Waist );
attacker.PlaySound( 0x510 );
attacker.SendLocalizedMessage( 1063100 ); // Your quick flight to your target causes extra damage as you strike!
defender.FixedParticles( 0x37BE, 1, 5, 0x26BD, 0, 0x1, EffectLayer.Waist );
CheckGain( attacker );
}
ClearCurrentMove( attacker );
@ -137,4 +142,4 @@ namespace Server.Spells.Ninjitsu
m_Table.Remove( info.m_Mobile );
}
}
}
}