A site-selection method that spreads to neighboring stands based on their rankings.
        //---------------------------------------------------------------------

        public RepeatHarvest(string               name,
                             IStandRankingMethod  rankingMethod,
                             ISiteSelector        siteSelector,
                             ICohortSelector      cohortSelector,
                             Planting.SpeciesList speciesToPlant,
                             ISiteSelector        additionalSiteSelector,
                             int                  minTimeSinceDamage,
                             bool                 preventEstablishment,
                             int                  interval)
            : base(name, rankingMethod, siteSelector, cohortSelector, speciesToPlant, minTimeSinceDamage, preventEstablishment)
        {
            this.interval = interval;
            this.spreadingSiteSelector = siteSelector as StandSpreading;
            this.additionalSiteSelector = additionalSiteSelector;
            this.harvestedStands = new List<Stand>();
        }
        //---------------------------------------------------------------------

        public AppliedPrescription(Prescription prescription,
                                   Percentage   percentageToHarvest,
                                   int          beginTime,
                                   int          endTime)
        {
            //set prescription
            this.prescription = prescription;
            
            //set stand ranking method
            this.standSpreadSiteSelector = prescription.SiteSelectionMethod as StandSpreading;
            
            //set harvest percentage
            this.percentageToHarvest = percentageToHarvest;
            
            //set begin time and end time
            this.beginTime = beginTime;
            this.endTime = endTime;
        }