This commit is contained in:
mark 2009-09-06 02:06:07 +00:00
parent 4ee6ca5951
commit 06e5c8b732
70 changed files with 2798 additions and 286 deletions

View file

@ -4,6 +4,7 @@ using Server.Targeting;
using Server.Network;
using Server.Misc;
using Server.Items;
using Server.Mobiles;
namespace Server.Spells.Fifth
{
@ -183,7 +184,9 @@ namespace Server.Spells.Fifth
p = Poison.Regular;
}
m.ApplyPoison( m_Caster, p );
if ( m.ApplyPoison( m_Caster, p ) == ApplyPoisonResult.Poisoned )
if ( SpellHelper.CanRevealCaster( m ) )
m_Caster.RevealingAction();
}
public override bool OnMoveOver( Mobile m )

View file

@ -4,6 +4,7 @@ using Server.Targeting;
using Server.Network;
using Server.Misc;
using Server.Items;
using Server.Mobiles;
namespace Server.Spells.Fourth
{
@ -184,6 +185,9 @@ namespace Server.Spells.Fourth
{
if ( Visible && m_Caster != null && (!Core.AOS || m != m_Caster) && SpellHelper.ValidIndirectTarget( m_Caster, m ) && m_Caster.CanBeHarmful( m, false ) )
{
if ( SpellHelper.CanRevealCaster( m ) )
m_Caster.RevealingAction();
m_Caster.DoHarmful( m );
int damage = m_Damage;
@ -257,6 +261,9 @@ namespace Server.Spells.Fourth
while ( m_Queue.Count > 0 )
{
Mobile m = (Mobile)m_Queue.Dequeue();
if ( SpellHelper.CanRevealCaster( m ) )
caster.RevealingAction();
caster.DoHarmful( m );

View file

@ -62,9 +62,12 @@ namespace Server.Spells.Necromancy
if( map != null )
{
List<Mobile> targets = new List<Mobile>();
if ( Caster.CanBeHarmful(m, false ) )
targets.Add( m );
foreach( Mobile targ in m.GetMobilesInRange( 2 ) )
if( (Caster == targ || m == targ || SpellHelper.ValidIndirectTarget( Caster, targ )) && Caster.CanBeHarmful( targ, false ) )
if( ( targ != Caster ) && ( SpellHelper.ValidIndirectTarget( Caster, targ ) && Caster.CanBeHarmful( targ, false) ) )
targets.Add( targ );
for( int i = 0; i < targets.Count; ++i )

View file

@ -120,8 +120,7 @@ namespace Server.Spells.Ninjitsu
{
m_Owner.FinishSequence();
if ( !from.CheckSkill( SkillName.Hiding, 0.0, 100.0 ) ) //TODO: Hiding check or stealth check?
from.RevealingAction();
Server.SkillHandlers.Stealth.OnUse( from );
}
}
}

View file

@ -3,6 +3,7 @@ using Server.Targeting;
using Server.Items;
using Server.Network;
using Server.Misc;
using Server.Mobiles;
namespace Server.Spells.Sixth
{
@ -161,6 +162,9 @@ namespace Server.Spells.Sixth
{
if ( Visible && m_Caster != null && (!Core.AOS || m != m_Caster) && SpellHelper.ValidIndirectTarget( m_Caster, m ) && m_Caster.CanBeHarmful( m, false ) )
{
if ( SpellHelper.CanRevealCaster( m ) )
m_Caster.RevealingAction();
m_Caster.DoHarmful( m );
double duration;

View file

@ -69,18 +69,14 @@ namespace Server.Spells.Spellweaving
if ( house != null)
if ( !house.IsFriend ( Caster ) )
return;
if( !SpellHelper.FindValidSpawnLocation( map, ref p, m_MobileTarg ) )
if (m != null) //say "Target can not be seen" if you target directly a mobile, like in OSI
{
Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
}
else if ( map == null || !map.CanSpawnMobile( p.X, p.Y, p.Z ) )
{
Caster.SendLocalizedMessage( 501942 ); // That location is blocked.
}
//say "Target can not be seen" if you target directly a mobile, like in OSI
if (m != null)
{
Caster.SendLocalizedMessage(500237); // Target can not be seen.
}
else if( SpellHelper.CheckTown( p, Caster ) && (m_MobileTarg ? CheckHSequence( m ) : CheckSequence()) )
{
TimeSpan duration = TimeSpan.FromSeconds( Caster.Skills.Spellweaving.Value/24 + 25 + FocusLevel*2 );
@ -89,8 +85,7 @@ namespace Server.Spells.Spellweaving
m = null;
NatureFury nf = new NatureFury( m );
if ( !Caster.InLOS ( p ) )
return;
BaseCreature.Summon( nf, false, Caster, p , 0x5CB, duration );
Timer t = null;
@ -112,8 +107,7 @@ namespace Server.Spells.Spellweaving
{
private NatureFurySpell m_Owner;
public InternalTarget( NatureFurySpell owner )
: base( 10, true, TargetFlags.None )
public InternalTarget( NatureFurySpell owner ) : base( 10, true, TargetFlags.None )
{
m_Owner = owner;
CheckLOS = true;
@ -124,8 +118,6 @@ namespace Server.Spells.Spellweaving
if( o is IPoint3D )
m_Owner.Target( (IPoint3D)o );
}
protected override void OnTargetFinish( Mobile from )
{
if( m_Owner != null )

View file

@ -95,6 +95,16 @@ namespace Server.Spells.Third
}
m.PlaySound( 0x1FE );
IPooledEnumerable eable = m.GetItemsInRange( 0 );
foreach ( Item item in eable )
{
if ( item is ParalyzeFieldSpell.InternalItem || item is PoisonFieldSpell.InternalItem || item is FireFieldItem )
item.OnMoveOver( m );
}
eable.Free();
}
FinishSequence();