Exemple #1
0
        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");
 }
Exemple #4
0
 public async Task Play(string replayPath)
 {
     await _wormsRunner.RunWorms("/play", $"\"{replayPath}\"", "/quiet");
 }