Beispiel #1
0
        /// <summary>
        /// Initializes a new instance of <see cref="GameEventHandlerBase{TEvent}"/>.
        /// </summary>
        /// <param name="logger">The logger.</param>
        /// <param name="playerRegistry">The player registry.</param>
        /// <param name="chat">The chat.</param>
        /// <param name="gameEvent">The game event to handle.</param>
        /// <exception cref="ArgumentException">Thrown when the handler cannot handle the message.</exception>
        protected GameEventHandlerBase(ILogger logger, IPlayerRegistry playerRegistry, IChat chat, GameEvent gameEvent)
        {
            Logger         = logger;
            PlayerRegistry = playerRegistry;
            Chat           = chat;

            if (!(gameEvent is TEvent actualEvent))
            {
                throw new ArgumentException($"The handler {GetType()} cannot handle message of type {gameEvent?.GetType().FullName ?? "<null>"}");
            }

            GameEvent = actualEvent;
        }
 /// <inheritdoc />
 public ChannelOperator(IGameClientFactory <ChannelClient> clientFactory, IPlayerRegistry playerRegistry)
     : base(clientFactory)
 {
     PlayerRegistry = playerRegistry;
 }
Beispiel #3
0
 public PlayerDefeatedHandler(ILogger logger, IPlayerRegistry playerRegistry, IChat chat, GameEvent gameEvent)
     : base(logger, playerRegistry, chat, gameEvent)
 {
 }