/// <summary>
    /// Checks for the trigger to being fired and fires the spell
    /// otherwise we show the aim
    /// </summary>
    /// <param name="deltaTime"></param>
    internal void Update(float deltaTime)
    {
        if (currentSpellDefinition == null)
        {
            return;
        }

        if (deviceInput.MouseButtonHeldDown())
        {
            currentSpellDefinition.SetOnCooldown();
            UISpellButtonWrapper.instance.SendMessage(currentSpellDefinition, InGameWrapper.instance.playersWrapper.GetOnlyLocalPlayer().GetGmj().transform.position);
            currentSpellDefinition = null;
            aimGmj.SetActive(false);
        }
        else
        {
            if (EventSystemReference.instance.EventSystem.IsPointerOverGameObject())
            {
                return;
            }
            if (deviceInput.PositionUpdated())
            {
                RaycastHit hit      = new RaycastHit();
                Ray        mouseRay = InGameWrapper.instance.camera.ScreenPointToRay(deviceInput.GetMousePosition());
                if (Physics.Raycast(mouseRay, out hit, 100f, aimData.groundMask))
                {
                    aimGmj.transform.position = hit.point;
                    var player = InGameWrapper.instance.playersWrapper.GetOnlyLocalPlayer().GetGmj().transform;
                    aimGmj.transform.LookAt(player.transform);
                    aimGmj.transform.rotation = Quaternion.Euler(0, aimGmj.transform.eulerAngles.y, 0);
                }
            }
        }
    }
 /// <summary>
 /// Checks input for a change in target position
 /// </summary>
 private void CheckMovementInput()
 {
     if (spellCaster.IsCasting() || InGameWrapper.instance.aimWrapper.IsAiming())
     {
         return;
     }
     if (deviceInput.MouseButtonHeldDown())
     {
         if (EventSystemReference.instance.EventSystem.IsPointerOverGameObject(deviceInput.GetMousePointerId()))
         {
             return;
         }
         RaycastHit hit      = new RaycastHit();
         Ray        mouseRay = InGameWrapper.instance.camera.ScreenPointToRay(Input.mousePosition);
         if (Physics.Raycast(mouseRay, out hit, 100f, generalPlayerData.groundMask))
         {
             Debug.DrawLine(playerGmj.transform.position, hit.point);
             var newTargetPos = new Vector3(hit.point.x, playerGmj.transform.position.y, hit.point.z);
             if (newTargetPos == targetPos)
             {
                 return;
             }
             InGameWrapper.instance.cursorWrapper.SetPosition(newTargetPos);
             SetTargetPos(new Vector3(hit.point.x, StaticVariables.GetYPos(), hit.point.z));
         }
     }
 }