Fix Mobile conditions.

The explicit IObservesVariables implementation was hiding
the base PausableConditionalTrait variable initialization.
This commit is contained in:
Paul Chote
2019-06-23 10:38:39 +01:00
committed by reaperrr
parent 71ed22a473
commit 98125a3d94

View File

@@ -129,7 +129,7 @@ namespace OpenRA.Mods.Common.Traits
}
public class Mobile : PausableConditionalTrait<MobileInfo>, IIssueOrder, IResolveOrder, IOrderVoice, IPositionable, IMove, ITick,
IFacing, IDeathActorInitModifier, INotifyAddedToWorld, INotifyRemovedFromWorld, INotifyBlockingMove, IActorPreviewInitModifier, INotifyBecomingIdle, IObservesVariables
IFacing, IDeathActorInitModifier, INotifyAddedToWorld, INotifyRemovedFromWorld, INotifyBlockingMove, IActorPreviewInitModifier, INotifyBecomingIdle
{
readonly Actor self;
readonly Lazy<IEnumerable<int>> speedModifiers;
@@ -752,8 +752,11 @@ namespace OpenRA.Mods.Common.Traits
Nudge(self, blocking, true);
}
IEnumerable<VariableObserver> IObservesVariables.GetVariableObservers()
public override IEnumerable<VariableObserver> GetVariableObservers()
{
foreach (var observer in base.GetVariableObservers())
yield return observer;
if (Info.RequireForceMoveCondition != null)
yield return new VariableObserver(RequireForceMoveConditionChanged, Info.RequireForceMoveCondition.Variables);
}