diff --git a/OpenRA.Game/Combat.cs b/OpenRA.Game/Combat.cs index 0bf322fe9d..e9e1e65e55 100644 --- a/OpenRA.Game/Combat.cs +++ b/OpenRA.Game/Combat.cs @@ -76,13 +76,10 @@ namespace OpenRA case DamageModel.PerCell: { foreach (var t in world.FindTilesInCircle(targetTile, warhead.SmudgeSize[0])) - { - var x = Util.CenterOfCell(t); - foreach (var unit in world.FindUnits(x, x)) + foreach (var unit in world.FindUnits(Game.CellSize * t, Game.CellSize * (t + new float2(1,1)))) unit.InflictDamage(args.firedBy, (int)(warhead.Damage * warhead.EffectivenessAgainst( unit.Info.Traits.Get().Armor)), warhead); - } } break; } } diff --git a/OpenRA.Game/Smudge.cs b/OpenRA.Game/Smudge.cs index 3b2cf24e2c..714305b22b 100644 --- a/OpenRA.Game/Smudge.cs +++ b/OpenRA.Game/Smudge.cs @@ -53,7 +53,8 @@ namespace OpenRA else foreach (var t in Game.world.FindTilesInCircle(targetTile, warhead.SmudgeSize[0])) if ((t - targetTile).LengthSquared >= warhead.SmudgeSize[1] * warhead.SmudgeSize[1]) - map.AddSmudge(warhead.SmudgeType == SmudgeType.Crater, t.X, t.Y); + if (Game.world.GetTerrainType(t) != TerrainType.Water) + map.AddSmudge(warhead.SmudgeType == SmudgeType.Crater, t.X, t.Y); } static int lastSmudge = 0; diff --git a/mods/ra/weapons.yaml b/mods/ra/weapons.yaml index bf14ed18c4..2ef75351fd 100644 --- a/mods/ra/weapons.yaml +++ b/mods/ra/weapons.yaml @@ -640,7 +640,6 @@ Atomic: Warhead@inner-nuke: DamageModel: PerCell Damage: 150 - SmudgeType: Scorch SmudgeSize: 3,2 Wall: true Wood: true