anchor.diff:  
       property Attack: TKMArmyAttack read fAttack write fAttack;
       property Defence: TKMArmyDefence read fDefence write fDefence;
  +    property BalanceText: UnicodeString read CombineBalanceStrings;
   
       procedure AfterMissionInit();
       procedure UpdateState(aTick: Cardinal);
  
positive.code:     procedure CheckNewThreat(aHouse: TKMHouse; aAttacker: TKMUnitWarrior); overload;
      procedure CheckNewThreat(aUnit: TKMUnit; aAttacker: TKMUnit); overload;
  
      procedure LogStatus(var aBalanceText: UnicodeString);
      procedure Paint();
    end;
  
  
negative.code:   begin
      // Get count of available group types
      FillChar(GTArr, SizeOf(GTArr), #0);
      for I := 0 to aAGCnt - 1 do
        Inc(  GTArr[ aAvailableGroups[I].GroupType ]  );
  
      CompaniesCnt := Max(1, Ceil(aAGCnt / MAX_GROUPS_IN_COMPANY));
      HighAG := aAGCnt - 1;
      for I := 0 to CompaniesCnt - 1 do
      begin
        GCnt := 0;
  