From 2d4efc7942cabac958f1a5df0dbb52a401f699de Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Thu, 29 Jul 2010 18:49:41 +1200 Subject: [PATCH] crate should only choose water/land type on landing, not every tick. --- OpenRA.Mods.RA/Crate.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OpenRA.Mods.RA/Crate.cs b/OpenRA.Mods.RA/Crate.cs index 3ba660829f..d24e58ae69 100644 --- a/OpenRA.Mods.RA/Crate.cs +++ b/OpenRA.Mods.RA/Crate.cs @@ -73,13 +73,9 @@ namespace OpenRA.Mods.RA public void Tick(Actor self) { - var cell = Util.CellContaining(self.CenterLocation); + if (++ticks >= self.Info.Traits.Get().Lifetime * 25) - self.World.AddFrameEndTask(w => w.Remove(self)); - - var seq = self.World.GetTerrainInfo(cell).IsWater ? "water" : "idle"; - if (seq != self.traits.Get().anim.CurrentSequence.Name) - self.traits.Get().anim.PlayRepeating(seq); + self.World.AddFrameEndTask(w => w.Remove(self)); } public int2 TopLeft { get { return Location; } } @@ -96,6 +92,10 @@ namespace OpenRA.Mods.RA { Location = cell; self.CenterLocation = Util.CenterOfCell(cell); + + var seq = self.World.GetTerrainInfo(cell).IsWater ? "water" : "idle"; + if (seq != self.traits.Get().anim.CurrentSequence.Name) + self.traits.Get().anim.PlayRepeating(seq); } public IEnumerable CrushClasses { get { yield return "crate"; } }