- Spawners now show all (instead of only 2) spawned objects, grouped by type, sorted alphabetically in their mouseover menu. (Displayed amounts fixed too.)
- Talisman slayers fixed to account for inheritance. - Added repond slayer vulnerability to Troglodyte. - Added overload for AOS.Damage with chaos damage support. - Corrected order of ML artifact award messages. - MageAI corrected to not meditate when already meditating. - Changed MageAI necro/mage bias to something more sensible. - Changed speed of most named ML mobs. - Skeletal steeds are now bleed immune. - Damage cap of 200 (before resists) added to fire breath attacks. - Damaging aura effect added to BaseCreature. - Necromancy skill added to several undead mobs. - The succubus special drain effect message no longer shows. - Corrected Sir Patrick's drain effect to account for LOS. - Added healing skill to Troglodytes. - Added named ML mobs for the Labyrinth, Painted Caves, Palace of Paroxysmus, Sanctuary and Twisted Weald. - Added changelings. - Disabled auto unequiping of weapons when meditating for nonplayers. - Added cast animations for players in wraith form, lich form and horrific beast. - Fixed Holy Light to account for LOS. - Fixed Animate Dead to account for inheritance. - Fixed Wither friendly fire issue when cast by monsters.
This commit is contained in:
parent
a1b906f921
commit
287bacac0e
46 changed files with 2154 additions and 53 deletions
|
|
@ -522,7 +522,7 @@ namespace Server.Spells
|
|||
|
||||
TimeSpan castDelay = this.GetCastDelay();
|
||||
|
||||
if ( ShowHandMovement && m_Caster.Body.IsHuman )
|
||||
if ( ShowHandMovement && ( m_Caster.Body.IsHuman || ( m_Caster.Player && m_Caster.Body.IsMonster ) ) )
|
||||
{
|
||||
int count = (int)Math.Ceiling( castDelay.TotalSeconds / AnimateDelay.TotalSeconds );
|
||||
|
||||
|
|
@ -857,8 +857,13 @@ namespace Server.Spells
|
|||
return;
|
||||
}
|
||||
|
||||
if ( !m_Spell.Caster.Mounted && m_Spell.Caster.Body.IsHuman && m_Spell.m_Info.Action >= 0 )
|
||||
m_Spell.Caster.Animate( m_Spell.m_Info.Action, 7, 1, true, false, 0 );
|
||||
if ( !m_Spell.Caster.Mounted && m_Spell.m_Info.Action >= 0 )
|
||||
{
|
||||
if ( m_Spell.Caster.Body.IsHuman )
|
||||
m_Spell.Caster.Animate( m_Spell.m_Info.Action, 7, 1, true, false, 0 );
|
||||
else if ( m_Spell.Caster.Player && m_Spell.Caster.Body.IsMonster )
|
||||
m_Spell.Caster.Animate( 12, 7, 1, true, false, 0 );
|
||||
}
|
||||
|
||||
if ( !Running )
|
||||
m_Spell.m_AnimTimer = null;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Server.Spells.Chivalry
|
|||
List<Mobile> targets = new List<Mobile>();
|
||||
|
||||
foreach ( Mobile m in Caster.GetMobilesInRange( 3 ) )
|
||||
if ( Caster != m && SpellHelper.ValidIndirectTarget( Caster, m ) && Caster.CanBeHarmful( m, false ) )
|
||||
if ( Caster != m && SpellHelper.ValidIndirectTarget( Caster, m ) && Caster.CanBeHarmful( m, false ) && ( !Core.AOS || Caster.InLOS( m ) ) )
|
||||
targets.Add( m );
|
||||
|
||||
Caster.PlaySound( 0x212 );
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ namespace Server.Spells.Necromancy
|
|||
bool contains = ( types.Length == 0 );
|
||||
|
||||
for ( int j = 0; !contains && j < types.Length; ++j )
|
||||
contains = ( types[j] == type );
|
||||
contains = types[j].IsAssignableFrom( type );
|
||||
|
||||
if ( contains )
|
||||
return group;
|
||||
|
|
|
|||
|
|
@ -43,9 +43,31 @@ namespace Server.Spells.Necromancy
|
|||
{
|
||||
List<Mobile> targets = new List<Mobile>();
|
||||
|
||||
BaseCreature cbc = Caster as BaseCreature;
|
||||
bool isMonster = ( cbc != null && !cbc.Controlled && !cbc.Summoned );
|
||||
|
||||
foreach( Mobile m in Caster.GetMobilesInRange( Core.ML ? 4 : 5 ) )
|
||||
if( Caster != m && Caster.InLOS( m ) && SpellHelper.ValidIndirectTarget( Caster, m ) && Caster.CanBeHarmful( m, false ) )
|
||||
{
|
||||
if( Caster != m && Caster.InLOS( m ) && ( isMonster || SpellHelper.ValidIndirectTarget( Caster, m ) ) && Caster.CanBeHarmful( m, false ) )
|
||||
{
|
||||
if ( isMonster )
|
||||
{
|
||||
if ( m is BaseCreature )
|
||||
{
|
||||
BaseCreature bc = (BaseCreature)m;
|
||||
|
||||
if ( !bc.Controlled && !bc.Summoned && bc.Team == cbc.Team )
|
||||
continue;
|
||||
}
|
||||
else if ( !m.Player )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
targets.Add( m );
|
||||
}
|
||||
}
|
||||
|
||||
Effects.PlaySound( Caster.Location, map, 0x1FB );
|
||||
Effects.PlaySound( Caster.Location, map, 0x10B );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue