{ GLOBAL = { ENTER = ("setStateTo: NEW_WAYPOINT"); }; "GO_TO_WAYPOINT" = { ENTER = ("setSpeedFactorTo: 0.75"); "WAYPOINT_SET" = ("setStateTo: NEW_WAYPOINT"); "DESIRED_RANGE_ACHIEVED" = ("setDesiredRangeTo: 1000.0", exitAI); "ATTACKER_MISSED" = ("exitAIWithMessage: ATTACKED"); ATTACKED = ("exitAIWithMessage: ATTACKED"); "ATTACKED_BY_CLOAKED" = ("exitAIWithMessage: ATTACKED_BY_CLOAKED"); "CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED"); "FRUSTRATED" = ("setSpeedFactorTo: 0.1", "setDesiredRangeTo: 1000.0", exitAI); "LAUNCHED OKAY" = ("exitAIWithMessage: LAUNCHED OKAY"); "INCOMING_MISSILE" = ("exitAIWithMessage: INCOMING_MISSILE"); "DOCKING_REQUESTED" = ("exitAIWithMessage: DOCKING_REQUESTED"); "APPROACHING_SURFACE" = ("exitAIWithMessage: APPROACHING_SURFACE"); "AEGIS_CLOSE_TO_MAIN_PLANET" = ("exitAIWithMessage: AEGIS_CLOSE_TO_MAIN_PLANET"); UPDATE = (performFlyToRangeFromDestination, checkCourseToDestination, "pauseAI: 2.0"); }; "NEW_WAYPOINT" = { ENTER = ("setSpeedFactorTo: 0.0", setDesiredRangeForWaypoint, checkCourseToDestination); "WAYPOINT_SET" = ("setStateTo: NEW_WAYPOINT"); "COURSE_OK" = ("setStateTo: GO_TO_WAYPOINT"); "FRUSTRATED" = ("setSpeedFactorTo: 0.1", "setDesiredRangeTo: 1000.0", exitAI); "LAUNCHED OKAY" = ("exitAIWithMessage: LAUNCHED OKAY"); ATTACKED = ("exitAIWithMessage: ATTACKED"); "ATTACKER_MISSED" = ("exitAIWithMessage: ATTACKED"); "ATTACKED_BY_CLOAKED" = ("exitAIWithMessage: ATTACKED_BY_CLOAKED"); "CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED"); "DESIRED_RANGE_ACHIEVED" = ("setDesiredRangeTo: 1000.0", exitAI); "INCOMING_MISSILE" = ("exitAIWithMessage: INCOMING_MISSILE"); "DOCKING_REQUESTED" = ("exitAIWithMessage: DOCKING_REQUESTED"); "APPROACHING_SURFACE" = ("exitAIWithMessage: APPROACHING_SURFACE"); "AEGIS_CLOSE_TO_MAIN_PLANET" = ("exitAIWithMessage: AEGIS_CLOSE_TO_MAIN_PLANET"); }; }