# Tactical AI - Cast

Grammar — Suggest order order for unit unit with retreat toggle of retreat. Optionally passes marker marker info
FlagsNative | Action

Suggests an order to a unit. Works the same as Issue AI Order, but with additional parameters. If the computer that controls the unit has the ability to execute the order (with respect to its current APM constraint), then it will do so. The order will eventually be dropped if the computer is unable to execute it for a few seconds after it was issued. If you need a unit to do something immediately, use Issue Order instead. The Marker parameter is optional, pass in null if you don’t want to use it.

# Arguments

  • unit — Unit
  • order — Order
  • marker — Marker
  • bool — Retreat

Returns — int

native int AICast(unit u, order o, marker m, bool retreat);

Category: AI Advanced / Tactical / Actions

# Examples

# campaigns/liberty.sc2campaign

TactCampAI.galaxy

// L20
AICast(aiUnit, ord, c_noMarker,  c_castHold)
// L101
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L147
AICast(aiUnit, cancelOrd, c_noMarker, c_castHold)
// L358
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L394
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L494
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L500
AICast(aiUnit, ord, c_noMarker, c_castHold)

# campaigns/liberty.sc2campaign

MapScript.galaxy

// L10021
AICast(gv_hybrid, Order(AbilityCommand("HybridFAoEStun", 0)), null, false)
// L10072
AICast(gv_hybrid, OrderTargetingUnit(AbilityCommand("ConsumeDNA", 0), UnitGroupRandomUnit(lv_zergGroup, c_unitCountAlive)), null, false)
// L10123
AICast(gv_hybrid, OrderTargetingUnit(AbilityCommand("ConsumeDNA", 0), UnitGroupRandomUnit(lv_protossGroup, c_unitCountAlive)), null, false)
// L472
AICast(lp_ghost, lv_snipeOrder, lv_snipeMarker, false)
// L1944
AICast(EventUnit(), Order(AbilityCommand("PsionicShockwave", 0)), null, false)
// L1995
AICast(EventUnit(), Order(AbilityCommand("PsionicShockwave", 0)), null, false)
// L2050
AICast(EventUnit(), Order(AbilityCommand("PsionicShockwave", 0)), null, false)
// L10021
AICast(gv_hybrid, Order(AbilityCommand("HybridFAoEStun", 0)), null, false)
// L10072
AICast(gv_hybrid, OrderTargetingUnit(AbilityCommand("ConsumeDNA", 0), UnitGroupRandomUnit(lv_zergGroup, c_unitCountAlive)), null, false)
// L10123
AICast(gv_hybrid, OrderTargetingUnit(AbilityCommand("ConsumeDNA", 0), UnitGroupRandomUnit(lv_protossGroup, c_unitCountAlive)), null, false)
// L472
AICast(lp_ghost, lv_snipeOrder, lv_snipeMarker, false)
// L1944
AICast(EventUnit(), Order(AbilityCommand("PsionicShockwave", 0)), null, false)
// L1995
AICast(EventUnit(), Order(AbilityCommand("PsionicShockwave", 0)), null, false)
// L2050
AICast(EventUnit(), Order(AbilityCommand("PsionicShockwave", 0)), null, false)

# campaigns/swarm.sc2campaign

TactCampAI.galaxy

// L20
AICast(aiUnit, ord, c_noMarker,  c_castHold)
// L101
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L147
AICast(aiUnit, cancelOrd, c_noMarker, c_castHold)
// L358
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L394
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L494
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L500
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L20
AICast(aiUnit, ord, c_noMarker,  c_castHold)
// L966
AICast(aiUnit, ord, c_noMarker, c_castRetreat)

# mods/core.sc2mod

NativeLib.galaxy

// L1361
AICast(lp_unit, lp_order, c_noMarker, c_castHold)

# mods/core.sc2mod

TactProtAI.galaxy

// L163
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L201
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L207
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L214
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L224
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L232
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L262
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L654
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L666
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L715
AICast(aiUnit, ord, c_noMarker, c_castHold)

# mods/core.sc2mod

TactTerrAI.galaxy

// L94
AICast(aiUnit, ord, mark, c_castHold)
// L138
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L179
AICast(aiUnit, cancelOrd, c_noMarker, c_castHold)
// L411
AICast(aiUnit, ord, mark, c_castRetreat)
// L601
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L729
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L748
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L941
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L1036
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L1077
AICast(aiUnit, ord, c_noMarker, c_castHold)

# mods/core.sc2mod

TactZergAI.galaxy

// L131
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L137
AICast(aiUnit, ord, mark, c_castHold)
// L142
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L180
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L350
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L357
AICast(aiUnit, ord, mark, c_castHold)
// L364
AICast(aiUnit, ord, mark, c_castHold)
// L436
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L715
AICast(aiUnit, ord, mark, c_castHold)
// L779
AICast(aiUnit, ord, mark, c_castHold)

# mods/core.sc2mod

TacticalAI.galaxy

// L230
AICast(aiUnit, ord, mark, retreat)

# mods/starcoop/starcoop.sc2mod

TactCampAI.galaxy

// L113
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L323
AICast(aiUnit, ord, mark, c_castRetreat)
// L342
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L370
AICast(aiUnit, ord, c_noMarker,  c_castHold)
// L451
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L497
AICast(aiUnit, cancelOrd, c_noMarker, c_castHold)
// L562
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L714
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L750
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L850
AICast(aiUnit, ord, c_noMarker, c_castHold)

# mods/starcoop/starcoop.sc2mod

TactProtAI.galaxy

// L165
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L264
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L632
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L638
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L644
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L693
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L699
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L705
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L711
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L929
AICast(aiUnit, ord, c_noMarker, c_castHold)

# mods/starcoop/starcoop.sc2mod

TactTerrAI.galaxy

// L97
AICast(aiUnit, ord, mark, c_castHold)
// L141
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L182
AICast(aiUnit, cancelOrd, c_noMarker, c_castHold)
// L393
AICast(aiUnit, ord, mark, c_castRetreat)
// L578
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L705
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L724
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L906
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L997
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L1057
AICast(aiUnit, ord, c_noMarker, c_castHold)

# mods/starcoop/starcoop.sc2mod

TactZergAI.galaxy

// L155
AICast(aiUnit, ord, mark, c_castHold)
// L160
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L215
AICast(aiUnit, ord, c_noMarker, c_castRetreat)
// L448
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L454
AICast(aiUnit, ord, c_noMarker, c_castHold)
// L461
AICast(aiUnit, ord, mark, c_castHold)
// L472
AICast(aiUnit, ord, mark, c_castHold)
// L647
AICast(aiUnit, ord, c_noMarker, c_castHold)