anchor.diff:  
   procedure TKMCityManagement.UpdateState(aTick: Cardinal);
   const
  -  WORKER_COEF = 5.0;
  +  WORKER_COEF = 3.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
  +  if (aTick mod MAX_HANDS = fOwner) then
     begin
       fPredictor.UpdateState(aTick);
  -    fBuilder.ChooseHousesToBuild(Max(1,Ceil(FreeWorkersCnt/WORKER_COEF)), fPredictor.RequiredHouses, fPredictor.WareBalance);
  +    FreeWorkersCnt := 0;
  +    fBuilder.UpdateState(aTick, FreeWorkersCnt);
  +    fBuilder.ChooseHousesToBuild(Max(0,Ceil(FreeWorkersCnt/WORKER_COEF)), fPredictor.RequiredHouses, fPredictor.WareBalance);
       if not SKIP_RENDER then
       begin
         fPredictor.LogStatus(fBalanceText);
  
positive.code:       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_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
  
        // 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;
  
negative.code:       //LogStatus(fBalanceText);
      end;
    end;
  
    if (aTick mod LONG_UPDATE = fOwner) then
    begin
      if not GA_PLANNER then
  