# Add Escort Unit To Attack Wave

Grammar — Add unit to the next attack wave for player player, the unit is specifically assigned to escort escort offset by offset|Distance towards angle degrees.
FlagsNative | Action

Adds a unit to the next attack wave for a player with orders to escort another unit.

# Arguments

  • int — Player
  • unit — Unit
  • unit — Escort
  • fixed — Offset
  • fixed — Angle

Returns — void

native void AIAttackWaveAddEscortUnit(
	int player,
	unit u,
	unit escort,
	fixed offset,
	fixed angle,
);

Category: AI / AttackWaves / Actions

# Examples

# campaigns/liberty.sc2campaign

MapScript.galaxy

// L2087
AIAttackWaveAddEscortUnit(lv_escortPlayer, gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_escort, gv_trainList[lv_trainIndex].lv_trainCars[gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_escortCar], gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_polarRadius, gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_polarAngle)
// L2087
AIAttackWaveAddEscortUnit(lv_escortPlayer, gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_escort, gv_trainList[lv_trainIndex].lv_trainCars[gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_escortCar], gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_polarRadius, gv_trainList[lv_trainIndex].lv_escorts[lv_i].lv_polarAngle)
// L2880
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver01, 4.0, 140.0)
// L2883
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver01, 4.0, 220.0)
// L2889
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver02, 4.0, 240.0)
// L2892
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver02, 4.0, 120.0)
// L2898
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver03, 4.0, 120.0)
// L2901
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver03, 4.0, 240.0)
// L2852
AIAttackWaveAddEscortUnit(gv_pLAYER_02_ZERG, auto31CD32E2_var, gv_zagara, 2.5, lv_angle)
// L774
AIAttackWaveAddEscortUnit(gv_pLAYER_02_SHUTTLE_BLUE, UnitGroupUnit(lp_escortGroup, lv_index), lv_shuttleToEscort, (lv_offset * lv_distanceModifier), lv_angle)
// L781
AIAttackWaveAddEscortUnit(gv_pLAYER_02_SHUTTLE_BLUE, UnitGroupUnit(lp_escortGroup, lv_index), lv_shuttleToEscort, (lv_offset * lv_distanceModifier), lv_angle)
// L533
AIAttackWaveAddEscortUnit(gv_pLAYER_02_DOMINION222, auto0A92F2EA_var, lv_hybrid, DistanceBetweenPoints(UnitGetPosition(auto0A92F2EA_var), UnitGetPosition(lv_hybrid)), (AngleBetweenPoints(UnitGetPosition(lv_hybrid), UnitGetPosition(auto0A92F2EA_var)) - UnitGetFacing(lv_hybrid)))
// L2852
AIAttackWaveAddEscortUnit(gv_pLAYER_02_ZERG, auto31CD32E2_var, gv_zagara, 2.5, lv_angle)
// L774
AIAttackWaveAddEscortUnit(gv_pLAYER_02_SHUTTLE_BLUE, UnitGroupUnit(lp_escortGroup, lv_index), lv_shuttleToEscort, (lv_offset * lv_distanceModifier), lv_angle)
// L781
AIAttackWaveAddEscortUnit(gv_pLAYER_02_SHUTTLE_BLUE, UnitGroupUnit(lp_escortGroup, lv_index), lv_shuttleToEscort, (lv_offset * lv_distanceModifier), lv_angle)
// L533
AIAttackWaveAddEscortUnit(gv_pLAYER_02_DOMINION222, auto0A92F2EA_var, lv_hybrid, DistanceBetweenPoints(UnitGetPosition(auto0A92F2EA_var), UnitGetPosition(lv_hybrid)), (AngleBetweenPoints(UnitGetPosition(lv_hybrid), UnitGetPosition(auto0A92F2EA_var)) - UnitGetFacing(lv_hybrid)))
// L2880
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver01, 4.0, 140.0)
// L2883
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver01, 4.0, 220.0)
// L2889
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver02, 4.0, 240.0)
// L2892
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver02, 4.0, 120.0)
// L2898
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver03, 4.0, 120.0)
// L2901
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, UnitLastCreated(), gv_s1_PatrollingObserver03, 4.0, 240.0)
// L4263
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 45.0)
// L4266
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 315.0)
// L4269
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, libLotv_gf_DifficultyValueFixed2(4.0, 4.0, 4.0, 3.0), libLotv_gf_DifficultyValueFixed2(105.0, 105.0, 105.0, 135.0))
// L4272
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, libLotv_gf_DifficultyValueFixed2(4.0, 4.0, 4.0, 3.0), libLotv_gf_DifficultyValueFixed2(255.0, 255.0, 255.0, 225.0))
// L4276
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 270.0)
// L4279
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 90.0)
// L4284
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 3.0, 180.0)
// L4349
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 45.0)
// L4352
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 315.0)
// L4355
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, libLotv_gf_DifficultyValueFixed2(4.0, 4.0, 4.0, 3.0), libLotv_gf_DifficultyValueFixed2(105.0, 105.0, 105.0, 135.0))
// L3179
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 4.0, 250.0)
// L3182
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 4.0, 110.0)
// L3185
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 5.0, 330.0)
// L3188
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 5.0, 30.0)
// L3199
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 290.0)
// L3202
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 70.0)
// L3212
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 290.0)
// L3215
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 70.0)
// L3220
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 290.0)
// L3223
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 70.0)
// L2035
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, autoB7B8E240_var, gv_titanicWarpPrism, DistanceBetweenPoints(UnitGetPosition(autoB7B8E240_var), UnitGetPosition(gv_titanicWarpPrism)), AngleBetweenPoints(UnitGetPosition(gv_titanicWarpPrism), UnitGetPosition(autoB7B8E240_var)))
// L2042
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, autoA408650D_var, gv_titanicWarpPrism, DistanceBetweenPoints(UnitGetPosition(autoA408650D_var), UnitGetPosition(gv_titanicWarpPrism)), AngleBetweenPoints(UnitGetPosition(gv_titanicWarpPrism), UnitGetPosition(autoA408650D_var)))
// L2049
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, auto9BD4A0CB_var, gv_titanicWarpPrism, DistanceBetweenPoints(UnitGetPosition(auto9BD4A0CB_var), UnitGetPosition(gv_titanicWarpPrism)), AngleBetweenPoints(UnitGetPosition(gv_titanicWarpPrism), UnitGetPosition(auto9BD4A0CB_var)))
// L4263
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 45.0)
// L4266
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 315.0)
// L4269
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, libLotv_gf_DifficultyValueFixed2(4.0, 4.0, 4.0, 3.0), libLotv_gf_DifficultyValueFixed2(105.0, 105.0, 105.0, 135.0))
// L4272
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, libLotv_gf_DifficultyValueFixed2(4.0, 4.0, 4.0, 3.0), libLotv_gf_DifficultyValueFixed2(255.0, 255.0, 255.0, 225.0))
// L4276
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 270.0)
// L4279
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 90.0)
// L4284
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 3.0, 180.0)
// L4349
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 45.0)
// L4352
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, 4.0, 315.0)
// L4355
AIAttackWaveAddEscortUnit(gv_pLAYER_05_PROTOSS_ARMADA, UnitLastCreated(), lv_lv_EscortTargetUnit, libLotv_gf_DifficultyValueFixed2(4.0, 4.0, 4.0, 3.0), libLotv_gf_DifficultyValueFixed2(105.0, 105.0, 105.0, 135.0))
// L3179
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 4.0, 250.0)
// L3182
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 4.0, 110.0)
// L3185
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 5.0, 330.0)
// L3188
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 5.0, 30.0)
// L3199
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 290.0)
// L3202
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 70.0)
// L3212
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 290.0)
// L3215
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 70.0)
// L3220
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 290.0)
// L3223
AIAttackWaveAddEscortUnit(gv_pLAYER_03_TAL_EAST, UnitLastCreated(), lv_warpPrism, 7.0, 70.0)
// L2035
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, autoB7B8E240_var, gv_titanicWarpPrism, DistanceBetweenPoints(UnitGetPosition(autoB7B8E240_var), UnitGetPosition(gv_titanicWarpPrism)), AngleBetweenPoints(UnitGetPosition(gv_titanicWarpPrism), UnitGetPosition(autoB7B8E240_var)))
// L2042
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, autoA408650D_var, gv_titanicWarpPrism, DistanceBetweenPoints(UnitGetPosition(autoA408650D_var), UnitGetPosition(gv_titanicWarpPrism)), AngleBetweenPoints(UnitGetPosition(gv_titanicWarpPrism), UnitGetPosition(autoA408650D_var)))
// L2049
AIAttackWaveAddEscortUnit(gv_pLAYER_02_TALDARIM, auto9BD4A0CB_var, gv_titanicWarpPrism, DistanceBetweenPoints(UnitGetPosition(auto9BD4A0CB_var), UnitGetPosition(gv_titanicWarpPrism)), AngleBetweenPoints(UnitGetPosition(gv_titanicWarpPrism), UnitGetPosition(auto9BD4A0CB_var)))
// L2537
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, 45.0)
// L2541
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, -135.0)
// L2544
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, -45.0)
// L2550
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, 135.0)
// L2537
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, 45.0)
// L2541
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, -135.0)
// L2544
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, -45.0)
// L2550
AIAttackWaveAddEscortUnit(gv_pLAYER_02_PROTOSS_BULLIES, UnitLastCreated(), lv_warpPrismUnit, 3.0, 135.0)