anchor.diff:    //Find target
     case aTarget of
       att_ClosestUnit:                  TargetUnit := gHands.GetClosestUnit(aGroup.Position, fOwner, at_Enemy);
  -    att_ClosestBuildingFromArmy:      TargetHouse := gHands.GetClosestHouse(aGroup.Position, fOwner, at_Enemy, false);
  -    att_ClosestBuildingFromStartPos:  TargetHouse := gHands.GetClosestHouse(fSetup.StartPosition, fOwner, at_Enemy, false);
  +    att_ClosestBuildingFromArmy:      TargetHouse := gHands.GetClosestHouse(aGroup.Position, fOwner, at_Enemy, TARGET_HOUSES, false);
  +    att_ClosestBuildingFromStartPos:  TargetHouse := gHands.GetClosestHouse(fSetup.StartPosition, fOwner, at_Enemy, TARGET_HOUSES, false);
       att_CustomPosition:               begin
                                           TargetHouse := gHands.HousesHitTest(aCustomPos.X, aCustomPos.Y);
                                           if (TargetHouse <> nil) and
  
positive.code: 
  //See if we can attack our enemies
  procedure TKMGeneral.OrderAttack(aGroup: TKMUnitGroup; aTarget: TAIAttackTarget; aCustomPos: TKMPoint);
  var
    TargetHouse: TKMHouse;
    TargetUnit: TKMUnit;
  
negative.code: 
  
  implementation
  uses
    Classes, Math,
    KM_Game, KM_Hand, KM_HandsCollection, KM_Terrain, KM_AIFields,
    KM_Houses, KM_HouseBarracks,
    KM_ResHouses, KM_NavMesh, KM_CommonUtils;
  
  
  const
  