Пример #1
0
    public void DoTask()
    {
        float newDeltaTime = (GameManager.main.maxFrameNum + 1) * Time.deltaTime;

        if (currTask == taskType.idle || !currTarget || peg.isStunned)
        {
            peg.movementInput = Vector2.zero;
            return;
        }


        peg.movementInput = currTarget.position.ToVector2() - transform.position.ToVector2();

        float dist = Vector2.Distance(transform.position.ToVector2(), currTarget.position.ToVector2());

        if (currTask == taskType.attack || currTask == taskType.crate)
        {
            if (dist < attackDistance)
            {
                attackTimer -= newDeltaTime;

                if (attackTimer <= 0)
                {
                    peg.OnAttackPressed();
                    attackTimer = Random.Range(randomAttackDelay / 2, randomAttackDelay);

                    IdleWait(0.1f);
                }
            }
            else
            {
                if (attackTimer < randomAttackDelay)
                {
                    attackTimer += newDeltaTime;
                }
            }
        }
        else if (currTask == taskType.collectCoin && dist < coinDistance)
        {
            peg.OnAttackPressed();

            RandomWait();
        }
        else if (currTask == taskType.deliverCoin && dist < coinDropDistance)
        {
            peg.OnAttackPressed();

            RandomWait();
        }


        peg.movementInput = peg.movementInput.normalized * speedMult;
    }
Пример #2
0
    void Update()
    {
        if (!peg || GameManager.main.isGameOver)
        {
            return;
        }

        peg.movementInput = new Vector2(Input.GetAxisRaw(string.Format("p{0}h", playerID)), Input.GetAxisRaw(string.Format("p{0}v", playerID)));

        if (Input.GetButtonDown(string.Format("p{0}f", playerID)))
        {
            peg.OnAttackPressed();
        }
    }