public void EscapeCommandShouldTeleportActor()
        {
            // Arrange
            var pos     = Player.Pos;
            var command = new EscapeCommand();

            // Act
            GameService.HandleCommand(command, pos);

            // Assert
            Player.Pos.ShouldNotBe(pos);
        }
Exemple #2
0
 public void AcceptEscapeEscape(EscapeCommand escapeCommand, PrintContext parameter)
 {
     parameter.WriteLine("Escape: {0} ({1}) '{2}'", escapeCommand.Identifier, escapeCommand.Name, escapeCommand.DataRecord);
 }
Exemple #3
0
 public virtual void AcceptEscapeEscape(EscapeCommand escapeCommand, T parameter)
 {
     // intentionally left blank
 }
Exemple #4
0
 private EscapeSequenceDefinition(EscapeCommand command, string pattern, params string[] defaultValues)
 {
     Pattern       = pattern;
     Command       = command;
     DefaultValues = defaultValues;
 }
Exemple #5
0
        public void OnEscapeSequence(EscapeCommand command, ReadOnlySpan <byte> intermediates, IgnoredData ignored = default)
        {
            int index;

            switch (command)
            {
            case EscapeCommand.ConfigureAsciiCharSet:
                if (intermediates.Length > 0 &&
                    TryParseCharSetIndex(intermediates[0], out index))
                {
                    _activeCharSets[index] = CharSet.Ascii;
                }
                break;

            case EscapeCommand.ConfigureSpecialCharSet:
                if (intermediates.Length > 0 &&
                    TryParseCharSetIndex(intermediates[0], out index))
                {
                    _activeCharSets[index] = CharSet.SpecialCharacterAndLineDrawing;
                }
                break;

            case EscapeCommand.LineFeed:
                _events.LineFeed?.Invoke();
                break;

            case EscapeCommand.NextLine:
                _events.LineFeed?.Invoke();
                _events.CarriageReturn?.Invoke();
                break;

            case EscapeCommand.ReverseIndex:
                _events.ReverseIndex?.Invoke();
                break;

            case EscapeCommand.IdentifyTerminal:
                _events.IdentifyTerminal?.Invoke();
                break;

            case EscapeCommand.ResetState:
                _events.ResetState?.Invoke();
                break;

            case EscapeCommand.SaveCursorPosition:
                _events.SaveCursorPosition?.Invoke();
                break;

            case EscapeCommand.DecTest when(intermediates.Length != 0 && intermediates[0] == '#'):
                _events.DecTest?.Invoke();

                break;

            case EscapeCommand.RestoreCursorPosition when(intermediates.Length == 0 || intermediates[0] != '#'):
                _events.RestoreCursorPosition?.Invoke();

                break;

            case EscapeCommand.SetKeypadApplicationMode:
                _events.SetKeypadApplicationMode?.Invoke();
                break;

            case EscapeCommand.UnsetKeypadApplicationMode:
                _events.UnsetKeypadApplicationMode?.Invoke();
                break;
            }
        }