// Update is called once per frame
    void FixedUpdate()
    {
        if (canMove)
        {
            movement();
            float delta = Time.deltaTime;

            //Method that allows attacking
            if (target != null)
            {
                aTimer += delta;

                if (aTimer >= ATTACK_INTERVAL)
                {
                    fighter.executeSecMove(curMainAttack, target);
                    curMainAttack++;
                    curMainAttack -= (curMainAttack > MAIN_ATTACK_2) ? NUM_MAIN_ATTACKS : 0;
                    aTimer         = 0f;
                }
            }

            //Method that manages melee attack timer
            if (!canMelee)
            {
                mTimer += delta;

                if (mTimer >= MELEE_ATTACK_INTERVAL)
                {
                    canMelee = true;
                    mTimer   = 0f;
                }
            }
        }
    }
Ejemplo n.º 2
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (canMove && target != null)
        {
            //Enemy movement
            Vector2 movement = new Vector2(target.position.x - transform.position.x, target.position.y - transform.position.y);
            movement.Normalize();
            Battle.updateBasicOrientation(movement, transform);
            anim.SetFloat("speed", enemyFighter.getMoveSpeed());
            transform.Translate(movement * enemyFighter.getMoveSpeed() * 0.5f);

            //Behavior upon stun: If enemy stunned, charge dash. If dash couldn't be run, use a water pulse
            PKMNEntity tgtFighter = target.GetComponent <PlayerMovement>().getCurFighter();

            if (!stunMoveExecuted && tgtFighter.isStunned())
            {
                stunMoveExecuted = enemyFighter.executeSecMove(MAIN_TACKLE, target);

                if (stunMoveExecuted)
                {
                    aTimer = 0f;
                }
                else
                {
                    stunMoveExecuted = enemyFighter.executeSecMove(BUBBLE_SHIELD, target);
                }
            }

            //Timers
            float delta = Time.deltaTime;
            aTimer += delta;

            //Resetter for attack timer
            if (aTimer >= MAX_ATTACK_INTERVAL)
            {
                enemyFighter.executeSecMove(MAIN_TACKLE, target);
                stunMoveExecuted = false;
                aTimer           = 0f;
            }

            //Resetter for melee timer
            if (!canMelee)
            {
                meleeTimer += delta;

                if (meleeTimer >= MELEE_ATTACK_INTERVAL)
                {
                    canMelee   = true;
                    meleeTimer = 0.0f;
                }
            }
        }
    }
    // Update is called once per frame
    void FixedUpdate()
    {
        if (target != null && canMove)
        {
            enemyMovement();

            //Behavior upon player stun
            PKMNEntity tgtFighter = target.GetComponent <PlayerMovement>().getCurFighter();

            if (!stunMoveExecuted && tgtFighter.isStunned())
            {
                stunMoveExecuted = enemyFighter.executeSecMove(MAIN_SHOOTER, target);
                aTimer           = (stunMoveExecuted) ? 0f : aTimer;
            }

            //Updating timers foir shooting intervals
            float delta = Time.deltaTime;
            aTimer += delta;

            if (aTimer >= MAX_ATTACK_INTERVAL)
            {
                enemyFighter.executeSecMove(MAIN_SHOOTER, target);
                stunMoveExecuted = false;
                aTimer           = 0f;
            }

            //Updating timers for melee attacks
            if (!canMelee)
            {
                meleeTimer += delta;

                if (meleeTimer >= MELEE_ATTACK_INTERVAL)
                {
                    canMelee   = true;
                    meleeTimer = 0f;
                }
            }

            //Updating dash timers
            if (!canDash)
            {
                dashTimer += delta;

                if (dashTimer >= DASH_INTERVAL)
                {
                    dashTimer = 0f;
                    canDash   = true;
                }
            }
        }
    }
Ejemplo n.º 4
0
    //Controller for combat. Wiil mostly focus around the mouse
    void combat()
    {
        //Executes primary move upon left click
        if (Input.GetMouseButtonDown(0) && !assistSeqOn)
        {
            selectedFighter.executePrimaryMove();
        }

        //Executes secondary move upon right click
        if (Input.GetMouseButtonDown(1) && !assistSeqOn)
        {
            selectedFighter.executeSecMove(secMoveIndex);
        }
    }