anchor.diff:              Priority := aRoadNodePrio;
               RemoveTreesMode := False;
               ShortcutMode := False;
  -            MaxReqWorkers := Round(GA_BUILDER_BuildHouse_RoadMaxWork) + Byte(not aIgnoreTrees) * 20;
  +            MaxReqWorkers := Round(GA_BUILDER_BuildHouse_RoadMaxWork) + Byte(NODE_PRIO_RoadsUnlockHouse = aRoadNodePrio) * 20;
               RequiredWorkers := Min(MaxReqWorkers, FieldList.Count);
               CenterPoint := FieldList[ FieldList.Count-1 ]; // Road node must start from exist house
             end;
  
positive.code:   GA_BUILDER_ChHTB_TrunkBalance         : Single =  2.511;
    GA_BUILDER_ChHTB_AllWorkerCoef        : Single =  7.154;
    GA_BUILDER_ChHTB_FreeWorkerCoef       : Single =  4.251;
    GA_BUILDER_Shortage_Trunk             : Single =  1.725;
    GA_BUILDER_Shortage_Stone             : Single = 13.772;
    GA_BUILDER_Shortage_StoneNoQuarry     : Single = 30.000;
    GA_BUILDER_Shortage_Wood              : Single =  8.429;
    GA_BUILDER_Shortage_Gold              : Single = 27.638;
  
  
  const
    NODE_PRIO_Roads = 1;
    NODE_PRIO_RoadsReservation = 2;
    NODE_PRIO_Fields = 3;
    NODE_PRIO_FieldsReservation = 3;
    NODE_PRIO_RemoveTreeInPlan = 3;
    NODE_PRIO_Shortcuts = 3;
    NODE_PRIO_Default = 255;
  
  
negative.code: begin
    HMA := gAIFields.Eye.HousesMapping;
    // Free all tiles inside house plan
    if (aHT <> htCoalMine) then
      for I := Low(HMA[aHT].Tiles) to High(HMA[aHT].Tiles) do
      begin
        Point := KMPointAdd(aLoc, HMA[aHT].Tiles[I]);
        gAIFields.Influences.AvoidBuilding[Point.Y, Point.X] := AVOID_BUILDING_UNLOCK;
      end;
    // Free all tiles in distance 1 from house plan
    Dist := 1;
    for Dir := Low(HMA[aHT].Surroundings[Dist]) to High(HMA[aHT].Surroundings[Dist]) do
  