Merge ConditionManager trait directly into Actor
This commit is contained in:
@@ -145,11 +145,10 @@ namespace OpenRA.Mods.Common.Traits
|
||||
public UnitStance PredictedStance;
|
||||
|
||||
UnitStance stance;
|
||||
ConditionManager conditionManager;
|
||||
IDisableAutoTarget[] disableAutoTarget;
|
||||
INotifyStanceChanged[] notifyStanceChanged;
|
||||
IEnumerable<AutoTargetPriorityInfo> activeTargetPriorities;
|
||||
int conditionToken = ConditionManager.InvalidConditionToken;
|
||||
int conditionToken = Actor.InvalidConditionToken;
|
||||
|
||||
public void SetStance(Actor self, UnitStance value)
|
||||
{
|
||||
@@ -170,15 +169,12 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
void ApplyStanceCondition(Actor self)
|
||||
{
|
||||
if (conditionManager == null)
|
||||
return;
|
||||
|
||||
if (conditionToken != ConditionManager.InvalidConditionToken)
|
||||
conditionToken = conditionManager.RevokeCondition(self, conditionToken);
|
||||
if (conditionToken != Actor.InvalidConditionToken)
|
||||
conditionToken = self.RevokeCondition(conditionToken);
|
||||
|
||||
string condition;
|
||||
if (Info.ConditionByStance.TryGetValue(stance, out condition))
|
||||
conditionToken = conditionManager.GrantCondition(self, condition);
|
||||
conditionToken = self.GrantCondition(condition);
|
||||
}
|
||||
|
||||
public AutoTarget(ActorInitializer init, AutoTargetInfo info)
|
||||
@@ -206,7 +202,6 @@ namespace OpenRA.Mods.Common.Traits
|
||||
.OrderByDescending(ati => ati.Info.Priority).ToArray()
|
||||
.Where(Exts.IsTraitEnabled).Select(atp => atp.Info);
|
||||
|
||||
conditionManager = self.TraitOrDefault<ConditionManager>();
|
||||
disableAutoTarget = self.TraitsImplementing<IDisableAutoTarget>().ToArray();
|
||||
notifyStanceChanged = self.TraitsImplementing<INotifyStanceChanged>().ToArray();
|
||||
ApplyStanceCondition(self);
|
||||
|
||||
Reference in New Issue
Block a user