anchor.diff:    end;
   
     TKMArmyEval = array[TGroupType] of TKMGroupEval;
  +  TKMGameEval = array[0 .. MAX_HANDS - 1] of TKMArmyEval;
   
   
     //This class evaluate self army relatively enemy armies
     TKMArmyEvaluation = class
     private
  -    fEvals: array [0 .. MAX_HANDS - 1] of TKMArmyEval; //Results of evaluation
  +    fEvals: TKMGameEval; //Results of evaluation
   
       procedure EvaluatePower(aPlayer: TKMHandIndex; aConsiderHitChance: Boolean = False);
       function GetUnitEvaluation(aUT: TUnitType; aConsiderHitChance: Boolean = False): TKMGroupEval;
  
positive.code:     property Evaluation[aPlayer: TKMHandIndex]: TKMArmyEval read GetEvaluation;
      property AllianceEvaluation[aPlayer: TKMHandIndex; aAlliance: TAllianceType]: TKMArmyEval read GetAllianceStrength;
  
      function CompareAllianceStrength(aPlayer, aOponent: TKMHandIndex): Single;
      procedure UpdateState(aTick: Cardinal);
    end;
  
negative.code: end;
  
  
  //function TKMArmyEvaluation.AttackForceChance(aOponent: TKMHandIndex; aGroups: TKMUnitGroupArray): Single;
  //var
  //
  //begin
  //  EnemyEval := Evaluation[aOponent];
  //end;
  
  
  // Approximate way how to compute strength of 2 alliances
  function TKMArmyEvaluation.CompareAllianceStrength(aPlayer, aOponent: TKMHandIndex): Single;
  type
  