private Task HandleResponseAsync(Response response, CancellationToken ct) { return(response switch { PlayerRegistered playerRegistered => OnPlayerRegistered(playerRegistered, ct), MapUpdated mapUpdated => OnMapUpdated(mapUpdated, ct), GameLink gameLink => OnGameLink(gameLink), GameStarting gameStarting => OnGameStarting(gameStarting), GameResult gameResult => OnInfoEvent(gameResult), CharacterStunned characterStunned => OnInfoEvent(characterStunned), HeartBeatResponse heartBeatResponse => OnHearBeatEvent(heartBeatResponse, ct), GameEnded gameEnded => OnGameEnded(gameEnded), TournamentEnded tournamentEnded => OnTournamentEnded(tournamentEnded), InvalidPlayerName invalidPlayerName => OnInfoEvent(invalidPlayerName), _ => Task.CompletedTask });
/// <summary> /// Ends the current tournament, saves the results, and schedules the next one. /// </summary> public void EndTournament(bool broadcasting) { if (CurrentTournament != null) { TournamentResults.Create(CurrentTournament); TournamentResults.Commit(); DateTime?next; if (broadcasting) { next = CurrentTournament.Date.AddMinutes(Settings.FishingTournamentDuration + Settings.FishingTournamentInterval); } else { next = null; } NextTournament = next; TournamentEnded?.Invoke(CurrentTournament, next); CurrentTournament = null; } }
private void OnTournamentEnded(TournamentEnded tournamentEnded) { _hasTournamentEnded = true; Console.WriteLine(tournamentEnded); }
protected virtual void OnTournamentEnded(EventArgs e) { TournamentEnded?.Invoke(this, e); }