# Get State

Grammar — Gets the current value of the state at index index for player player
FlagsNative | Function

Gets the current value of the specified state index for a player. The state is a per player integer array that can be useful to AI scripting.

# Arguments

  • int — Player
  • int — Index

Returns — int

native int AIState(int player, int index);

Category: AI Advanced / Utility / Functions

# Examples

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeAI.galaxy:188

void AISetAttackState (int player, int attackState) {
    string msg;
    int oldState = AIState(player, e_attackState);

    AISetSpecificState(player, e_attackState, attackState);

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeAI.galaxy:204

void AISetMainState (int player, int mainState, int mainSubState) {
    string msg;
    int oldMainState = AIState(player, e_mainState);  
    int oldSubState = AIState(player, e_mainSubState);

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeAI.galaxy:205

    string msg;
    int oldMainState = AIState(player, e_mainState);  
    int oldSubState = AIState(player, e_mainSubState);

    AISetSpecificState(player, e_mainState, mainState);

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeHighAI.galaxy:134


    if (AIGetCoopFlag(player, c_coopWaveAttacker)) {
        if (AIState(player, e_attackState) != e_attackState_Wait) {
            goAttack = true;
        }

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeHighAI.galaxy:157

    }

    if (AIState(player, e_attackState) == e_attackState_Wait) {
        AISetAttackState(player, e_attackState_Attack);
    }

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeLowAI.galaxy:113

    }

    if (AIState(player, e_mainState) == e_mainState_Open) {
        if (AIGetUserInt(player, c_openingBuildType) == e_buildType_Macro) {
            // macro build doesn't attack between open & mid

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeLowAI.galaxy:159

    if (AIGetCoopFlag(player, c_coopWaveAttacker)) {
        if (AIGetTime() > 330) {
            if (AIState(player, e_attackState) == e_attackState_Wait) {
                AISetAttackState(player, e_attackState_Attack);
            }

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeLowAI.galaxy:165


        activateNextWave = true;
        if (AIState(player, e_attackState) == e_attackState_Wait) {
            activateNextWave = false; // wait for the AI to activate
        }

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:157

    int count = AIWaveUnitCount(w);
    int state = AIWaveState(w);
    int attackState = AIState(player, e_attackState);

    if (count >= 5 && PlayerBeaconIsSet(player, c_beaconArmy)) {

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:396

    // and not easy for other AI's to coordinate with it

    if (AIState(player, e_attackState) != e_attackState_Attack) {
        return false;
    }

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:421

    // and not easy for other AI's to coordinate with it

    if (AIState(player, e_attackState) != e_attackState_Attack) {
        return c_nullPoint;
    }

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:512

//--------------------------------------------------------------------------------------------------
void WaveDetermineStateAfterBeacon (int player, wave w) {
    int state = AIState(player, e_attackState);
    unit leader;
    point leaderPos;

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:630

//--------------------------------------------------------------------------------------------------
void AIWaveAttack (int player, wave w) {
    int state = AIState(player, e_attackState);
    int eval;
    int time;

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:686


        if (AIWaveState(w) != c_waveStateAttack) {
            if (AIState(player, e_attackState) == e_attackState_Attack) {
                DebugAIPlayerWave(player, "attack1 merge main -> attack; set attack = attack vs. melee target");
                AIWaveMerge(player, c_waveMain, c_waveAttack);

mods/core.sc2modbase.sc2data/TriggerLibs/MeleeWaveAI.galaxy:785

        }
        
        if (AIState(player, e_attackState) == e_attackState_Idle) {
            if (AIWaveState(w) != c_waveStateIdle) {
                DebugAIPlayerWave(player, "attack5 set attack = idle at gather offense");

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/Protoss.galaxy:77

    DebugAI("=====PROTOSS=====\n");
    DebugMelee(player);
    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + ProtossSubStateName(AIState(player, e_mainSubState))  +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/Protoss.galaxy:78

    DebugMelee(player);
    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + ProtossSubStateName(AIState(player, e_mainSubState))  +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))
    );

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/Protoss.galaxy:79

    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + ProtossSubStateName(AIState(player, e_mainSubState))  +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))
    );
}

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/Protoss.galaxy:237

//--------------------------------------------------------------------------------------------------
void AIMeleeProt (int player) {    
    int mainState = AIState(player, e_mainState);

    if (AIPlayerDifficulty(player) >= c_skirChMoney) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:771

//--------------------------------------------------------------------------------------------------
void ProtossOpenEasy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:775

    if (mainSubState != e_mainSubState_Build) {
        ProtossOpenInitEasy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:786

//--------------------------------------------------------------------------------------------------
void ProtossMidEasy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:790

    if (mainSubState != e_mainSubState_Build) {
        ProtossMidInitEasy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:801

//--------------------------------------------------------------------------------------------------
void ProtossLateEasy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:805

    if (mainSubState != e_mainSubState_Build) {
        ProtossLateInitEasy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:1067

//--------------------------------------------------------------------------------------------------
void ProtossOpenHard (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:1071

    if (mainSubState != e_mainSubState_Build) {
        ProtossOpenInitHard(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:1082

//--------------------------------------------------------------------------------------------------
void ProtossMidHard (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:1086

    if (mainSubState != e_mainSubState_Build) {
        ProtossMidInitHard(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:1097

//--------------------------------------------------------------------------------------------------
void ProtossLateHard (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:1101

    if (mainSubState != e_mainSubState_Build) {
        ProtossLateInitHard(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:575

    int specificBuild;

    if (AIState(player, e_mainState) != e_mainState_Open) {
        AISetUserInt(player, c_currentBuildIndex, e_buildType_Invalid);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:613

//==================================================================================================
void UpdateHDProtossOpening (int player) {
    int mainSubState = AIState(player, e_mainSubState);
    int buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int counterBuild;

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:643

    int specificBuild;

    if (AIState(player, e_mainState) != e_mainState_Mid) {
        AISetUserInt(player, c_currentBuildIndex, e_buildType_Invalid);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:681

//==================================================================================================
void UpdateHDProtossMidGame (int player) {
    int mainSubState = AIState(player, e_mainSubState);
    int buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int counterBuild;

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:711

    int specificBuild;

    if (AIState(player, e_mainState) != e_mainState_Late) {
        AISetUserInt(player, c_currentBuildIndex, e_buildType_Invalid);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:749

//==================================================================================================
void UpdateHDProtossLateGameArmy (int player) {
    int mainSubState = AIState(player, e_mainSubState);
    int buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int lateGameType = AIGetUserInt(player, c_lateGameBuildType);

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:811


    // turn on attacking if it's not already on, but delay the next attack 5-7 minutes
    if (AIState(player, e_attackState) == e_attackState_Wait) {
        AIWaveMerge(player, c_waveMain, c_waveAttack);
        AISetAttackState(player, e_attackState_Idle);

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:993

//--------------------------------------------------------------------------------------------------
void ProtossOpenMdHd (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:997

    if (mainSubState != e_mainSubState_Build) {
        ProtossOpenInitMdHd(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:1008

//--------------------------------------------------------------------------------------------------
void ProtossMidMdHd (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:1012

    if (mainSubState != e_mainSubState_Build) {
        ProtossMidInitMdHd(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:1023

//--------------------------------------------------------------------------------------------------
void ProtossLateMdHd (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:1027

    if (mainSubState != e_mainSubState_Build) {
        ProtossLateInitMdHd(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:884

//--------------------------------------------------------------------------------------------------
void ProtossOpenMedi (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:888

    if (mainSubState != e_mainSubState_Build) {
        ProtossOpenInitMedi(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:899

//--------------------------------------------------------------------------------------------------
void ProtossMidMedi (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:903

    if (mainSubState != e_mainSubState_Build) {
        ProtossMidInitMedi(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:914

//--------------------------------------------------------------------------------------------------
void ProtossLateMedi (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:918

    if (mainSubState != e_mainSubState_Build) {
        ProtossLateInitMedi(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:719

//--------------------------------------------------------------------------------------------------
void ProtossOpenVyEy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:723

    if (mainSubState != e_mainSubState_Build) {
        ProtossOpenInitVyEy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:734

//--------------------------------------------------------------------------------------------------
void ProtossMidVyEy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:738

    if (mainSubState != e_mainSubState_Build) {
        ProtossMidInitVyEy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:749

//--------------------------------------------------------------------------------------------------
void ProtossLateVyEy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:753

    if (mainSubState != e_mainSubState_Build) {
        ProtossLateInitVyEy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/Terran.galaxy:77

    DebugAI("=====TERRAN=====\n");
    DebugMelee(player);
    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + TerranSubStateName(AIState(player, e_mainSubState))   +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/Terran.galaxy:78

    DebugMelee(player);
    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + TerranSubStateName(AIState(player, e_mainSubState))   +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))
    );

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/Terran.galaxy:79

    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + TerranSubStateName(AIState(player, e_mainSubState))   +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))
    );
}

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/Terran.galaxy:263

//--------------------------------------------------------------------------------------------------
void AIMeleeTerr (int player) {
    int mainState = AIState(player, e_mainState);

    if (AIPlayerDifficulty(player) >= c_skirChMoney) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranEasy.galaxy:758

//--------------------------------------------------------------------------------------------------
void TerranOpenEasy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranEasy.galaxy:762

    if (mainSubState != e_mainSubState_Build) {
        TerranOpenInitEasy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranEasy.galaxy:773

//--------------------------------------------------------------------------------------------------
void TerranMidEasy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranEasy.galaxy:777

    if (mainSubState != e_mainSubState_Build) {
        TerranMidInitEasy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranEasy.galaxy:788

//--------------------------------------------------------------------------------------------------
void TerranLateEasy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranEasy.galaxy:792

    if (mainSubState != e_mainSubState_Build) {
        TerranLateInitEasy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHard.galaxy:1224

//--------------------------------------------------------------------------------------------------
void TerranOpenHard (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHard.galaxy:1228

    if (mainSubState != e_mainSubState_Build) {
        TerranOpenInitHard(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHard.galaxy:1239

//--------------------------------------------------------------------------------------------------
void TerranMidHard (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHard.galaxy:1243

    if (mainSubState != e_mainSubState_Build) {
        TerranMidInitHard(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHard.galaxy:1254

//--------------------------------------------------------------------------------------------------
void TerranLateHard (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHard.galaxy:1258

    if (mainSubState != e_mainSubState_Build) {
        TerranLateInitHard(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:607

    int specificBuild;

    if (AIState(player, e_mainState) != e_mainState_Open) {
        AISetUserInt(player, c_currentBuildIndex, e_buildType_Invalid);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:645

//==================================================================================================
void UpdateHDTerranOpening (int player) {
    int mainSubState = AIState(player, e_mainSubState);
    int buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int counterBuild;

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:675

    int specificBuild;

    if (AIState(player, e_mainState) != e_mainState_Mid) {
        AISetUserInt(player, c_currentBuildIndex, e_buildType_Invalid);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:713

//==================================================================================================
void UpdateHDTerranMidGame (int player) {
    int mainSubState = AIState(player, e_mainSubState);
    int buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int counterBuild;

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:743

    int specificBuild;

    if (AIState(player, e_mainState) != e_mainState_Late) {
        AISetUserInt(player, c_currentBuildIndex, e_buildType_Invalid);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:781

//==================================================================================================
void UpdateHDTerranLateGameArmy (int player) {
    int mainSubState = AIState(player, e_mainSubState);
    int buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int lateGameType = AIGetUserInt(player, c_lateGameBuildType);

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranHigh.galaxy:843


    // turn on attacking if it's not already on, but delay the next attack 5-7 minutes
    if (AIState(player, e_attackState) == e_attackState_Wait) {
        AIWaveMerge(player, c_waveMain, c_waveAttack);
        AISetAttackState(player, e_attackState_Idle);

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMdHd.galaxy:1166

//--------------------------------------------------------------------------------------------------
void TerranOpenMdHd (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMdHd.galaxy:1170

    if (mainSubState != e_mainSubState_Build) {
        TerranOpenInitMdHd(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMdHd.galaxy:1181

//--------------------------------------------------------------------------------------------------
void TerranMidMdHd (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMdHd.galaxy:1185

    if (mainSubState != e_mainSubState_Build) {
        TerranMidInitMdHd(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMdHd.galaxy:1196

//--------------------------------------------------------------------------------------------------
void TerranLateMdHd (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMdHd.galaxy:1200

    if (mainSubState != e_mainSubState_Build) {
        TerranLateInitMdHd(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMedi.galaxy:981

//--------------------------------------------------------------------------------------------------
void TerranOpenMedi (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMedi.galaxy:985

    if (mainSubState != e_mainSubState_Build) {
        TerranOpenInitMedi(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMedi.galaxy:996

//--------------------------------------------------------------------------------------------------
void TerranMidMedi (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMedi.galaxy:1000

    if (mainSubState != e_mainSubState_Build) {
        TerranMidInitMedi(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMedi.galaxy:1011

//--------------------------------------------------------------------------------------------------
void TerranLateMedi (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranMedi.galaxy:1015

    if (mainSubState != e_mainSubState_Build) {
        TerranLateInitMedi(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranVyEy.galaxy:701

//--------------------------------------------------------------------------------------------------
void TerranOpenVyEy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranVyEy.galaxy:705

    if (mainSubState != e_mainSubState_Build) {
        TerranOpenInitVyEy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranVyEy.galaxy:716

//--------------------------------------------------------------------------------------------------
void TerranMidVyEy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranVyEy.galaxy:720

    if (mainSubState != e_mainSubState_Build) {
        TerranMidInitVyEy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranVyEy.galaxy:731

//--------------------------------------------------------------------------------------------------
void TerranLateVyEy (int player) {
    int mainSubState = AIState(player, e_mainSubState);

    if (mainSubState != e_mainSubState_Build) {

mods/liberty.sc2modbase.sc2data/TriggerLibs/Terran/TerranVyEy.galaxy:735

    if (mainSubState != e_mainSubState_Build) {
        TerranLateInitVyEy(player);
        mainSubState = AIState(player, e_mainSubState);
    }

mods/liberty.sc2modbase.sc2data/TriggerLibs/Zerg/Zerg.galaxy:77

    DebugAI("=====ZERG=====\n");
    DebugMelee(player);
    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + ZergSubStateName(AIState(player, e_mainSubState))     +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))

mods/liberty.sc2modbase.sc2data/TriggerLibs/Zerg/Zerg.galaxy:78

    DebugMelee(player);
    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + ZergSubStateName(AIState(player, e_mainSubState))     +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))
    );

mods/liberty.sc2modbase.sc2data/TriggerLibs/Zerg/Zerg.galaxy:79

    DebugAI("e_mainState = "        + MainStateName(AIState(player, e_mainState))           +
            ", e_mainSubState = "   + ZergSubStateName(AIState(player, e_mainSubState))     +
            ", e_attackState = "    + AttackStateName(AIState(player, e_attackState))
    );
}