anchor.diff:    POLYGON_CNT_PENALIZATION = 2; // Polygon count penalization (more polygons = worse defensive line)
     OPTIMAL_INFLUENCE_ADD = 1; // Improve criterium of actual defence line in case that influence is in <MIN_OPTIMAL_INFLUENCE, ALLY_INFLUENCE_LIMIT>
     ALLY_INFLUENCE_PENALIZATION = 4; // Ally penalization (dont place defences inside of ally city)
  -  ENEMY_INFLUENCE_PENALIZATION = 4; // Enemy penalization (dont place defences inside of enemy city)
  +  ENEMY_INFLUENCE_PENALIZATION = 6; // Enemy penalization (dont place defences inside of enemy city)
     MINIMAL_DEFENCE_DISTANCE = 5; // Minimal distance of defensive lines (minimal distance is also affected by OWNER_INFLUENCE_LIMIT)
     MAXIMAL_DEFENCE_DISTANCE = 100; // Maximal defence distance (maximal distance is also affected by MAX_ENEMY_INFLUENCE)
   
   implementation
   uses
  -  KM_AIFields, KM_AIInfluences, KM_NavMesh;
  +  KM_HandsCollection, KM_AIFields, KM_AIInfluences, KM_NavMesh;
   
   
   { TForwardFF }
  
positive.code:                   - Byte(    ((fDefInfo[aIdx].AllyInfluence > MIN_OPTIMAL_INFLUENCE) AND (fDefInfo[aIdx].AllyInfluence < ALLY_INFLUENCE_LIMIT))
                            OR ((fDefInfo[aIdx].Influence > MIN_OPTIMAL_INFLUENCE) AND (fDefInfo[aIdx].Influence < ALLY_INFLUENCE_LIMIT))
                           ) * OPTIMAL_INFLUENCE_ADD
                    + Byte(fDefInfo[aIdx].AllyInfluence > ALLY_INFLUENCE_LIMIT) * ALLY_INFLUENCE_PENALIZATION
                    + Byte(fDefInfo[aIdx].EnemyInfluence > ENEMY_INFLUENCE_LIMIT) * ENEMY_INFLUENCE_PENALIZATION;
      QueueIdx := fQueueArray[QueueIdx].Next;
    end;
  
negative.code:       begin
          fQueueArray[NearbyIdx].Visited := fVisitedIdx; // Mark as visited
          fDefInfo[NearbyIdx].Distance := fQueueArray[NearbyIdx].Distance; // Save distance for future calculation
          if (PolyArr[NearbyIdx].NearbyCount = 3) then // Defences are created only from polygons with 3 surrounding polygons
          begin
            fQueueArray[NearbyIdx].Distance := High(Word) - fQueueArray[NearbyIdx].Distance; // Invert distance (only polygons which will be inserted)
            InsertAndSort(NearbyIdx); // Insert ONLY polygons with 3 nearby polygons because it is possible to create defence line from them and also it save performance
  