diff --git a/OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs b/OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs index 8671fbd209..e0e00986cb 100644 --- a/OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs +++ b/OpenRA.Mods.Cnc/Traits/PoisonedByTiberium.cs @@ -24,16 +24,20 @@ namespace OpenRA.Mods.Cnc.Traits public WeaponInfo WeaponInfo { get; private set; } - public override object Create(ActorInitializer init) { return new PoisonedByTiberium(this); } + public override object Create(ActorInitializer init) { return new PoisonedByTiberium(init, this); } public void RulesetLoaded(Ruleset rules, ActorInfo ai) { WeaponInfo = rules.Weapons[Weapon.ToLowerInvariant()]; } } class PoisonedByTiberium : UpgradableTrait, ITick, ISync { + readonly ResourceLayer rl; [Sync] int poisonTicks; - public PoisonedByTiberium(PoisonedByTiberiumInfo info) - : base(info) { } + public PoisonedByTiberium(ActorInitializer init, PoisonedByTiberiumInfo info) + : base(info) + { + rl = init.Self.World.WorldActor.Trait(); + } public void Tick(Actor self) { @@ -44,7 +48,6 @@ namespace OpenRA.Mods.Cnc.Traits if (!self.IsInWorld) return; - var rl = self.World.WorldActor.Trait(); var r = rl.GetResource(self.Location); if (r == null || !Info.Resources.Contains(r.Info.Name)) return;