void main()
{
object oMe = OBJECT_SELF;
int nMonth = GetCalendarMonth();
int nDay = GetCalendarDay();
int nHour = GetTimeHour();
int nDHr;
int nTHr;
string sSufix;
string sSufix2;
string sSufix3;

//The color set in the time_keeper script..
string sColor = GetLocalString(oMe, "MODULECOLOR");

//Hour
if(nHour>12)
{ nDHr = nHour - 12; }
else if(nHour==0)
{ nDHr = 12; }
else
{ nDHr = nHour; }

//Hour Suffix
if(nDHr==3)
{ sSufix = "rd "; }
else if(nDHr==2)
{ sSufix = "nd "; }
else if(nDHr==1)
{ sSufix = "rst "; }
else
{ sSufix = "th "; }

//Day Suffix
if(nDay==3)
{ sSufix2 = "rd "; }
else if(nDay==2)
{ sSufix2 = "nd "; }
else if(nDay==1)
{ sSufix2 = "rst "; }
else
{ sSufix2 = "th "; }

//Month Suffix
if(nMonth==3)
{ sSufix3 = "rd "; }
else if(nMonth==2)
{ sSufix3 = "nd "; }
else if(nMonth==1)
{ sSufix3 = "rst "; }
else
{ sSufix3 = "th "; }

string sMsg;
sMsg = sColor;
sMsg += "It's currently the ";
sMsg += IntToString(nDHr);
sMsg += sSufix;
sMsg += " Hour, of the ";
sMsg += IntToString(nDay);
sMsg += sSufix2;
sMsg += " Day, in the ";
sMsg += IntToString(nMonth);
sMsg += sSufix3;
sMsg += " Month, of the Year ";
sMsg += IntToString(GetCalendarYear());

///Anti Spamming Message System :)
if(GetLocalInt(GetLastUsedBy(), "TIMESPAM")==1)
{
SetLocalInt(GetLastUsedBy(), "TIMESPAM", 2);
AssignCommand(oMe, ActionSpeakString("I told you the time, now get lost.", TALKVOLUME_TALK));
}
else if(GetLocalInt(GetLastUsedBy(), "TIMESPAM")==2)
{
SetLocalInt(GetLastUsedBy(), "TIMESPAM", 3);
AssignCommand(oMe, ActionSpeakString("Are you deaf?  I said get lost!", TALKVOLUME_TALK));
}
else if(GetLocalInt(GetLastUsedBy(), "TIMESPAM")==3)
{
SetLocalInt(GetLastUsedBy(), "TIMESPAM", 3);
AssignCommand(oMe, ActionSpeakString("So, you wish to play?  Well, Let's play then!", TALKVOLUME_TALK));


//Torture the offendee!
object oPC = GetLastUsedBy();

if (!GetIsPC(oPC)) return;

object oTarget;
oTarget = oPC;


int nInt;
nInt = GetObjectType(oTarget);

effect eEffect;
eEffect = EffectVisualEffect(VFX_FNF_WORD);

if (nInt != OBJECT_TYPE_WAYPOINT)
   DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
else
   DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));

oTarget = oPC;

DelayCommand(1.2,AssignCommand(oTarget, ActionMoveAwayFromObject(OBJECT_SELF, TRUE, 20.0f)));

oTarget = oPC;

eEffect = EffectTurned();

eEffect = SupernaturalEffect(eEffect);

DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 30.0f));

oTarget = oPC;

nInt = GetObjectType(oTarget);

eEffect = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);

if (nInt != OBJECT_TYPE_WAYPOINT)
   DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
else
   DelayCommand(3.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));


oTarget = oPC;

nInt = GetObjectType(oTarget);

eEffect = EffectVisualEffect(VFX_FNF_UNDEAD_DRAGON);

if (nInt != OBJECT_TYPE_WAYPOINT)
   DelayCommand(4.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
else
   DelayCommand(4.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));

oTarget = oPC;
eEffect = EffectSlow();

eEffect = SupernaturalEffect(eEffect);

DelayCommand(5.2, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 60.0f));

oTarget = oPC;
nInt = GetObjectType(oTarget);

eEffect = EffectVisualEffect(VFX_IMP_HARM);

if (nInt != OBJECT_TYPE_WAYPOINT)
   DelayCommand(7.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
else
   DelayCommand(7.2, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));

oTarget = oPC;
//take all but 80 life (if they have that much
eEffect = EffectDamage(GetCurrentHitPoints(oTarget)-80, DAMAGE_TYPE_NEGATIVE, DAMAGE_POWER_ENERGY);

DelayCommand(7.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC));


object oCaster;
oCaster = OBJECT_SELF;

oTarget = oPC;

DelayCommand(8.0, AssignCommand(oCaster, ActionCastSpellAtObject(SPELL_ISAACS_GREATER_MISSILE_STORM, oTarget, METAMAGIC_ANY, TRUE, 40, PROJECTILE_PATH_TYPE_DEFAULT, TRUE)));

oTarget = oPC;

nInt = GetObjectType(oTarget);

eEffect = EffectVisualEffect(VFX_DUR_DARKNESS);

if (nInt != OBJECT_TYPE_WAYPOINT)
   DelayCommand(9.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 26.0));
else
   DelayCommand(9.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eEffect, GetLocation(oTarget), 26.0));

oTarget = oPC;
nInt = GetObjectType(oTarget);

eEffect = EffectVisualEffect(VFX_FNF_SUNBEAM);

if (nInt != OBJECT_TYPE_WAYPOINT)
   DelayCommand(10.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
else
   DelayCommand(10.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));

DelayCommand(10.0, ActionSpeakString("That will teach you to mess with me!"));

oTarget = oPC;
eEffect = EffectBlindness();

eEffect = SupernaturalEffect(eEffect);

DelayCommand(11.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 19.0f));

}

else
{
SetLocalInt(GetLastUsedBy(), "TIMESPAM", 1);
DelayCommand(30.0, SetLocalInt(GetLastUsedBy(), "TIMESPAM", 0));
AssignCommand(oMe, ActionSpeakString(sMsg, TALKVOLUME_TALK));
}

}