Spread() private method

private Spread ( Landis.Landscape.ActiveSite initiationSite, SizeType fireSizeType, bool BUI ) : bool
initiationSite Landis.Landscape.ActiveSite
fireSizeType SizeType
BUI bool
return bool
        //---------------------------------------------------------------------

        public static Event Initiate(ActiveSite site,
                                     int        currentTime,
                                     int        timestep)
        {
            IEcoregion ecoregion = SiteVars.Ecoregion[site];
            IFireParameters eventParms = ecoregion.FireParameters;
            
            //Adjust ignition probability (measured on an annual basis) for the 
            //user determined fire time step.
            double ignitionProb = eventParms.IgnitionProb * timestep;

            //The initial site must exceed the probability of initiation and
            //have a severity > 0 and exceed the ignition threshold:
            if (Random.GenerateUniform() <= ignitionProb
                && Random.GenerateUniform() <= ComputeFireInitSpreadProb(site, currentTime)
                && CalcSeverity(site, currentTime) > 0) 
            {
                Event FireEvent = new Event(site);
                FireEvent.Spread(currentTime);
                return FireEvent;
            }
            else
                return null;
        }
		//---------------------------------------------------------------------

		public static Event Initiate(ActiveSite site,
		                             int  currentTime, int timestep)
		{

			IEcoregion ecoregion = Model.SiteVars.Ecoregion[site];
			IFireParameters eventParms = FireEventParms[ecoregion.Index];
			double ignitionProb = eventParms.IgnitionProb * timestep;

			//The initial site must exceed the probability of initiation and
			//have a severity > 0 and exceed the ignition threshold:
			if (	Random.GenerateUniform() <= ignitionProb
				&& Random.GenerateUniform() <= ComputeFireInitSpreadProb(site, currentTime)
				&& calcSeverity(site, currentTime) > 0) 
			{
				Event FireEvent = new Event(site);
				FireEvent.Spread(currentTime);
				return FireEvent;
			}
			else
			return null;
		}
        //---------------------------------------------------------------------
        public static Event Initiate(ActiveSite site,
                                     int        timestep,
                                     SizeType   fireSizeType, 
                                     bool       bui,
                                     ISeasonParameters[] seasons, 
                                     IWindDirectionParameters[] windDirs)
        {

            
            //Adjust ignition probability (measured on an annual basis) for the 
            //user determined fire time step.
            int fuelIndex = SiteVars.CFSFuelType[site];
            //-----Edited by BRM-----
            //double initProb = fuelTypeParms[fuelIndex].InitiationProbability * timestep;
            double initProb = fuelTypeParms[fuelIndex].InitiationProbability;
            //---------

            //The initial site must exceed the probability of initiation and
            //have a severity > 0 and exceed the ignition threshold:
            if (Util.Random.GenerateUniform() <= initProb)
            {
                Event FireEvent = new Event(site, seasons, windDirs);
                
                if(!FireEvent.Spread(site, fireSizeType, bui))
                    return null;
                else 
                    return FireEvent;
            }
            
            return null;
        }