{ GLOBAL = { ENTER = ("setSpeedFactorTo: 0.25", "setStateTo: FLY_HOME"); }; "FLY_HOME" = { "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT"); "APPROACHING_SURFACE" = ("setSpeedFactorTo: 0.3", "setStateTo: APPROACH"); "DESIRED_RANGE_ACHIEVED" = ("setSpeedFactorTo: 0.7", "setStateTo: APPROACH"); "AEGIS_LEAVING_DOCKING_RANGE" = ("setStateTo: APPROACH"); "LAUNCHED OKAY" = ("setStateTo: CLEAR_STATION"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage); "INCOMING_MISSILE" = (fireECM); UPDATE = (setCourseToPlanet, "setDesiredRangeTo: 300.0", checkCourseToDestination, "pauseAI: 10.0"); }; "GO_TO_WAYPOINT" = { ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "APPROACHING_SURFACE" = ("setSpeedFactorTo: 0.3", "setStateTo: APPROACH"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: FLY_HOME"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage); "AEGIS_LEAVING_DOCKING_RANGE" = ("setStateTo: APPROACH"); "INCOMING_MISSILE" = (fireECM); UPDATE = ("pauseAI: 10.0"); }; "CLEAR_STATION" = { ENTER = (getWitchspaceEntryCoordinates, setDestinationFromCoordinates, "setDesiredRangeTo: 100.0", "setSpeedFactorTo: 0.75", performFlyToRangeFromDestination, "pauseAI: 15"); UPDATE = ("setStateTo: FLY_HOME", "pauseAI: 5.0"); }; "APPROACH" = { ENTER = (setCourseToPlanet, "setDesiredRangeTo: 100.0", performFlyToRangeFromDestination); "APPROACHING_SURFACE" = ("setSpeedFactorTo: 0.3", performFlyToRangeFromDestination); "DESIRED_RANGE_ACHIEVED" = ("setSpeedFactorTo: 0.2", "setStateTo: LANDING"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage); "INCOMING_MISSILE" = (fireECM, "setSpeedFactorTo: 1.0"); }; "LANDING" = { ENTER = ("setSpeedFactorTo: 0.0", setTakeOffFromPlanet, performFaceDestination, "pauseAI: 4.0"); "FACING_DESTINATION" = (landOnPlanet); }; }