anchor.diff:          // Add road to node
           if fPlanner.GetRoadToHouse(aHT, HouseIdx, fBuildNodes[Node1Idx].FieldList, fBuildNodes[Node1Idx].FieldType)
              AND (fBuildNodes[Node1Idx].FieldList.Count > 0) then
  -        begin
  -          LockNode(fBuildNodes[Node1Idx]);
  -          with fBuildNodes[Node1Idx] do
  -          begin
  +           with fBuildNodes[Node1Idx] do
  +           begin
  +            // Check road and if it goes to enemy influence remove house plan
  +            I := 0;
  +            if (aHT = htWatchtower) then
  +              while (I < FieldList.Count) do
  +              begin
  +                PolygonIdx := gAIFields.NavMesh.KMPoint2Polygon[ FieldList[I] ];
  +                if (gAIFields.Influences.GetBestAllianceOwnership(fOwner, PolygonIdx, at_Enemy) > 150) then
  +                begin
  +                  Planner.RemovePlan(aHT, Loc);
  +                  Exit;
  +                end;
  +                I := I + 5;
  +              end;
  +            LockNode(fBuildNodes[Node1Idx]);
  +
               Active := True;
               RemoveTreesMode := False;
               ShortcutMode := False;
  
positive.code: var
    Output: TConstructionState;
    FieldsComplete, Check: Boolean;
    I, Node1Idx, Node2Idx, HouseIdx: Integer;
    Loc: TKMPoint;
  begin
  
negative.code:             RequiredWorkers := Min(MaxReqWorkers, FieldList.Count);
              CenterPoint := FieldList[ FieldList.Count-1 ]; // Road node must start from exist house
            end;
          // Add field to node (if is required [ht_Farm, ht_Wineyard])
          if not FieldsComplete AND fPlanner.GetFieldToHouse(aHT, HouseIdx, fBuildNodes[Node2Idx].FieldList, fBuildNodes[Node2Idx].FieldType) then
          begin
  