anchor.diff:  interface
   uses
     KromUtils, Math, SysUtils,
  -  KM_Defaults, KM_CommonClasses, KM_Points,
  +  KM_Defaults, KM_CommonClasses, KM_CommonUtils, KM_Points,
     KM_ResHouses, KM_ResWares, KM_BuildList,
     KM_AIInfluences, KM_CityPlanner, KM_CityPredictor, KM_Eye;
   
   
   var
  -  GA_BUILDER_BuildHouse_RoadMaxWork     : Single = 5.697831631;
     GA_BUILDER_BuildHouse_FieldMaxWork    : Single = 1;
     GA_BUILDER_BuildHouse_RTPMaxWork      : Single = 10;
  +  GA_BUILDER_BuildHouse_RoadMaxWork     : Single = 10;
     GA_BUILDER_CreateShortcuts_MaxWork    : Single = 1.886523724;
     GA_BUILDER_ChHTB_FractionCoef         : Single = 22.06742477;
     GA_BUILDER_ChHTB_TrunkFactor          : Single = 8.568861008;
  -  GA_BUILDER_ChHTB_TrunkBalance         : Single = 2.400017023;
  -  GA_BUILDER_TRUNK_SHORTAGE             : Single = 1;
  -  GA_BUILDER_STONE_SHORTAGE             : Single = 10;
  +  GA_BUILDER_ChHTB_TrunkBalance         : Single = 5.72991991;
  +  GA_BUILDER_ChHTB_AllWorkerCoef        : Single = 8;
  +  GA_BUILDER_ChHTB_FreeWorkerCoef       : Single = 5;
  +  GA_BUILDER_TRUNK_SHORTAGE             : Single = 0;
  +  GA_BUILDER_STONE_SHORTAGE             : Single = 15;
     GA_BUILDER_WOOD_SHORTAGE              : Single = 10;
  -  GA_BUILDER_GOLD_SHORTAGE              : Single = 20;
  +  GA_BUILDER_GOLD_SHORTAGE              : Single = 30;
  +  //GA_BUILDER_BuildHouse_RoadMaxWork     : Single = 10.71040344;
  +  //GA_BUILDER_CreateShortcuts_MaxWork    : Single = 1;
  +  //GA_BUILDER_ChHTB_FractionCoef         : Single = 19.29274178;
  +  //GA_BUILDER_ChHTB_TrunkFactor          : Single = 8.16288662;
  +  //GA_BUILDER_ChHTB_TrunkBalance         : Single = 5.72991991;
  +  //GA_BUILDER_ChHTB_AllWorkerCoef        : Single = 4.31668663;
  +  //GA_BUILDER_ChHTB_FreeWorkerCoef       : Single = 2.113031864;
  +  //GA_BUILDER_TRUNK_SHORTAGE             : Single = 1;
  +  //GA_BUILDER_STONE_SHORTAGE             : Single = 13.36853027;
  +  //GA_BUILDER_WOOD_SHORTAGE              : Single = 10.41192532;
  +  //GA_BUILDER_GOLD_SHORTAGE              : Single = 33.83456802;
   
   
   type
  
positive.code:     I: Integer;
      WT: TKMWareType;
    begin
      // Find the most required house to be build
      for I := Low(BUILD_ORDER_WARE) to High(BUILD_ORDER_WARE) do
      begin
        WT := BUILD_ORDER_WARE[I];
        if (RequiredHouses[ PRODUCTION[WT] ] > 0) AND (WareBalance[WT].Exhaustion < 20) then
        begin
          // Try build required houses
          if (AddToConstruction(PRODUCTION[WT], False, True) = cs_HousePlaced) then
            MaxPlans := MaxPlans - 1;
          RequiredHouses[ PRODUCTION[WT] ] := 0; // Make sure that next cycle will not scan this house in this tick
        end;
        if (MaxPlans <= 0) then
          Break;
      end;
    end;
  
  
negative.code:   WareBalance := fPredictor.WareBalance;
  
    // Analyze basic force stats (max possible plans, construction ware, gold)
    //MaxPlans := Ceil(aFreeWorkersCnt / 5);
    //MaxPlans := Ceil(gHands[fOwner].Stats.GetUnitQty(ut_Worker) / GA_BUILDER_ChHTB_AllWorkerCoef) - fPlanner.ConstructedHouses;
    MaxPlans := Ceil(gHands[fOwner].Stats.GetUnitQty(ut_Worker) / GA_BUILDER_ChHTB_AllWorkerCoef) - fPlanner.ConstructedHouses;
    MaxPlans := Max(MaxPlans, Ceil(aFreeWorkersCnt / GA_BUILDER_ChHTB_FreeWorkerCoef));
  
    // Quarries have minimal delay + stones use only workers (towers after peace time) -> exhaustion for wt_Stone is OK
    if (WareBalance[wt_Stone].Exhaustion < GA_BUILDER_STONE_SHORTAGE) then
  