Ejemplo n.º 1
0
        /// <summary>
        /// Checks whether or not we've reached the end of the countdown
        /// </summary>
        protected virtual void CheckForEnd()
        {
            if (Infinite)
            {
                return;
            }

            bool endReached = (Direction == MMCountdownDirections.Ascending) ? (CurrentTime >= CountdownTo) : (CurrentTime <= CountdownTo);

            if (endReached)
            {
                if (CountdownCompleteEvent != null)
                {
                    CountdownCompleteEvent.Invoke();
                }
                if (PingPong)
                {
                    Direction     = (Direction == MMCountdownDirections.Ascending) ? MMCountdownDirections.Descending : MMCountdownDirections.Ascending;
                    _countdowning = true;
                    float temp = CountdownFrom;
                    CountdownFrom = CountdownTo;
                    CountdownTo   = temp;
                }
                else if (AutoReset)
                {
                    _countdowning = true;
                    CurrentTime   = CountdownFrom;
                }
                else
                {
                    CurrentTime   = CountdownTo;
                    _countdowning = false;
                }
            }
        }
 protected virtual void Initialization()
 {
     CurrentTime    = CountdownFrom;
     _lastUnitValue = (int)CurrentTime;
     Direction      = (CountdownFrom > CountdownTo) ? MMCountdownDirections.Descending : MMCountdownDirections.Ascending;
     if (AutoStart)
     {
         StartCountdown();
     }
     foreach (MMCountdownFloor floor in Floors)
     {
         floor.LastChangedAt = CountdownFrom;
     }
 }