Route2patrolAI

From Elite Wiki

Defined states:

  • GLOBAL: →HEAD_FOR_SUN
  • HEAD_FOR_SUN: →GO_TO_WAYPOINT_SUN, →OUTBOUND_LOOT
  • HEAD_FOR_PLANET: →GO_TO_WAYPOINT_PLANET, →HEAD_FOR_SUN, →INBOUND_LOOT
  • GO_TO_WAYPOINT_PLANET: →HEAD_FOR_PLANET, →INBOUND_LOOT
  • GO_TO_WAYPOINT_SUN: →HEAD_FOR_SUN, →OUTBOUND_LOOT
  • OUTBOUND_LOOT: →HEAD_FOR_SUN, →OUTBOUND_LOOT
  • INBOUND_LOOT: →HEAD_FOR_PLANET, →INBOUND_LOOT

Refered to AI's: interceptAI, CollectLootAI

{
   "HEAD_FOR_PLANET" = {
       ENTER = (setCourseToPlanet, "setDesiredRangeTo: 50000.0", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT_PLANET");
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_SUN");
       ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); 
       "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); 
       "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); 
       EXIT = ();
       UPDATE = (scanForOffenders, "pauseAI: 10.0");
       RESTARTED = ("setStateTo: INBOUND_LOOT");	}; 
   "GO_TO_WAYPOINT_PLANET" = {
       ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET");
       ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: INBOUND_LOOT"); 
       "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); 
       "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); 
       EXIT = ();
       UPDATE = ();
       RESTARTED = ("setStateTo: INBOUND_LOOT");	}; 
   "HEAD_FOR_SUN" = {
       ENTER = (setSunSkimStartCoordinates);
       "WAIT_FOR_SUN" = ("pauseAI: 10.0", setSunSkimStartCoordinates);
       "APPROACH_COORDINATES" = (setDestinationFromCoordinates, "setDesiredRangeTo: 25000", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 0.80", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT_SUN");
       ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); 
       "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); 
       "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); 
       EXIT = ();
       UPDATE = (scanForOffenders, "pauseAI: 10.0");
       RESTARTED = ("setStateTo: OUTBOUND_LOOT");	}; 
   "GO_TO_WAYPOINT_SUN" = {
       ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_SUN");
       "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); 
       "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); 
       ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT"); 
       EXIT = ();
       UPDATE = ();
       RESTARTED = ("setStateTo: OUTBOUND_LOOT");	}; 
   "OUTBOUND_LOOT" = {
       "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); 
       ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); 
       ENTER = ("setSpeedTo: 0.0", performIdle); 
       EXIT = (); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist"); 
       "NOTHING_FOUND" = ("setStateTo: HEAD_FOR_SUN"); 
       UPDATE = (scanForLoot, "pauseAI: 10.0");     }; 
   "INBOUND_LOOT" = {
       "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); 
       ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); 
       ENTER = ("setSpeedTo: 0.0", performIdle); 
       EXIT = (); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: INBOUND_LOOT"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist"); 
       "NOTHING_FOUND" = ("setStateTo: HEAD_FOR_PLANET"); 
       UPDATE = (scanForLoot, "pauseAI: 10.0");     }; 
   GLOBAL = {
       ENTER = ("setStateTo: HEAD_FOR_SUN"); 
       EXIT = (); 
       UPDATE = (); }; 
}

BACK