anchor.diff:      property Radius: Integer read fRadius write fRadius; //If fighting (or houses being attacked) occurs within this radius from this defence position, this group will get involved
   
       property CurrentGroup: TKMUnitGroup read fCurrentGroup write SetCurrentGroup;
  -    function CanAccept(aGroup: TKMUnitGroup): Boolean;
  +    function CanAccept(aGroup: TKMUnitGroup; aMaxUnits: Integer): Boolean;
       procedure Save(SaveStream: TKMemoryStream);
       procedure SyncLoad;
       procedure UpdateState;
  
positive.code: 
    //Try to link to existing group
    for I := 0 to Count - 1 do
    if Positions[I].CanAccept(aGroup) then
    begin
      //Take closest position that is empty or requries restocking
      Distance := KMLengthSqr(aGroup.Position, Positions[I].Position.Loc);
  
negative.code: end;
  
  
  function TAIDefencePosition.CanAccept(aGroup: TKMUnitGroup; aMaxUnits: Integer): Boolean;
  begin
    Result := (fGroupType = UnitGroups[aGroup.UnitType]);
  
  