| 30 | return pUnit->getPlayer()->hasResearched(TechTypes::Lockdown) && pUnit->getEnergy() >= tech.energyCost(); |
| 31 | } |
| 32 | bool 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 | } |
| 52 | bool UnitWrap::UseTechOnClosest(BWAPI::TechType tech, int range, const BWAPI::UnitFilter &pred, int targBit) |
| 53 | { |
| 54 | Unit pTarget = pUnit->getClosestUnit(pred, range); |
nothing calls this directly
no test coverage detected