예제 #1
0
        private void OnInputReceived(object sender, EventArgs e)
        {
            var args = (CommandEventArgs)e;

            switch (args.ReceivedCommand)
            {
            case ConsoleKey.LeftArrow when(X > 1):
                X--;

                //HeroMoved?.Invoke(this, new HeroMovedEventArgs {NewX = X, NewY = Y});
                break;

            case ConsoleKey.RightArrow when(X < StaticRegistry.Board.Width - 1):
                X++;

                //HeroMoved?.Invoke(this, new HeroMovedEventArgs {NewX = X, NewY = Y});
                break;

            case ConsoleKey.UpArrow when(Y > 1):
                Y--;

                //HeroMoved?.Invoke(this, new HeroMovedEventArgs {NewX = X, NewY = Y});
                break;

            case ConsoleKey.DownArrow when(this.Y < StaticRegistry.Board.Height - 1):
                Y++;

                //HeroMoved?.Invoke(this, new HeroMovedEventArgs {NewX = X, NewY = Y});
                break;
            }

            HeroMoved?.Invoke(this, new HeroMovedEventArgs {
                NewX = X, NewY = Y
            });
        }
예제 #2
0
        private void OnInputReceived(object sender, EventArgs e)
        {
            var args = (CommandEventArgs)e;

            if ((args.ReceivedCommand == System.ConsoleKey.LeftArrow) && (this.X > 1))
            {
                this.X--;
                HeroMoved?.Invoke(this, new HeroMovedEventArgs {
                    NewX = X, NewY = Y
                });
            }
            if ((args.ReceivedCommand == System.ConsoleKey.RightArrow) && (this.X < StaticRegistry.board.Width - 1))
            {
                this.X++;
                HeroMoved?.Invoke(this, new HeroMovedEventArgs {
                    NewX = X, NewY = Y
                });
            }
            if ((args.ReceivedCommand == System.ConsoleKey.UpArrow) && (this.Y > 1))
            {
                this.Y--;
                HeroMoved?.Invoke(this, new HeroMovedEventArgs {
                    NewX = X, NewY = Y
                });
            }
            if ((args.ReceivedCommand == System.ConsoleKey.DownArrow) && (this.Y < StaticRegistry.board.Height - 1))
            {
                this.Y++;
                HeroMoved?.Invoke(this, new HeroMovedEventArgs {
                    NewX = X, NewY = Y
                });
            }
        }
예제 #3
0
 public void HeroHasMoved(CHeroBase hero, SPoint oldPosition, SPoint newPosition)
 {
     HeroMoved?.Invoke(this, (Hero: hero, OldPosition: oldPosition, NewPosition: newPosition));
 }