示例#1
0
        public GameService(IWebSocketConnection connection, IComponents components)
        {
            this.connection = connection;

            connection.OnOpen    += OnConnectionEstablished;
            connection.OnClose   += OnConnectionClosed;
            connection.OnError   += OnErrorOccurred;
            connection.OnMessage += OnMessageReceived;

            id = components.Get <IIdGenerator>().GenerateId();
            sessionCollection   = components.Get <IWebSocketSessionCollection>();
            gameSceneCollection = components.Get <IGameSceneCollection>();

            jsonSerializer    = new NativeJsonSerializer();
            handlerCollection = new MessageHandlerCollection(jsonSerializer);
            player            = new PlayerGameObject(id, new IComponent[]
            {
                new AnimationData(),
                new CharacterData(),
                new PresenceMapProvider(),
                new MessageSender(jsonSerializer),
                new PositionChangedMessageSender(),
                new AnimationStateChangedMessageSender(),
                new PlayerAttackedMessageSender(),
                new BubbleNotificationMessageSender()
            });
        }
示例#2
0
        private void GenerateRandomNumber()
        {
            // Arrange
            var randomNumberGenerator =
                components.Get <IRandomNumberGenerator>();

            // Act
            var number = randomNumberGenerator.GenerateRandomNumber();

            // Assert
            number.Equals(0).ShouldBeFalse();
        }
示例#3
0
        private void GenerateId(int id)
        {
            // Arrange
            var idGenerator = components.Get <IIdGenerator>();

            // Act
            var generateId = idGenerator.GenerateId();

            // Assert
            id.Equals(generateId).ShouldBeTrue();
        }