protected override void OnTick()
{
if (m_Corpse.Deleted || m_Ghost.Deleted || m_Healer.Deleted)
{
return;
}
if (!m_Healer.Alive)
{
m_Healer.SendMessage("You were unable to finish your work before your died.");
return;
}
if (m_Healer.CheckSkill(SkillName.Healing, 40.0, 120.0))
{
m_Ghost.Location = m_Corpse.Location;
m_Ghost.Resurrect();
if (m_Healer is TeiravonMobile && (((TeiravonMobile)m_Healer).IsCleric() || ((TeiravonMobile)m_Healer).IsDarkCleric() || ((TeiravonMobile)m_Healer).IsForester() || ((TeiravonMobile)m_Healer).IsPaladin()))
{
Titles.AwardExp((TeiravonMobile)(m_Healer), m_Ghost.Fame);
}
Titles.AwardFame(m_Ghost, -(m_Ghost.Fame / 15), true);
m_Corpse.Open(m_Ghost, true);
m_Ghost.Animate(m_Ghost.Body == 17 ? 2 : 21, 4, 1, false, false, 0);
m_Ghost.Emote("*Gasps back to life!*");
m_Ghost.PlaySound(m_Ghost.Female ? 0x319 : 0x429);
m_Healer.SendMessage("You revive the fallen!");
Titles.AwardFame(m_Healer, m_Ghost.Fame / 20, true);
}
else
{
m_Healer.SendMessage("You were unable to revive the body.");
}
}