private void Throw(InputAction.CallbackContext context)
    {
        animator.SetBool("persistantAttack", false);
        if (context.action.ToString() == "Land/MouseClick[/Mouse/leftButton]")
        {
            Vector2 track = trackMouseAction.ReadValue();
            shootHere = Camera.main.ScreenToWorldPoint(new Vector3(track.x, track.y, 0));
        }
        else
        {
            shootHere = Camera.main.ScreenToWorldPoint(context.ReadValue());
        }
        shootHere.z = 0;

        PointerEventData pointerData = new PointerEventData(EventSystem.current);
        pointerData.pointerId = -1;
        if (context.action.ToString() == "Land/MouseClick[/Mouse/leftButton]")
        {
            pointerData.position = trackMouseAction.ReadValue();
        }
        else
        {
            pointerData.position = new Vector2(context.ReadValue().x, context.ReadValue().y);
        }
        List results = new List();
        EventSystem.current.RaycastAll(pointerData, results);
        int raycastCount = results.Count;
        if (raycastCount < 1)
        {
            Vector3 characterScale = transform.localScale;
            characterScale.x = (shootHere.x < transform.position.x) ? System.Math.Abs(characterScale.x) * (-1) : System.Math.Abs(characterScale.x);
            transform.localScale = characterScale;

            Vector3 throwDepth = transform.position - shootHere;
            // inventory.CheckAmount(inventory.usingThis) > 0 && 
            if (!isPersistant(inventory.usingThis))
            {
                if (inventory.usingThis.GetItemType() == Item.ItemType.Sword)
                {
                    animator.SetBool("swordAttack", true);
                    transform.Find("Sword").gameObject.SetActive(true);
                    turnOffAllParticles();
                    swordAttacking = true;
                    clickCounter++;
                    holdingItem = false;
                    activateParticles(inventory.usingThis);
                }
                else if (inventory.usingThis.GetPrefab() == null)
                {
                    Vector3 userPos = new Vector3(pointerData.position.x, pointerData.position.y, 0f);
                    Vector3 aimDirection = (userPos - transform.position).normalized;
                    float angle = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg;
                    activateParticles(inventory.usingThis, new Vector3(0f, 0f, angle));
                    inventory.RemoveItem(inventory.usingThis);
                    if (inventory.usingThis.IsConjured())
                    {
                        setCurrentParticles();
                        doMagic();
                    }
                }
                else
                {
                    doThrowType(throwDepth);
                }
            }

            if (isPersistant(inventory.usingThis))
            {
                animator.SetBool("persistantAttack", true);
            }
        }
    }


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *