Ejemplo n.º 1
0
    protected override void Update()
    {
        base.Update();
        if (action && power)
        {
            charges -= chargesRequired;
            power    = false;
            if (UpdateCharges != null)
            {
                UpdateCharges.Invoke(charges);
            }

            isActive = true;

            macchinarioSlowClock = 0f;
            speed = macchinarioSlowSpeed;
            macchinarioSpeedCounter += macchinarioSpeedIncrease;
            animator.SetBool("IDLE", false);
            animator.SetBool("HIGHLIGHTED", true);
        }

        if (isActive)
        {
            macchinarioSlowClock += Time.deltaTime;
            if (macchinarioSlowClock >= macchinarioSlowTime)
            {
                speed    = macchinarioSpeedCounter;
                isActive = false;

                animator.SetBool("HIGHLIGHTED", false);
                animator.SetBool("IDLE", true);
            }
        }
    }
Ejemplo n.º 2
0
    protected override void Update()
    {
        base.Update();
        if (action && power)
        {
            GenericProjectile hadoInstance = GameObject.Instantiate(hadoPrefab, projectileOrigin.position, Quaternion.identity).GetComponent <GenericProjectile>();
            if (!isPlayer1)
            {
                hadoInstance.transform.localScale = new Vector3(-hadoInstance.transform.localScale.x, hadoInstance.transform.localScale.y, hadoInstance.transform.localScale.z);
            }

            hadoInstance.SetImpulse(this.transform.right, hadoSpeedIncrease * charges);
            charges = 0;
            power   = false;
            if (UpdateCharges != null)
            {
                UpdateCharges.Invoke(charges);
            }
        }
    }
Ejemplo n.º 3
0
    protected override void Update()
    {
        chargeClock   += Time.deltaTime;
        isTryingToJump = (moveSpeed > 0f && isPlayer1) || (moveSpeed < 0f && !isPlayer1);

        if (!isTryingToJump && moveSpeed != 0f && !CheckIfGrounded() && !performingHelmBreaker)
        {
            rig.velocity = Vector2.zero;
            rig.AddForce(Vector2.down * helmBreakerSpeed, ForceMode2D.Impulse);
            animator.SetTrigger("HELM BREAKER");
            performingHelmBreaker = true;
        }

        if (canJump && remainingJumps > 0 && isTryingToJump && !isAttacking)
        {
            builtUpAcceleration = speed;
            remainingJumps     -= 1;
            canJump             = false;
            rig.velocity        = Vector2.zero;
            rig.AddForce(Vector2.up * speed, ForceMode2D.Impulse);
            animator.SetTrigger("JUMP");
            performingHelmBreaker = false;
            performingStinger     = false;
        }
        else
        if (moveSpeed == 0f)
        {
            canJump = true;
        }

        if (action)
        {
            if (canAttack && moveSpeed == 0f && !performingStinger && !performingHelmBreaker)
            {
                currentAttack++;
                if (ComboAttack(currentAttack))
                {
                    canAttack   = false;
                    isAttacking = true;
                    attackClock = 0f;
                }
            }
        }
        else
        {
            canAttack = true;
        }

        if (isAttacking)
        {
            attackClock += Time.deltaTime;
            if (!performingStinger && !performingHelmBreaker && !isTryingToJump)
            {
                rig.velocity     = Vector2.zero;
                rig.gravityScale = 0f;
                if (ballReference != null)
                {
                    ballReference.BeginDanteAttack();
                }
            }
            if (attackClock >= attackTime || performingStinger || performingHelmBreaker || isTryingToJump)
            {
                isAttacking      = false;
                attackClock      = 0f;
                rig.gravityScale = defaultGravity;
                PerformAttack();
                currentAttack = 0;
                if (power && !canAttack)
                {
                    power    = false;
                    charges -= chargesRequired;
                    if (UpdateCharges != null)
                    {
                        UpdateCharges.Invoke(charges);
                    }
                    PerformStinger();
                    attackClock       = 0f;
                    performingStinger = true;
                }
            }
        }

        if (performingStinger)
        {
            attackClock += Time.deltaTime;
            if (attackClock > attackTime)
            {
                performingStinger = false;
            }
        }

        if (performingHelmBreaker)
        {
            PerformHelmBreaker();
        }

        if (CheckIfGrounded())
        {
            animator.SetTrigger("IDLE");
            remainingJumps = maxJumps;
            if (performingHelmBreaker)
            {
                performingHelmBreaker = false;
            }
        }
        else
        {
            animator.ResetTrigger("IDLE");
        }
    }