anchor.diff:  
       property Count: Integer read GetCount;
       property Positions[aIndex: Integer]: TKMDefencePosition read GetPosition; default;
  +    property FirstLineCnt: Word read fFirstLineCnt;
       property CityUnderAttack: Boolean read fCityUnderAttack;
   
       procedure OwnerUpdate(aPlayer: TKMHandIndex);
  
positive.code:     for I := 0 to Count - 1 do
        if (Positions[I].Group <> nil) then
          Cnt := Cnt + 1;
      case + Byte(Cnt >= Min(fFirstLineCnt * FIRST_LINE_COEF, Count * 0.5))
           + Byte(Cnt >= Count * 0.8)
           + Byte(Cnt >= fFirstLineCnt * FORCE_ATTACK_LIMIT) of // In case that defence is too long keep max cnt decreased
        0: Result := ds_Empty;
        1: Result := ds_Half;
        2: Result := ds_Full;
  
negative.code: end;
  
  
  procedure TKMArmyDefence.LogStatus(var aBalanceText: UnicodeString);
  begin
    //aBalanceText := '';
  end;
  
  
  procedure TKMArmyDefence.Paint();
  const
    COLOR_WHITE = $FFFFFF;
  