public void Tick(TimeSpan elapsedGameTime) { switch (GameService.ClassicGameState.GameState) { case GameSelectionState.TimerStarted: if (GetTimeLeft() == 0) { if (State.CurrentTick != null) { State.CurrentTick.Stop(); } ISoundEffect sfx = Client.PlaySoundEffect(Assets.Sounds.TimeTick); Client.Timeout(() => { sfx.Stop(); ScreenTransitioner.ChangeToBoardScreen(); }, 1500); } break; case GameSelectionState.ChooseNumber: if (State.SwipeDistance != 0) { if (State.SwipeDistance > 0) { State.SwipeDistance += State.SwipeAcceleration; if (State.SwipeDistance <= 0) { State.SwipeDistance = 0; } } else { State.SwipeDistance += State.SwipeAcceleration; if (State.SwipeDistance >= 0) { State.SwipeDistance = 0; } } if (State.Ticks++ % 5 == 0) { State.CurrentNumber = Math.Min(Math.Max(State.CurrentNumber - Math.Sign(State.SwipeDistance), 1), 60); } } break; } GameService.ClassicGameState.Board.Tick(elapsedGameTime); foreach (var animatedCharacterSubLayout in CharacterAnimations) { animatedCharacterSubLayout.Value.TickLayoutView(elapsedGameTime); } }
public void StopMusic() { ActiveSong?.Stop(); ActiveSong = null; }