anchor.diff:    UpdateBalanceLeather;
     UpdateBalanceIron;
   
  -  with fDemandWeaponry do
  +  with fWarfare do
     begin
       //Horse.FarmTheory calculated above
       Horse.StablesTheory := HouseCount(ht_Stables) * ProductionRate[wt_Horse];
  -    Weaponry[wt_Horse].Production := Min(Horse.FarmTheory, Horse.StablesTheory);
  +    Warfare[wt_Horse].Production := Min(Horse.FarmTheory, Horse.StablesTheory);
   
       for I := WARFARE_MIN to WARFARE_MAX do
  -      Weaponry[I].Balance := Weaponry[I].Production - Weaponry[I].Demand;
  +      Warfare[I].Balance := Warfare[I].Production - Warfare[I].Demand;
   
       //Set Weaponry balance to the most required warfare kind
       Balance := MaxSingle;
       for I := WARFARE_MIN to WARFARE_MAX do
  -    if WeaponUsed(I) and (Weaponry[I].Balance < Balance) then
  -      Balance := Weaponry[I].Balance;
  +    if WeaponUsed(I) and (Warfare[I].Balance < Balance) then
  +      Balance := Warfare[I].Balance;
   
       S := Format('%.2f Weaponry: |', [Balance]);
  -    with fDemandWeaponry.WoodenArmor do
  -      S := S + Format('LeatherArm: %.1f %.1f %.1f|', [TrunkTheory, WoodTheory, WorkshopTheory]);
  -
  -    with fDemandWeaponry.WoodenWeapon do
  +    with fWarfare.LeatherArmor do
  +    begin
  +      S := S + Format('WoodShields: %.1f : %.1f : %.1f|', [TrunkTheory, WoodTheory, WorkshopTheory]);
  +      S := S + Format('LeatherArm: %.1f : %.1f : %.1f : %.1f|', [FarmTheory, SwineTheory, TanneryTheory, WorkshopTheory]);
  +    end;
  +
  +    with fWarfare.WoodWeapon do
         S := S + Format('WoodWeap: %.1f %.1f %.1f|', [TrunkTheory, WoodTheory, WorkshopTheory]);
  +
  +    with fWarfare.SteelArmor do
  +      S := S + Format('SteelArmor: %.1f : %.1f : %.1f : %.1f|', [CoalTheory, IronTheory, SteelTheory, SmithyTheory]);
  +
  +    with fWarfare.SteelWeapon do
  +      S := S + Format('SteelWeapon: %.1f : %.1f : %.1f : %.1f|', [CoalTheory, IronTheory, SteelTheory, SmithyTheory]);
   
       for I := WARFARE_MIN to WARFARE_MAX do
       if WeaponUsed(I) then
  -      S := S + Format('%s: %.2f - %.2f = %.2f|', [fResource.Wares[I].Title,
  -                                                  Weaponry[I].Production,
  -                                                  Weaponry[I].Demand,
  -                                                  Weaponry[I].Balance]);
  -
  -    fDemandWeaponryText := S;
  +      S := S + Format('%s: %.2f - %.2f|', [fResource.Wares[I].Title,
  +                                                  Warfare[I].Production,
  +                                                  Warfare[I].Demand]);
  +
  +    fWarfareText := S;
     end;
   end;
   
  
positive.code:       SmithyTheory := HouseCount(ht_WeaponSmithy) * ProductionRate[wt_Hallebard];
  
        //All 3 weapons are the same for now
        Weaponry[wt_Sword].Production := Min(Min(CoalTheory, IronTheory), Min(SteelTheory, SmithyTheory)) / 3;
        Weaponry[wt_Hallebard].Production := Min(Min(CoalTheory, IronTheory), Min(SteelTheory, SmithyTheory)) / 3;
        Weaponry[wt_Arbalet].Production := Min(Min(CoalTheory, IronTheory), Min(SteelTheory, SmithyTheory)) / 3;
      end;
  
      //Armor
  
negative.code: 
  procedure TKMayorBalance.UpdateBalanceIron;
  begin
    with fWarfare do
    begin
      //Weapon
      //Calculate how much Weapon each link could possibly produce
  