anchor.diff:    //Citizens
     // Make sure we have enough gold left for self-sufficient city
     GoldProduced := Stats.GetWaresProduced(wt_Gold);
  -  if (Stats.GetWareBalance(wt_Gold) < LACK_OF_GOLD) AND (GoldProduced = 0) then
  +  GoldShortage := (Stats.GetWareBalance(wt_Gold) < LACK_OF_GOLD) AND (GoldProduced = 0);
  +  if GoldShortage then
     begin
       UnitReq[ut_Serf] := 3; // 3x Serf
       UnitReq[ut_Worker] := Byte(fSetup.WorkerCount > 0);// 1x Worker
  
positive.code: 
        // Materials
        S.NotAcceptFlag[wt_Trunk] := (aTick > TRUNK_STORE_DELAY); // Trunk should not be blocked because of forest cleaning
        S.NotAcceptFlag[wt_Wood] := (aTick > WOOD_STORE_DELAY);// AND (Predictor.WareBalance[wt_Wood].Exhaustion > 40);
        S.NotAcceptFlag[wt_Stone] := (aTick > STONE_STORE_DELAY) OR (S.CheckResIn(wt_Stone)*2 > gHands[fOwner].Stats.GetUnitQty(ut_Worker));
        S.NotAcceptFlag[wt_Gold] := S.CheckResIn(wt_Gold) > 400; // Everyone needs as much gold as possible
  
  
negative.code:     ut_Farmer, ut_AnimalBreeder, ut_Baker, ut_Butcher, ut_Fisher, ut_Smith, ut_Serf, ut_Worker, ut_Recruit
    );
  var
    GoldShortage: Boolean;
    I,K,cnt: Integer;
    GoldProduced: Cardinal;
    H: TKMHouse;
  