{ 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: LANDING"); "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); "CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist"); UPDATE = (setCourseToPlanet, 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" = ("setStateTo: LANDING"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: FLY_HOME"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage); "CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist"); "AEGIS_LEAVING_DOCKING_RANGE" = ("setStateTo: APPROACH"); "INCOMING_MISSILE" = (fireECM); RESTARTED = ("setStateTo: FLY_HOME"); 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, performFlyToRangeFromDestination); "APPROACHING_SURFACE" = ("setStateTo: LANDING"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: LANDING"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage); "INCOMING_MISSILE" = (fireECM, "setSpeedFactorTo: 1.0"); "CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist"); RESTARTED = ("setStateTo: FLY_HOME"); }; "LANDING" = { ENTER = (performLandOnPlanet); "NO_PLANET_NEARBY" = ("setStateTo: APPROACH"); }; }