From 910412b6e1b8c5656a44635d2f57fa274e928b8b Mon Sep 17 00:00:00 2001 From: xavier Date: Mon, 22 Aug 2011 01:55:18 +0000 Subject: [PATCH] --- .../Mobiles/Monsters/ML/Special/Ilhenir.cs | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs b/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs index ea640d066..327ceecfe 100644 --- a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs +++ b/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs @@ -405,16 +405,26 @@ namespace Server.Mobiles Damage((Mobile)state); } - public virtual void Damage(Mobile m) + public virtual void Damage( Mobile m ) { - if (!m.Alive) - StopTimer(m); + if( m == null || m.Deleted || !m.Alive ) + { + StopTimer( m ); + } if( m_Corrosive ) { for( int i = 0; i < m.Items.Count; i++ ) { - IDurability item = m.Items[ i ] as IDurability; + Item m_Item = m.Items[ i ] as Item; + IDurability item = m_Item as IDurability; + + Mobile m_Parent = null; + + if( m_Item.Parent != null && m_Item.Parent is Mobile ) + { + m_Parent = m_Item.Parent as Mobile; + } if( item != null && Utility.RandomDouble() < 0.25 ) { @@ -424,11 +434,7 @@ namespace Server.Mobiles { if( item.MaxHitPoints <= 10 ) { - if( item.MaxHitPoints <= 0 ) - { - ( (Item)item ).Delete(); - } - else + if( item.MaxHitPoints > 0 ) { item.MaxHitPoints--; } @@ -437,11 +443,6 @@ namespace Server.Mobiles { item.MaxHitPoints -= 10; } - - if( Parent is Mobile ) - { - ( (Mobile)Parent ).LocalOverheadMessage( MessageType.Regular, 0x3B2, 1061121 ); // Your equipment is severely damaged. - } } else { @@ -453,6 +454,19 @@ namespace Server.Mobiles item.HitPoints -= 10; } } + + if( item.HitPoints <= 0 ) + { + if( m_Parent != null && !m_Parent.Deleted ) + { + m_Parent.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1061121 ); // Your equipment is severely damaged. + } + + if( item.MaxHitPoints <= 0 ) + { + m_Item.Delete(); + } + } } } else