//Created by Guile 3/23/07
//Put this script OnEnter
void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

object oTarget;
oTarget = oPC;

//Visual effects can't be applied to waypoints, so if it is a WP
//the VFX will be applied to the WP's location instead

int nInt;
nInt = GetObjectType(oTarget);

effect eEffect;
eEffect = EffectVisualEffect(VFX_IMP_TORNADO);

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

eEffect = EffectHeal(GetMaxHitPoints(oPC));
DelayCommand(1.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));

eEffect = EffectHeal(GetMaxHitPoints(oPC));
DelayCommand(1.4, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));

eEffect = EffectConcealment(50,MISS_CHANCE_TYPE_NORMAL);
DelayCommand(1.4, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oTarget, 360.0f));

object oPlayer = oPC;

if(GetIsPC(oPC))
{

    AssignCommand(oPlayer, ClearAllActions());

    //Clear Reputation of PC
    if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oPlayer) <= 10)
    {   SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oPlayer);
    }
    if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oPlayer) <= 10)
    {   SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oPlayer);
    }
    if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oPlayer) <= 10)
    {   SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer);
    }

 }
}