private void OnKeyDown(object sender, SDL.SDL_KeyboardEvent e)
        {
            if (TargetManager.IsTargeting && e.keysym.sym == SDL.SDL_Keycode.SDLK_ESCAPE && Input.Keyboard.IsModPressed(e.keysym.mod, SDL.SDL_Keymod.KMOD_NONE))
            {
                TargetManager.CancelTarget();
            }

            _isShiftDown = Input.Keyboard.IsModPressed(e.keysym.mod, SDL.SDL_Keymod.KMOD_SHIFT);

            if (e.keysym.sym == SDL.SDL_Keycode.SDLK_TAB)
            {
                if (!World.Player.InWarMode && Engine.Profile.Current.HoldDownKeyTab)
                {
                    GameActions.SetWarMode(true);
                }
            }

            if (_keycodeDirection.TryGetValue(e.keysym.sym, out Direction dWalk))
            {
                WorldViewportGump viewport = Engine.UI.GetByLocalSerial <WorldViewportGump>();
                SystemChatControl chat     = viewport?.FindControls <SystemChatControl>().SingleOrDefault();
                if (chat != null && chat.textBox.Text.Length == 0)
                {
                    World.Player.Walk(dWalk, false);
                }
            }

            if ((e.keysym.mod & SDL2.SDL.SDL_Keymod.KMOD_NUM) != SDL2.SDL.SDL_Keymod.KMOD_NUM)
            {
                if (_keycodeDirectionNum.TryGetValue(e.keysym.sym, out Direction dWalkN))
                {
                    World.Player.Walk(dWalkN, false);
                }
            }

            bool isshift = (e.keysym.mod & SDL.SDL_Keymod.KMOD_SHIFT) != SDL.SDL_Keymod.KMOD_NONE;
            bool isalt   = (e.keysym.mod & SDL.SDL_Keymod.KMOD_ALT) != SDL.SDL_Keymod.KMOD_NONE;
            bool isctrl  = (e.keysym.mod & SDL.SDL_Keymod.KMOD_CTRL) != SDL.SDL_Keymod.KMOD_NONE;


            _useObjectHandles = isshift && isctrl;

            Macro macro = _macroManager.FindMacro(e.keysym.sym, isalt, isctrl, isshift);

            if (macro != null)
            {
                _macroManager.SetMacroToExecute(macro.FirstNode);
                _macroManager.WaitForTargetTimer = 0;
                _macroManager.Update();
            }

            //if (_hotkeysManager.TryExecuteIfBinded(e.keysym.sym, e.keysym.mod, out Action action))
            //{
            //    action();
            //}
        }
        /// <summary>
        /// On Dispose save XML File
        /// </summary>
        public override void Dispose()
        {
            if (_isListModified)
            {
                IgnoreManager.SaveIgnoreList();
            }

            if (TargetManager.IsTargeting)
            {
                TargetManager.CancelTarget();
            }

            base.Dispose();
        }
Esempio n. 3
0
        private void OnKeyDown(object sender, SDL.SDL_KeyboardEvent e)
        {
            if (TargetManager.IsTargeting && e.keysym.sym == SDL.SDL_Keycode.SDLK_ESCAPE && Input.Keyboard.IsModPressed(e.keysym.mod, SDL.SDL_Keymod.KMOD_NONE))
            {
                TargetManager.CancelTarget();
            }

            _isShiftDown = Input.Keyboard.IsModPressed(e.keysym.mod, SDL.SDL_Keymod.KMOD_SHIFT);

            if (e.keysym.sym == SDL.SDL_Keycode.SDLK_TAB)
            {
                if (!World.Player.InWarMode)
                {
                    GameActions.SetWarMode(true);
                }
            }
        }
Esempio n. 4
0
        public override void OnButtonClick(int buttonID)
        {
            switch ((TargetButton)buttonID)
            {
            case TargetButton.Target_1:
                if (!TargetManager.IsTargeting)
                {
                    TargetManager.SetTargeting(CursorTarget.Target_1, 0, TargetType.Neutral);
                }
                else
                {
                    TargetManager.CancelTarget();
                }
                break;

            case TargetButton.Target_2:
                if (!TargetManager.IsTargeting)
                {
                    TargetManager.SetTargeting(CursorTarget.Target_2, 0, TargetType.Neutral);
                }
                else
                {
                    TargetManager.CancelTarget();
                }
                break;


            case TargetButton.Target_3:
                if (!TargetManager.IsTargeting)
                {
                    TargetManager.SetTargeting(CursorTarget.Target_3, 0, TargetType.Neutral);
                }
                else
                {
                    TargetManager.CancelTarget();
                }
                break;

            case TargetButton.Target_4:
                if (!TargetManager.IsTargeting)
                {
                    TargetManager.SetTargeting(CursorTarget.Target_4, 0, TargetType.Neutral);
                }
                else
                {
                    TargetManager.CancelTarget();
                }
                break;

            case TargetButton.Target_5:
                if (!TargetManager.IsTargeting)
                {
                    TargetManager.SetTargeting(CursorTarget.Target_5, 0, TargetType.Neutral);
                }
                else
                {
                    TargetManager.CancelTarget();
                }
                break;
                //case TargetButton.Object_1:
                //    if (!TargetManager.IsTargeting)
                //        TargetManager.SetTargeting(CursorTarget.Object_1, 0, TargetType.Neutral);
                //    else
                //        TargetManager.CancelTarget();
                //    break;
                //case TargetButton.Object_2:
                //    if (!TargetManager.IsTargeting)
                //        TargetManager.SetTargeting(CursorTarget.Object_2, 0, TargetType.Neutral);
                //    else
                //        TargetManager.CancelTarget();
                //    break;
                //case TargetButton.Object_3:
                //    if (!TargetManager.IsTargeting)
                //        TargetManager.SetTargeting(CursorTarget.Object_3, 0, TargetType.Neutral);
                //    else
                //        TargetManager.CancelTarget();
                //    break;
                //case TargetButton.Object_4:
                //    if (!TargetManager.IsTargeting)
                //        TargetManager.SetTargeting(CursorTarget.Object_4, 0, TargetType.Neutral);
                //    else
                //        TargetManager.CancelTarget();
                //    break;
                //case TargetButton.Object_5:
                //    if (!TargetManager.IsTargeting)
                //        TargetManager.SetTargeting(CursorTarget.Object_5, 0, TargetType.Neutral);
                //    else
                //        TargetManager.CancelTarget();
                //    break;
            }
            SetName();
        }