public void RegisterBot(IGame game, IBot bot) { Action<ITurnChanged> onTurnChanged = x => { if (x.Game == game && !game.HasEnded && game.Turn.Player == bot.Player.Name) bot.PlayTurn(game); }; this.App.GetEventHub().Subscribe(onTurnChanged); Action<IGameEnded> onGameEnded = null; onGameEnded = x => { if (game == x.Game) { this.App.GetEventHub().Unsubscribe(onTurnChanged); this.App.GetEventHub().Unsubscribe(onGameEnded); } }; this.App.GetEventHub().Subscribe(onGameEnded); }