/*--------------------------------------------------------

Script Name: securedoorscript
----------------------------------------------------------
Created By: Genisys(Guile)
Created On: 4/9/09
----------------------------------------------------------

This script is executed from 2 places, first, the
OnClientEnter Event, and secondly, when the player
aquires the token tagnamed "napper", which is given by
a DM from a tagbased item script...

----------------------------------------------------------*/

void main()
{
 object oPC = OBJECT_SELF;
 int nNapTime = GetLocalInt(oPC, "NAP_TIME");
 object oNapper = GetItemPossessedBy(oPC, "napper");
 float fInt;
 int nCut = GetCutsceneMode(oPC);
 string sMsg = "My world is fading to black, I cannot see the world or hear it anymore!";
 string sMsg2 = "You MUST complete the FULL 1 hour rest!";
 string sMsg3 = "If you log out time starts all over again!";

//If it's a DM stop here!
if(GetIsDM(oPC) || GetIsDMPossessed(oPC))
{ return; }

//Note monsters can be put to sleep!(Though not like the sleep spell!)

 if(nNapTime >=1)
 {
   nNapTime -=1;
   fInt = IntToFloat(nNapTime)*60; //minutes to seconds...
   SetLocalInt(oPC, "NAP_TIME", nNapTime);

   //If not in cutscene already!
   if(nCut==FALSE)
   {
    SetCutsceneMode(oPC, TRUE, FALSE);
    SetCameraMode(oPC, CAMERA_MODE_STIFF_CHASE_CAMERA);
    AssignCommand(oPC, ActionSpeakString(sMsg, TALKVOLUME_SHOUT));
    AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0, fInt));
    FloatingTextStringOnCreature("Your character has been put to sleep by a DM for 1 Hour!", oPC, FALSE);
    DelayCommand(1.2, FloatingTextStringOnCreature("Your character has been put to sleep by a DM for 1 Hour!", oPC, FALSE));
    DelayCommand(2.4, FloatingTextStringOnCreature(sMsg2, oPC, FALSE));
    DelayCommand(3.6, FloatingTextStringOnCreature(sMsg2, oPC, FALSE));
    DelayCommand(4.8, FloatingTextStringOnCreature(sMsg3, oPC, FALSE));
    DelayCommand(6.0, FloatingTextStringOnCreature(sMsg3, oPC, FALSE));
    DelayCommand(10.0, FadeToBlack(oPC, FADE_SPEED_SLOW));
    }

   //After 60 seconds, run it again!
   DelayCommand(60.0, ExecuteScript("naptime", oPC));
 }
 else
 {
  DelayCommand(2.0, SetCutsceneMode(oPC, FALSE));
  FadeFromBlack(oPC, FADE_SPEED_SLOW);
  SetCameraMode(oPC, CAMERA_MODE_TOP_DOWN);
  DestroyObject(oNapper, 0.0f);
 }

}