Difference between revisions of "DockingAI"

From Elite Wiki
 
Line 16: Line 16:
 
         EXIT = ();  
 
         EXIT = ();  
 
         UPDATE = ();};
 
         UPDATE = ();};
   
+
:
 +
 
 
     ABORT = {
 
     ABORT = {
 
         ENTER = (abortDocking, "setSpeedFactorTo: 0.0", setDestinationToDockingAbort, "setDesiredRangeTo: 500.0", performFaceDestination);  
 
         ENTER = (abortDocking, "setSpeedFactorTo: 0.0", setDestinationToDockingAbort, "setDesiredRangeTo: 500.0", performFaceDestination);  
Line 36: Line 37:
 
         "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
 
         "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
 
         "DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_STATION");
 
         "DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_STATION");
EXIT = ();
+
        EXIT = ();
UPDATE = (); };  
+
        UPDATE = ();   };  
  
 
     "GO_TO_START" = {
 
     "GO_TO_START" = {
Line 65: Line 66:
  
 
     "EXIT_SYSTEM" = {ENTER = (performDocking, exitAI); EXIT = (); UPDATE = (); };
 
     "EXIT_SYSTEM" = {ENTER = (performDocking, exitAI); EXIT = (); UPDATE = (); };
 +
 +
'''[[AI|BACK]]'''

Revision as of 22:22, 23 January 2006

An extremely complex JobAI.

States: ABORT, AWAIT_COORDS, EXIT_SYSTEM, GLOBAL, GO_TO_WAYPOINT, GO_TO_START, GO_TO_COORDS.

{
   "AWAIT_COORDS" = {
       "APPROACH_START" = ("setStateTo: GO_TO_START"); 
       "APPROACH_COORDINATES" = ("setStateTo: GO_TO_COORDS"); 
       "HOLD_POSITION" = (performIdle, "pauseAI: 10.0", "setStateTo: GLOBAL"); 
       "DOCKING_ABORTED" = ("setStateTo: ABORT"); 
       "TRY_AGAIN_LATER" = ("pauseAI: 30.0", "setStateTo: ABORT"); 
       "COLLISION" = ("setStateTo: ABORT"); 
       "RESTART_DOCKING" = ("setStateTo: GLOBAL"); 
       DOCKED = ("setStateTo: EXIT_SYSTEM"); 
       ENTER = (); 
       EXIT = (); 
       UPDATE = ();};
   ABORT = {
       ENTER = (abortDocking, "setSpeedFactorTo: 0.0", setDestinationToDockingAbort, "setDesiredRangeTo: 500.0", performFaceDestination); 
       "FACING_DESTINATION" = ("setSpeedFactorTo: 1.0", "setDesiredRangeTo: 500.0", performFlyToRangeFromDestination); 
       EXIT = (); 
       "RESTART_DOCKING" = ("setStateTo: GLOBAL"); 
       "REACHED_SAFETY" = (performIdle, "setStateTo: GLOBAL"); 
       "DESIRED_RANGE_ACHIEVED" = (performIdle, "setStateTo: GLOBAL"); 
       UPDATE = ();     }; 
   GLOBAL = {
       ENTER = ("setSpeedTo: 0.0", "setDesiredRangeTo: 5.0", requestDockingCoordinates, "setStateTo: AWAIT_COORDS"); 
       EXIT = (); 
       UPDATE = ();     }; 
   "GO_TO_WAYPOINT" = {
       ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 0.85", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_STATION");
       EXIT = ();
       UPDATE = ();    }; 
   "GO_TO_START" = {
       ENTER = ("setSpeedFactorTo: 0.05", setDestinationFromCoordinates,
                checkCourseToDestination);
       "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT");
       "COURSE_OK" = ("setSpeedFactorTo: 0.25", performFaceDestination);
       "FACING_DESTINATION" = ("setDesiredRangeTo: 50.0", "setSpeedFactorTo: 0.85", 
       performFlyToRangeFromDestination); 
       "DESIRED_RANGE_ACHIEVED" = (requestDockingCoordinates, "setStateTo: AWAIT_COORDS"); 
       "DOCKING_ABORTED" = ("setStateTo: ABORT"); 
       "COLLISION" = ("setStateTo: ABORT"); 
       "RESTART_DOCKING" = ("setStateTo: GLOBAL"); 
       EXIT = (); 
       UPDATE = ();	};
   "GO_TO_COORDS" = {
       ENTER = (performFaceDestination);
       FRUSTRATED = (performIdle, "pauseAI: 5.0", performFaceDestination); 
       "FACING_DESTINATION" = (recallDockingInstructions, performFlyToRangeFromDestination); 
       "DESIRED_RANGE_ACHIEVED" = (requestDockingCoordinates, "setStateTo: AWAIT_COORDS"); 
       "DOCKING_ABORTED" = ("setStateTo: ABORT"); 
       "COLLISION" = ("setStateTo: ABORT"); 
       "RESTART_DOCKING" = ("setStateTo: GLOBAL"); 
       EXIT = (); 
       UPDATE = ();	}; }
   "EXIT_SYSTEM" = {ENTER = (performDocking, exitAI); EXIT = (); UPDATE = (); };

BACK