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"); }
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; }