public IEnumerator KnocbackCharacter(Character_Physics character, Vector3 direction, float knocbackForce, float knocbackLength) { character.AddOutsideForce(direction, knocbackForce); yield return(new WaitForSeconds(knocbackLength)); character.ResetOutsideImpact(); }
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); } }