diff --git a/OpenRA.Mods.Common/Traits/Multipliers/DamageMultiplier.cs b/OpenRA.Mods.Common/Traits/Multipliers/DamageMultiplier.cs index 57050bc3e0..17ec29be1d 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/DamageMultiplier.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/DamageMultiplier.cs @@ -16,9 +16,9 @@ namespace OpenRA.Mods.Common.Traits [Desc("Damage taken by this actor is multiplied based on upgrade level.", "Decrease to increase actor's apparent strength.", "Use 0 to make actor invulnerable.")] - public class DamageMultiplierInfo : UpgradeMultiplierTraitInfo, ITraitInfo + public class DamageMultiplierInfo : UpgradeMultiplierTraitInfo { - public object Create(ActorInitializer init) { return new DamageMultiplier(this, init.Self.Info.Name); } + public override object Create(ActorInitializer init) { return new DamageMultiplier(this, init.Self.Info.Name); } } public class DamageMultiplier : UpgradeMultiplierTrait, IDamageModifier diff --git a/OpenRA.Mods.Common/Traits/Multipliers/FirepowerMultiplier.cs b/OpenRA.Mods.Common/Traits/Multipliers/FirepowerMultiplier.cs index 34de5380ac..7b6cd97569 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/FirepowerMultiplier.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/FirepowerMultiplier.cs @@ -13,9 +13,9 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("The firepower of this actor is multiplied based on upgrade level if specified.")] - public class FirepowerMultiplierInfo : UpgradeMultiplierTraitInfo, ITraitInfo + public class FirepowerMultiplierInfo : UpgradeMultiplierTraitInfo { - public object Create(ActorInitializer init) { return new FirepowerMultiplier(this, init.Self.Info.Name); } + public override object Create(ActorInitializer init) { return new FirepowerMultiplier(this, init.Self.Info.Name); } } public class FirepowerMultiplier : UpgradeMultiplierTrait, IFirepowerModifier diff --git a/OpenRA.Mods.Common/Traits/Multipliers/InaccuracyMultiplier.cs b/OpenRA.Mods.Common/Traits/Multipliers/InaccuracyMultiplier.cs index 382142ef06..a879877727 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/InaccuracyMultiplier.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/InaccuracyMultiplier.cs @@ -13,9 +13,9 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("The inaccuracy of this actor is multipled based on upgrade level if specified.")] - public class InaccuracyMultiplierInfo : UpgradeMultiplierTraitInfo, ITraitInfo + public class InaccuracyMultiplierInfo : UpgradeMultiplierTraitInfo { - public object Create(ActorInitializer init) { return new InaccuracyMultiplier(this, init.Self.Info.Name); } + public override object Create(ActorInitializer init) { return new InaccuracyMultiplier(this, init.Self.Info.Name); } } public class InaccuracyMultiplier : UpgradeMultiplierTrait, IInaccuracyModifier diff --git a/OpenRA.Mods.Common/Traits/Multipliers/PowerMultiplier.cs b/OpenRA.Mods.Common/Traits/Multipliers/PowerMultiplier.cs index 2b3a5c8f75..b4312ef2ac 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/PowerMultiplier.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/PowerMultiplier.cs @@ -14,9 +14,9 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common { [Desc("The power usage/output of this actor is multiplied based on upgrade level if specified.")] - public class PowerMultiplierInfo : UpgradeMultiplierTraitInfo, ITraitInfo + public class PowerMultiplierInfo : UpgradeMultiplierTraitInfo { - public object Create(ActorInitializer init) { return new PowerMultiplier(init.Self, this); } + public override object Create(ActorInitializer init) { return new PowerMultiplier(init.Self, this); } } public class PowerMultiplier : UpgradeMultiplierTrait, IPowerModifier, INotifyOwnerChanged diff --git a/OpenRA.Mods.Common/Traits/Multipliers/ReloadDelayMultiplier.cs b/OpenRA.Mods.Common/Traits/Multipliers/ReloadDelayMultiplier.cs index f1fddd1c22..d8edcea81e 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/ReloadDelayMultiplier.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/ReloadDelayMultiplier.cs @@ -13,9 +13,9 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("The reloading time of this actor is multiplied based on upgrade level if specified.")] - public class ReloadDelayMultiplierInfo : UpgradeMultiplierTraitInfo, ITraitInfo + public class ReloadDelayMultiplierInfo : UpgradeMultiplierTraitInfo { - public object Create(ActorInitializer init) { return new ReloadDelayMultiplier(this, init.Self.Info.Name); } + public override object Create(ActorInitializer init) { return new ReloadDelayMultiplier(this, init.Self.Info.Name); } } public class ReloadDelayMultiplier : UpgradeMultiplierTrait, IReloadModifier diff --git a/OpenRA.Mods.Common/Traits/Multipliers/SpeedMultiplier.cs b/OpenRA.Mods.Common/Traits/Multipliers/SpeedMultiplier.cs index dfab9a0b68..9705406c55 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/SpeedMultiplier.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/SpeedMultiplier.cs @@ -13,9 +13,9 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { [Desc("The speed of this actor is multiplied based on upgrade level if specified.")] - public class SpeedMultiplierInfo : UpgradeMultiplierTraitInfo, ITraitInfo + public class SpeedMultiplierInfo : UpgradeMultiplierTraitInfo { - public object Create(ActorInitializer init) { return new SpeedMultiplier(this, init.Self.Info.Name); } + public override object Create(ActorInitializer init) { return new SpeedMultiplier(this, init.Self.Info.Name); } } public class SpeedMultiplier : UpgradeMultiplierTrait, ISpeedModifier diff --git a/OpenRA.Mods.Common/Traits/Multipliers/UpgradableMultiplierTrait.cs b/OpenRA.Mods.Common/Traits/Multipliers/UpgradableMultiplierTrait.cs index e2bb8e47df..1789b85d66 100644 --- a/OpenRA.Mods.Common/Traits/Multipliers/UpgradableMultiplierTrait.cs +++ b/OpenRA.Mods.Common/Traits/Multipliers/UpgradableMultiplierTrait.cs @@ -15,7 +15,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.Common.Traits { - public abstract class UpgradeMultiplierTraitInfo + public abstract class UpgradeMultiplierTraitInfo : ITraitInfo { [UpgradeUsedReference] [Desc("Accepted upgrade types.")] @@ -29,6 +29,8 @@ namespace OpenRA.Mods.Common.Traits "Repeat last entry to accept time extensions.", "If no upgrade types are specified, then the first/only modifier is always applied.")] public readonly int[] Modifier = { }; + + public abstract object Create(ActorInitializer init); } public abstract class UpgradeMultiplierTrait : IUpgradable, IDisabledTrait, ISync