{
    ACCELERATE = {
        "APPROACH_COORDINATES" = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 200", 
            checkCourseToDestination
        ); 
        "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); 
        "DESIRED_RANGE_ACHIEVED" = ("setStateTo: NEW_PHASE"); 
        ENTER = ("setCoordinates: abs -457681 1916164 350930"); 
        UPDATE = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 200", 
            checkCourseToDestination, 
            "pauseAI: 2"
        ); 
        "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); 
    }; 
    "ATTACK_PLAYER" = {
        "COMBAT_ENDED" = (performHold, "setStateTo: NEW_PHASE"); 
        ENTER = ("setSpeedFactorTo: 1", "sendScriptMessage: startCombatTimer", performAttack); 
    }; 
    "ATTACK_TARGET" = {
        "DESTROYED_TARGET" = ("setStateTo: NEW_PHASE"); 
        ENTER = ("pauseAI: 2", "setSpeedFactorTo: 0.4", performAttack); 
        UPDATE = ("sendScriptMessage: checkForDestroyedTarget"); 
    }; 
    "ATTACK_WITH_MISSILE" = {
        "DESTROYED_TARGET" = ("setStateTo: NEW_PHASE"); 
        ENTER = (
            "pauseAI: 2", 
            "setSpeedFactorTo: 0", 
            "scanForNearestShipWithPrimaryRole: cataclysm_target_asteroid_4"
        ); 
        "TARGET_FOUND" = (setTargetToFoundTarget, fireMissile); 
        UPDATE = ("sendScriptMessage: checkForMissileFired"); 
    }; 
    GLOBAL = {ENTER = ("pauseAI: 2"); UPDATE = ("setStateTo: NEW_PHASE"); }; 
    INJECTORS = {
        "APPROACH_COORDINATES" = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination
        ); 
        "COURSE_OK" = ("setSpeedFactorTo: 6", performFlyToRangeFromDestination); 
        "DESIRED_RANGE_ACHIEVED" = ("setStateTo: NEW_PHASE"); 
        ENTER = ("setCoordinates: abs -475360 2012708 363887"); 
        UPDATE = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination, 
            "pauseAI: 2"
        ); 
    }; 
    "MANOEUVRE_1" = {
        "APPROACH_COORDINATES" = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination
        ); 
        "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination); 
        "DESIRED_RANGE_ACHIEVED" = ("sendScriptMessage: newPhase"); 
        ENTER = ("setCoordinates: abs -466727 1918885 338215"); 
        UPDATE = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination, 
            "pauseAI: 3"
        ); 
        "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); 
    }; 
    "MANOEUVRE_2" = {
        "APPROACH_COORDINATES" = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination
        ); 
        "COURSE_OK" = ("setSpeedFactorTo: 1", performFlyToRangeFromDestination); 
        "DESIRED_RANGE_ACHIEVED" = ("sendScriptMessage: newPhase"); 
        ENTER = ("setCoordinates: abs -459254 1927526 369266"); 
        UPDATE = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination, 
            "pauseAI: 3"
        ); 
        "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); 
    }; 
    "MANOEUVRE_3" = {
        "APPROACH_COORDINATES" = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination
        ); 
        "COURSE_OK" = ("setSpeedFactorTo: 0.9", performFlyToRangeFromDestination); 
        "DESIRED_RANGE_ACHIEVED" = ("setStateTo: NEW_PHASE"); 
        ENTER = ("setCoordinates: abs -463857 1940136 348320"); 
        UPDATE = (
            setDestinationFromCoordinates, 
            "setDesiredRangeTo: 500", 
            checkCourseToDestination, 
            "pauseAI: 3"
        ); 
        "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); 
    }; 
    "NEW_PHASE" = {
        ENTER = ("setSpeedTo: 0", performIdle); 
        UPDATE = ("pauseAI: 2", "sendScriptMessage: newPhase"); 
    }; 
    "RETURN_TO_STATION" = {
        "COURSE_OK" = ("setSpeedFactorTo: 4.5", performFlyToRangeFromDestination); 
        "DESIRED_RANGE_ACHIEVED" = ("sendScriptMessage: sendTestCompleteMessage", "setAITo: dockingAI.plist"); 
        ENTER = (setDestinationToTarget, "setDesiredRangeTo: 10000", checkCourseToDestination); 
        UPDATE = (
            setDestinationToTarget, 
            "setDesiredRangeTo: 10000", 
            checkCourseToDestination, 
            "pauseAI: 2"
        ); 
        "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); 
    }; 
    TUMBLE = {ENTER = ("pauseAI: 8", performTumble); UPDATE = ("setStateTo: NEW_PHASE"); }; 
}