Fix (HealthPercentage)DamageWarheads ignoring stances/TargetTypes.

Moves the IsValidAgainst check from SpreadDamage level to Damage level
and adds a duplication to HealthPercentageDamageWarhead.
This commit is contained in:
Zimmermann Gyula
2015-11-01 05:45:16 +01:00
parent 7a6b5a0e55
commit 0f14339763
3 changed files with 6 additions and 3 deletions

View File

@@ -65,6 +65,9 @@ namespace OpenRA.Mods.Common.Warheads
public virtual void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
{
if (!IsValidAgainst(victim, firedBy))
return;
var damage = Util.ApplyPercentageModifiers(Damage, damageModifiers.Append(DamageVersus(victim)));
victim.InflictDamage(firedBy, damage, this);
}

View File

@@ -42,6 +42,9 @@ namespace OpenRA.Mods.Common.Warheads
public override void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
{
if (!IsValidAgainst(victim, firedBy))
return;
var healthInfo = victim.Info.TraitInfoOrDefault<HealthInfo>();
if (healthInfo == null)
return;

View File

@@ -62,9 +62,6 @@ namespace OpenRA.Mods.Common.Warheads
foreach (var victim in hitActors)
{
if (!IsValidAgainst(victim, firedBy))
continue;
var healthInfo = victim.Info.TraitInfoOrDefault<HealthInfo>();
if (healthInfo == null)
continue;