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

@@ -31,8 +31,7 @@ namespace OpenRA.Mods.Common.Traits
public class GrantConditionOnPowerState : ConditionalTrait<GrantConditionOnPowerStateInfo>, INotifyOwnerChanged, INotifyPowerLevelChanged
{
PowerManager playerPower;
ConditionManager conditionManager;
int conditionToken = ConditionManager.InvalidConditionToken;
int conditionToken = Actor.InvalidConditionToken;
bool validPowerState;
@@ -46,8 +45,6 @@ namespace OpenRA.Mods.Common.Traits
{
base.Created(self);
conditionManager = self.TraitOrDefault<ConditionManager>();
Update(self);
}
@@ -63,15 +60,12 @@ namespace OpenRA.Mods.Common.Traits
void Update(Actor self)
{
if (conditionManager == null)
return;
validPowerState = !IsTraitDisabled && Info.ValidPowerStates.HasFlag(playerPower.PowerState);
if (validPowerState && conditionToken == ConditionManager.InvalidConditionToken)
conditionToken = conditionManager.GrantCondition(self, Info.Condition);
else if (!validPowerState && conditionToken != ConditionManager.InvalidConditionToken)
conditionToken = conditionManager.RevokeCondition(self, conditionToken);
if (validPowerState && conditionToken == Actor.InvalidConditionToken)
conditionToken = self.GrantCondition(Info.Condition);
else if (!validPowerState && conditionToken != Actor.InvalidConditionToken)
conditionToken = self.RevokeCondition(conditionToken);
}
void INotifyPowerLevelChanged.PowerLevelChanged(Actor self)