public void DealDamage(IDamageReceiver damageReceiver, DamagesParameters damagesParameters) { if (damageReceiver.GetDamageTag != attackTag || damageReceiver.GetDamageTag == AttackTag.Enemies || damageReceiver.GetDamageTag == AttackTag.Environment) { damageReceiver.ReceiveDamage(this, damagesParameters, null); } }
public override void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameter, ProjectileSpecialParameters projSpecialParameterss) { if (!GameManager.gameManager.Won && GameManager.gameManager.StartedFight) { base.ReceiveDamage(damageSource, damagesParameter, projSpecialParameterss); } }
public void DealDamage(IDamageReceiver damageReceiver, DamagesParameters damagesParameters) { damageReceiver.ReceiveDamage(this, damagesParameters, relatedProjectile.GetProjectileSpecialParameters); if (relatedProjectile.GetProjectileSpecialParameters.GetPiercingParameters.GetNumberOfPiercing > 0) { relatedProjectile.GetProjectileSpecialParameters.GetPiercingParameters.DecreamentPiercing(); FeedbackObject woodProjection = GameManager.gameManager.PoolManager.GetFeedbackObject(FeedbackObjectPoolTag.WoodDestruction, PoolInteractionType.GetFromPool); if (woodProjection != null) { woodProjection.transform.position = transform.position; woodProjection.StartFeedback(2, 0.2f, specialSound); } } else if (relatedProjectile.GetProjectileSpecialParameters.GetSkeweringParameters.Skewering) { FeedbackObject woodProjection = GameManager.gameManager.PoolManager.GetFeedbackObject(FeedbackObjectPoolTag.WoodDestruction, PoolInteractionType.GetFromPool); if (woodProjection != null) { woodProjection.transform.position = transform.position; woodProjection.StartFeedback(2, 0.2f, specialSound); } } else { relatedProjectile.ExplodeOnContact(); } }
public void ReceiveDamage(DamageTag sourceDamageTag, DamagesParameters damagesParameters) { if (sourceDamageTag != DamageTag.Environment && sourceDamageTag == damageTag) { return; } if (damagesParameters._damages == 0) { return; } if (!_isPlayer) { TimeManager.Instance.StartFreezeFrame(); } OnReceivedDamages?.Invoke(currentLifeAmount - Mathf.Abs(damagesParameters._damages), -Mathf.Abs(damagesParameters._damages)); LoseLife(damagesParameters._damages); if (damagesParameters._numberOfStunedTurns > 0) { //Debug.Log(name + " is stuned for " + damagesParameters._numberOfStunedTurns + " turn" + (damagesParameters._numberOfStunedTurns > 1 ? "s" : "")); OnReceivedStun?.Invoke(damagesParameters._numberOfStunedTurns); } }
public override void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameters, ProjectileSpecialParameters projSpecialParameters) { if (damageSource.GetDamageTag == AttackTag.Player) { if (!GameManager.gameManager.CinematicMng.CinematicProcessing) { IntroControler dialogue = dialoguesToLaunchOnFleeingEnemyHitByShot[Random.Range(0, dialoguesToLaunchOnFleeingEnemyHitByShot.Length)]; dialogue.PlayCinematic(); } } }
/// <summary> /// Used to receive the attack from the inputed source /// </summary> /// <param name="attackSource">The attack source that touched this attack receiver</param> /// <param name="attackParameters">The parameters of the received attack</param> public virtual void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameters, ProjectileSpecialParameters projSpecialParameters) { if (relatedShip.IsLifeProtected) { return; } relatedShip.LfManager.Damage(damagesParameters.GetDamageAmount, damagesParameters.GetRecoveringTime, damagesParameters.GetRecoveringType); #region Damage Feedback DamageSourceRelativePosition damageSourceRelativePosition = DamageSourceRelativePosition.Right; if (damageSource != null) { Vector3 attackSourceRelativePos = (damageSource.GetDamageSourcePosition - transform.position).normalized; Vector3 selfDirection = relatedShip.GetShipVelocity; if (Vector3.Dot(attackSourceRelativePos, selfDirection.GetLeftOrthogonalVectorXZ()) > 0) { damageSourceRelativePosition = DamageSourceRelativePosition.Left; } } else { int random = Random.Range(0, 2); if (random == 1) { damageSourceRelativePosition = DamageSourceRelativePosition.Left; } } relatedShip.StartDamageShipAnim(damagesParameters.GetDamageAmount, damageSourceRelativePosition); #endregion if (projSpecialParameters != null) { if (projSpecialParameters.GetSpeedModifier != null) { relatedShip.ShipMvt.StartNewSpeedModifier(projSpecialParameters.GetSpeedModifier); } if (projSpecialParameters.GetSkeweringParameters.Skewering) { relatedShip.SetCurrentSkeweringProjectile(projSpecialParameters.GetSkeweringParameters.GetSourceProjectile); } } }
public void DealDamage(IDamageReceiver damageReceiver, DamagesParameters damagesParameters) { damageReceiver.ReceiveDamage(this, damagesParameters, null); }
public void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameters, ProjectileSpecialParameters projSpecialParameters) { }
public void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameters, ProjectileSpecialParameters projSpecialParameters) { lifeManager.Damage(damagesParameters.GetDamageAmount, damagesParameters.GetRecoveringTime, damagesParameters.GetRecoveringType); }
private void Start() { damagesParameters = new DamagesParameters(1, 0.3f, RecoveringType.ConsidersRecover); knockbackParameters = new KnockbackParameters(20, 0.15f, 0.1f, true, 0.6f, 0.3f); }