anchor.diff:  
     procedure CheckMinArmyReq();
     const
  -    DEFAULT_COEFICIENT = 5;
  +    DEFAULT_COEFICIENT = 15;
       DEFAULT_ARMY_REQUIREMENTS: array[WARRIOR_EQUIPABLE_MIN..WARRIOR_EQUIPABLE_MAX] of Single = (
         1, 1, 1, 3,//ut_Militia,      ut_AxeFighter,   ut_Swordsman,     ut_Bowman,
         3, 1, 1, 0.5,//ut_Arbaletman,   ut_Pikeman,      ut_Hallebardman,  ut_HorseScout,
  
positive.code: 
      // Compute strength of specific enemy group
      with EnemyEval[aGT] do
      begin
        EnemyAttack := Attack + AttackHorse * Byte(antiGT = gt_Mounted);
        EnemyDefence := ifthen( (antiGT = gt_Ranged), DefenceProjectiles, Defence) * HitPoints;
      end;
      // Decrease strength by owner's existing units
      with AllyEval[antiGT] do
      begin
        EnemyAttack := EnemyAttack - ifthen( (aGT = gt_Ranged), DefenceProjectiles, Defence) * HitPoints;
        EnemyDefence := EnemyDefence - Attack - AttackHorse * Byte(aGT = gt_Mounted);
      end;
      // Compute unit requirements
      for I := 1 to 3 do
      begin
        UT := AITroopTrainOrder[antiGT,I];
        // Skip unit type if case that it is blocked
        if (UT = ut_None) OR gHands[fOwner].Locks.GetUnitBlocked(UT) then
          continue;
        // Calculate required count of specific unit type
        UnitEval := gAIFields.Eye.ArmyEvaluation.UnitEvaluation[UT, True];
        with UnitEval do
        begin
          MyAttack := Attack + AttackHorse * Byte(aGT = gt_Mounted);
          MyDefence := ifthen( (aGT = gt_Ranged), DefenceProjectiles, Defence) * HitPoints;
        end;
        AttackReq := EnemyAttack / MyDefence;
        DefenceReq := EnemyDefence / MyAttack;
        fWarriorsDemands[UT] := fWarriorsDemands[UT] + Max(0, Round(  Max(AttackReq, DefenceReq) * ifthen( (I = 1), aIronRatio, 1-aIronRatio )  )   );
        if (I = 2) then // In case that ut_AxeFighter is not blocked skip militia
          break;
      end;
  
negative.code: interface
  uses
    Math, KM_CommonUtils, SysUtils, KM_Defaults, KM_CommonClasses, KM_Points,
    KM_AISetup, KM_ResHouses, KM_ResWares, KM_ResUnits, KM_HandStats,
    KM_CityPredictor, KM_CityBuilder, KM_CityPlanner, KM_AIArmyEvaluation;
  
  var
  