public void SetProjectileSpecialParameters(ProjectileSpecialParameters specialParameters) { projectileSpecialParameters = new ProjectileSpecialParameters( new ShipSpeedModifier(specialParameters.GetSpeedModifier), new ProjectilePiercingParameters(specialParameters.GetPiercingParameters), new ProjectileSkeweringParameters(specialParameters.GetSkeweringParameters), specialParameters.GetExplosionParameters, new SmokeZoneParameters(specialParameters.GetSmokeZoneParameters), new SlowingZoneParameters(specialParameters.GetSlowingZoneParameters)); projectileSpecialParameters.SetRelatedProjectile(this); }
public void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameters, ProjectileSpecialParameters projSpecialParameters) { }
/// <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 ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameters, ProjectileSpecialParameters projSpecialParameters) { lifeManager.Damage(damagesParameters.GetDamageAmount, damagesParameters.GetRecoveringTime, damagesParameters.GetRecoveringType); }
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(); } } }
public override void ReceiveDamage(IDamageSource damageSource, DamagesParameters damagesParameter, ProjectileSpecialParameters projSpecialParameterss) { if (!GameManager.gameManager.Won && GameManager.gameManager.StartedFight) { base.ReceiveDamage(damageSource, damagesParameter, projSpecialParameterss); } }
/// <summary> /// Commence un tir sur cet équipement /// </summary> /// <param name="shootParameters">Paramètres du tir</param> /// <param name="aimPos">Position visée</param> public void Shoot(ShootParameters shootParameters, Vector3 aimPos, bool lockPosition, ProjectileSpecialParameters projectileSpecialParameters) { foreach (ShootOrigin shootOrigin in shootOrigins) { shootOrigin.SetProjectileSpecialParameters(projectileSpecialParameters); shootOrigin.StartShooting(shootParameters, aimPos, lockPosition); } }
public void SetProjectileSpecialParameters(ProjectileSpecialParameters projSpecialParameters) { projectileSpecialParameters = projSpecialParameters; }