public override void OnDeath(Container c)
{
base.OnDeath(c);
m_EquipSnapshot = null;
HueMod = -1;
NameMod = null;
SavagePaintExpiration = TimeSpan.Zero;
SetHairMods(-1, -1);
PolymorphSpell.StopTimer(this);
IncognitoSpell.StopTimer(this);
DisguiseTimers.RemoveTimer(this);
EndAction(typeof(PolymorphSpell));
EndAction(typeof(IncognitoSpell));
SkillHandlers.StolenItem.ReturnOnDeath(c);
if (m_PermaFlags.Count > 0)
{
m_PermaFlags.Clear();
if (c is Corpse)
((Corpse)c).Criminal = true;
if (SkillHandlers.Stealing.ClassicMode)
Criminal = true;
}
Mobile killer = this.FindMostRecentDamager(true);
if (killer is BaseCreature)
{
BaseCreature bc = (BaseCreature)killer;
Mobile master = bc.GetMaster();
if (master != null)
killer = master;
}
Server.Guilds.Guild.HandleDeath(this, killer);
if (m_BuffTable != null)
{
List<BuffInfo> list = new List<BuffInfo>();
foreach (BuffInfo buff in m_BuffTable.Values)
{
if (!buff.RetainThroughDeath)
{
list.Add(buff);
}
}
for (int i = 0; i < list.Count; i++)
{
RemoveBuff(list[i]);
}
}
}