# AIGetUserInt
Flags —
Native
# Arguments
int— playerint— index
Returns — int
native int AIGetUserInt(int player, int index);
# Related
Category: Unclassified
# Examples
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:130
    // only set the build menu if it wasn't from the player
    if (!PlayerBeaconBuildMenuWasFromPlayer(player, c_buildMenuOpening)) {
        currentOpening = AIGetUserInt(player, c_openingBuildType);
        if (currentOpening == e_buildType_Rush) {
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:176
    // only set the build menu if it wasn't from the player
    if (!PlayerBeaconBuildMenuWasFromPlayer(player, c_buildMenuLateGame)) {
        currentLateGame = AIGetUserInt(player, c_lateGameBuildType);
        if (currentLateGame == e_buildType_HighTech) {
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:206
    
    // air map default logic
    if (AIGetUserInt(player, c_numGroundStartLocs) == 0) {
        AISetUserInt(player, c_openingBuildType, e_buildType_Air);
        AISetUserInt(player, c_lateGameBuildType, e_buildType_Air);
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:299
        if (aicommBuild == e_buildType_Macro) {
            if (AIGetUserInt(player, c_numGroundStartLocs) == 0) {
                // macro on an air map = air
                aicommBuild = e_buildType_Air;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:410
//--------------------------------------------------------------------------------------------------
void AIChooseNextOpeningBuild (int player) {
    int currentOpening = AIGetUserInt(player, c_openingBuildType);
    int currentBuildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int playerChosenBuild;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:411
void AIChooseNextOpeningBuild (int player) {
    int currentOpening = AIGetUserInt(player, c_openingBuildType);
    int currentBuildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int playerChosenBuild;
    int buildType;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:417
    // first see if the player has chosen a specific build
    AISetNextBuildFromPlayerInput(player);
    playerChosenBuild = AIGetUserInt(player, c_openingBuildType);
    // if it wasn't overriden by the player, preserve our existing opening build
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:429
    
    // if we haven't choosen an opening build type, do so now
    if (AIGetUserInt(player, c_openingBuildType) == e_buildType_Invalid) {
        if (AIGetCoopFlag(player, c_coopTraining)) {
            AISetUserInt(player, c_openingBuildType, e_buildType_Timing);
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:540
    // if the player hasn't choosen a late game build type, do so now
    if (AIGetUserInt(player, c_lateGameBuildType) == e_buildType_Invalid) {
        randomRoll = RandomInt(1, 100);
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeBuildAI.galaxy:572
    if (PlayerBeaconBuildMenuWasFromPlayer(player, c_buildMenuOpening)) {
        aicommBuild = AIGetOpeningScriptTypeFromBuildMenu(player);
        if (aicommBuild != e_buildType_Invalid && aicommBuild != AIGetUserInt(player, c_openingBuildType)) {
            return true;
        }
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeHighAI.galaxy:225
    int race;
    
    if (AIGetUserInt(player, c_numGroundStartLocs) == 0) {
        AISetFlag(player, e_flagsEarlyDefScout, false);
        AIEarlyDefenseEnable(player, false, false);
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeHighAI.galaxy:241
                enableScouting = true;
            }
            else if (AIGetUserInt(player, c_numGroundStartLocs) > 0) {
                if (time > 150) {
                    // scout around just to be safe
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:49
    while (index < c_ldMaxArmyStockSize) {
        count = AIGetUserInt(player, index);
        if (count <= 0) {
            break;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:64
    }
    if (index >= c_ldMaxArmyStockSize) {
        if (AIGetUserInt(player, index) > 0) {
            ErrorMeleeScript(player, "AISetStockArmy too much data");
        }
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:80
    while (index < c_ldMaxArmyStockSize) {
        count = AIGetUserInt(player, index);
        if (count <= 0) {
            break;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:94
    }
    if (index >= c_ldMaxArmyStockSize) {
        if (AIGetUserInt(player, index) > 0) {
            ErrorMeleeScript(player, "AISetStockArmy too much data");
        }
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:114
    if (AIState(player, e_mainState) == e_mainState_Open) {
        if (AIGetUserInt(player, c_openingBuildType) == e_buildType_Macro) {
            // macro build doesn't attack between open & mid
            sendAttack = false;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:279
int AIGetArmyDelay (int player, int duration, int phase) {
    int armyCount = AIGetStockArmyCount(player);
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int timePerUnit;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:314
void AISetupNextArmy (int player, int buildType, int newPhase, funcref<TemplateArmySetup> armyFunc ) {
    int origPhase = AIGetUserInt(player, c_ldNextArmyPhase);
    int origDuration = AIGetUserInt(player, c_ldNextArmyDuration);
    int origEndTime = AIGetUserInt(player, c_nextArmyTime);
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:315
void AISetupNextArmy (int player, int buildType, int newPhase, funcref<TemplateArmySetup> armyFunc ) {
    int origPhase = AIGetUserInt(player, c_ldNextArmyPhase);
    int origDuration = AIGetUserInt(player, c_ldNextArmyDuration);
    int origEndTime = AIGetUserInt(player, c_nextArmyTime);
    int origStartTime = 0;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeLowAI.galaxy:316
    int origPhase = AIGetUserInt(player, c_ldNextArmyPhase);
    int origDuration = AIGetUserInt(player, c_ldNextArmyDuration);
    int origEndTime = AIGetUserInt(player, c_nextArmyTime);
    int origStartTime = 0;
    fixed origTimeElapsed = 0.0;
mods/core.sc2mod — base.sc2data/TriggerLibs/MeleeWaveAI.galaxy:760
        count = AIWaveUnitCount(w) + AIWaveUnitCount(AIWaveGet(player, c_waveMain));
        if ((AIWaveGetTimeSinceRetreat(w) > 120) && (AIGetUserInt(player, c_delayNextAttack) < AIGetTime())) {            
            // if we're allowed to attack && we've waited at least 120 seonds after retreating, consider attacking
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChIn.galaxy:49
    UpdateHDProtossOpening(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_POpenRush_ZealotStalker)               { done = ProtossOpenRushZealotStalkerChIn (player); }
    else if (buildIndex == e_hdBuildIndex_POpenRush_ProxyGate)              { done = ProtossOpenRushProxyGateChIn (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChIn.galaxy:78
    
    // enable scouting as appropriate
    if (AIGetUserInt(player, c_numGroundStartLocs) > 0) {
        AIScoutingEnable(player, 15, c_PU_Probe);
        AIEarlyDefenseScouting(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChIn.galaxy:89
    UpdateHDProtossMidGame(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_PMidRushTiming_FourGateRobo)           { done = ProtossMidRushTimingFourGateRoboChIn (player); }
    else if (buildIndex == e_hdBuildIndex_PMidRushTiming_DefensiveExpand)   { done = ProtossMidRushTimingDefensiveExpandChIn (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChIn.galaxy:2112
// On an air map build at least one transport as long as we have some other units/army
    if (AIGetUserInt(player, c_numGroundStartLocs) == 0) {
        AISetStock( player, 1, c_PU_WarpPrism );
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChRe.galaxy:19
    UpdateHDProtossOpening(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_POpenRush_ZealotStalker)               { done = ProtossOpenRushZealotStalkerVyHd (player); }
    else if (buildIndex == e_hdBuildIndex_POpenRush_ProxyGate)              { done = ProtossOpenRushProxyGateVyHd (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChRe.galaxy:48
    
    // enable scouting as appropriate
    if (AIGetUserInt(player, c_numGroundStartLocs) > 0) {
        AIScoutingEnable(player, 15, c_PU_Probe);
        AIEarlyDefenseScouting(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChRe.galaxy:59
    UpdateHDProtossMidGame(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_PMidRushTiming_FourGateRobo)           { done = ProtossMidRushTimingFourGateRoboVyHd (player); }
    else if (buildIndex == e_hdBuildIndex_PMidRushTiming_DefensiveExpand)   { done = ProtossMidRushTimingDefensiveExpandVyHd (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChVi.galaxy:19
    UpdateHDProtossOpening(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_POpenRush_ZealotStalker)               { done = ProtossOpenRushZealotStalkerVyHd (player); }
    else if (buildIndex == e_hdBuildIndex_POpenRush_ProxyGate)              { done = ProtossOpenRushProxyGateVyHd (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChVi.galaxy:48
    
    // enable scouting as appropriate
    if (AIGetUserInt(player, c_numGroundStartLocs) > 0) {
        AIScoutingEnable(player, 15, c_PU_Probe);
        AIEarlyDefenseScouting(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossChVi.galaxy:59
    UpdateHDProtossMidGame(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_PMidRushTiming_FourGateRobo)           { done = ProtossMidRushTimingFourGateRoboVyHd (player); }
    else if (buildIndex == e_hdBuildIndex_PMidRushTiming_DefensiveExpand)   { done = ProtossMidRushTimingDefensiveExpandVyHd (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:13
    if (phase < c_ldPhaseLate) {
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:15
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:131
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseOpen, ProtossOpenArmyInitEasy);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:141
//--------------------------------------------------------------------------------------------------
void ProtossOpenBuildEasy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:142
void ProtossOpenBuildEasy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:143
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:338
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseMid, ProtossMidArmyInitEasy);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:352
//--------------------------------------------------------------------------------------------------
void ProtossMidBuildEasy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:353
void ProtossMidBuildEasy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossEasy.galaxy:354
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:13
    if (phase < c_ldPhaseLate) {
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:15
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:257
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseOpen, ProtossOpenArmyInitHard);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:267
//--------------------------------------------------------------------------------------------------
void ProtossOpenBuildHard (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:268
void ProtossOpenBuildHard (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:269
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:543
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseMid, ProtossMidArmyInitHard);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:557
//--------------------------------------------------------------------------------------------------
void ProtossMidBuildHard (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:558
void ProtossMidBuildHard (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHard.galaxy:559
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHdVH.galaxy:49
    UpdateHDProtossOpening(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_POpenRush_ZealotStalker)               { done = ProtossOpenRushZealotStalkerHdVH (player); }
    else if (buildIndex == e_hdBuildIndex_POpenRush_ProxyGate)              { done = ProtossOpenRushProxyGateHdVH (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHdVH.galaxy:78
    
    // enable scouting as appropriate
    if (AIGetUserInt(player, c_numGroundStartLocs) > 0) {
        AIScoutingEnable(player, 15, c_PU_Probe);
        AIEarlyDefenseScouting(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHdVH.galaxy:89
    UpdateHDProtossMidGame(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_PMidRushTiming_FourGateRobo)           { done = ProtossMidRushTimingFourGateRoboHdVH (player); }
    else if (buildIndex == e_hdBuildIndex_PMidRushTiming_DefensiveExpand)   { done = ProtossMidRushTimingDefensiveExpandHdVH (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHdVH.galaxy:2111
// On an air map build at least one transport as long as we have some other units/army
    if (AIGetUserInt(player, c_numGroundStartLocs) == 0) {
        AISetStock( player, 1, c_PU_WarpPrism );
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:309
int OpenChooseHDProtossCounterBuild (int player, bool onlyMustSwitch) {
    // counter logic is primarily aimed at 1v1 games and does not consider allies under attack etc
    int currentOpening = AIGetUserInt(player, c_openingBuildType);
    int lobbyBuild = PlayerAIBuildNumber(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:316
        return e_buildType_Invalid;
    }
    if (AIGetUserInt(player, c_specificLobbyBuild) != e_buildType_Invalid) {
        return e_buildType_Invalid;
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:338
    else if (currentOpening == e_buildType_Timing) {
        if (AIHighCurrentlyUnderHeavyAttack(player))  {
            if (AIGetUserInt(player, c_currentBuildIndex) == e_hdBuildIndex_POpenTiming_DTRush) {
                if (AITechCount(player, c_PB_DarkShrine, c_techCountInProgressOrBetter) <= 0) {
                    // unless we're close to getting dt, switch to four gate
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:344
                }
            }
            else if (AIGetUserInt(player, c_currentBuildIndex) == e_hdBuildIndex_POpenTiming_StalkerBlink) {
                if (AITechCount(player, c_PR_StalkerBlink, c_techCountInProgressOrBetter) <= 0) {
                    // unless we're close to getting blink, switch to four gate
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:355
        if (AIIsExpandingOrHasExpanded(player)) {
            // if we've already expanded, just stick with a power build, but use the defensive one
            if (AIGetUserInt(player, c_currentBuildIndex) != e_hdBuildIndex_POpenPowerMacro_DefenseExpGnd) {
                return e_hdBuildIndex_POpenPowerMacro_DefenseExpGnd;
            }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:446
int MidChooseHDProtossCounterBuild (int player, bool onlyMustSwitch) {
    // counter logic is primarily aimed at 1v1 games and does not consider allies under attack etc
    int currentOpening = AIGetUserInt(player, c_openingBuildType);
    int currentExactBuild = AIGetUserInt(player, c_currentBuildIndex);
    int lobbyBuild = PlayerAIBuildNumber(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:447
    // counter logic is primarily aimed at 1v1 games and does not consider allies under attack etc
    int currentOpening = AIGetUserInt(player, c_openingBuildType);
    int currentExactBuild = AIGetUserInt(player, c_currentBuildIndex);
    int lobbyBuild = PlayerAIBuildNumber(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:454
        return e_buildType_Invalid;
    }
    if (AIGetUserInt(player, c_specificLobbyBuild) != e_buildType_Invalid) {
        return e_buildType_Invalid;
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:517
int LateChooseHDProtossCounterBuild (int player, bool onlyMustSwitch) {
    // counter logic is primarily aimed at 1v1 games and does not consider allies under attack etc
    int currentLateGame = AIGetUserInt(player, c_lateGameBuildType);
    int currentBuildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int newLateGame = e_buildType_Core;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossHigh.galaxy:518
    // counter logic is primarily aimed at 1v1 games and does not consider allies under attack etc
    int currentLateGame = AIGetUserInt(player, c_lateGameBuildType);
    int currentBuildIndex = AIGetUserInt(player, c_currentBuildIndex);
    int newLateGame = e_buildType_Core;
    bool needsNewBuild = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:13
    if (phase < c_ldPhaseLate) {
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:15
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:222
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseOpen, ProtossOpenArmyInitMdHd);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:232
//--------------------------------------------------------------------------------------------------
void ProtossOpenBuildMdHd (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:233
void ProtossOpenBuildMdHd (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:234
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:505
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseMid, ProtossMidArmyInitMdHd);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:519
//--------------------------------------------------------------------------------------------------
void ProtossMidBuildMdHd (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:520
void ProtossMidBuildMdHd (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMdHd.galaxy:521
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:13
    if (phase < c_ldPhaseLate) {
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:15
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:188
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseOpen, ProtossOpenArmyInitMedi);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:198
//--------------------------------------------------------------------------------------------------
void ProtossOpenBuildMedi (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:199
void ProtossOpenBuildMedi (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:200
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:418
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseMid, ProtossMidArmyInitMedi);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:432
//--------------------------------------------------------------------------------------------------
void ProtossMidBuildMedi (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:433
void ProtossMidBuildMedi (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossMedi.galaxy:434
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:13
    if (phase < c_ldPhaseLate) {
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:15
        buildType = AIGetUserInt(player, c_openingBuildType);
    } else {
        buildType = AIGetUserInt(player, c_lateGameBuildType);
    }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:113
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseOpen, ProtossOpenArmyInitVyEy);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:123
//--------------------------------------------------------------------------------------------------
void ProtossOpenBuildVyEy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:124
void ProtossOpenBuildVyEy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:125
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:305
    AIChooseNextOpeningBuild(player);
    buildType = AIGetUserInt(player, c_openingBuildType);
    AISetupNextArmy (player, buildType, c_ldPhaseMid, ProtossMidArmyInitVyEy);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:319
//--------------------------------------------------------------------------------------------------
void ProtossMidBuildVyEy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:320
void ProtossMidBuildVyEy (int player) {
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyEy.galaxy:321
    int buildType = AIGetUserInt(player, c_openingBuildType);
    int armyRoll = AIGetUserInt(player, c_ldNextArmyRoll);
    int timeOut = AIGetUserInt(player, c_nextArmyTime);
    bool nextState = false;
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyHd.galaxy:82
    UpdateHDProtossOpening(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_POpenRush_ZealotStalker)               { done = ProtossOpenRushZealotStalkerVyHd (player); }
    else if (buildIndex == e_hdBuildIndex_POpenRush_ProxyGate)              { done = ProtossOpenRushProxyGateVyHd (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyHd.galaxy:111
    
    // enable scouting as appropriate
    if (AIGetUserInt(player, c_numGroundStartLocs) > 0) {
        AIScoutingEnable(player, 15, c_PU_Probe);
        AIEarlyDefenseScouting(player);
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyHd.galaxy:122
    UpdateHDProtossMidGame(player);
    
    buildIndex = AIGetUserInt(player, c_currentBuildIndex);
    if (buildIndex == e_hdBuildIndex_PMidRushTiming_FourGateRobo)           { done = ProtossMidRushTimingFourGateRoboVyHd (player); }
    else if (buildIndex == e_hdBuildIndex_PMidRushTiming_DefensiveExpand)   { done = ProtossMidRushTimingDefensiveExpandVyHd (player); }
mods/liberty.sc2mod — base.sc2data/TriggerLibs/Protoss/ProtossVyHd.galaxy:2142
// On an air map build at least one transport as long as we have some other units/army
    if (AIGetUserInt(player, c_numGroundStartLocs) == 0) {
        AISetStock( player, 1, c_PU_WarpPrism );
    }