MCPcopy Create free account
hub / github.com/bwapi/bwapi / UseTech

Method UseTech

bwapi/BWScriptEmulator/UnitInfo.cpp:32–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30 return pUnit->getPlayer()->hasResearched(TechTypes::Lockdown) && pUnit->getEnergy() >= tech.energyCost();
31}
32bool UnitWrap::UseTech(BWAPI::TechType tech, Unit pTarget, int targBit)
33{
34 if ( !pTarget )
35 return false;
36
37 if ( pUnit->getOrder() == tech.getOrder() && pUnit->getTarget() == pTarget ) // Already targetting it
38 return false;
39
40 int targFlags = UnitWrap(pTarget).GetTargetFlags();
41 if ( targFlags & targBit )
42 return false;
43
44 if ( pUnit->useTech(tech, pTarget) ) // Use the tech!
45 {
46 UnitWrap(pTarget).SetTargetFlags(targFlags | targBit);
47 SetVirtualUnitOrder( (Orders::Enum::Enum)tech.getOrder().getID() );
48 return true;
49 }
50 return false; // If the tech failed
51}
52bool UnitWrap::UseTechOnClosest(BWAPI::TechType tech, int range, const BWAPI::UnitFilter &pred, int targBit)
53{
54 Unit pTarget = pUnit->getClosestUnit(pred, range);

Callers

nothing calls this directly

Calls 7

UnitWrapClass · 0.85
GetTargetFlagsMethod · 0.80
SetTargetFlagsMethod · 0.80
getOrderMethod · 0.45
getTargetMethod · 0.45
useTechMethod · 0.45
getIDMethod · 0.45

Tested by

no test coverage detected