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

@@ -68,11 +68,14 @@ namespace OpenRA.Mods.Common.Traits.Render
wsb.PlayCustomAnimation(self, info.Sequence, () =>
{
if (token != ConditionManager.InvalidConditionToken)
token = conditionManager.RevokeCondition(self, token);
self.World.AddFrameEndTask(w =>
{
if (token != ConditionManager.InvalidConditionToken)
token = conditionManager.RevokeCondition(self, token);
// TODO: Rewrite this to use a trait notification for save game support
onComplete();
// TODO: Rewrite this to use a trait notification for save game support
onComplete();
});
});
}
@@ -88,11 +91,14 @@ namespace OpenRA.Mods.Common.Traits.Render
wsb.PlayCustomAnimationBackwards(self, info.Sequence, () =>
{
if (token != ConditionManager.InvalidConditionToken)
token = conditionManager.RevokeCondition(self, token);
self.World.AddFrameEndTask(w =>
{
if (token != ConditionManager.InvalidConditionToken)
token = conditionManager.RevokeCondition(self, token);
// TODO: Rewrite this to use a trait notification for save game support
onComplete();
// TODO: Rewrite this to use a trait notification for save game support
onComplete();
});
});
}