anchor.diff:  
       constructor Create(aPlayer: TKMHandIndex);
       destructor Destroy(); override;
  -    procedure AfterMissionInit();
       procedure Save(SaveStream: TKMemoryStream);
       procedure Load(LoadStream: TKMemoryStream);
   
       property CityStats: TCityStats read fCityStats;
       property WareBalance: TWareBalanceArray read fWareBalance;
   
  +    procedure AfterMissionInit();
  +    procedure CityInitialization(aGoldMineCnt, aIronMineCnt, aFieldCnt, aBuildCnt: Integer);
       procedure UpdateState(aTick: Cardinal);
  -    procedure CityInitialization(aGoldMineCnt, aIronMineCnt, aFieldCnt, aBuildCnt: Integer);
       procedure LogStatus(var aBalanceText: UnicodeString);
       procedure OwnerUpdate(aPlayer: TKMHandIndex);
   
  
positive.code: // Update food consumption
  procedure TKMCityPredictor.UpdateFoodConsumption(aInitialization: Boolean = False);
  const
    CITIZEN_FOOD_COEF = 0.05; //On average citizen needs to eat each 40min but takes 2 food to full status = 1/20 = 0.05
    SOLDIER_FOOD_COEF = 0.025; //On average soldier needs to eat each 40min and takes 1 food to full status = 1/40 = 0.025
  var
    Consumption: Single;
  begin
    // Get consumption of city + army
    Consumption := (fCityStats.CitizensCnt * CITIZEN_FOOD_COEF) + (fCityStats.WarriorsCnt * SOLDIER_FOOD_COEF);
    // Calculate consumption of leather armor / min and pigs which are produced with this cycle
    // 2x armor = 2x leather = 1x skin = 1x pig = 3x sausages ... sausages = 3 / 2 * armor = 1.5 * armor
    fWareBalance[wt_Sausages].ActualConsumption := Min(Consumption, fWareBalance[wt_Armor].FinalConsumption * 1.5);
  
negative.code:   fMaxSoldiersInMin := 0;
    // Estimation of final weapons production
    // Iron weapons
    aIronMineCnt := 3;
    MaxIronWeapProd := aIronMineCnt * ProductionRate[wt_IronOre] / 2.0;
    for I := Low(IRON_WARFARE) to High(IRON_WARFARE) do
      fWareBalance[ IRON_WARFARE[I] ].FinalConsumption := MaxIronWeapProd;
    //Standard weapons
    MaxWoodWeapProd := Min(6.0, Max(2.0,aBuildCnt / 900.0)) * ProductionRate[wt_Axe]; // 2 <-> 6 in matter of avaiable place
    MaxWoodWeapProd := 2 * ProductionRate[wt_Axe];
    for I := Low(STANDARD_WARFARE) to High(STANDARD_WARFARE) do
      fWareBalance[ STANDARD_WARFARE[I] ].FinalConsumption := MaxWoodWeapProd;
    fWareBalance[wt_Armor].FinalConsumption := MaxWoodWeapProd;
  