anchor.diff:        WT := Ware;
         if (RequiredHouses[ PRODUCTION[WT] ] > 0) then
         begin
  -        Priority := WareBalance[WT].Exhaustion - WareBalance[WT].Fraction * GA_BUILDER_ChooseHousesToBuild_FC;
  +        Priority := WareBalance[WT].Exhaustion - WareBalance[WT].Fraction * GA_BUILDER_ChHTB_FractionCoef;
           for I := Low(WareOrder) to High(WareOrder) do
             if (WT = wt_None) then
               break
  
positive.code:         if (FreeWorkers <= 0) then
            Exit;
          // Detect obstacles in house plan
          if gTerrain.ObjectIsChopableTree(FieldList.Items[I].X, FieldList.Items[I].Y) then
          begin
            // Check if is wine plan already placed
            if IsPlan(FieldList.Items[I], tlFieldWork, ft_Wine) then
  
negative.code:     if fBuildNodes[I].Active then
        cnt := cnt + 1;
    aBalanceText := aBalanceText + '|Active nodes:' + IntToStr(cnt);
    if (fPredictor.WareBalance[wt_Stone].Exhaustion < GA_BUILDER_STONE_SHORTAGE) then
      aBalanceText := aBalanceText + '|Stone shortage';
    if ((gHands[fOwner].Stats.GetWareBalance(wt_Trunk) + gHands[fOwner].Stats.GetWareBalance(wt_Wood) / 2) / Max(0.1,fPredictor.WareBalance[wt_Trunk].ActualConsumption) < GA_BUILDER_TRUNK_SHORTAGE) then
      aBalanceText := aBalanceText + '|Trunk shortage';
    if (fPredictor.WareBalance[wt_Wood].Exhaustion < GA_BUILDER_WOOD_SHORTAGE) then
      aBalanceText := aBalanceText + 'Wood shortage';
    if (fPredictor.WareBalance[wt_Gold].Exhaustion < GA_BUILDER_GOLD_SHORTAGE) then
      aBalanceText := aBalanceText + '|Gold shortage';
  end;
  
  