diff --git a/OpenRA.Mods.RA/Activities/Rearm.cs b/OpenRA.Mods.RA/Activities/Rearm.cs index 4fd29033eb..bbd2e63b25 100644 --- a/OpenRA.Mods.RA/Activities/Rearm.cs +++ b/OpenRA.Mods.RA/Activities/Rearm.cs @@ -17,21 +17,21 @@ namespace OpenRA.Mods.RA.Activities { public class Rearm : Activity { - + readonly LimitedAmmo limitedAmmo; int ticksPerPip = 25 * 2; int remainingTicks = 25 * 2; - public Rearm(Actor actor) - { - ticksPerPip = actor.TraitOrDefault().ReloadTimePerAmmo(); + public Rearm(Actor self) + { + limitedAmmo = self.TraitOrDefault(); + if (limitedAmmo != null) + ticksPerPip = limitedAmmo.ReloadTimePerAmmo(); remainingTicks = ticksPerPip; } public override Activity Tick(Actor self) { - if (IsCanceled) return NextActivity; - var limitedAmmo = self.TraitOrDefault(); - if (limitedAmmo == null) return NextActivity; + if (IsCanceled || limitedAmmo == null) return NextActivity; if (--remainingTicks == 0) {