Ignore modifiers when applying terrain damage.

This commit is contained in:
Paul Chote
2021-09-26 22:16:21 +01:00
committed by abcdefg30
parent a573052f2e
commit a0d49729f5

View File

@@ -142,10 +142,10 @@ namespace OpenRA.Mods.D2k.Traits.Buildings
if (!info.StartOnThreshold) if (!info.StartOnThreshold)
return; return;
// Start with maximum damage applied // Start with maximum damage applied, ignoring modifiers like player handicap
var delta = health.HP - damageThreshold; var delta = health.HP - damageThreshold;
if (delta > 0) if (delta > 0)
self.InflictDamage(self.World.WorldActor, new Damage(delta, info.DamageTypes)); health.InflictDamage(self, self.World.WorldActor, new Damage(delta, info.DamageTypes), true);
} }
void ITick.Tick(Actor self) void ITick.Tick(Actor self)
@@ -153,7 +153,8 @@ namespace OpenRA.Mods.D2k.Traits.Buildings
if (totalTiles == safeTiles || health.HP <= damageThreshold || --damageTicks > 0) if (totalTiles == safeTiles || health.HP <= damageThreshold || --damageTicks > 0)
return; return;
self.InflictDamage(self.World.WorldActor, new Damage(info.Damage, info.DamageTypes)); // Terrain damage should not change with modifiers like player handicap
health.InflictDamage(self, self.World.WorldActor, new Damage(info.Damage, info.DamageTypes), true);
damageTicks = info.DamageInterval; damageTicks = info.DamageInterval;
} }
} }