public void OnReceivedDamages(int delta, int remainingLife, GameObject damageInstigator) { //print("Remaining life : " + remainingLife); if (isJumping) { EndJumping(); if (!jumpDurationSystem.TimerOver) { jumpDurationSystem.EndTimer(); } } float xOffset = transform.position.x - damageInstigator.transform.position.x; currentHorizontalSpeed = onDamagedHorizontalSpeed * Mathf.Sign(xOffset); currentVerticalSpeed = onDamagedVerticalSpeed; lifeSystem.SetImmuneToDamages(); stunTimer.StartTimer(); recoveringTimer.StartTimer(); PlayDamagedFeedback(); OnCharacterReceivedDamage?.Invoke(); }