// v2.1.0 - Updated for new corpse system in HCR.
// v2.0.0 -
//::////////////////////////////////////////////////////////////////////////////
//:: FileName:  hark_d_rez_act
//::////////////////////////////////////////////////////////////////////////////
/*
   The henchman will attempt to rez the nearest body.
*/
//::////////////////////////////////////////////////////////////////////////////
#include "hark_i0_heal"
//::////////////////////////////////////////////////////////////////////////////
void main()
{
  object oDC = GetNearestObjectByTag("DeathCorpse");
  string sID = GetLocalString(oDC, "Pkey");
  object oDC2 = GetLocalObject(GetModule(), "DC2" + sID);
  object oOwner = GetLocalObject(oDC, "Owner");
  int nLevel = GetLevelByClass(CLASS_TYPE_CLERIC);
  if (GetIsObjectValid(oDC) && GetObjectSeen(oDC2))
    {
     ClearActions(CLEAR_D_REZ_ACT_Main_1);
     if (GetHasScroll(SPELL_RESURRECTION) && (nLevel >= HS_REZ_RESURRECT_ICL ||
        !GetLocalInt(GetObjectByTag(HS_VARS_OBJ), HS_VAR_REZ_LVL)))
       {
        if (GetLocalInt(GetObjectByTag(HS_VARS_OBJ), HS_VAR_REZ_FDB))
          { SendMessageToPC(oOwner, GetName(OBJECT_SELF) + REZ_MSG01); }
        UseScrollOnObject(SPELL_RESURRECTION, oDC);
       }
     else if (GetHasScroll(SPELL_RAISE_DEAD) && (nLevel >= HS_REZ_RAISEDEAD_ICL ||
             !GetLocalInt(GetObjectByTag(HS_VARS_OBJ), HS_VAR_REZ_LVL)))
       {
        if (GetLocalInt(GetObjectByTag(HS_VARS_OBJ), HS_VAR_REZ_FDB))
          { SendMessageToPC(oOwner, GetName(OBJECT_SELF) + REZ_MSG02); }
        UseScrollOnObject(SPELL_RAISE_DEAD, oDC);
       }
     else if (GetHasSpell(SPELL_RESURRECTION))
       {
        if (GetLocalInt(GetObjectByTag(HS_VARS_OBJ), HS_VAR_REZ_FDB))
          { SendMessageToPC(oOwner, GetName(OBJECT_SELF) + REZ_MSG01); }
        ActionCastSpellAtObject(SPELL_RESURRECTION, oDC);
       }
     else if (GetHasSpell(SPELL_RAISE_DEAD))
       {
        if (GetLocalInt(GetObjectByTag(HS_VARS_OBJ), HS_VAR_REZ_FDB))
          { SendMessageToPC(oOwner, GetName(OBJECT_SELF) + REZ_MSG02); }
        ActionCastSpellAtObject(SPELL_RAISE_DEAD, oDC);
       }
     else
       { SpeakString(REZ_MSG29); }
    }
}
//::////////////////////////////////////////////////////////////////////////////
