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();
  var
    GoldCnt, IronCnt, FieldCnt, BuildCnt: Integer;
  begin
    if SP_DEFAULT_ADVANCED_AI then
    begin
      //SetKaMSeed(666);
      gGame.GameOptions.Peacetime := 60;//SP_DEFAULT_PEACETIME;
      fSetup.ApplyAgressiveBuilderSetup(True);
    end;
    fPredictor.AfterMissionInit();
  
    // Find resources around Loc and change building policy
    GoldCnt := 0;
    IronCnt := 0;
    FieldCnt := 0;
    BuildCnt := 0;
    gAIFields.Eye.ScanLocResources(GoldCnt, IronCnt, FieldCnt, BuildCnt);
  
    fBuilder.AfterMissionInit(GoldCnt, IronCnt, FieldCnt, BuildCnt);
  
    fPredictor.CityInitialization(GoldCnt, IronCnt, FieldCnt, BuildCnt);
  end;
  
  
  
negative.code: 
    // Get count of needed weapons
    for UT := ut_AxeFighter to WARRIOR_EQUIPABLE_MAX do // Skip militia
      for I := Low(TroopCost[UT]) to High(TroopCost[UT]) do
        if (TroopCost[UT,I] <> wt_None) then
        begin
          WT := TroopCost[UT,I];
          fRequiredWeapons[WT].Required := fRequiredWeapons[WT].Required + fWarriorsDemands[UT];
        end
        else
  