# Add Attack Wave Unit Types (Liberty)

Grammar — Add (easyCount / normalCount / hardCount / expertCount) unitType|Unit Type to the attack wave
FlagsNative | Action

Adds a type of unit to the next attack wave for a player; allowing you to specify a different number of units per difficulty level.

# Arguments

  • int — Easy Count
  • int — Normal Count
  • int — Advanced Count
  • int — Expert Count
  • string<gamelink::Unit> — Type

Returns — void

void AIAttackWaveAddUnits4(
	int n1,
	int n2,
	int n3,
	int n4,
	string unitType,
);

Category: AI / AttackWaves / Actions

# Examples

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3047

    gf_AttackwithUnburrowingUnits(gv_p2_ZERG_ORANGE_NW, UnitGroup(null, gv_p6_ZERG_NOAIPREPLACED, RegionFromId(21), UnitFilter(0, 0, (1 << c_targetFilterMissile), (1 << (c_targetFilterDead - 32)) | (1 << (c_targetFilterHidden - 32))), 0));
    gf_WaitForColonistToEnterRegion(RegionFromId(5));
    AIAttackWaveAddUnits4(4, 5, 8, 12, "Zergling");
    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(10));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3080

    gf_WaitForColonistToEnterRegion(RegionFromId(12));
    gf_SpoogeAreawithOverlord(PointFromId(145), PointFromId(1402));
    AIAttackWaveAddUnits4(7, 7, 9, 12, "Zergling");
    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(1));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3083

    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(1));
    AIAttackWaveAddUnits4(8, 8, 10, 5, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Hydralisk");
    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3084

    gf_WaitForColonistToEnterRegion(RegionFromId(1));
    AIAttackWaveAddUnits4(8, 8, 10, 5, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Hydralisk");
    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(7));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3088

    gf_WaitForColonistToEnterRegion(RegionFromId(7));
    gf_WaitForColonistToEnterRegion(RegionFromId(3));
    AIAttackWaveAddUnits4(1, 1, 1, 1, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 6, 10, "Zergling");
    AIAttackWaveSend(gv_p3_ZERG_LIGHTBLUE_SE, 0, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3089

    gf_WaitForColonistToEnterRegion(RegionFromId(3));
    AIAttackWaveAddUnits4(1, 1, 1, 1, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 6, 10, "Zergling");
    AIAttackWaveSend(gv_p3_ZERG_LIGHTBLUE_SE, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(8));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3093

    gf_WaitForColonistToEnterRegion(RegionFromId(8));
    gf_SpoogeAreawithOverlord(PointFromId(145), PointFromId(1404));
    AIAttackWaveAddUnits4(6, 6, 7, 10, "Zergling");
    AIAttackWaveSend(gv_p3_ZERG_LIGHTBLUE_SE, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(4));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3096

    AIAttackWaveSend(gv_p3_ZERG_LIGHTBLUE_SE, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(4));
    AIAttackWaveAddUnits4(6, 6, 8, 11, "Zergling");
    AIAttackWaveSend(gv_p3_ZERG_LIGHTBLUE_SE, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(9));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3100

    gf_WaitForColonistToEnterRegion(RegionFromId(9));
    gf_SpoogeAreawithOverlord(PointFromId(183), PointFromId(1406));
    AIAttackWaveAddUnits4(5, 5, 7, 11, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 1, 0, "Hydralisk");
    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson01.sc2map/MapScript.galaxy:3101

    gf_SpoogeAreawithOverlord(PointFromId(183), PointFromId(1406));
    AIAttackWaveAddUnits4(5, 5, 7, 11, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 1, 0, "Hydralisk");
    AIAttackWaveSend(gv_p2_ZERG_ORANGE_NW, 0, false);
    gf_WaitForColonistToEnterRegion(RegionFromId(5));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson02.sc2map/MapScript.galaxy:429

    // Implementation
    gf_PrepareAttackDirection(lp_direction);
    AIAttackWaveAddUnits4(lp_qty1, lp_qty1, lp_qty1, lp_qty1, "InfestedCivilian");
    AIAttackWaveAddUnits4(lp_qty2, lp_qty2, lp_qty2, lp_qty2, "InfestedTerranCampaign");
    AIAttackWaveAddUnits4(lp_qty3, lp_qty3, lp_qty3, lp_qty3, "InfestedAbomination");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson02.sc2map/MapScript.galaxy:430

    gf_PrepareAttackDirection(lp_direction);
    AIAttackWaveAddUnits4(lp_qty1, lp_qty1, lp_qty1, lp_qty1, "InfestedCivilian");
    AIAttackWaveAddUnits4(lp_qty2, lp_qty2, lp_qty2, lp_qty2, "InfestedTerranCampaign");
    AIAttackWaveAddUnits4(lp_qty3, lp_qty3, lp_qty3, lp_qty3, "InfestedAbomination");
    AIAttackWaveSend(gv_pLAYER_03_INFESTED_REFUGEES, lp_delay, lp_waitOption);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson02.sc2map/MapScript.galaxy:431

    AIAttackWaveAddUnits4(lp_qty1, lp_qty1, lp_qty1, lp_qty1, "InfestedCivilian");
    AIAttackWaveAddUnits4(lp_qty2, lp_qty2, lp_qty2, lp_qty2, "InfestedTerranCampaign");
    AIAttackWaveAddUnits4(lp_qty3, lp_qty3, lp_qty3, lp_qty3, "InfestedAbomination");
    AIAttackWaveSend(gv_pLAYER_03_INFESTED_REFUGEES, lp_delay, lp_waitOption);
}

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3189

    AIAttackWaveSetGatherPoint(gv_p08_ZERG_SOUTH, PointFromId(372));
    Wait(90.0, c_timeAI);
    AIAttackWaveAddUnits4(6, 6, 5, 9, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Hydralisk");
    AIAttackWaveAddWaypoint(gv_p04_ZERG_NORTH, PointFromId(591), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3190

    Wait(90.0, c_timeAI);
    AIAttackWaveAddUnits4(6, 6, 5, 9, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Hydralisk");
    AIAttackWaveAddWaypoint(gv_p04_ZERG_NORTH, PointFromId(591), false);
    AIAttackWaveSend(gv_p04_ZERG_NORTH, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3194

    AIAttackWaveSend(gv_p04_ZERG_NORTH, 120, true);
    Wait(60.0, c_timeAI);
    AIAttackWaveAddUnits4(2, 2, 3, 4, "Mutalisk");
    AIAttackWaveAddWaypoint(gv_p08_ZERG_SOUTH, PointFromId(1117), false);
    AIAttackWaveSend(gv_p08_ZERG_SOUTH, 100, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3199

    while (true) {
        Wait(120.0, c_timeAI);
        AIAttackWaveAddUnits4(6, 6, 9, 12, "Zergling");
        AIAttackWaveAddUnits4(3, 3, 5, 6, "Mutalisk");
        AIAttackWaveAddWaypoint(gv_p08_ZERG_SOUTH, PointFromId(1117), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3200

        Wait(120.0, c_timeAI);
        AIAttackWaveAddUnits4(6, 6, 9, 12, "Zergling");
        AIAttackWaveAddUnits4(3, 3, 5, 6, "Mutalisk");
        AIAttackWaveAddWaypoint(gv_p08_ZERG_SOUTH, PointFromId(1117), false);
        AIAttackWaveSend(gv_p08_ZERG_SOUTH, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3204

        AIAttackWaveSend(gv_p08_ZERG_SOUTH, 120, true);
        Wait(150.0, c_timeAI);
        AIAttackWaveAddUnits4(10, 12, 14, 16, "InfestedCivilian");
        AIAttackWaveAddUnits4(3, 5, 7, 9, "InfestedTerranCampaign");
        AIAttackWaveAddWaypoint(gv_p02_ZERG_EAST, PointFromId(76), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3205

        Wait(150.0, c_timeAI);
        AIAttackWaveAddUnits4(10, 12, 14, 16, "InfestedCivilian");
        AIAttackWaveAddUnits4(3, 5, 7, 9, "InfestedTerranCampaign");
        AIAttackWaveAddWaypoint(gv_p02_ZERG_EAST, PointFromId(76), false);
        AIAttackWaveSend(gv_p02_ZERG_EAST, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3209

        AIAttackWaveSend(gv_p02_ZERG_EAST, 120, true);
        Wait(160.0, c_timeAI);
        AIAttackWaveAddUnits4(6, 6, 9, 12, "Zergling");
        AIAttackWaveAddUnits4(4, 4, 5, 3, "Roach");
        AIAttackWaveAddUnits4(0, 0, 0, 1, "Ultralisk");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3210

        Wait(160.0, c_timeAI);
        AIAttackWaveAddUnits4(6, 6, 9, 12, "Zergling");
        AIAttackWaveAddUnits4(4, 4, 5, 3, "Roach");
        AIAttackWaveAddUnits4(0, 0, 0, 1, "Ultralisk");
        AIAttackWaveAddUnits4(0, 0, 0, 1, "Infestor");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thanson03b.sc2map/MapScript.galaxy:3211

        AIAttackWaveAddUnits4(6, 6, 9, 12, "Zergling");
        AIAttackWaveAddUnits4(4, 4, 5, 3, "Roach");
        AIAttackWaveAddUnits4(0, 0, 0, 1, "Ultralisk");
        AIAttackWaveAddUnits4(0, 0, 0, 1, "Infestor");
        AIAttackWaveAddWaypoint(gv_p04_ZERG_NORTH, PointFromId(1117), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4315

    AIAttackWaveSetTargetPlayer(gv_pLAYER_02_DOMINION, PlayerGroupSingle(gv_pLAYER_01_USER));
    AIAttackWaveAddWaypoint(gv_pLAYER_02_DOMINION, PointFromId(1463), false);
    AIAttackWaveAddUnits4(3, 3, 0, 0, "Marine");
    AIAttackWaveAddUnits4(2, 2, 3, 3, "Firebat");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Medivac");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4316

    AIAttackWaveAddWaypoint(gv_pLAYER_02_DOMINION, PointFromId(1463), false);
    AIAttackWaveAddUnits4(3, 3, 0, 0, "Marine");
    AIAttackWaveAddUnits4(2, 2, 3, 3, "Firebat");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Medivac");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Goliath");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4317

    AIAttackWaveAddUnits4(3, 3, 0, 0, "Marine");
    AIAttackWaveAddUnits4(2, 2, 3, 3, "Firebat");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Medivac");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Goliath");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, (FixedToInt(gv_trainWaveWait) * 2), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4318

    AIAttackWaveAddUnits4(2, 2, 3, 3, "Firebat");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Medivac");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Goliath");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, (FixedToInt(gv_trainWaveWait) * 2), false);
    TriggerExecute(gt_DominionAttackQ, true, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4331

    AIAttackWaveSetTargetPlayer(gv_pLAYER_02_DOMINION, PlayerGroupSingle(gv_pLAYER_01_USER));
    AIAttackWaveAddWaypoint(gv_pLAYER_02_DOMINION, PointFromId(1451), false);
    AIAttackWaveAddUnits4(2, 3, 3, 4, "Firebat");
    AIAttackWaveAddUnits4(2, 2, 1, 2, "Goliath");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "SiegeTank");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4332

    AIAttackWaveAddWaypoint(gv_pLAYER_02_DOMINION, PointFromId(1451), false);
    AIAttackWaveAddUnits4(2, 3, 3, 4, "Firebat");
    AIAttackWaveAddUnits4(2, 2, 1, 2, "Goliath");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "SiegeTank");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Raven");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4333

    AIAttackWaveAddUnits4(2, 3, 3, 4, "Firebat");
    AIAttackWaveAddUnits4(2, 2, 1, 2, "Goliath");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "SiegeTank");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Raven");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, (FixedToInt(gv_trainWaveWait) * 2), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4334

    AIAttackWaveAddUnits4(2, 2, 1, 2, "Goliath");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "SiegeTank");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Raven");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, (FixedToInt(gv_trainWaveWait) * 2), false);
    Wait(gv_trainWaveWait, c_timeAI);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4345

    AIAttackWaveSetTargetPlayer(gv_pLAYER_02_DOMINION, PlayerGroupSingle(gv_pLAYER_01_USER));
    AIAttackWaveAddWaypoint(gv_pLAYER_02_DOMINION, PointFromId(1463), false);
    AIAttackWaveAddUnits4(2, 2, 3, 3, "Goliath");
    AIAttackWaveAddUnits4(1, 1, 1, 2, "SiegeTank");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Banshee");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner01.sc2map/MapScript.galaxy:4346

    AIAttackWaveAddWaypoint(gv_pLAYER_02_DOMINION, PointFromId(1463), false);
    AIAttackWaveAddUnits4(2, 2, 3, 3, "Goliath");
    AIAttackWaveAddUnits4(1, 1, 1, 2, "SiegeTank");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Banshee");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, (FixedToInt(gv_trainWaveWait) * 2), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3424

    AIAttackWaveSetTargetPlayer(gv_p02_ORLAN_ENEMY, PlayerGroupSingle(gv_p01_USER));
    Wait(60.0, c_timeAI);
    AIAttackWaveAddUnits4(3, 3, 5, 8, "Marine");
    AIAttackWaveAddWaypoint(gv_p02_ORLAN_ENEMY, PointFromId(211), false);
    AIAttackWaveSend(gv_p02_ORLAN_ENEMY, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3428

    AIAttackWaveSend(gv_p02_ORLAN_ENEMY, 120, true);
    Wait(30.0, c_timeAI);
    AIAttackWaveAddUnits4(5, 5, 6, 8, "Marine");
    AIAttackWaveAddUnits4(1, 1, 2, 2, "Medic");
    AIAttackWaveAddWaypoint(gv_p02_ORLAN_ENEMY, PointFromId(211), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3429

    Wait(30.0, c_timeAI);
    AIAttackWaveAddUnits4(5, 5, 6, 8, "Marine");
    AIAttackWaveAddUnits4(1, 1, 2, 2, "Medic");
    AIAttackWaveAddWaypoint(gv_p02_ORLAN_ENEMY, PointFromId(211), false);
    AIAttackWaveSend(gv_p02_ORLAN_ENEMY, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3433

    AIAttackWaveSend(gv_p02_ORLAN_ENEMY, 120, true);
    Wait(30.0, c_timeAI);
    AIAttackWaveAddUnits4(6, 6, 7, 9, "Marine");
    AIAttackWaveAddUnits4(1, 1, 2, 2, "Firebat");
    AIAttackWaveAddWaypoint(gv_p02_ORLAN_ENEMY, PointFromId(212), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3434

    Wait(30.0, c_timeAI);
    AIAttackWaveAddUnits4(6, 6, 7, 9, "Marine");
    AIAttackWaveAddUnits4(1, 1, 2, 2, "Firebat");
    AIAttackWaveAddWaypoint(gv_p02_ORLAN_ENEMY, PointFromId(212), false);
    AIAttackWaveSend(gv_p02_ORLAN_ENEMY, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3449

        TechTreeUpgradeAddLevel(auto34130251_var, "TerranVehicleWeaponsLevel2", libNtve_gf_DifficultyValueInt(0, 0, 0, 1));
    }
    AIAttackWaveAddUnits4(6, 6, 7, 10, "Marine");
    AIAttackWaveAddUnits4(1, 1, 0, 0, "Firebat");
    AIAttackWaveAddUnits4(1, 1, 2, 3, "Medic");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3450

    }
    AIAttackWaveAddUnits4(6, 6, 7, 10, "Marine");
    AIAttackWaveAddUnits4(1, 1, 0, 0, "Firebat");
    AIAttackWaveAddUnits4(1, 1, 2, 3, "Medic");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Goliath");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3451

    AIAttackWaveAddUnits4(6, 6, 7, 10, "Marine");
    AIAttackWaveAddUnits4(1, 1, 0, 0, "Firebat");
    AIAttackWaveAddUnits4(1, 1, 2, 3, "Medic");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Goliath");
    gf_OrlanAttackWaveWaypointEast();

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3452

    AIAttackWaveAddUnits4(1, 1, 0, 0, "Firebat");
    AIAttackWaveAddUnits4(1, 1, 2, 3, "Medic");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Goliath");
    gf_OrlanAttackWaveWaypointEast();
    AIAttackWaveSend(gv_p02_ORLAN_ENEMY, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner02.sc2map/MapScript.galaxy:3467

        TechTreeUpgradeAddLevel(autoB5251DD6_var, "TerranVehicleArmorsLevel2", libNtve_gf_DifficultyValueInt(0, 0, 0, 1));
    }
    AIAttackWaveAddUnits4(5, 5, 7, 14, "Marine");
    AIAttackWaveAddUnits4(3, 3, 2, 2, "Firebat");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Goliath");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2065


    AIAttackWaveSetTargetPlayer(gv_p04_DOMINION_INFANTRY_A, PlayerGroupSingle(gv_p02_TYCHUS));
    AIAttackWaveAddUnits4(10, 10, 15, 20, "Marine");
    AIAttackWaveSend(gv_p04_DOMINION_INFANTRY_A, 70, true);
    while (true) {

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2069

    while (true) {
        AIAttackWaveSetTargetPlayer(gv_p04_DOMINION_INFANTRY_A, PlayerGroupSingle(gv_p02_TYCHUS));
        AIAttackWaveAddUnits4(6, 6, 9, 12, "Marine");
        AIAttackWaveSend(gv_p04_DOMINION_INFANTRY_A, 30, true);
    }

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2104

        TriggerEnable(TriggerGetCurrent(), false);
        AIAttackWaveSetTargetUnit(gv_p08_DOMINION_INFANTRY_B, UnitFromId(2));
        AIAttackWaveAddUnits4(2, 2, 4, 8, "Marine");
        AIAttackWaveAddUnits4(1, 1, 3, 5, "Marauder");
        AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 0, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2105

        AIAttackWaveSetTargetUnit(gv_p08_DOMINION_INFANTRY_B, UnitFromId(2));
        AIAttackWaveAddUnits4(2, 2, 4, 8, "Marine");
        AIAttackWaveAddUnits4(1, 1, 3, 5, "Marauder");
        AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 0, false);
        AIAttackWaveSetTargetUnit(gv_p08_DOMINION_INFANTRY_B, UnitFromId(2));

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2108

        AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 0, false);
        AIAttackWaveSetTargetUnit(gv_p08_DOMINION_INFANTRY_B, UnitFromId(2));
        AIAttackWaveAddUnits4(3, 3, 5, 10, "Marine");
        AIAttackWaveAddUnits4(1, 1, 2, 3, "Marauder");
        AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 55, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2109

        AIAttackWaveSetTargetUnit(gv_p08_DOMINION_INFANTRY_B, UnitFromId(2));
        AIAttackWaveAddUnits4(3, 3, 5, 10, "Marine");
        AIAttackWaveAddUnits4(1, 1, 2, 3, "Marauder");
        AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 55, false);
    }

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2196

    AIAttackWaveSetTargetPlayer(gv_p08_DOMINION_INFANTRY_B, PlayerGroupSingle(gv_p01_USER));
    AIAttackWaveAddWaypoint(gv_p08_DOMINION_INFANTRY_B, PointFromId(68), false);
    AIAttackWaveAddUnits4(2, 2, 4, 3, "Marine");
    AIAttackWaveAddUnits4(1, 1, 2, 4, "Marauder");
    AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 40, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2197

    AIAttackWaveAddWaypoint(gv_p08_DOMINION_INFANTRY_B, PointFromId(68), false);
    AIAttackWaveAddUnits4(2, 2, 4, 3, "Marine");
    AIAttackWaveAddUnits4(1, 1, 2, 4, "Marauder");
    AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 40, false);
    Wait(libNtve_gf_DifficultyValueFixed(90.0, 90.0, 75.0, 75.0), c_timeGame);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2305

    while (true) {
        AIAttackWaveSetTargetPlayer(gv_p08_DOMINION_INFANTRY_B, PlayerGroupSingle(gv_p02_TYCHUS));
        AIAttackWaveAddUnits4(2, 2, 3, 5, "Firebat");
        AIAttackWaveAddUnits4(1, 1, 2, 2, "Marauder");
        AIAttackWaveAddUnits4(3, 3, 5, 6, "Marine");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner03.sc2map/MapScript.galaxy:2306

        AIAttackWaveSetTargetPlayer(gv_p08_DOMINION_INFANTRY_B, PlayerGroupSingle(gv_p02_TYCHUS));
        AIAttackWaveAddUnits4(2, 2, 3, 5, "Firebat");
        AIAttackWaveAddUnits4(1, 1, 2, 2, "Marauder");
        AIAttackWaveAddUnits4(3, 3, 5, 6, "Marine");
        AIAttackWaveSend(gv_p08_DOMINION_INFANTRY_B, 30, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4179

    if ((gf_PlayerCanAttack(gv_p05_DOMINION_RAIDER) == true)) {
        gv_waveAttacker = gv_p05_DOMINION_RAIDER;
        AIAttackWaveAddUnits4(3, 3, 5, 7, "Marine");
        AIAttackWaveAddUnits4(3, 3, 4, 5, "Hellion");
        AIAttackWaveAddWaypoint(gv_p05_DOMINION_RAIDER, PointFromId(302), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4180

        gv_waveAttacker = gv_p05_DOMINION_RAIDER;
        AIAttackWaveAddUnits4(3, 3, 5, 7, "Marine");
        AIAttackWaveAddUnits4(3, 3, 4, 5, "Hellion");
        AIAttackWaveAddWaypoint(gv_p05_DOMINION_RAIDER, PointFromId(302), false);
        AIAttackWaveSend(gv_p05_DOMINION_RAIDER, gv_wavePrepTime, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4188

    if ((gf_PlayerCanAttack(gv_p04_DOMINION_AIR) == true)) {
        gv_waveAttacker = gv_p04_DOMINION_AIR;
        AIAttackWaveAddUnits4(2, 2, 3, 4, "VikingFighter");
        AIAttackWaveAddWaypoint(gv_p04_DOMINION_AIR, PointFromId(1220), false);
        AIAttackWaveSend(gv_p04_DOMINION_AIR, gv_wavePrepTime, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4196

    if ((gf_PlayerCanAttack(gv_p03_DOMINION_SIEGE) == true)) {
        gv_waveAttacker = gv_p03_DOMINION_SIEGE;
        AIAttackWaveAddUnits4(1, 1, 2, 3, "Goliath");
        AIAttackWaveAddUnits4(1, 1, 1, 1, "Diamondback");
        AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(1220), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4197

        gv_waveAttacker = gv_p03_DOMINION_SIEGE;
        AIAttackWaveAddUnits4(1, 1, 2, 3, "Goliath");
        AIAttackWaveAddUnits4(1, 1, 1, 1, "Diamondback");
        AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(1220), false);
        AIAttackWaveSend(gv_p03_DOMINION_SIEGE, gv_wavePrepTime, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4229


    gf_WaitForPermissionToAttack(gv_p03_DOMINION_SIEGE);
    AIAttackWaveAddUnits4(1, 1, 2, 2, "Diamondback");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "SiegeTank");
    AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(302), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4230

    gf_WaitForPermissionToAttack(gv_p03_DOMINION_SIEGE);
    AIAttackWaveAddUnits4(1, 1, 2, 2, "Diamondback");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "SiegeTank");
    AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(302), false);
    AIAttackWaveSend(gv_p03_DOMINION_SIEGE, gv_wavePrepTime, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4234

    AIAttackWaveSend(gv_p03_DOMINION_SIEGE, gv_wavePrepTime, false);
    gf_WaitForPermissionToAttack(gv_p03_DOMINION_SIEGE);
    AIAttackWaveAddUnits4(2, 2, 4, 6, "Goliath");
    AIAttackWaveAddUnits4(1, 1, 3, 3, "SiegeTank");
    AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(1220), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4235

    gf_WaitForPermissionToAttack(gv_p03_DOMINION_SIEGE);
    AIAttackWaveAddUnits4(2, 2, 4, 6, "Goliath");
    AIAttackWaveAddUnits4(1, 1, 3, 3, "SiegeTank");
    AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(1220), false);
    AIAttackWaveSend(gv_p03_DOMINION_SIEGE, gv_wavePrepTime, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/thorner04.sc2map/MapScript.galaxy:4240

    while (true) {
        gf_WaitForPermissionToAttack(gv_p03_DOMINION_SIEGE);
        AIAttackWaveAddUnits4(4, 4, 6, 8, "Goliath");
        AIAttackWaveAddWaypoint(gv_p03_DOMINION_SIEGE, PointFromId(302), false);
        AIAttackWaveSend(gv_p03_DOMINION_SIEGE, gv_wavePrepTime, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3563

    TriggerEnable(TriggerGetCurrent(), false);
    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 4, 5, "Marine");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 225, 180), true);
    gf_SetAttackWaveParameters();

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3566

    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 225, 180), true);
    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 6, 7, "Marine");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Medic");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3567

    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 6, 7, "Marine");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Medic");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);
    gf_SetAttackWaveParameters();

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3570

    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);
    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 7, 8, "Marine");
    AIAttackWaveAddUnits4(0, 0, 2, 3, "Medic");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3571

    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 7, 8, "Marine");
    AIAttackWaveAddUnits4(0, 0, 2, 3, "Medic");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);
    gf_SetAttackWaveParameters();

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3574

    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);
    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 0, 0, "Marine");
    AIAttackWaveAddUnits4(0, 0, 3, 5, "Hellion");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3575

    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 0, 0, "Marine");
    AIAttackWaveAddUnits4(0, 0, 3, 5, "Hellion");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);
    gf_SetAttackWaveParameters();

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3578

    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);
    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 9, 11, "Marine");
    AIAttackWaveAddUnits4(0, 0, 3, 4, "Medic");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 180, 150), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3579

    gf_SetAttackWaveParameters();
    AIAttackWaveAddUnits4(0, 2, 9, 11, "Marine");
    AIAttackWaveAddUnits4(0, 0, 3, 4, "Medic");
    AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 180, 150), true);
    while (true) {

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor02.sc2map/MapScript.galaxy:3583

    while (true) {
        gf_SetAttackWaveParameters();
        AIAttackWaveAddUnits4(0, 2, 8, 9, "Marine");
        AIAttackWaveAddUnits4(0, 0, 3, 4, "Hellion");
        AIAttackWaveSend(gv_pLAYER_02_DOMINION, libNtve_gf_DifficultyValueInt(400, 400, 210, 180), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2574

    TriggerExecute(gt_ZergP02EarlyNydusWave, true, false);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(14, 14, 13, 13, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 2, 3, "Hydralisk");
    AIAttackWaveSend(gv_pLAYER02_ZERG, 230, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2575

    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(14, 14, 13, 13, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 2, 3, "Hydralisk");
    AIAttackWaveSend(gv_pLAYER02_ZERG, 230, true);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2578

    AIAttackWaveSend(gv_pLAYER02_ZERG, 230, true);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(14, 14, 16, 20, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 2, 3, "Roach");
    AIAttackWaveSend(gv_pLAYER02_ZERG, 240, false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2579

    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(14, 14, 16, 20, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 2, 3, "Roach");
    AIAttackWaveSend(gv_pLAYER02_ZERG, 240, false);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2582

    AIAttackWaveSend(gv_pLAYER02_ZERG, 240, false);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(14, 14, 20, 22, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 2, 2, "Roach");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Baneling");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2583

    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(14, 14, 20, 22, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 2, 2, "Roach");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Baneling");
    AIAttackWaveSend(gv_pLAYER02_ZERG, 250, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2584

    AIAttackWaveAddUnits4(14, 14, 20, 22, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 2, 2, "Roach");
    AIAttackWaveAddUnits4(0, 0, 0, 1, "Baneling");
    AIAttackWaveSend(gv_pLAYER02_ZERG, 250, true);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2587

    AIAttackWaveSend(gv_pLAYER02_ZERG, 250, true);
    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(18, 18, 17, 15, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 2, 1, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 2, 1, "Roach");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2588

    AIAttackWaveAddWaypoint(gv_pLAYER02_ZERG, PointFromId(378), false);
    AIAttackWaveAddUnits4(18, 18, 17, 15, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 2, 1, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 2, 1, "Roach");
    AIAttackWaveAddUnits4(0, 0, 0, 2, "Baneling");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/traynor03.sc2map/MapScript.galaxy:2589

    AIAttackWaveAddUnits4(18, 18, 17, 15, "Zergling");
    AIAttackWaveAddUnits4(1, 1, 2, 1, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 2, 1, "Roach");
    AIAttackWaveAddUnits4(0, 0, 0, 2, "Baneling");
    AIAttackWaveSend(gv_pLAYER02_ZERG, libNtve_gf_DifficultyValueInt(150, 180, 180, 180), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:811

    AIAttackWaveSetGatherPoint(gv_p02_ZERG, PointFromId(106));
    Wait(170.0, c_timeAI);
    AIAttackWaveAddUnits4(2, 4, 8, 10, "Zergling");
    AIAttackWaveSend(gv_p02_ZERG, 120, true);
    Wait(libNtve_gf_DifficultyValueFixed(40.0, 40.0, 10.0, 0.0), c_timeAI);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:814

    AIAttackWaveSend(gv_p02_ZERG, 120, true);
    Wait(libNtve_gf_DifficultyValueFixed(40.0, 40.0, 10.0, 0.0), c_timeAI);
    AIAttackWaveAddUnits4(2, 5, 4, 8, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Hydralisk");
    AIAttackWaveSend(gv_p02_ZERG, libNtve_gf_DifficultyValueInt(120, 120, 120, 100), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:815

    Wait(libNtve_gf_DifficultyValueFixed(40.0, 40.0, 10.0, 0.0), c_timeAI);
    AIAttackWaveAddUnits4(2, 5, 4, 8, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Hydralisk");
    AIAttackWaveSend(gv_p02_ZERG, libNtve_gf_DifficultyValueInt(120, 120, 120, 100), true);
    Wait(50.0, c_timeAI);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:819

    Wait(50.0, c_timeAI);
    AIAttackWaveAddWaypoint(gv_p02_ZERG, PointFromId(557), false);
    AIAttackWaveAddUnits4(4, 6, 10, 16, "Zergling");
    AIAttackWaveSend(gv_p02_ZERG, 120, true);
    Wait(libNtve_gf_DifficultyValueFixed(50.0, 50.0, 20.0, 0.0), c_timeAI);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:822

    AIAttackWaveSend(gv_p02_ZERG, 120, true);
    Wait(libNtve_gf_DifficultyValueFixed(50.0, 50.0, 20.0, 0.0), c_timeAI);
    AIAttackWaveAddUnits4(5, 10, 11, 12, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Mutalisk");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:823

    Wait(libNtve_gf_DifficultyValueFixed(50.0, 50.0, 20.0, 0.0), c_timeAI);
    AIAttackWaveAddUnits4(5, 10, 11, 12, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Mutalisk");
    AIAttackWaveSend(gv_p02_ZERG, libNtve_gf_DifficultyValueInt(120, 120, 120, 110), true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:824

    AIAttackWaveAddUnits4(5, 10, 11, 12, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 1, 1, "Mutalisk");
    AIAttackWaveSend(gv_p02_ZERG, libNtve_gf_DifficultyValueInt(120, 120, 120, 110), true);
    Wait(libNtve_gf_DifficultyValueFixed(80.0, 80.0, 50.0, 20.0), c_timeAI);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:827

    AIAttackWaveSend(gv_p02_ZERG, libNtve_gf_DifficultyValueInt(120, 120, 120, 110), true);
    Wait(libNtve_gf_DifficultyValueFixed(80.0, 80.0, 50.0, 20.0), c_timeAI);
    AIAttackWaveAddUnits4(4, 6, 10, 20, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Mutalisk");
    AIAttackWaveSend(gv_p02_ZERG, 120, true);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:828

    Wait(libNtve_gf_DifficultyValueFixed(80.0, 80.0, 50.0, 20.0), c_timeAI);
    AIAttackWaveAddUnits4(4, 6, 10, 20, "Zergling");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Mutalisk");
    AIAttackWaveSend(gv_p02_ZERG, 120, true);
    AIAttackWaveAddUnits4(5, 2, 3, 13, "Zergling");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh01.sc2map/MapScript.galaxy:830

    AIAttackWaveAddUnits4(0, 0, 1, 2, "Mutalisk");
    AIAttackWaveSend(gv_p02_ZERG, 120, true);
    AIAttackWaveAddUnits4(5, 2, 3, 13, "Zergling");
    AIAttackWaveAddUnits4(0, 1, 2, 2, "Hydralisk");
    AIAttackWaveAddUnits4(0, 0, 1, 2, "Mutalisk");

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:330

    if (autoD1A8BB6F_val == 1) {
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);
        AIAttackWaveAddUnits4(1, 1, 2, 2, "Stalker");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:344

    else if (autoD1A8BB6F_val == 2) {
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);
        AIAttackWaveAddUnits4(1, 1, 2, 2, "Stalker");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:358

    else if (autoD1A8BB6F_val == 3) {
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);
        AIAttackWaveAddUnits4(0, 0, 1, 2, "Stalker");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:379

    else if (autoD1A8BB6F_val == 4) {
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);
        AIAttackWaveAddUnits4(1, 1, 2, 2, "Stalker");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:396

            AIAttackWaveAddEscortType(gv_p4_PROTOSS_WEST_ESCORTS, "VoidRay", lv_harvestingProbe, 1.5, (lv_offsetAngle * IntToFixed(lv_i)));
        }
        AIAttackWaveAddUnits4(0, 0, 1, 1, "Observer");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
    }

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:401

    else if (autoD1A8BB6F_val == 5) {
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);
        AIAttackWaveAddUnits4(2, 2, 3, 3, "Stalker");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
        AIAttackWaveSetTargetEscortNL(gv_p4_PROTOSS_WEST_ESCORTS, libNtve_gf_ConvertUnitToUnitGroup(lv_harvestingProbe), 0);

campaigns/liberty.sc2campaignbase.sc2maps/maps/campaign/ttosh02.sc2map/MapScript.galaxy:418

            AIAttackWaveAddEscortType(gv_p4_PROTOSS_WEST_ESCORTS, "VoidRay", lv_harvestingProbe, 1.5, (lv_offsetAngle * IntToFixed(lv_i)));
        }
        AIAttackWaveAddUnits4(0, 1, 1, 1, "Observer");
        AIAttackWaveSend(gv_p4_PROTOSS_WEST_ESCORTS, 0, false);
    }