Merge ConditionManager trait directly into Actor

This commit is contained in:
atlimit8
2020-04-18 23:25:05 -05:00
committed by reaperrr
parent e12c1dc9aa
commit 259c8d2c98
65 changed files with 466 additions and 707 deletions

View File

@@ -58,7 +58,6 @@ namespace OpenRA.Mods.Common.Traits
public class CaptureManager : INotifyCreated, INotifyCapture, ITick, IDisableEnemyAutoTarget
{
readonly CaptureManagerInfo info;
ConditionManager conditionManager;
IMove move;
ICaptureProgressWatcher[] progressWatchers;
@@ -75,8 +74,8 @@ namespace OpenRA.Mods.Common.Traits
CaptureManager currentTargetManager;
int currentTargetDelay;
int currentTargetTotal;
int capturingToken = ConditionManager.InvalidConditionToken;
int beingCapturedToken = ConditionManager.InvalidConditionToken;
int capturingToken = Actor.InvalidConditionToken;
int beingCapturedToken = Actor.InvalidConditionToken;
bool enteringCurrentTarget;
HashSet<Actor> currentCaptors = new HashSet<Actor>();
@@ -90,7 +89,6 @@ namespace OpenRA.Mods.Common.Traits
void INotifyCreated.Created(Actor self)
{
conditionManager = self.TraitOrDefault<ConditionManager>();
move = self.TraitOrDefault<IMove>();
progressWatchers = self.TraitsImplementing<ICaptureProgressWatcher>().ToArray();
@@ -206,13 +204,13 @@ namespace OpenRA.Mods.Common.Traits
else
currentTargetDelay += 1;
if (conditionManager != null && !string.IsNullOrEmpty(info.CapturingCondition) &&
capturingToken == ConditionManager.InvalidConditionToken)
capturingToken = conditionManager.GrantCondition(self, info.CapturingCondition);
if (!string.IsNullOrEmpty(info.CapturingCondition) &&
capturingToken == Actor.InvalidConditionToken)
capturingToken = self.GrantCondition(info.CapturingCondition);
if (targetManager.conditionManager != null && !string.IsNullOrEmpty(targetManager.info.BeingCapturedCondition) &&
targetManager.beingCapturedToken == ConditionManager.InvalidConditionToken)
targetManager.beingCapturedToken = targetManager.conditionManager.GrantCondition(target, targetManager.info.BeingCapturedCondition);
if (!string.IsNullOrEmpty(targetManager.info.BeingCapturedCondition) &&
targetManager.beingCapturedToken == Actor.InvalidConditionToken)
targetManager.beingCapturedToken = target.GrantCondition(targetManager.info.BeingCapturedCondition);
captures = enabledCaptures
.OrderBy(c => c.Info.CaptureDelay)
@@ -262,11 +260,11 @@ namespace OpenRA.Mods.Common.Traits
foreach (var w in targetManager.progressWatchers)
w.Update(target, self, target, 0, 0);
if (capturingToken != ConditionManager.InvalidConditionToken)
capturingToken = conditionManager.RevokeCondition(self, capturingToken);
if (capturingToken != Actor.InvalidConditionToken)
capturingToken = self.RevokeCondition(capturingToken);
if (targetManager.beingCapturedToken != ConditionManager.InvalidConditionToken)
targetManager.beingCapturedToken = targetManager.conditionManager.RevokeCondition(self, targetManager.beingCapturedToken);
if (targetManager.beingCapturedToken != Actor.InvalidConditionToken)
targetManager.beingCapturedToken = self.RevokeCondition(targetManager.beingCapturedToken);
currentTarget = null;
currentTargetManager = null;