/// <summary>
        /// Handles mouse activity.
        /// </summary>
        protected override void HandlerMouse(MouseState mouse)
        {
            Int32 deltaWheel = mouse.ScrollWheelValue - _oldMouseState.ScrollWheelValue;

            if (deltaWheel > 0)
            {
                if (_selectedCreature != null && _selectedCreature.Team == _myGame.PlayerTeam)
                {
                    _selectedCreature.SpellSelectNext();
                }
            }

            else if (deltaWheel < 0)
            {
                if (_selectedCreature != null && _selectedCreature.Team == _myGame.PlayerTeam)
                {
                    _selectedCreature.SpellSelectPrevious();
                }
            }


            _mousePosition  = new Vector2(mouse.X, mouse.Y);
            _mouseHoverTile = ClickedHex(_mousePosition, _myDrawer.ScreenAnchor);

            #region Mouse Hover
            // check if the cursor is over an item.
            if (_selectedCreature != null && _selectedCreature.Team == _myGame.PlayerTeam)
            {
                int?i = DetermineInventorySlotClickedBackpack();
                int?j = DetermineInventorySlotClickedEquipped();

                if (i != null || j != null)
                {
                    _itemHovered = (i != null) ? _selectedCreature.InventoryBackpack.GetItem(i.Value) : _selectedCreature.InventoryEquipped.GetItem(j.Value);
                }
                else
                {
                    _itemHovered = null;
                }
            }

            if (mouse.LeftButton == ButtonState.Pressed)
            {
                _lastLeftButtonPress = new Vector2(mouse.X - _myDrawer.ScreenAnchor.X, mouse.Y - _myDrawer.ScreenAnchor.Y);
                if (_oldMouseState.LeftButton == ButtonState.Released)
                {
                }
            }
            #endregion

            HandlerMouse_LeftButton(mouse);

            HandlerMouse_RightButton(mouse);
        }