- 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:
eos 2012-03-04 05:01:41 +00:00
parent a1b906f921
commit 287bacac0e
46 changed files with 2154 additions and 53 deletions

View file

@ -654,6 +654,9 @@ namespace Server.Mobiles
if ( IsParagon )
damage = (int)(damage / Paragon.HitsBuff);
if ( damage > 200 )
damage = 200;
return damage;
}
@ -5007,7 +5010,58 @@ namespace Server.Mobiles
{
patient.PlaySound( HealSound );
}
#endregion
#region Damaging Aura
private DateTime m_NextAura;
public virtual bool HasAura { get { return false; } }
public virtual TimeSpan AuraInterval { get { return TimeSpan.FromSeconds( 5 ); } }
public virtual int AuraRange { get { return 4; } }
public virtual int AuraBaseDamage { get { return 5; } }
public virtual int AuraPhysicalDamage { get{ return 0; } }
public virtual int AuraFireDamage { get{ return 100; } }
public virtual int AuraColdDamage { get{ return 0; } }
public virtual int AuraPoisonDamage { get{ return 0; } }
public virtual int AuraEnergyDamage { get{ return 0; } }
public virtual int AuraChaosDamage { get { return 0; } }
public virtual void AuraDamage()
{
if ( !Alive || IsDeadBondedPet )
return;
List<Mobile> list = new List<Mobile>();
foreach ( Mobile m in GetMobilesInRange( AuraRange ) )
{
if ( m == this || !CanBeHarmful( m, false ) || ( Core.AOS && !InLOS( m ) ) )
continue;
if ( m is BaseCreature )
{
BaseCreature bc = (BaseCreature)m;
if ( bc.Controlled || bc.Summoned || bc.Team != Team )
list.Add( m );
}
else if ( m.Player )
{
list.Add( m );
}
}
foreach ( Mobile m in list )
{
AOS.Damage( m, this, AuraBaseDamage, AuraPhysicalDamage, AuraFireDamage, AuraColdDamage, AuraPoisonDamage, AuraEnergyDamage, AuraChaosDamage );
AuraEffect( m );
}
}
public virtual void AuraEffect( Mobile m )
{
}
#endregion
public virtual void OnThink()
@ -5063,6 +5117,12 @@ namespace Server.Mobiles
m_NextHealTime = DateTime.Now + TimeSpan.FromSeconds( HealInterval );
}
}
if ( HasAura && DateTime.Now >= m_NextAura )
{
AuraDamage();
m_NextAura = DateTime.Now + AuraInterval;
}
}
public virtual bool Rummage()