diff --git a/OpenRA.Mods.Common/Lint/CheckConditions.cs b/OpenRA.Mods.Common/Lint/CheckConditions.cs index 2a2b54c640..1883741101 100644 --- a/OpenRA.Mods.Common/Lint/CheckConditions.cs +++ b/OpenRA.Mods.Common/Lint/CheckConditions.cs @@ -64,7 +64,7 @@ namespace OpenRA.Mods.Common.Lint if (ungranted.Any()) emitError("Actor type `{0}` consumes conditions that are not granted: {1}".F(actorInfo.Key, ungranted.JoinWith(", "))); - if ((consumed.Any() || granted.Any()) && actorInfo.Value.TraitInfoOrDefault() == null) + if ((consumed.Any() || granted.Any()) && actorInfo.Value.TraitInfoOrDefault() == null) emitError("Actor type `{0}` defines conditions but does not include an UpgradeManager".F(actorInfo.Key)); } } diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index 7aea862391..8bce13f6df 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -498,7 +498,7 @@ - + diff --git a/OpenRA.Mods.Common/Scripting/Properties/ConditionProperties.cs b/OpenRA.Mods.Common/Scripting/Properties/ConditionProperties.cs index 83bbd4495a..1f22f340d2 100644 --- a/OpenRA.Mods.Common/Scripting/Properties/ConditionProperties.cs +++ b/OpenRA.Mods.Common/Scripting/Properties/ConditionProperties.cs @@ -20,15 +20,15 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Scripting { [ScriptPropertyGroup("General")] - public class ConditionProperties : ScriptActorProperties, Requires + public class ConditionProperties : ScriptActorProperties, Requires { - readonly UpgradeManager um; + readonly ConditionManager um; readonly Dictionary> legacyShim = new Dictionary>(); public ConditionProperties(ScriptContext context, Actor self) : base(context, self) { - um = self.Trait(); + um = self.Trait(); } [Desc("Grant an external condition on this actor and return the revocation token.", diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index be07531a5e..dc1c7358b4 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -105,7 +105,7 @@ namespace OpenRA.Mods.Common.Traits public readonly AircraftInfo Info; readonly Actor self; - UpgradeManager um; + ConditionManager um; IDisposable reservation; IEnumerable speedModifiers; @@ -119,8 +119,8 @@ namespace OpenRA.Mods.Common.Traits bool airborne; bool cruising; bool firstTick = true; - int airborneToken = UpgradeManager.InvalidConditionToken; - int cruisingToken = UpgradeManager.InvalidConditionToken; + int airborneToken = ConditionManager.InvalidConditionToken; + int cruisingToken = ConditionManager.InvalidConditionToken; bool isMoving; bool isMovingVertically; @@ -146,7 +146,7 @@ namespace OpenRA.Mods.Common.Traits public void Created(Actor self) { - um = self.TraitOrDefault(); + um = self.TraitOrDefault(); speedModifiers = self.TraitsImplementing().ToArray().Select(sm => sm.GetSpeedModifier()); cachedPosition = self.CenterPosition; } @@ -669,7 +669,7 @@ namespace OpenRA.Mods.Common.Traits return; airborne = true; - if (um != null && !string.IsNullOrEmpty(Info.AirborneCondition) && airborneToken == UpgradeManager.InvalidConditionToken) + if (um != null && !string.IsNullOrEmpty(Info.AirborneCondition) && airborneToken == ConditionManager.InvalidConditionToken) airborneToken = um.GrantCondition(self, Info.AirborneCondition); } @@ -679,7 +679,7 @@ namespace OpenRA.Mods.Common.Traits return; airborne = false; - if (um != null && airborneToken != UpgradeManager.InvalidConditionToken) + if (um != null && airborneToken != ConditionManager.InvalidConditionToken) airborneToken = um.RevokeCondition(self, airborneToken); } @@ -693,7 +693,7 @@ namespace OpenRA.Mods.Common.Traits return; cruising = true; - if (um != null && !string.IsNullOrEmpty(Info.CruisingCondition) && cruisingToken == UpgradeManager.InvalidConditionToken) + if (um != null && !string.IsNullOrEmpty(Info.CruisingCondition) && cruisingToken == ConditionManager.InvalidConditionToken) cruisingToken = um.GrantCondition(self, Info.CruisingCondition); } @@ -702,7 +702,7 @@ namespace OpenRA.Mods.Common.Traits if (!cruising) return; cruising = false; - if (um != null && cruisingToken != UpgradeManager.InvalidConditionToken) + if (um != null && cruisingToken != ConditionManager.InvalidConditionToken) cruisingToken = um.RevokeCondition(self, cruisingToken); } diff --git a/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs index 12e417367a..2f68729d5d 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs @@ -41,8 +41,8 @@ namespace OpenRA.Mods.Common.Traits public class PrimaryBuilding : INotifyCreated, IIssueOrder, IResolveOrder { readonly PrimaryBuildingInfo info; - UpgradeManager um; - int primaryToken = UpgradeManager.InvalidConditionToken; + ConditionManager um; + int primaryToken = ConditionManager.InvalidConditionToken; public bool IsPrimary { get; private set; } @@ -53,7 +53,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - um = self.TraitOrDefault(); + um = self.TraitOrDefault(); } IEnumerable IIssueOrder.Orders @@ -95,12 +95,12 @@ namespace OpenRA.Mods.Common.Traits b.Trait.SetPrimaryProducer(b.Actor, false); } - if (um != null && primaryToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(info.PrimaryCondition)) + if (um != null && primaryToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(info.PrimaryCondition)) primaryToken = um.GrantCondition(self, info.PrimaryCondition); Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", info.SelectionNotification, self.Owner.Faction.InternalName); } - else if (primaryToken != UpgradeManager.InvalidConditionToken) + else if (primaryToken != ConditionManager.InvalidConditionToken) primaryToken = um.RevokeCondition(self, primaryToken); } } diff --git a/OpenRA.Mods.Common/Traits/Cargo.cs b/OpenRA.Mods.Common/Traits/Cargo.cs index f31f1070b7..a81622909e 100644 --- a/OpenRA.Mods.Common/Traits/Cargo.cs +++ b/OpenRA.Mods.Common/Traits/Cargo.cs @@ -88,8 +88,8 @@ namespace OpenRA.Mods.Common.Traits int totalWeight = 0; int reservedWeight = 0; Aircraft aircraft; - UpgradeManager upgradeManager; - int loadingToken = UpgradeManager.InvalidConditionToken; + ConditionManager upgradeManager; + int loadingToken = ConditionManager.InvalidConditionToken; Stack loadedTokens = new Stack(); CPos currentCell; @@ -141,7 +141,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { aircraft = self.TraitOrDefault(); - upgradeManager = self.Trait(); + upgradeManager = self.Trait(); } static int GetWeight(Actor a) { return a.Info.TraitInfo().Weight; } @@ -208,7 +208,7 @@ namespace OpenRA.Mods.Common.Traits if (!HasSpace(w)) return false; - if (upgradeManager != null && loadingToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.LoadingCondition)) + if (upgradeManager != null && loadingToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.LoadingCondition)) loadingToken = upgradeManager.GrantCondition(self, Info.LoadingCondition); reserves.Add(a); @@ -225,7 +225,7 @@ namespace OpenRA.Mods.Common.Traits reservedWeight -= GetWeight(a); reserves.Remove(a); - if (loadingToken != UpgradeManager.InvalidConditionToken) + if (loadingToken != ConditionManager.InvalidConditionToken) loadingToken = upgradeManager.RevokeCondition(self, loadingToken); } @@ -321,7 +321,7 @@ namespace OpenRA.Mods.Common.Traits reservedWeight -= w; reserves.Remove(a); - if (loadingToken != UpgradeManager.InvalidConditionToken) + if (loadingToken != ConditionManager.InvalidConditionToken) loadingToken = upgradeManager.RevokeCondition(self, loadingToken); } diff --git a/OpenRA.Mods.Common/Traits/Carryable.cs b/OpenRA.Mods.Common/Traits/Carryable.cs index bc78ba666a..6680bf0224 100644 --- a/OpenRA.Mods.Common/Traits/Carryable.cs +++ b/OpenRA.Mods.Common/Traits/Carryable.cs @@ -33,9 +33,9 @@ namespace OpenRA.Mods.Common.Traits public class Carryable : UpgradableTrait { - UpgradeManager upgradeManager; - int reservedToken = UpgradeManager.InvalidConditionToken; - int carriedToken = UpgradeManager.InvalidConditionToken; + ConditionManager upgradeManager; + int reservedToken = ConditionManager.InvalidConditionToken; + int carriedToken = ConditionManager.InvalidConditionToken; public Actor Carrier { get; private set; } public bool Reserved { get { return state != State.Free; } } @@ -51,7 +51,7 @@ namespace OpenRA.Mods.Common.Traits protected override void Created(Actor self) { - upgradeManager = self.Trait(); + upgradeManager = self.Trait(); base.Created(self); } @@ -63,7 +63,7 @@ namespace OpenRA.Mods.Common.Traits attached = true; - if (carriedToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.CarriedCondition)) + if (carriedToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.CarriedCondition)) carriedToken = upgradeManager.GrantCondition(self, Info.CarriedCondition); } @@ -75,7 +75,7 @@ namespace OpenRA.Mods.Common.Traits attached = false; - if (carriedToken != UpgradeManager.InvalidConditionToken) + if (carriedToken != ConditionManager.InvalidConditionToken) carriedToken = upgradeManager.RevokeCondition(self, carriedToken); } @@ -87,7 +87,7 @@ namespace OpenRA.Mods.Common.Traits state = State.Reserved; Carrier = carrier; - if (reservedToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.ReservedCondition)) + if (reservedToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.ReservedCondition)) reservedToken = upgradeManager.GrantCondition(self, Info.ReservedCondition); return true; @@ -98,7 +98,7 @@ namespace OpenRA.Mods.Common.Traits state = State.Free; Carrier = null; - if (reservedToken != UpgradeManager.InvalidConditionToken) + if (reservedToken != ConditionManager.InvalidConditionToken) reservedToken = upgradeManager.RevokeCondition(self, reservedToken); } diff --git a/OpenRA.Mods.Common/Traits/Cloak.cs b/OpenRA.Mods.Common/Traits/Cloak.cs index 7bdb5a8985..ecbdbd4a8d 100644 --- a/OpenRA.Mods.Common/Traits/Cloak.cs +++ b/OpenRA.Mods.Common/Traits/Cloak.cs @@ -66,11 +66,11 @@ namespace OpenRA.Mods.Common.Traits [Sync] int remainingTime; [Sync] bool damageDisabled; bool isDocking; - UpgradeManager upgradeManager; + ConditionManager upgradeManager; CPos? lastPos; bool wasCloaked = false; - int cloakedToken = UpgradeManager.InvalidConditionToken; + int cloakedToken = ConditionManager.InvalidConditionToken; public Cloak(CloakInfo info) : base(info) @@ -80,12 +80,12 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - upgradeManager = self.TraitOrDefault(); + upgradeManager = self.TraitOrDefault(); if (Cloaked) { wasCloaked = true; - if (upgradeManager != null && cloakedToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.CloakedCondition)) + if (upgradeManager != null && cloakedToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.CloakedCondition)) cloakedToken = upgradeManager.GrantCondition(self, Info.CloakedCondition); } } @@ -144,7 +144,7 @@ namespace OpenRA.Mods.Common.Traits var isCloaked = Cloaked; if (isCloaked && !wasCloaked) { - if (upgradeManager != null && cloakedToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.CloakedCondition)) + if (upgradeManager != null && cloakedToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(Info.CloakedCondition)) cloakedToken = upgradeManager.GrantCondition(self, Info.CloakedCondition); if (!self.TraitsImplementing().Any(a => a != this && a.Cloaked)) @@ -152,7 +152,7 @@ namespace OpenRA.Mods.Common.Traits } else if (!isCloaked && wasCloaked) { - if (cloakedToken != UpgradeManager.InvalidConditionToken) + if (cloakedToken != ConditionManager.InvalidConditionToken) cloakedToken = upgradeManager.RevokeCondition(self, cloakedToken); if (!self.TraitsImplementing().Any(a => a != this && a.Cloaked)) diff --git a/OpenRA.Mods.Common/Traits/Crates/GrantExternalConditionCrateAction.cs b/OpenRA.Mods.Common/Traits/Crates/GrantExternalConditionCrateAction.cs index daa82819b0..f612bec658 100644 --- a/OpenRA.Mods.Common/Traits/Crates/GrantExternalConditionCrateAction.cs +++ b/OpenRA.Mods.Common/Traits/Crates/GrantExternalConditionCrateAction.cs @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits bool AcceptsCondition(Actor a) { - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); return um != null && um.AcceptsExternalCondition(a, info.Condition); } @@ -71,7 +71,7 @@ namespace OpenRA.Mods.Common.Traits if (!a.IsInWorld || a.IsDead) continue; - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); // Condition token is ignored because we never revoke this condition. if (um != null) diff --git a/OpenRA.Mods.Common/Traits/GainsExperience.cs b/OpenRA.Mods.Common/Traits/GainsExperience.cs index bd08e47810..dd3c892e9a 100644 --- a/OpenRA.Mods.Common/Traits/GainsExperience.cs +++ b/OpenRA.Mods.Common/Traits/GainsExperience.cs @@ -46,7 +46,7 @@ namespace OpenRA.Mods.Common.Traits readonly int initialExperience; readonly List> nextLevel = new List>(); - UpgradeManager um; + ConditionManager um; // Stored as a percentage of our value [Sync] int experience = 0; @@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - um = self.TraitOrDefault(); + um = self.TraitOrDefault(); if (initialExperience > 0) GiveExperience(initialExperience, info.SuppressLevelupAnimation); } diff --git a/OpenRA.Mods.Common/Traits/GrantConditionOnPrerequisite.cs b/OpenRA.Mods.Common/Traits/GrantConditionOnPrerequisite.cs index bd3ce0eb6f..009824cc96 100644 --- a/OpenRA.Mods.Common/Traits/GrantConditionOnPrerequisite.cs +++ b/OpenRA.Mods.Common/Traits/GrantConditionOnPrerequisite.cs @@ -34,8 +34,8 @@ namespace OpenRA.Mods.Common.Traits readonly GrantConditionOnPrerequisiteInfo info; readonly GrantConditionOnPrerequisiteManager globalManager; - UpgradeManager manager; - int conditionToken = UpgradeManager.InvalidConditionToken; + ConditionManager manager; + int conditionToken = ConditionManager.InvalidConditionToken; bool wasAvailable; @@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - manager = self.TraitOrDefault(); + manager = self.TraitOrDefault(); } void INotifyAddedToWorld.AddedToWorld(Actor self) @@ -67,9 +67,9 @@ namespace OpenRA.Mods.Common.Traits if (available == wasAvailable || manager == null) return; - if (available && conditionToken == UpgradeManager.InvalidConditionToken) + if (available && conditionToken == ConditionManager.InvalidConditionToken) conditionToken = manager.GrantCondition(self, info.Condition); - else if (!available && conditionToken != UpgradeManager.InvalidConditionToken) + else if (!available && conditionToken != ConditionManager.InvalidConditionToken) conditionToken = manager.RevokeCondition(self, conditionToken); wasAvailable = available; diff --git a/OpenRA.Mods.Common/Traits/Parachutable.cs b/OpenRA.Mods.Common/Traits/Parachutable.cs index 5592dd8a8e..2b4b926314 100644 --- a/OpenRA.Mods.Common/Traits/Parachutable.cs +++ b/OpenRA.Mods.Common/Traits/Parachutable.cs @@ -50,8 +50,8 @@ namespace OpenRA.Mods.Common.Traits readonly ParachutableInfo info; readonly IPositionable positionable; - UpgradeManager um; - int parachutingToken = UpgradeManager.InvalidConditionToken; + ConditionManager um; + int parachutingToken = ConditionManager.InvalidConditionToken; public Parachutable(Actor self, ParachutableInfo info) { @@ -61,18 +61,18 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - um = self.TraitOrDefault(); + um = self.TraitOrDefault(); } void INotifyParachute.OnParachute(Actor self) { - if (um != null && parachutingToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(info.ParachutingCondition)) + if (um != null && parachutingToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(info.ParachutingCondition)) parachutingToken = um.GrantCondition(self, info.ParachutingCondition); } void INotifyParachute.OnLanded(Actor self, Actor ignore) { - if (parachutingToken != UpgradeManager.InvalidConditionToken) + if (parachutingToken != ConditionManager.InvalidConditionToken) parachutingToken = um.RevokeCondition(self, parachutingToken); if (!info.KilledOnImpassableTerrain) diff --git a/OpenRA.Mods.Common/Traits/Pluggable.cs b/OpenRA.Mods.Common/Traits/Pluggable.cs index 797558075a..79fe810a81 100644 --- a/OpenRA.Mods.Common/Traits/Pluggable.cs +++ b/OpenRA.Mods.Common/Traits/Pluggable.cs @@ -34,8 +34,8 @@ namespace OpenRA.Mods.Common.Traits public readonly PluggableInfo Info; readonly string initialPlug; - UpgradeManager upgradeManager; - int conditionToken = UpgradeManager.InvalidConditionToken; + ConditionManager upgradeManager; + int conditionToken = ConditionManager.InvalidConditionToken; string active; @@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Traits public void Created(Actor self) { - upgradeManager = self.TraitOrDefault(); + upgradeManager = self.TraitOrDefault(); if (!string.IsNullOrEmpty(initialPlug)) EnablePlug(self, initialPlug); @@ -76,7 +76,7 @@ namespace OpenRA.Mods.Common.Traits if (type != active) return; - if (conditionToken != UpgradeManager.InvalidConditionToken) + if (conditionToken != ConditionManager.InvalidConditionToken) conditionToken = upgradeManager.RevokeCondition(self, conditionToken); active = null; diff --git a/OpenRA.Mods.Common/Traits/Render/TimedConditionBar.cs b/OpenRA.Mods.Common/Traits/Render/TimedConditionBar.cs index c97d5f77cd..03c7e666bd 100644 --- a/OpenRA.Mods.Common/Traits/Render/TimedConditionBar.cs +++ b/OpenRA.Mods.Common/Traits/Render/TimedConditionBar.cs @@ -15,7 +15,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits.Render { [Desc("Visualizes the remaining time for an upgrade.")] - class TimedConditionBarInfo : ITraitInfo, Requires + class TimedConditionBarInfo : ITraitInfo, Requires { [FieldLoader.Require] [Desc("Condition that this bar corresponds to")] diff --git a/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs index b0098a2deb..6d4dad148a 100644 --- a/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs +++ b/OpenRA.Mods.Common/Traits/SupportPowers/GrantExternalConditionPower.cs @@ -69,7 +69,7 @@ namespace OpenRA.Mods.Common.Traits foreach (var a in UnitsInRange(order.TargetLocation)) { - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); // Condition token is ignored because we never revoke this condition. if (um != null) @@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Traits if (!a.Owner.IsAlliedWith(Self.Owner)) return false; - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); return um != null && um.AcceptsExternalCondition(a, info.Condition); }); } diff --git a/OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs b/OpenRA.Mods.Common/Traits/Upgrades/ConditionManager.cs similarity index 98% rename from OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs rename to OpenRA.Mods.Common/Traits/Upgrades/ConditionManager.cs index 4c49bbbfc8..d219297ee8 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/ConditionManager.cs @@ -25,9 +25,9 @@ namespace OpenRA.Mods.Common.Traits } [Desc("Attach this to a unit to enable dynamic upgrades by warheads, experience, crates, support powers, etc.")] - public class UpgradeManagerInfo : TraitInfo, Requires { } + public class ConditionManagerInfo : TraitInfo, Requires { } - public class UpgradeManager : INotifyCreated, ITick + public class ConditionManager : INotifyCreated, ITick { /// Value used to represent an invalid token. public static readonly int InvalidConditionToken = -1; diff --git a/OpenRA.Mods.Common/Traits/Upgrades/GrantCondition.cs b/OpenRA.Mods.Common/Traits/Upgrades/GrantCondition.cs index e212c1691b..708aabfba2 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/GrantCondition.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/GrantCondition.cs @@ -26,28 +26,28 @@ namespace OpenRA.Mods.Common.Traits class GrantCondition : UpgradableTrait { - UpgradeManager manager; - int conditionToken = UpgradeManager.InvalidConditionToken; + ConditionManager manager; + int conditionToken = ConditionManager.InvalidConditionToken; public GrantCondition(GrantConditionInfo info) : base(info) { } protected override void Created(Actor self) { - manager = self.Trait(); + manager = self.Trait(); base.Created(self); } protected override void TraitEnabled(Actor self) { - if (conditionToken == UpgradeManager.InvalidConditionToken) + if (conditionToken == ConditionManager.InvalidConditionToken) conditionToken = manager.GrantCondition(self, Info.Condition); } protected override void TraitDisabled(Actor self) { - if (conditionToken == UpgradeManager.InvalidConditionToken) + if (conditionToken == ConditionManager.InvalidConditionToken) return; conditionToken = manager.RevokeCondition(self, conditionToken); diff --git a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDamageState.cs b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDamageState.cs index b4e568d794..6f3c672af4 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDamageState.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDamageState.cs @@ -41,8 +41,8 @@ namespace OpenRA.Mods.Common.Traits readonly GrantConditionOnDamageStateInfo info; readonly Health health; - UpgradeManager manager; - int conditionToken = UpgradeManager.InvalidConditionToken; + ConditionManager manager; + int conditionToken = ConditionManager.InvalidConditionToken; public GrantConditionOnDamageState(Actor self, GrantConditionOnDamageStateInfo info) { @@ -52,13 +52,13 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - manager = self.TraitOrDefault(); + manager = self.TraitOrDefault(); GrantUpgradeOnValidDamageState(self, health.DamageState); } void GrantUpgradeOnValidDamageState(Actor self, DamageState state) { - if (!info.ValidDamageStates.HasFlag(state) || conditionToken != UpgradeManager.InvalidConditionToken) + if (!info.ValidDamageStates.HasFlag(state) || conditionToken != ConditionManager.InvalidConditionToken) return; conditionToken = manager.GrantCondition(self, info.Condition); @@ -69,7 +69,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e) { - var granted = conditionToken != UpgradeManager.InvalidConditionToken; + var granted = conditionToken != ConditionManager.InvalidConditionToken; if ((granted && info.GrantPermanently) || manager == null) return; diff --git a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDeploy.cs b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDeploy.cs index a84c44a33a..54230f79e3 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDeploy.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnDeploy.cs @@ -72,9 +72,9 @@ namespace OpenRA.Mods.Common.Traits readonly Lazy body; DeployState deployState; - UpgradeManager manager; - int deployedToken = UpgradeManager.InvalidConditionToken; - int undeployedToken = UpgradeManager.InvalidConditionToken; + ConditionManager manager; + int deployedToken = ConditionManager.InvalidConditionToken; + int undeployedToken = ConditionManager.InvalidConditionToken; public GrantConditionOnDeploy(ActorInitializer init, GrantConditionOnDeployInfo info) { @@ -89,7 +89,7 @@ namespace OpenRA.Mods.Common.Traits public void Created(Actor self) { - manager = self.TraitOrDefault(); + manager = self.TraitOrDefault(); switch (deployState) { @@ -243,7 +243,7 @@ namespace OpenRA.Mods.Common.Traits void OnDeployStarted() { - if (undeployedToken != UpgradeManager.InvalidConditionToken) + if (undeployedToken != ConditionManager.InvalidConditionToken) undeployedToken = manager.RevokeCondition(self, undeployedToken); deployState = DeployState.Deploying; @@ -251,7 +251,7 @@ namespace OpenRA.Mods.Common.Traits void OnDeployCompleted() { - if (manager != null && !string.IsNullOrEmpty(info.DeployedCondition) && deployedToken == UpgradeManager.InvalidConditionToken) + if (manager != null && !string.IsNullOrEmpty(info.DeployedCondition) && deployedToken == ConditionManager.InvalidConditionToken) deployedToken = manager.GrantCondition(self, info.DeployedCondition); deployState = DeployState.Deployed; @@ -259,7 +259,7 @@ namespace OpenRA.Mods.Common.Traits void OnUndeployStarted() { - if (deployedToken != UpgradeManager.InvalidConditionToken) + if (deployedToken != ConditionManager.InvalidConditionToken) deployedToken = manager.RevokeCondition(self, deployedToken); deployState = DeployState.Deploying; @@ -267,7 +267,7 @@ namespace OpenRA.Mods.Common.Traits void OnUndeployCompleted() { - if (manager != null && !string.IsNullOrEmpty(info.UndeployedCondition) && undeployedToken == UpgradeManager.InvalidConditionToken) + if (manager != null && !string.IsNullOrEmpty(info.UndeployedCondition) && undeployedToken == ConditionManager.InvalidConditionToken) undeployedToken = manager.GrantCondition(self, info.UndeployedCondition); deployState = DeployState.Undeployed; diff --git a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnMovement.cs b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnMovement.cs index 17b12fd025..2265952abe 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnMovement.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnMovement.cs @@ -31,8 +31,8 @@ namespace OpenRA.Mods.Common.Traits { readonly IMove movement; - UpgradeManager manager; - int conditionToken = UpgradeManager.InvalidConditionToken; + ConditionManager manager; + int conditionToken = ConditionManager.InvalidConditionToken; public GrantConditionOnMovement(Actor self, GrantConditionOnMovementInfo info) : base(info) @@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.Traits protected override void Created(Actor self) { - manager = self.TraitOrDefault(); + manager = self.TraitOrDefault(); base.Created(self); } @@ -53,9 +53,9 @@ namespace OpenRA.Mods.Common.Traits var isMovingVertically = Info.ConsiderVerticalMovement ? movement.IsMovingVertically : false; var isMoving = !IsTraitDisabled && !self.IsDead && (movement.IsMoving || isMovingVertically); - if (isMoving && conditionToken == UpgradeManager.InvalidConditionToken) + if (isMoving && conditionToken == ConditionManager.InvalidConditionToken) conditionToken = manager.GrantCondition(self, Info.Condition); - else if (!isMoving && conditionToken != UpgradeManager.InvalidConditionToken) + else if (!isMoving && conditionToken != ConditionManager.InvalidConditionToken) conditionToken = manager.RevokeCondition(self, conditionToken); } } diff --git a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnTerrain.cs b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnTerrain.cs index 58f7a85404..97f53640be 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnTerrain.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/GrantConditionOnTerrain.cs @@ -32,8 +32,8 @@ namespace OpenRA.Mods.Common.Traits { readonly GrantConditionOnTerrainInfo info; - UpgradeManager manager; - int conditionToken = UpgradeManager.InvalidConditionToken; + ConditionManager manager; + int conditionToken = ConditionManager.InvalidConditionToken; string previousTerrain; public GrantConditionOnTerrain(ActorInitializer init, GrantConditionOnTerrainInfo info) @@ -43,7 +43,7 @@ namespace OpenRA.Mods.Common.Traits void INotifyCreated.Created(Actor self) { - manager = self.TraitOrDefault(); + manager = self.TraitOrDefault(); } public void Tick(Actor self) @@ -55,9 +55,9 @@ namespace OpenRA.Mods.Common.Traits var wantsGranted = info.TerrainTypes.Contains(currentTerrain); if (currentTerrain != previousTerrain) { - if (wantsGranted && conditionToken == UpgradeManager.InvalidConditionToken) + if (wantsGranted && conditionToken == ConditionManager.InvalidConditionToken) conditionToken = manager.GrantCondition(self, info.Condition); - else if (!wantsGranted && conditionToken != UpgradeManager.InvalidConditionToken) + else if (!wantsGranted && conditionToken != ConditionManager.InvalidConditionToken) conditionToken = manager.RevokeCondition(self, conditionToken); } diff --git a/OpenRA.Mods.Common/Traits/Upgrades/ProximityExternalCondition.cs b/OpenRA.Mods.Common/Traits/Upgrades/ProximityExternalCondition.cs index 4cfba835c3..2d7d879191 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/ProximityExternalCondition.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/ProximityExternalCondition.cs @@ -108,7 +108,7 @@ namespace OpenRA.Mods.Common.Traits if (!info.ValidStances.HasStance(stance)) return; - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); if (um != null && !tokens.ContainsKey(a) && um.AcceptsExternalCondition(a, info.Condition)) tokens[a] = um.GrantCondition(a, info.Condition, true); } @@ -130,7 +130,7 @@ namespace OpenRA.Mods.Common.Traits if (!info.ValidStances.HasStance(stance)) return; - var um = produced.TraitOrDefault(); + var um = produced.TraitOrDefault(); if (um != null && um.AcceptsExternalCondition(produced, info.Condition)) tokens[produced] = um.GrantCondition(produced, info.Condition, true); } @@ -146,7 +146,7 @@ namespace OpenRA.Mods.Common.Traits return; tokens.Remove(a); - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); if (um != null) um.RevokeCondition(a, token); } diff --git a/OpenRA.Mods.Common/Traits/Upgrades/UpgradableTrait.cs b/OpenRA.Mods.Common/Traits/Upgrades/UpgradableTrait.cs index b4ca31189b..fb4247c00c 100644 --- a/OpenRA.Mods.Common/Traits/Upgrades/UpgradableTrait.cs +++ b/OpenRA.Mods.Common/Traits/Upgrades/UpgradableTrait.cs @@ -64,7 +64,7 @@ namespace OpenRA.Mods.Common.Traits { Info = info; - // Conditional traits will be enabled (if appropriate) by the UpgradeManager + // Conditional traits will be enabled (if appropriate) by the ConditionManager // calling IConditionConsumer.ConditionsChanged at the end of INotifyCreated. IsTraitDisabled = Info.RequiresCondition != null; } diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index bef16aec33..f43ce3a431 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -695,6 +695,15 @@ namespace OpenRA.Mods.Common.UtilityCommands RenameNodeKey(node, "DisableOnCondition"); } + if (engineVersion < 20161223) + { + if (node.Key.StartsWith("UpgradeManager", StringComparison.Ordinal)) + RenameNodeKey(node, "ConditionManager"); + + if (node.Key.StartsWith("-UpgradeManager", StringComparison.Ordinal)) + RenameNodeKey(node, "-ConditionManager"); + } + UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1); } diff --git a/OpenRA.Mods.Common/Warheads/GrantExternalConditionWarhead.cs b/OpenRA.Mods.Common/Warheads/GrantExternalConditionWarhead.cs index 73173a4f6e..147ca4c860 100644 --- a/OpenRA.Mods.Common/Warheads/GrantExternalConditionWarhead.cs +++ b/OpenRA.Mods.Common/Warheads/GrantExternalConditionWarhead.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.Warheads if (!IsValidAgainst(a, firedBy)) continue; - var um = a.TraitOrDefault(); + var um = a.TraitOrDefault(); // Condition token is ignored because we never revoke this condition. if (um != null && um.AcceptsExternalCondition(a, Condition)) diff --git a/OpenRA.Mods.D2k/Activities/SwallowActor.cs b/OpenRA.Mods.D2k/Activities/SwallowActor.cs index 39a1cd36e0..6c7ac23bab 100644 --- a/OpenRA.Mods.D2k/Activities/SwallowActor.cs +++ b/OpenRA.Mods.D2k/Activities/SwallowActor.cs @@ -28,7 +28,7 @@ namespace OpenRA.Mods.D2k.Activities readonly Target target; readonly Sandworm sandworm; - readonly UpgradeManager manager; + readonly ConditionManager manager; readonly WeaponInfo weapon; readonly RadarPings radarPings; readonly AttackSwallow swallow; @@ -37,7 +37,7 @@ namespace OpenRA.Mods.D2k.Activities int countdown; CPos burrowLocation; AttackState stance; - int attackingToken = UpgradeManager.InvalidConditionToken; + int attackingToken = ConditionManager.InvalidConditionToken; public SwallowActor(Actor self, Target target, WeaponInfo weapon) { @@ -46,7 +46,7 @@ namespace OpenRA.Mods.D2k.Activities sandworm = self.Trait(); positionable = self.Trait(); swallow = self.Trait(); - manager = self.TraitOrDefault(); + manager = self.TraitOrDefault(); radarPings = self.World.WorldActor.TraitOrDefault(); } @@ -109,7 +109,7 @@ namespace OpenRA.Mods.D2k.Activities stance = AttackState.Burrowed; countdown = swallow.Info.AttackDelay; burrowLocation = self.Location; - if (manager != null && attackingToken == UpgradeManager.InvalidConditionToken && + if (manager != null && attackingToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(swallow.Info.AttackingCondition)) attackingToken = manager.GrantCondition(self, swallow.Info.AttackingCondition); break; @@ -170,7 +170,7 @@ namespace OpenRA.Mods.D2k.Activities void RevokeCondition(Actor self) { - if (attackingToken != UpgradeManager.InvalidConditionToken) + if (attackingToken != ConditionManager.InvalidConditionToken) attackingToken = manager.RevokeCondition(self, attackingToken); } } diff --git a/OpenRA.Mods.RA/Traits/Disguise.cs b/OpenRA.Mods.RA/Traits/Disguise.cs index 9f3980e9ae..f3e6b64118 100644 --- a/OpenRA.Mods.RA/Traits/Disguise.cs +++ b/OpenRA.Mods.RA/Traits/Disguise.cs @@ -83,8 +83,8 @@ namespace OpenRA.Mods.RA.Traits readonly Actor self; readonly DisguiseInfo info; - UpgradeManager um; - int disguisedToken = UpgradeManager.InvalidConditionToken; + ConditionManager um; + int disguisedToken = ConditionManager.InvalidConditionToken; public Disguise(Actor self, DisguiseInfo info) { @@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Traits void INotifyCreated.Created(Actor self) { - um = self.TraitOrDefault(); + um = self.TraitOrDefault(); } public IEnumerable Orders @@ -189,9 +189,9 @@ namespace OpenRA.Mods.RA.Traits if (Disguised != oldDisguiseSetting && um != null) { - if (Disguised && disguisedToken == UpgradeManager.InvalidConditionToken && !string.IsNullOrEmpty(info.DisguisedCondition)) + if (Disguised && disguisedToken == ConditionManager.InvalidConditionToken && !string.IsNullOrEmpty(info.DisguisedCondition)) disguisedToken = um.GrantCondition(self, info.DisguisedCondition); - else if (!Disguised && disguisedToken != UpgradeManager.InvalidConditionToken) + else if (!Disguised && disguisedToken != ConditionManager.InvalidConditionToken) disguisedToken = um.RevokeCondition(self, disguisedToken); } } diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index c0be31ff26..4b0a9bc032 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -5,7 +5,7 @@ GivesExperience: PlayerExperienceModifier: 1 ScriptTriggers: - UpgradeManager: + ConditionManager: RenderDebugState: ^SpriteActor: @@ -605,7 +605,7 @@ ^CivBuilding: Inherits: ^Building - -UpgradeManager: + -ConditionManager: Health: HP: 400 Tooltip: diff --git a/mods/d2k/rules/arrakis.yaml b/mods/d2k/rules/arrakis.yaml index 680f14e3cd..f5873ab319 100644 --- a/mods/d2k/rules/arrakis.yaml +++ b/mods/d2k/rules/arrakis.yaml @@ -106,7 +106,7 @@ sandworm: TerrainTypes: Sand, Dune, SpiceSand, Spice MovingInterval: 3 RequiresCondition: !attacking - UpgradeManager: + ConditionManager: Buildable: Description: Attracted by vibrations in the sand.\nWill eat units whole and has a large appetite. diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index 82510b2530..4cf7587ef7 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -5,7 +5,7 @@ GivesExperience: PlayerExperienceModifier: 1 ScriptTriggers: - UpgradeManager: + ConditionManager: RenderDebugState: ^SpriteActor: diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 15d749bee7..849772126a 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -4,7 +4,7 @@ GivesExperience: PlayerExperienceModifier: 1 ScriptTriggers: - UpgradeManager: + ConditionManager: RenderDebugState: ^SpriteActor: @@ -894,7 +894,7 @@ ShadowImage: parach-shadow ShadowSequence: idle RequiresCondition: parachute - UpgradeManager: + ConditionManager: ^Mine: Inherits: ^SpriteActor diff --git a/mods/ts/rules/defaults.yaml b/mods/ts/rules/defaults.yaml index 0f7f9aace2..a9a79c56c4 100644 --- a/mods/ts/rules/defaults.yaml +++ b/mods/ts/rules/defaults.yaml @@ -5,7 +5,7 @@ GivesExperience: PlayerExperienceModifier: 1 ScriptTriggers: - UpgradeManager: + ConditionManager: RenderDebugState: ^SpriteActor: @@ -246,7 +246,7 @@ SellSounds: cashturn.aud Demolishable: ScriptTriggers: - UpgradeManager: + ConditionManager: Health: Shape: Rectangle RotateToIsometry: true