Merge ConditionManager trait directly into Actor
This commit is contained in:
@@ -29,31 +29,23 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
class GrantCondition : ConditionalTrait<GrantConditionInfo>
|
||||
{
|
||||
ConditionManager conditionManager;
|
||||
int conditionToken = ConditionManager.InvalidConditionToken;
|
||||
int conditionToken = Actor.InvalidConditionToken;
|
||||
|
||||
public GrantCondition(GrantConditionInfo info)
|
||||
: base(info) { }
|
||||
|
||||
protected override void Created(Actor self)
|
||||
{
|
||||
conditionManager = self.Trait<ConditionManager>();
|
||||
|
||||
base.Created(self);
|
||||
}
|
||||
|
||||
protected override void TraitEnabled(Actor self)
|
||||
{
|
||||
if (conditionToken == ConditionManager.InvalidConditionToken)
|
||||
conditionToken = conditionManager.GrantCondition(self, Info.Condition);
|
||||
if (conditionToken == Actor.InvalidConditionToken)
|
||||
conditionToken = self.GrantCondition(Info.Condition);
|
||||
}
|
||||
|
||||
protected override void TraitDisabled(Actor self)
|
||||
{
|
||||
if (Info.GrantPermanently || conditionToken == ConditionManager.InvalidConditionToken)
|
||||
if (Info.GrantPermanently || conditionToken == Actor.InvalidConditionToken)
|
||||
return;
|
||||
|
||||
conditionToken = conditionManager.RevokeCondition(self, conditionToken);
|
||||
conditionToken = self.RevokeCondition(conditionToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user