// vamp_create_span
void fnNewVampire(object oMaster,object oWP,string sID)
{
  object oTemp=GetObjectByTag(sID+"_PROXY");
  object oNew=CreateObject(OBJECT_TYPE_CREATURE,"vampirespawn",GetLocation(oMaster));
  ChangeFaction(oNew,oTemp);
  //DestroyObject(oTemp);
  SetLocalString(oNew,"sTeamID",sID);
} // fnNewVampire()


void main()
{
   object oMe=GetPCSpeaker();
   if (!GetIsObjectValid(oMe)) oMe=OBJECT_SELF;
   object oTarget=GetLocalObject(oMe,"oTarget");
   int nCHP=GetCurrentHitPoints(oTarget);
   int nBP=GetLocalInt(oMe,"nBloodPool");
   string sID=GetLocalString(oMe,"sTeamID");
   object oWP=GetWaypointByTag(sID+"_RESOURCES");
   effect eBeam=EffectBeam(VFX_BEAM_SILENT_EVIL,oMe,BODY_NODE_HAND);
   if (nCHP<5)
   { // good target
     ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBeam,oTarget,9.8);
     nBP=nBP-100;
     SetLocalInt(oMe,"nBloodPool",nBP);
     SendMessageToPC(oMe,"You expend 100 blood to bring the new vampire into being.");
     if (GetIsPC(oTarget)==TRUE)
     { // convert PC
       DelayCommand(10.0,ExecuteScript("player_vampire",oTarget));
     } // convert PC
     else
     { // make vampire spawn
       DelayCommand(10.0,DestroyObject(oTarget));
       DelayCommand(10.1,fnNewVampire(oMe,oWP,sID));
     } // make vampire spawn
   } // good target
   else
   {
     SendMessageToPC(oMe,"That target has not been weakened enough to bring them over.");
   }
}