コード例 #1
0
        public static void Main(string[] args)
        {
            var proc = GameProcess.Attach();

            Console.WriteLine("Attached to process");

            proc.GameStarted += (o, e) => Console.WriteLine("EV: GAME_START -> map: {0}", e.Map);
            proc.GameEnded   += (o, e) => Console.WriteLine("EV: GAME_END");

            proc.PlayerJoined += (o, e) => Console.WriteLine("EV: PLAYER_JOIN -> {0}", e.Player.Name);
            proc.PlayerLeft   += (o, e) => Console.WriteLine("EV: PLAYER_LEAVE -> {0}", e.Player.Name);
            proc.PlayerDied   += (o, e) => Console.WriteLine("EV: PLAYER_DEATH -> {0}", e.Player.Name);
            proc.PlayerImpostorStatusChanged += (o, e) => Console.WriteLine("EV: PLAYER_IMPOSTOR_STATUS_CHANGE -> {0}, {1}", e.Player.Name, e.Player.IsImpostor);

            proc.MeetingStarted += (o, e) => Console.WriteLine("EV: MEETING_START");
            proc.MeetingEnded   += (o, e) => Console.WriteLine("EV: MEETING_END -> exile: {0:0.0}s", e.ExileDuration);

            proc.Start();
            Console.WriteLine("Loop running");

            Console.WriteLine("Press any to quit");
            Console.ReadKey(true);

            proc.Dispose();
            Console.WriteLine("Detached");
        }
コード例 #2
0
        public AmongUsGame(AsyncExecutor async, ILoggerFactory loggerFactory)
        {
            this.Async  = async;
            this.Logger = loggerFactory.CreateLogger <AmongUsGame>();

            this._gameStarted    = new AsyncEvent <AmongUsGame, GameStartAsyncEventArgs>("AMONGUS_GAME_STARTED", TimeSpan.Zero, this.AsyncEventExceptionHandler);
            this._gameEnded      = new AsyncEvent <AmongUsGame, GameEndAsyncEventArgs>("AMONGUS_GAME_ENDED", TimeSpan.Zero, this.AsyncEventExceptionHandler);
            this._playerJoined   = new AsyncEvent <AmongUsGame, PlayerAsyncEventArgs>("AMONGUS_PLAYER_JOINED", TimeSpan.Zero, this.AsyncEventExceptionHandler);
            this._playerLeft     = new AsyncEvent <AmongUsGame, PlayerAsyncEventArgs>("AMONGUS_PLAYER_LEFT", TimeSpan.Zero, this.AsyncEventExceptionHandler);
            this._playerDied     = new AsyncEvent <AmongUsGame, PlayerAsyncEventArgs>("AMONGUS_PLAYER_DIED", TimeSpan.Zero, this.AsyncEventExceptionHandler);
            this._meetingStarted = new AsyncEvent <AmongUsGame, MeetingStartAsyncEventArgs>("AMONGUS_MEETING_STARTED", TimeSpan.Zero, this.AsyncEventExceptionHandler);
            this._meetingEnded   = new AsyncEvent <AmongUsGame, MeetingEndAsyncEventArgs>("AMONGUS_MEETING_ENDED", TimeSpan.Zero, this.AsyncEventExceptionHandler);

            this.Process = GameProcess.Attach();

            this.Process.GameStarted += this.Process_GameStarted;
            this.Process.GameEnded   += this.Process_GameEnded;

            this.Process.PlayerJoined += this.Process_PlayerJoined;
            this.Process.PlayerLeft   += this.Process_PlayerLeft;
            this.Process.PlayerDied   += this.Process_PlayerDied;

            this.Process.MeetingStarted += this.Process_MeetingStarted;
            this.Process.MeetingEnded   += this.Process_MeetingEnded;
        }