anchor.diff:  begin
     // DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG
     //SetKaMSeed(666);
  -  //gGame.GameOptions.Peacetime := 70;
  +  //gGame.GameOptions.Peacetime := 90;
     //fSetup.ApplyAgressiveBuilderSetup(True);
     // DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG DELETE DEBUG
   
  
positive.code:   KM_CityPredictor, KM_CityBuilder, KM_CityPlanner, KM_AIArmyEvaluation;
  
  var
    GA_MANAGER_CheckUnitCount_SerfCoef    : Single = 0.3677794933;
    GA_MANAGER_CheckUnitCount_SerfLimit   : Single = 4.057023287;
  
  type
    TKMWarfareArr = array[WARFARE_MIN..WARFARE_MAX] of record
  
negative.code:       // Calculate required count of specific unit type
        UnitEval := gAIFields.Eye.ArmyEvaluation.UnitEvaluation[UT, True];
        with UnitEval do
          UnitStrength := Max(0, Attack + AttackHorse * Byte(aGT = gt_Mounted)
                                 * ifthen( (aGT = gt_Ranged), DefenceProjectiles, Defence )
                                 * HitPoints);
  
        UnitsRequired := Power(EnemyStrength / UnitStrength, 1/3) * ifthen( (I = 1), aIronRatio, 1-aIronRatio );
        fWarriorsDemands[UT] := fWarriorsDemands[UT] + Max(0, Round(UnitsRequired)   );
        if (I = 2) then // In case that ut_AxeFighter is not blocked skip militia
          break;
  