From bc4061aabdfcf3aeb40947c571a06b6afeb25764 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 24 Jul 2013 20:49:48 +1200 Subject: [PATCH] Hide explosions under fog. --- OpenRA.Mods.RA/Effects/Explosion.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/Effects/Explosion.cs b/OpenRA.Mods.RA/Effects/Explosion.cs index d0d2507bad..35afe19db5 100644 --- a/OpenRA.Mods.RA/Effects/Explosion.cs +++ b/OpenRA.Mods.RA/Effects/Explosion.cs @@ -1,6 +1,6 @@ #region Copyright & License Information /* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) + * Copyright 2007-2013 The OpenRA Developers (see AUTHORS) * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation. For more information, @@ -17,20 +17,27 @@ namespace OpenRA.Mods.RA.Effects { public class Explosion : IEffect { - Animation anim; + World world; WPos pos; + CPos cell; + Animation anim; public Explosion(World world, WPos pos, string style) { + this.world = world; this.pos = pos; + this.cell = pos.ToCPos(); anim = new Animation("explosion"); anim.PlayThen(style, () => world.AddFrameEndTask(w => w.Remove(this))); } - public void Tick( World world ) { anim.Tick(); } + public void Tick(World world) { anim.Tick(); } public IEnumerable Render(WorldRenderer wr) { + if (world.FogObscures(cell)) + return SpriteRenderable.None; + return anim.Render(pos, wr.Palette("effect")); } }