Fix Damage spread

This commit is contained in:
Paul Chote
2010-01-04 13:42:53 +13:00
parent b2296a5014
commit 3b0fd0e22c

View File

@@ -32,7 +32,7 @@ namespace OpenRa.Game
var maxSpread = GetMaximumSpread(weapon, warhead); var maxSpread = GetMaximumSpread(weapon, warhead);
var hitActors = Game.FindUnitsInCircle(loc, maxSpread); var hitActors = Game.FindUnitsInCircle(loc, maxSpread);
foreach (var victim in hitActors) foreach (var victim in hitActors)
victim.InflictDamage(firedBy, (int)GetDamageToInflict(victim, loc, weapon, warhead), warhead); victim.InflictDamage(firedBy, (int)GetDamageToInflict(victim, loc, weapon, warhead), warhead);
} }
@@ -46,11 +46,10 @@ namespace OpenRa.Game
{ {
if (!WeaponValidForTarget(weapon, target)) if (!WeaponValidForTarget(weapon, target))
return 0f; return 0f;
var distance = (target.CenterLocation - loc).Length; var distance = (target.CenterLocation - loc).Length*1/24f;
var rawDamage = weapon.Damage * (float)Math.Exp(-distance / warhead.Spread); var rawDamage = weapon.Damage * (float)Math.Exp(-distance / warhead.Spread);
var multiplier = warhead.EffectivenessAgainst(target.Info.Armor); var multiplier = warhead.EffectivenessAgainst(target.Info.Armor);
return rawDamage * multiplier; return rawDamage * multiplier;
} }