anchor.diff:        WoodReq := Round((DEFAULT_COEFICIENT - WoodReq) / 5.0); // 5 is equal to sum of all requirements in leather category
         for UT in WOOD_ARMY do
           if not gHands[fOwner].Locks.GetUnitBlocked(UT) then
  -          for I := Low(TROOP_COST[UT]) to High(TROOP_COST[UT]) do
  -            if (TROOP_COST[UT,I] <> wt_None) then
  -              with fRequiredWeapons[ TROOP_COST[UT,I] ] do
  +          for I := Low(TroopCost[UT]) to High(TroopCost[UT]) do
  +            if (TroopCost[UT,I] <> wt_None) then
  +              with fRequiredWeapons[ TroopCost[UT,I] ] do
                   Required := Required + Round(DEFAULT_ARMY_REQUIREMENTS[UT] * WoodReq);
       end;
   
  
positive.code: 
  
  procedure TKMCityManagement.AfterMissionInit();
    procedure SetWareDistribution();
    begin
      // Top priority for gold mines
      gHands[fOwner].Stats.WareDistribution[wt_Coal, htMetallurgists] := 5;
      gHands[fOwner].Stats.WareDistribution[wt_Coal, htWeaponSmithy] := 3;
      gHands[fOwner].Stats.WareDistribution[wt_Coal, htIronSmithy] := 3;
      gHands[fOwner].Stats.WareDistribution[wt_Coal, htArmorSmithy] := 3;
      gHands[fOwner].Stats.WareDistribution[wt_Wood, htArmorWorkshop] := 2;
      gHands[fOwner].Stats.WareDistribution[wt_Wood, htWeaponWorkshop] := 5;
      gHands[fOwner].Stats.WareDistribution[wt_Steel, htWeaponSmithy] := 5;
      gHands[fOwner].Stats.WareDistribution[wt_Steel, htArmorSmithy] := 5;
  
      gHands[fOwner].Houses.UpdateResRequest;
    end;
  var
    GoldCnt, IronCnt, FieldCnt, BuildCnt: Integer;
  begin
  
negative.code:     CheckMarketplaces();
      CheckStoreWares(aTick);
      CheckAutoRepair();
      CheckWareDistribution();
      WeaponsBalance();
      OrderWeapons();
      CheckExhaustedHouses();
  