////////////////////////////////////////////////////////////////////////////////
// Real Time Strategy - NWN - Mana Machine Use
//=============================================================================
// By Deva Bryson Winblood.  03/10/2003
////////////////////////////////////////////////////////////////////////////////
#include "rtsh_multiplay"

void main()
{
     object oPC=GetLastUsedBy();
     object oMe=OBJECT_SELF;
     object oOwner=GetLocalObject(oMe,"oOwner");
     int nMana=fnGetTeamMana(oOwner);
     object oItem;
     effect eVFX=EffectVisualEffect(VFX_FNF_SMOKE_PUFF);
     string sID=GetLocalString(oOwner,"sTeamID");
     string sPID=GetLocalString(oPC,"sTeamID");
     if (oPC==oOwner||(sID==sPID))
     { // convert a soul to 10 mana
       oItem=GetItemPossessedBy(oPC,"SoulToken");
       if (oItem!=OBJECT_INVALID)
       { // use token
         DestroyObject(oItem);
         SendMessageToPC(oPC,"You burn a soul token in this machine and 10 mana is added to your vault.");
         nMana=nMana+10;
         fnSetTeamMana(oOwner,nMana);
         ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,oPC,1.0);
       } // use token
       else
         SendMessageToPC(oPC,"You do not have a soul token to burn in this machine.");
     } // convert a soul to 10 mana
     else
     { //  not the owner
       if (nMana>0)
       {
        SendMessageToPC(oPC,"You feel this device sucking at you.  You lost 1 mana.");
        nMana=fnGetTeamMana(oPC);
        nMana=nMana-1;
        fnSetTeamMana(oPC,nMana);
        nMana=fnGetTeamMana(oOwner);
        nMana=nMana+1;
        fnSetTeamMana(oOwner,nMana);
        SendMessageToPC(oOwner,"One mana was added to your mana vault from the mana machine.");
        ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,oPC,1.0);
      }
     } //  not the owner
}