/// <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; } }