anchor.diff:        gHands.CleanUpGroupPointer(Group);
       end;
     end;
  -  fDefence.FindEnemyInDefLine(UGA);
  +  fDefence.FindEnemyInDefLine(UGA, fDefendRequest);
   end;
   
   
  
positive.code:     property Attack: TKMArmyAttack read fAttack write fAttack;
      property Defence: TKMArmyDefence read fDefence write fDefence;
      property AttackRequest: TKMAttackRequest read fAttackRequest write fAttackRequest;
      property BalanceText: UnicodeString read CombineBalanceStrings;
  
      procedure AfterMissionInit();
      procedure UpdateState(aTick: Cardinal);
      procedure OwnerUpdate(aPlayer: TKMHandIndex);
      procedure WarriorEquipped(aGroup: TKMUnitGroup);
      //function GetArmyDemand(): ...;
      procedure CheckNewThreat(aHouse: TKMHouse; aAttacker: TKMUnitWarrior); overload;
      procedure CheckNewThreat(aUnit: TKMUnit; aAttacker: TKMUnit); overload;
  
  
negative.code:     BestAllianceCmp,WorstAllianceCmp: Single;
      BestEnemy: TKMHandIndex; // or index of Enemies array
      BestPoint: TKMPoint;
      Enemies: TKMHandIndexArray;
    end;
  
    TKMArmyManagement = class
  