Exemple #1
0
 public void JumpOffWall()
 {
     // Stops All Coroutines Just in Case OnWallEnter() has not stopped
     StopAllCoroutines();
     characterPhysics.AddForce(Quaternion.Euler(0f, transform.eulerAngles.y, 0f) * new Vector3(0f, 1f, 1f), jumpOffWallForce);
     characterPhysics.currentGravityState = GravityState.JumpedOffWall;
 }
Exemple #2
0
    public override void Cast()
    {
        Health            targetHealth;
        Character_Physics target = characterCombat.GetCombatCharacterComponents(abilityDistance, out targetHealth);

        if (target != null && characterPhysics.currentGravityState == GravityState.Grounded)
        {
            StartCoroutine(characterPhysics.PauseGroundCheck());
            StartCoroutine(target.PauseGroundCheck());
            target.SetMovementImpairingEffect(MovementImpairingEffect.Immobilization);
            target.currentGravityState           = GravityState.InAir;
            characterPhysics.currentGravityState = GravityState.InAir;

            characterPhysics.AddForce(Vector3.up, 80f);
            target.AddOutsideForce(Vector3.up, 80f);
            targetHealth.DecreaseHealth(damage.GetAmount() * 2f);
        }
    }
Exemple #3
0
    private IEnumerator CalculateDash(Vector3 inputDirection)
    {
        // Calculate the angle of dash based on the Character Rotation Angle
        float   targetAngle   = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg;
        Vector3 dashDirection = Quaternion.Euler(0f, transform.eulerAngles.y + targetAngle, 0f) * Vector3.forward;

        // Coroutine for Dash Cooldown
        StartCoroutine(ResetDash());

        // If Character is Falling also Pushes the Character Down
        if (characterPhysics.currentGravityState == GravityState.Falling)
        {
            dashDirection += Vector3.down;
        }

        characterPhysics.AddForce(dashDirection, dashForce);

        // Reseting Impact After dash is done
        yield return(new WaitForSeconds(dashDuration));

        characterPhysics.ResetImpact();
    }