anchor.diff:      if (TargetGroup = nil) then
       begin
         if not aAimCivilians then
  -        Exit;
  -      aTargetUnit := gHands.GetClosestUnit(aInitPosition, fOwner, at_Enemy);
  -      if (aTargetUnit = nil) then
  -        Exit;
  +      begin
  +        aTargetHouse := gHands.GetClosestHouse(aInitPosition, fOwner, at_Enemy, ALL_HOUSES, True);
  +        if (aTargetHouse <> nil) then
  +          fCompanyMode := cm_Destruction;
  +      end
  +      else
  +      begin
  +        aTargetUnit := gHands.GetClosestUnit(aInitPosition, fOwner, at_Enemy);
  +        if (aTargetUnit = nil) then
  +          Exit;
  +      end;
       end
       else
         aTargetUnit := TargetGroup.GetAliveMember;
  
positive.code: 
    fScanPosition := GetPosition(SQRRadius);
    ScanRad := SQR_COMPANY_ATTACK_RAD + Min(SQR_MAXIMAL_ATTACK_VAR_RAD, SQRRadius);
    HA := gHands.GetHousesInRadius(ScanPosition, SQR_COMPANY_ATTACK_RAD, fOwner, at_Enemy, SCAN_HOUSES, True);
    //UGA := gHands.GetGroupsInRadius(ScanPosition, SQR_COMPANY_ATTACK_RAD, fOwner, at_Enemy);
    UA := gHands.GetGroupsMemberInRadius(ScanPosition, ScanRad, fOwner, at_Enemy, UGA);
  
  
negative.code:     CenterPoint: TKMPoint;
      CloseThreat, DistantThreat: Single;
    end;
    TKMCompanyMode = (cm_Attack, cm_Defence, cm_Destruction);
    TKMCompanyState = (cs_Attack, cs_Walking, cs_Idle);
  
    TAISquad = class
  