Crash on capture fix. #19482.

This commit is contained in:
Vapre
2021-08-19 19:56:20 +02:00
committed by Paul Chote
parent 6b3eee8481
commit e8bae2e50a

View File

@@ -254,20 +254,25 @@ namespace OpenRA.Mods.Common.Traits
foreach (var w in progressWatchers) foreach (var w in progressWatchers)
w.Update(self, self, target, 0, 0); w.Update(self, self, target, 0, 0);
if (targetManager != null)
foreach (var w in targetManager.progressWatchers) foreach (var w in targetManager.progressWatchers)
w.Update(target, self, target, 0, 0); w.Update(target, self, target, 0, 0);
if (capturingToken != Actor.InvalidConditionToken) if (capturingToken != Actor.InvalidConditionToken)
capturingToken = self.RevokeCondition(capturingToken); capturingToken = self.RevokeCondition(capturingToken);
if (targetManager != null)
{
if (targetManager.beingCapturedToken != Actor.InvalidConditionToken) if (targetManager.beingCapturedToken != Actor.InvalidConditionToken)
targetManager.beingCapturedToken = target.RevokeCondition(targetManager.beingCapturedToken); targetManager.beingCapturedToken = target.RevokeCondition(targetManager.beingCapturedToken);
targetManager.currentCaptors.Remove(self);
}
currentTarget = null; currentTarget = null;
currentTargetManager = null; currentTargetManager = null;
currentTargetDelay = 0; currentTargetDelay = 0;
enteringCurrentTarget = false; enteringCurrentTarget = false;
targetManager.currentCaptors.Remove(self);
} }
void ITick.Tick(Actor self) void ITick.Tick(Actor self)