public async Task <int> OnExecuteAsync() { Logger.Verbose("Loading configuration"); var config = _configManager.Load(); string hostIp; try { const string domain = "red-gate.com"; hostIp = GetIpAddress(domain); } catch (Exception e) { Logger.Error($"IP address could not be found. {e.Message}"); return(1); } var gameInfo = _wormsLocator.Find(); if (!gameInfo.IsInstalled) { Logger.Error("Worms Armageddon is not installed"); return(1); } Logger.Information("Downloading the latest options"); if (!DryRun) { await _leagueUpdater.Update(config, Logger).ConfigureAwait(false); } Logger.Information("Starting Worms Armageddon"); var runGame = !DryRun?_wormsRunner.RunWorms("wa://") : Task.CompletedTask; Logger.Information("Announcing game on Slack"); Logger.Verbose($"Host name: {hostIp}"); if (!DryRun) { await _slackAnnouncer.AnnounceGameStarting(hostIp, config.SlackWebHook, Logger).ConfigureAwait(false); } await runGame; return(0); }
public async Task ExtractReplayFrames( string replayPath, uint fps, TimeSpan startTime, TimeSpan endTime, int xResolution = 640, int yResolution = 480) { var start = startTime.ToString(TimeFormatString); var end = endTime.ToString(TimeFormatString); await _wormsRunner.RunWorms("/getvideo", $"\"{replayPath}\"", fps.ToString(), start, end, xResolution.ToString(), yResolution.ToString(), "/quiet"); }
public async Task GenerateReplayLog(string replayPath) { await _wormsRunner.RunWorms("/getlog", $"\"{replayPath}\"", "/quiet"); }
public async Task Play(string replayPath) { await _wormsRunner.RunWorms("/play", $"\"{replayPath}\"", "/quiet"); }