Esempio n. 1
0
    void Update()
    {
        if (GLOBAL.A() || selected == 'A')
        {
            A();
        }
        if (GLOBAL.Q() || selected == 'Q')
        {
            Q();
        }
        if (GLOBAL.W() || selected == 'W')
        {
            W();
        }
        if (GLOBAL.E() || selected == 'E')
        {
            E();
        }
        if (GLOBAL.R() || selected == 'R')
        {
            R();
        }
        if (GLOBAL.RightClick())
        {
            ClearRange();
        }

        CheckChase();
    }
Esempio n. 2
0
    void BasicAttack()
    {
        #region ignore
        //Ray ray = new Ray(transform.position, Camera.main.ScreenToWorldPoint(Input.mousePosition));
        //if (Physics.Raycast(ray, out RaycastHit hit, range, 9))
        //{
        //    Transform t = hit.collider.gameObject.transform;
        //    Character c = hit.collider.GetComponent<Character>();
        //    if (c != null && c.range >= Vector3.Distance(transform.position, t.position))
        //    {

        //    }
        //}

        #endregion

        if (GLOBAL.RightClick())
        {
            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out RaycastHit hit))
            {
                Character c = hit.collider.GetComponent <Character>();

                //  If a character is hit and is not yourself.
                if (GLOBAL.CheckCharacter(this, c))
                {
                    //  Set the target to the clicked character.
                    target = c.transform;

                    //  In range.
                    if (GLOBAL.HasReached(transform.position, target.position, AutoRange))
                    {
                        AutoAttack();
                    }

                    //  Chase this character.
                    chasing = true;
                }
                else
                {
                    //  Do nothing and move there.
                    target  = null;
                    chasing = false;
                }
            }
        }

        //  Chase target.
        if (chasing)
        {
            //  In range.
            if (GLOBAL.HasReached(transform.position, target.position, AutoRange))
            {
                AutoAttack();
            }
            else
            {
                //  Out of range.
                Invoke(nameof(MaintainDistance), .5f);
            }
        }
    }