anchor.diff:        if (DP <> nil) then
         begin
           AG.Price[AG.Count] := DP.Weight; // Change weight
  -        Inc(AG.Count,1); // Confirm that the group should be in array GroupArr
  +        Inc(AG.Count); // Confirm that the group should be in array GroupArr
         end;
       end;
     end;
  
positive.code:   begin
      // Get count of available group types
      FillChar(GTArr, SizeOf(GTArr), #0);
      //for GT in TKMGroupType do
      //  GTArr[GT] := 0;
  
      for I := 0 to aAGCnt - 1 do
        Inc(  GTArr[ aAvailableGroups[I].GroupType ]  );
  
  
negative.code:           BestPrice := AG.Price[K];
            BestIdx := K;
          end;
        with AG do
        begin
          Dec(Count);
          GroupArr[BestIdx] := GroupArr[Count];
          Price[BestIdx] := Price[Count];
        end;
      end;
  
    if fAttack.FindBestTarget(TargetOwner, TargetPoint, ForceToAttack) then
      with AG do
      begin
        for I := 0 to Count - 1 do
          fDefence.ReleaseGroup(GroupArr[I]);
        OrderAttack(TargetPoint, Count, GroupArr);
        //if ForceToAttack OR (gAIFields.Eye.ArmyEvaluation.CompareAllianceStrength(TargetOwner, AvailableGroups) > COMPANY_MIN_ATTACK_CHANCE) then
      end;
  
    //Comparison := gAIFields.Eye.ArmyEvaluation.CompareAllianceStrength(fOwner, EnemyStats[I].Player) - (EnemyStats[I].Distance / MinDist - 1) * DISTANCE_COEF;
    //fAttack.AttackChance(AvailableGroups);
  