{
    ATTACK_SHIP = {
        ATTACKED = ( setTargetToPrimaryAggressor, "rollD: 3" );
        ENTER = ( performAttack );
        INCOMING_MISSILE = ( fireECM, fightOrFleeMissile );
        ROLL_1 = ( "sendTargetCommsMessage: [anarchies_bountyHunter_distress]" );
        TARGET_DESTROYED = ( "commsMessage: [anarchies_bountyHunter_triumph]", "setStateTo: LOOK_FOR_TARGETS" );
    };
    GLOBAL = {
        ENTER = ( "setStateTo: LOOK_FOR_TARGETS" );
    };
    HEAD_FOR_PLANET = {
        ATTACKED = ( setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP" );
        COURSE_OK = ( "setSpeedFactorTo: 1.0", performFlyToRangeFromDestination );
        DESIRED_RANGE_ACHIEVED = ( "setStateTo: LOOK_FOR_TARGETS" );
        ENTER = ( setCourseToPlanet, "setDesiredRangeTo: 80000.0", checkCourseToDestination );
        INCOMING_MISSILE = ( fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP" );
        TARGET_FOUND = ( setTargetToFoundTarget, "sendTargetCommsMessage: [anarchies_bountyHunter_curse]", "setStateTo: ATTACK_SHIP" );
        UPDATE = ( setCourseToPlanet, "setDesiredRangeTo: 80000.0", checkCourseToDestination, "scanForNearestShipWithRole: player", "pauseAI: 5.0" );
        WAYPOINT_SET = ( "setAITo: gotoWaypointAI.plist" );
    };
    LOOK_FOR_TARGETS = {
        ATTACKED = ( setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP" );
        ENTER = ( "setSpeedTo: 0.0", "scanForNearestShipWithRole: player", "pauseAI: 5.0" );
        INCOMING_MISSILE = ( fightOrFleeMissile, setTargetToPrimaryAggressor, "sendTargetCommsMessage: [anarchies_bountyHunter_curse]", "setStateTo: ATTACK_SHIP" );
        NOTHING_FOUND = ( "setStateTo: HEAD_FOR_PLANET" );
        TARGET_FOUND = ( setTargetToFoundTarget, "sendTargetCommsMessage: [anarchies_bountyHunter_curse]", "setStateTo: ATTACK_SHIP" );
        UPDATE = ( "scanForNearestShipWithRole: player", "pauseAI: 5.0" );
    };
}