anchor.diff:      procedure OwnerUpdate(aPlayer: TKMHandIndex);
       procedure WarriorEquipped(aGroup: TKMUnitGroup);
       //function GetArmyDemand(): ...;
  -    //procedure RetaliateAgainstThreat(aAttacker: TKMUnit);
  +    procedure CheckNewThreat(aHouse: TKMHouse; aAttacker: TKMUnitWarrior); overload;
  +    procedure CheckNewThreat(aUnit: TKMUnit; aAttacker: TKMUnit); overload;
   
       procedure LogStatus(var aBalanceText: UnicodeString);
       procedure Paint();
  
positive.code: uses
    Classes, KromUtils, Math, SysUtils,
    KM_CommonClasses, KM_Defaults, KM_Points,
    KM_Units, KM_UnitGroups, KM_AISetup,
    KM_HandStats, KM_ArmyAttack, KM_ArmyDefence,
    KM_NavMeshFloodPositioning;
  
  
negative.code:   if gGame.IsPeaceTime
      OR ((fSetup.MaxSoldiers <> -1) AND (gHands[fOwner].Stats.GetArmyCount >= fSetup.MaxSoldiers))
      OR (not CanEquipIron AND not CanEquipLeather)
      OR (gHands[fOwner].Stats.GetHouseQty(ht_Barracks) = 0)
      OR (fDefence.Count = 0) then
      Exit;
  
    //Create a list of troops that need to be trained based on defence position requirements
    FillChar(GroupReq, SizeOf(GroupReq), #0); //Clear up
    //for I := 0 to fDefence.Count - 1 do
    //  with fDefence[I] do
    //    if (CurrentGroup = nil) then
    //      Inc(GroupReq[GroupType], fDefence.TroopFormations[GroupType].NumUnits)
    //    else
    //      Inc(GroupReq[GroupType], Max(fDefence.TroopFormations[GroupType].NumUnits - CurrentGroup.Count, 0));
  
    // Take required warriors from CityManagement (-> implemented consideration of required units + save time)
    for GT := Low(TGroupType) to High(TGroupType) do
      for I := Low(AITroopTrainOrder[GT]) to High(AITroopTrainOrder[GT]) do
        if (AITroopTrainOrder[GT,I] <> ut_None) then
          Inc(GroupReq[GT], gHands[fOwner].AI.CityManagement.WarriorsDemands[ AITroopTrainOrder[GT,I] ]);
  
    //If we don't need anyone - Exit
    I := 0;
    for GT := Low(GroupReq) to High(GroupReq) do
      Inc(I, GroupReq[GT]);
    if (I = 0) then
      Exit;
  
    //Find barracks
  