{
    ATTACK = {
        ATTACKED = ( setTargetToPrimaryAggressor, increaseAlertLevel, launchDefenseShip, "pauseAI: 5.0" );
        ENTER = ( increaseAlertLevel, launchDefenseShip, groupAttackTarget );
        GROUP_ATTACK_TARGET = ( setTargetToFoundTarget, launchDefenseShip );
        INCOMING_MISSILE = ( fireECM, increaseAlertLevel );
        NO_TARGET = ( "setStateTo: IDLE" );
        RED_ALERT = ( launchDefenseShip, "pauseAI: 5.0" );
        TARGET_DESTROYED = ( "setStateTo: IDLE" );
        TARGET_LOST = ( "setStateTo: IDLE" );
        UPDATE = ( "pauseAI: 5.0" );
    };
    GLOBAL = {
        ENTER = ( "setStateTo: SCAN_FOR_PREY" );
    };
    IDLE = {
        ATTACKED = ( setTargetToPrimaryAggressor, "setStateTo: ATTACK" );
        CONDITION_GREEN = ( "setStateTo: SCAN_FOR_DEBRIS" );
        ENTER = ( "pauseAI: 10.0", decreaseAlertLevel );
        GROUP_ATTACK_TARGET = ( setTargetToFoundTarget, launchDefenseShip, "setStateTo: ATTACK" );
        INCOMING_MISSILE = ( fireECM, setTargetToPrimaryAggressor, "setStateTo: ATTACK" );
        UPDATE = ( decreaseAlertLevel, "setStateTo: SCAN_FOR_DEBRIS" );
    };
    SCAN_FOR_DEBRIS = {
        ATTACKED = ( setTargetToPrimaryAggressor, "setStateTo: ATTACK" );
        ENTER = ( scanForLoot, "pauseAI: 5.0" );
        GROUP_ATTACK_TARGET = ( setTargetToFoundTarget, launchDefenseShip, "setStateTo: ATTACK" );
        INCOMING_MISSILE = ( fireECM, setTargetToPrimaryAggressor, "setStateTo: ATTACK" );
        NOTHING_FOUND = ( "setStateTo: SCAN_FOR_PREY" );
        TARGET_FOUND = ( launchScavenger, "setStateTo: SCAN_FOR_PREY" );
    };
    SCAN_FOR_PREY = {
        ATTACKED = ( setTargetToPrimaryAggressor, "setStateTo: ATTACK" );
        ENTER = ( scanForRandomMerchantman, "pauseAI: 5.0" );
        GROUP_ATTACK_TARGET = ( setTargetToFoundTarget, launchDefenseShip, "setStateTo: ATTACK" );
        INCOMING_MISSILE = ( fireECM, setTargetToPrimaryAggressor, "setStateTo: ATTACK" );
        NOTHING_FOUND = ( "setStateTo: SCAN_FOR_DEBRIS" );
        ROLL_1 = ( "setStateTo: SCAN_FOR_DEBRIS" );
        ROLL_2 = ( increaseAlertLevel, launchPirateShip, launchPirateShip, "setStateTo: ATTACK" );
        ROLL_3 = ( "setStateTo: SCAN_FOR_DEBRIS" );
        TARGET_CLEAN = ( "rollD: 2" );
        TARGET_CLOAKED = ( "dropMessages: TARGET_CLEAN", "dropMessages: TARGET_MINOR_OFFENDER", "dropMessages: TARGET_OFFENDER", "dropMessages: TARGET_FUGITIVE", "dropMessages: TARGET_LOST", "setStateTo: SCAN_FOR_DEBRIS" );
        TARGET_FOUND = ( setTargetToFoundTarget, checkTargetLegalStatus );
        TARGET_FUGITIVE = ( "setStateTo: SCAN_FOR_DEBRIS" );
        TARGET_MINOR_OFFENDER = ( "rollD: 3" );
        TARGET_OFFENDER = ( "setStateTo: SCAN_FOR_DEBRIS" );
    };
}