anchor.diff:        S := TKMHouseStore(gHands[fOwner].Houses[I]);
   
         // Materials
  -      //S.NotAcceptFlag[wt_Trunk] := gHands[fOwner].Stats.GetWareBalance(wt_Trunk) > 30; // Trunk cannot be blocked because of forest cleaning
  +      S.NotAcceptFlag[wt_Trunk] := gHands[fOwner].Stats.GetWareBalance(wt_Trunk) > 100; // Trunk should not be blocked because of forest cleaning
         S.NotAcceptFlag[wt_Wood] := S.CheckResIn(wt_Wood) > gHands[fOwner].Stats.GetUnitQty(ut_Worker);
  -      S.NotAcceptFlag[wt_Stone] := S.CheckResIn(wt_Stone) > gHands[fOwner].Stats.GetUnitQty(ut_Worker);
  -      //S.NotAcceptFlag[wt_Gold] := S.CheckResIn(wt_Gold) > 50; // Everyone needs as much gold as possible
  +      //S.NotAcceptFlag[wt_Stone] := S.CheckResIn(wt_Stone) > gHands[fOwner].Stats.GetUnitQty(ut_Worker);
  +      S.NotAcceptFlag[wt_Stone] := Predictor.WareBalance[wt_Stone].Exhaustion > 40;
  +      S.NotAcceptFlag[wt_Gold] := S.CheckResIn(wt_Gold) > 200; // Everyone needs as much gold as possible
   
         // Food - don't store food when we have enought (it will cause trafic before storehouse)
         S.NotAcceptFlag[wt_Wine] := gHands[fOwner].Stats.GetWareBalance(wt_Wine)  > 100;
  
positive.code: 
  procedure TKMCityManagement.UpdateState(aTick: Cardinal);
  const
    WORKER_COEF = 5.0;
    LONG_UPDATE = MAX_HANDS * 10;
  var
    FreeWorkersCnt: Integer;
  begin
    // Priorities
    if (aTick = 10) then
    begin
      //fPredictor.UpdateState();
      // if (aTick + Byte(fOwner)) mod (MAX_HANDS * 10) <> MAX_HANDS then Exit;
    end;
    //{
    FreeWorkersCnt := 0;
    fBuilder.UpdateState(aTick, FreeWorkersCnt);
    //if ((FreeWorkersCnt > 0) OR (gHands[fOwner].Stats.GetHouseQty(ht_Metallurgists) > 0)) AND (aTick mod 12 = fOwner) then
    //if (aTick mod 12 = fOwner) AND (FreeWorkersCnt > 0) then
    if (aTick mod MAX_HANDS = fOwner) AND (FreeWorkersCnt > 0) then
    begin
      fPredictor.UpdateState(aTick);
      fBuilder.ChooseHousesToBuild(Max(1,Ceil(FreeWorkersCnt/WORKER_COEF)), fPredictor.RequiredHouses, fPredictor.WareBalance);
      if not SKIP_RENDER then
      begin
        fPredictor.LogStatus(fBalanceText);
  
negative.code: 
    // Place all houses AfterMissionInit (only for GA_PLANNER tuning parameters)
    Cnt := 0;
    GA_PLANNER := True;
    if GA_PLANNER then
      for I := 0 to 100 do
      begin
  