Crash on capture fix. #19482.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user