Revoke WithMakeAnimation condition at the end of the tick.

This fixes traits becoming enabled for a tick
between the animation completing and the actor
being removed from the world.
This commit is contained in:
Paul Chote
2018-10-28 17:14:17 +00:00
committed by abcdefg30
parent 47a470e945
commit fc6ada38f4

View File

@@ -67,6 +67,8 @@ namespace OpenRA.Mods.Common.Traits.Render
return;
wsb.PlayCustomAnimation(self, info.Sequence, () =>
{
self.World.AddFrameEndTask(w =>
{
if (token != ConditionManager.InvalidConditionToken)
token = conditionManager.RevokeCondition(self, token);
@@ -74,6 +76,7 @@ namespace OpenRA.Mods.Common.Traits.Render
// TODO: Rewrite this to use a trait notification for save game support
onComplete();
});
});
}
public void Reverse(Actor self, Action onComplete)
@@ -87,6 +90,8 @@ namespace OpenRA.Mods.Common.Traits.Render
return;
wsb.PlayCustomAnimationBackwards(self, info.Sequence, () =>
{
self.World.AddFrameEndTask(w =>
{
if (token != ConditionManager.InvalidConditionToken)
token = conditionManager.RevokeCondition(self, token);
@@ -94,6 +99,7 @@ namespace OpenRA.Mods.Common.Traits.Render
// TODO: Rewrite this to use a trait notification for save game support
onComplete();
});
});
}
public void Reverse(Actor self, Activity activity, bool queued = true)