Make IPowerModifier require explicit implementation

Plus some 'collateral' explicit implementations on the affected traits.
This commit is contained in:
reaperrr
2016-10-22 22:13:08 +02:00
parent 2d0560dcb7
commit ad6ea52bff
5 changed files with 15 additions and 10 deletions

View File

@@ -26,9 +26,11 @@ namespace OpenRA.Mods.Common.Traits
public PowerMultiplier(Actor self, PowerMultiplierInfo info) public PowerMultiplier(Actor self, PowerMultiplierInfo info)
: base(info, "PowerMultiplier", self.Info.Name) { power = self.Owner.PlayerActor.Trait<PowerManager>(); } : base(info, "PowerMultiplier", self.Info.Name) { power = self.Owner.PlayerActor.Trait<PowerManager>(); }
public int GetPowerModifier() { return GetModifier(); } int IPowerModifier.GetPowerModifier() { return GetModifier(); }
protected override void Update(Actor self) { power.UpdateActor(self); } protected override void Update(Actor self) { power.UpdateActor(self); }
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{ {
power = newOwner.PlayerActor.Trait<PowerManager>(); power = newOwner.PlayerActor.Trait<PowerManager>();
} }

View File

@@ -44,7 +44,7 @@ namespace OpenRA.Mods.Common.Traits
bool ISelectionBar.DisplayWhenEmpty { get { return false; } } bool ISelectionBar.DisplayWhenEmpty { get { return false; } }
public int GetPowerModifier() int IPowerModifier.GetPowerModifier()
{ {
return playerPower.PowerOutageRemainingTicks > 0 ? 0 : 100; return playerPower.PowerOutageRemainingTicks > 0 ? 0 : 100;
} }
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.Common.Traits
get { return playerPower.PowerOutageRemainingTicks > 0; } get { return playerPower.PowerOutageRemainingTicks > 0; }
} }
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner) void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{ {
playerPower = newOwner.PlayerActor.Trait<PowerManager>(); playerPower = newOwner.PlayerActor.Trait<PowerManager>();
} }

View File

@@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits
public bool Disabled { get { return disabled; } } public bool Disabled { get { return disabled; } }
public void ResolveOrder(Actor self, Order order) void IResolveOrder.ResolveOrder(Actor self, Order order)
{ {
if (!IsTraitDisabled && order.OrderString == "PowerDown") if (!IsTraitDisabled && order.OrderString == "PowerDown")
{ {
@@ -72,12 +72,12 @@ namespace OpenRA.Mods.Common.Traits
} }
} }
public int GetPowerModifier() int IPowerModifier.GetPowerModifier()
{ {
return !IsTraitDisabled && disabled ? 0 : 100; return !IsTraitDisabled && disabled ? 0 : 100;
} }
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner) void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{ {
power = newOwner.PlayerActor.Trait<PowerManager>(); power = newOwner.PlayerActor.Trait<PowerManager>();
} }
@@ -86,6 +86,7 @@ namespace OpenRA.Mods.Common.Traits
{ {
if (!disabled || !Info.CancelWhenDisabled) if (!disabled || !Info.CancelWhenDisabled)
return; return;
disabled = false; disabled = false;
if (Info.PowerupSound != null) if (Info.PowerupSound != null)

View File

@@ -30,13 +30,14 @@ namespace OpenRA.Mods.Common.Traits
health = self.Trait<Health>(); health = self.Trait<Health>();
} }
public int GetPowerModifier() int IPowerModifier.GetPowerModifier()
{ {
return 100 * health.HP / health.MaxHP; return 100 * health.HP / health.MaxHP;
} }
public void Damaged(Actor self, AttackInfo e) { power.UpdateActor(self); } void INotifyDamage.Damaged(Actor self, AttackInfo e) { power.UpdateActor(self); }
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{ {
power = newOwner.PlayerActor.Trait<PowerManager>(); power = newOwner.PlayerActor.Trait<PowerManager>();
} }

View File

@@ -223,5 +223,6 @@ namespace OpenRA.Mods.Common.Traits
[RequireExplicitImplementation] [RequireExplicitImplementation]
public interface IRangeModifierInfo : ITraitInfoInterface { int GetRangeModifierDefault(); } public interface IRangeModifierInfo : ITraitInfoInterface { int GetRangeModifierDefault(); }
[RequireExplicitImplementation]
public interface IPowerModifier { int GetPowerModifier(); } public interface IPowerModifier { int GetPowerModifier(); }
} }