anchor.diff:  
   
   procedure TKMCityManagement.AfterMissionInit();
  +  procedure SetWareDistribution();
  +  begin
  +    // Top priority for gold mines
  +    gHands[fOwner].Stats.WareDistribution[wt_coal, ht_Metallurgists] := 5;
  +    gHands[fOwner].Stats.WareDistribution[wt_coal, ht_WeaponSmithy] := 2;
  +    gHands[fOwner].Stats.WareDistribution[wt_coal, ht_IronSmithy] := 3;
  +    gHands[fOwner].Stats.WareDistribution[wt_coal, ht_ArmorSmithy] := 2;
  +
  +    gHands[fOwner].Houses.UpdateResRequest;
  +  end;
   const
     WORKER_COEF = 80.0;
   var
  
positive.code:       //LogStatus(fBalanceText);
      end;
    end;
  //}
    if (aTick mod LONG_UPDATE = fOwner) then
    begin
      if not GA_PLANNER then
  
negative.code: 
  procedure TKMCityManagement.UpdateState(aTick: Cardinal);
  const
    WORKER_COEF = 3.0;
    LONG_UPDATE = MAX_HANDS * 10;
  var
    FreeWorkersCnt: Integer;
  begin
    if (aTick mod MAX_HANDS = fOwner) then
    begin
      fPredictor.UpdateState(aTick);
      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);
  