void Update() { Movement.RemoveFromDirection(LastSeenForceByKeyPress.normalized, 1); LastSeenForceByKeyPress = ForceByKeyPress; Movement.AddToDirection(ForceByKeyPress.normalized, 1); ForceByKeyPress = Vector3.zero; }
private void RemoveLastRandomMovement(MovableBody movableBody) { movableBody.RemoveFromDirection( LastAddedMovement, LastAddedMovementMagnitude ); }
private IEnumerator EndAfter( float duration, float bonusSpeed, float bonusAcceleration, Vector3 direction ) { float timer = 0; while (timer < duration && IsCharging == true) { timer += Time.deltaTime; Ray ray = new Ray(Caster.transform.position, direction); RaycastHit[] hits = Physics.RaycastAll(ray, 0.125f); bool didHitTarget = false; foreach (RaycastHit hit in hits) { if (hit.collider.gameObject == Caster.gameObject) { continue; //dont collider with self } if (hit.collider.gameObject.layer == Caster.layer) { continue; //dont collide with shared tags as caster } if (hit.collider.GetComponent <OnDamageEventEmitter>() != null) { Skill.GetEmitter().Emit(new OnCastHitTargetEventData( Caster, hit.collider.gameObject )); didHitTarget = true; } } if (didHitTarget) { break; } yield return(null); } IsCharging = false; MovableBody.SetMaxSpeed(MovableBody.GetMaxSpeed() - bonusSpeed); MovableBody.SetAcceleration(MovableBody.GetAcceleration() - bonusAcceleration); MovableBody.RemoveFromDirection(direction, MovementWeighting); if (ColorShifter != null) { ColorShifter.ShiftToColor(new Color(1f, 0f, 0f), new Color(1f, 1f, 1f), duration / 4f); } Skill.GetEmitter().Emit(new OnCastEndEventData( Caster )); }