Improve customisation of support power targeting.
This commit is contained in:
@@ -46,10 +46,10 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IOrderGenerator OrderGenerator(string order, SupportPowerManager manager)
|
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
||||||
return new SelectTarget(Self.World, order, manager, this);
|
self.World.OrderGenerator = new SelectUpgradeTarget(Self.World, order, manager, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Activate(Actor self, Order order, SupportPowerManager manager)
|
public override void Activate(Actor self, Order order, SupportPowerManager manager)
|
||||||
@@ -101,7 +101,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
class SelectTarget : IOrderGenerator
|
class SelectUpgradeTarget : IOrderGenerator
|
||||||
{
|
{
|
||||||
readonly GrantUpgradePower power;
|
readonly GrantUpgradePower power;
|
||||||
readonly int range;
|
readonly int range;
|
||||||
@@ -109,7 +109,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
readonly SupportPowerManager manager;
|
readonly SupportPowerManager manager;
|
||||||
readonly string order;
|
readonly string order;
|
||||||
|
|
||||||
public SelectTarget(World world, string order, SupportPowerManager manager, GrantUpgradePower power)
|
public SelectUpgradeTarget(World world, string order, SupportPowerManager manager, GrantUpgradePower power)
|
||||||
{
|
{
|
||||||
// Clear selection if using Left-Click Orders
|
// Clear selection if using Left-Click Orders
|
||||||
if (Game.Settings.Game.UseClassicMouseStyle)
|
if (Game.Settings.Game.UseClassicMouseStyle)
|
||||||
|
|||||||
@@ -81,6 +81,12 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
Game.Sound.PlayToPlayer(self.Owner, Info.EndChargeSound);
|
Game.Sound.PlayToPlayer(self.Owner, Info.EndChargeSound);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
|
{
|
||||||
|
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
||||||
|
self.World.OrderGenerator = new SelectGenericPowerTarget(order, manager, info.Cursor, MouseButton.Left);
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void Activate(Actor self, Order order, SupportPowerManager manager)
|
public virtual void Activate(Actor self, Order order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
if (Info.DisplayRadarPing && manager.RadarPings != null)
|
if (Info.DisplayRadarPing && manager.RadarPings != null)
|
||||||
@@ -92,11 +98,5 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
Info.RadarPingDuration);
|
Info.RadarPingDuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual IOrderGenerator OrderGenerator(string order, SupportPowerManager manager)
|
|
||||||
{
|
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
|
||||||
return new SelectGenericPowerTarget(order, manager, info.Cursor, MouseButton.Left);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -222,7 +222,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
if (!Ready)
|
if (!Ready)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
manager.Self.World.OrderGenerator = Instances.First().OrderGenerator(key, manager);
|
var power = Instances.FirstOrDefault();
|
||||||
|
if (power == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
power.SelectTarget(power.Self, key, manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Activate(Order order)
|
public void Activate(Order order)
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
{
|
{
|
||||||
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
|
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
|
||||||
|
|
||||||
public override IOrderGenerator OrderGenerator(string order, SupportPowerManager manager)
|
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
||||||
return new SelectTarget(Self.World, order, manager, this);
|
self.World.OrderGenerator = new SelectChronoshiftTarget(Self.World, order, manager, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Activate(Actor self, Order order, SupportPowerManager manager)
|
public override void Activate(Actor self, Order order, SupportPowerManager manager)
|
||||||
@@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
class SelectTarget : IOrderGenerator
|
class SelectChronoshiftTarget : IOrderGenerator
|
||||||
{
|
{
|
||||||
readonly ChronoshiftPower power;
|
readonly ChronoshiftPower power;
|
||||||
readonly int range;
|
readonly int range;
|
||||||
@@ -102,7 +102,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
readonly SupportPowerManager manager;
|
readonly SupportPowerManager manager;
|
||||||
readonly string order;
|
readonly string order;
|
||||||
|
|
||||||
public SelectTarget(World world, string order, SupportPowerManager manager, ChronoshiftPower power)
|
public SelectChronoshiftTarget(World world, string order, SupportPowerManager manager, ChronoshiftPower power)
|
||||||
{
|
{
|
||||||
// Clear selection if using Left-Click Orders
|
// Clear selection if using Left-Click Orders
|
||||||
if (Game.Settings.Game.UseClassicMouseStyle)
|
if (Game.Settings.Game.UseClassicMouseStyle)
|
||||||
|
|||||||
Reference in New Issue
Block a user