From e7c61fac5cd957cce29cf39ace2501bba4778aa8 Mon Sep 17 00:00:00 2001 From: geckosoft Date: Mon, 25 Oct 2010 15:06:36 +0200 Subject: [PATCH] Core: Added the attacker to IDamageModifier' GetDamageModifier --- OpenRA.Game/Traits/Health.cs | 2 +- OpenRA.Game/Traits/TraitsInterfaces.cs | 2 +- OpenRA.Mods.RA/Effects/InvulnEffect.cs | 2 +- OpenRA.Mods.RA/GainsExperience.cs | 2 +- OpenRA.Mods.RA/Invulnerable.cs | 2 +- OpenRA.Mods.RA/IronCurtainable.cs | 2 +- OpenRA.Mods.RA/TakeCover.cs | 2 +- OpenRA.Mods.RA/TeslaInstantKills.cs | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/OpenRA.Game/Traits/Health.cs b/OpenRA.Game/Traits/Health.cs index 9de4c74dda..7bcfdbd295 100755 --- a/OpenRA.Game/Traits/Health.cs +++ b/OpenRA.Game/Traits/Health.cs @@ -82,7 +82,7 @@ namespace OpenRA.Traits /* apply the damage modifiers, if we have any. */ var modifier = (float)self.TraitsImplementing().Concat(self.Owner.PlayerActor.TraitsImplementing()) - .Select(t => t.GetDamageModifier(warhead)).Product(); + .Select(t => t.GetDamageModifier(attacker, warhead)).Product(); damage = (int)(damage * modifier); diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index a400bc47f4..cf19ea561f 100755 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -106,7 +106,7 @@ namespace OpenRA.Traits public interface INotifyAttack { void Attacking(Actor self); } public interface IRenderModifier { IEnumerable ModifyRender(Actor self, IEnumerable r); } - public interface IDamageModifier { float GetDamageModifier( WarheadInfo warhead ); } + public interface IDamageModifier { float GetDamageModifier(Actor attacker, WarheadInfo warhead); } public interface ISpeedModifier { float GetSpeedModifier(); } public interface IFirepowerModifier { float GetFirepowerModifier(); } public interface IPalette { void InitPalette( WorldRenderer wr ); } diff --git a/OpenRA.Mods.RA/Effects/InvulnEffect.cs b/OpenRA.Mods.RA/Effects/InvulnEffect.cs index 5565b5752e..c2d8fa0bc9 100644 --- a/OpenRA.Mods.RA/Effects/InvulnEffect.cs +++ b/OpenRA.Mods.RA/Effects/InvulnEffect.cs @@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Effects public void Tick( World world ) { - if (a.IsDead() || b.GetDamageModifier(null) > 0) + if (a.IsDead() || b.GetDamageModifier(null, null) > 0) world.AddFrameEndTask(w => w.Remove(this)); } diff --git a/OpenRA.Mods.RA/GainsExperience.cs b/OpenRA.Mods.RA/GainsExperience.cs index 71f5920c8a..62f46d2b75 100644 --- a/OpenRA.Mods.RA/GainsExperience.cs +++ b/OpenRA.Mods.RA/GainsExperience.cs @@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA } } - public float GetDamageModifier(WarheadInfo warhead) + public float GetDamageModifier(Actor attacker, WarheadInfo warhead) { return Level > 0 ? 1 / Info.ArmorModifier[Level - 1] : 1; } diff --git a/OpenRA.Mods.RA/Invulnerable.cs b/OpenRA.Mods.RA/Invulnerable.cs index e481463f16..c8bf5103cb 100644 --- a/OpenRA.Mods.RA/Invulnerable.cs +++ b/OpenRA.Mods.RA/Invulnerable.cs @@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA class Invulnerable : IDamageModifier { - public float GetDamageModifier( WarheadInfo warhead ) + public float GetDamageModifier( Actor attacker, WarheadInfo warhead ) { return 0.0f; } diff --git a/OpenRA.Mods.RA/IronCurtainable.cs b/OpenRA.Mods.RA/IronCurtainable.cs index 9bb06bd917..c7a4a1e10d 100644 --- a/OpenRA.Mods.RA/IronCurtainable.cs +++ b/OpenRA.Mods.RA/IronCurtainable.cs @@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA RemainingTicks--; } - public float GetDamageModifier( WarheadInfo warhead ) + public float GetDamageModifier(Actor attacker, WarheadInfo warhead) { return (RemainingTicks > 0) ? 0.0f : 1.0f; } diff --git a/OpenRA.Mods.RA/TakeCover.cs b/OpenRA.Mods.RA/TakeCover.cs index 3079cfbd26..ce5f7e4478 100644 --- a/OpenRA.Mods.RA/TakeCover.cs +++ b/OpenRA.Mods.RA/TakeCover.cs @@ -40,7 +40,7 @@ namespace OpenRA.Mods.RA --remainingProneTime; } - public float GetDamageModifier( WarheadInfo warhead ) + public float GetDamageModifier(Actor attacker, WarheadInfo warhead ) { return IsProne ? proneDamage : 1f; } diff --git a/OpenRA.Mods.RA/TeslaInstantKills.cs b/OpenRA.Mods.RA/TeslaInstantKills.cs index 1855fc7053..457c9ce57a 100755 --- a/OpenRA.Mods.RA/TeslaInstantKills.cs +++ b/OpenRA.Mods.RA/TeslaInstantKills.cs @@ -17,7 +17,7 @@ namespace OpenRA.Mods.RA class TeslaInstantKills : IDamageModifier { - public float GetDamageModifier( WarheadInfo warhead ) + public float GetDamageModifier(Actor attacker, WarheadInfo warhead ) { if( warhead != null && warhead.InfDeath == 5 ) return 1000f;