/*//////////////////////////////////////////////////////////////////////////////
 Script: nw_c2_default5
 Programmer: Philos
////////////////////////////////////////////////////////////////////////////////
  Monster OnPhysicalAttacked event script;
  Fires for all physical attacks, claws, weapons, fists, bow, etc.
  Fires for taunt skill, animal empathy skill.
*///////////////////////////////////////////////////////////////////////////////
#include "0i_actions"
void main()
{
    object oCreature = OBJECT_SELF;
	ExecuteScript("prc_npc_physatt", OBJECT_SELF);
    object oAttacker = GetLastAttacker(oCreature);
    if(AI_DEBUG) ai_Debug("nw_c2_default5", "14", GetName(oCreature) + " was attacked by " +
                 GetName(oAttacker) + ".");
    SetLocalObject(oAttacker, AI_ATTACKED_PHYSICAL, oCreature);
    // Run away!
    if(ai_GetFleeToExit(oCreature))
    {
        ai_ActivateFleeToExit(oCreature);
        return;
    }
    if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT))
    {
        SignalEvent(oCreature, EventUserDefined(EVENT_ATTACKED));
    }
    if(ai_GetIsBusy(oCreature) || ai_Disabled(oCreature)) return;
    if(ai_GetIsInCombat(oCreature)) return;
    // We only inform others if attacked when not busy, not disabled & not in combat.
    if(AI_DEBUG) ai_Debug("nw_c2_default5", "30", "Tell my allies I've been attacked!");
    SetLocalObject (oCreature, AI_MY_TARGET, oAttacker);
    SpeakString(AI_ATKED_BY_WEAPON, TALKVOLUME_SILENT_TALK);
    // Now move towards the attack in the hopes we can see them.
    if(GetDistanceBetween(oCreature, oAttacker) < AI_RANGE_CLOSE) ai_DoMonsterCombatRound(oCreature);
    else ActionMoveToObject(oAttacker, TRUE, AI_RANGE_CLOSE);
}
