Exemple #1
0
        public void InitGameCommandTest()
        {
            var command1 = new JoinCharacterCommand
            {
                CharacterId = Guid.NewGuid(),
                SessionId = Guid.NewGuid()
            };
            var command2 = (JoinCharacterCommand)CommandBase.Parse(command1.Serialize());

            Assert.AreEqual(command1.SessionId, command2.SessionId);
            Assert.AreEqual(command1.CharacterId, command2.CharacterId);
        }
Exemple #2
0
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            DI.Set<ILoginControl>(() => new LoginWindow { Owner = this });
            DI.Set<ICharactersControl>(() => new CharactersWindow { Owner = this });
            DI.Set<ICreateCharacterControl>(() => new CreateCharacterWindow { Owner = this });
            DI.Set<IGetStringControl>(() => new GetStringWindow());

            _clientContext.Connector.DataReceived += OnDataReceived;

            App.MainController.SelectCharacter(character =>
            {
                var command = new JoinCharacterCommand
                {
                    CharacterId = character.Id,
                    SessionId = App.MainController.PersonSessionId.GetValueOrDefault()
                };
                _clientContext.Connector.Send(command);

                var timer = new DispatcherTimer(TimeSpan.FromSeconds(0.02), DispatcherPriority.Normal, ((o, args) => { TimerTick(); }), Dispatcher);
                timer.Start();
            });

            Tune();
        }
Exemple #3
0
 public static CommandBase Parse(byte[] data)
 {
     using (var stream = new MemoryStream(data))
     using (var reader = new BinaryReader(stream))
     {
         CommandBase command;
         switch ((CommandType)reader.ReadUInt16())
         {
             case CommandType.JoinCharacter:
                 command = new JoinCharacterCommand();
                 break;
             case CommandType.CharacterJoined:
                 command = new CharacterJoinedCommand();
                 break;
             case CommandType.CharacterDetected:
                 command = new CharacterDetectedCommand();
                 break;
             case CommandType.KeyPressed:
                 command = new KeyPressedCommand();
                 break;
             case CommandType.PositionChanged:
                 command = new PositionChangedCommand();
                 break;
             default:
                 throw new NotImplementedException();
         }
         command.Token = reader.ReadUInt16();
         command.Deserialize(reader);
         return command;
     }
 }