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:
@@ -65,6 +65,9 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
|
|
||||||
public virtual void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
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)));
|
var damage = Util.ApplyPercentageModifiers(Damage, damageModifiers.Append(DamageVersus(victim)));
|
||||||
victim.InflictDamage(firedBy, damage, this);
|
victim.InflictDamage(firedBy, damage, this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
|
|
||||||
public override void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
public override void DoImpact(Actor victim, Actor firedBy, IEnumerable<int> damageModifiers)
|
||||||
{
|
{
|
||||||
|
if (!IsValidAgainst(victim, firedBy))
|
||||||
|
return;
|
||||||
|
|
||||||
var healthInfo = victim.Info.TraitInfoOrDefault<HealthInfo>();
|
var healthInfo = victim.Info.TraitInfoOrDefault<HealthInfo>();
|
||||||
if (healthInfo == null)
|
if (healthInfo == null)
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -62,9 +62,6 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
|
|
||||||
foreach (var victim in hitActors)
|
foreach (var victim in hitActors)
|
||||||
{
|
{
|
||||||
if (!IsValidAgainst(victim, firedBy))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
var healthInfo = victim.Info.TraitInfoOrDefault<HealthInfo>();
|
var healthInfo = victim.Info.TraitInfoOrDefault<HealthInfo>();
|
||||||
if (healthInfo == null)
|
if (healthInfo == null)
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user