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); } } }
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); } } }
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"); } }