Avoid querying traits from dead minelayers.

This commit is contained in:
Paul Chote
2016-12-17 21:10:11 +00:00
parent aeceb87b6f
commit 40419bc8ea

View File

@@ -183,14 +183,15 @@ namespace OpenRA.Mods.RA.Traits
public IEnumerable<IRenderable> Render(WorldRenderer wr, World world) { yield break; }
public IEnumerable<IRenderable> RenderAboveShroud(WorldRenderer wr, World world)
{
if (!minelayers.Any())
var minelayer = minelayers.FirstOrDefault(m => m.IsInWorld && !m.IsDead);
if (minelayer == null)
yield break;
// We get the biggest depth so we cover all cells that mines could be placed on.
var minefield = GetMinefieldCells(minefieldStart, lastMousePos,
minelayers.Max(m => m.Info.TraitInfo<MinelayerInfo>().MinefieldDepth));
var movement = minelayers.First().Trait<IPositionable>();
var movement = minelayer.Trait<IPositionable>();
var pal = wr.Palette(TileSet.TerrainPaletteInternalName);
foreach (var c in minefield)
{