fix exploitable support powers

This commit is contained in:
Chris Forbes
2010-05-13 19:57:13 +12:00
parent e05defed67
commit 753f3660aa
9 changed files with 20 additions and 9 deletions

View File

@@ -50,7 +50,7 @@ namespace OpenRA.Traits
public int TotalTime { get { return (int)(Info.ChargeTime * 60 * 25); } } public int TotalTime { get { return (int)(Info.ChargeTime * 60 * 25); } }
public bool IsUsed; public bool IsUsed;
public bool IsAvailable; public bool IsAvailable;
public bool IsReady { get { return RemainingTime == 0; } } public bool IsReady { get { return IsAvailable && RemainingTime == 0; } }
public readonly Player Owner; public readonly Player Owner;
bool notifiedCharging; bool notifiedCharging;

View File

@@ -42,6 +42,8 @@ namespace OpenRA.Mods.RA
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "Airstrike") if (order.OrderString == "Airstrike")
{ {
var startPos = Owner.World.ChooseRandomEdgeCell(); var startPos = Owner.World.ChooseRandomEdgeCell();

View File

@@ -44,6 +44,8 @@ namespace OpenRA.Mods.RA
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "IronCurtain") if (order.OrderString == "IronCurtain")
{ {
if (self.Owner == self.World.LocalPlayer) if (self.Owner == self.World.LocalPlayer)

View File

@@ -45,6 +45,8 @@ namespace OpenRA.Mods.RA
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "ParatroopersActivate") if (order.OrderString == "ParatroopersActivate")
{ {
if (self.Owner == self.World.LocalPlayer) if (self.Owner == self.World.LocalPlayer)

View File

@@ -41,6 +41,8 @@ namespace OpenRA.Mods.RA
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "SonarPulse") if (order.OrderString == "SonarPulse")
{ {
// TODO: Reveal submarines // TODO: Reveal submarines

View File

@@ -44,6 +44,8 @@ namespace OpenRA.Mods.RA
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "SpyPlane") if (order.OrderString == "SpyPlane")
{ {
FinishActivate(); FinishActivate();

View File

@@ -35,16 +35,12 @@ namespace OpenRA.Mods.RA.SupportPowers
class ChronoshiftPower : SupportPower, IResolveOrder class ChronoshiftPower : SupportPower, IResolveOrder
{ {
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { } public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
protected override void OnBeginCharging() { Sound.PlayToPlayer(Owner, "chrochr1.aud"); } protected override void OnActivate() { Game.controller.orderGenerator = new SelectTarget(); }
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "chrordy1.aud"); }
protected override void OnActivate()
{
Game.controller.orderGenerator = new SelectTarget();
Sound.Play("slcttgt1.aud");
}
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "ChronosphereSelect" && self.Owner == self.World.LocalPlayer) if (order.OrderString == "ChronosphereSelect" && self.Owner == self.World.LocalPlayer)
{ {
Game.controller.orderGenerator = new SelectDestination(order.TargetActor); Game.controller.orderGenerator = new SelectDestination(order.TargetActor);

View File

@@ -43,6 +43,8 @@ namespace OpenRA.Mods.RA.SupportPowers
public void ResolveOrder(Actor self, Order order) public void ResolveOrder(Actor self, Order order)
{ {
if (!IsAvailable) return;
if (order.OrderString == "NuclearMissile") if (order.OrderString == "NuclearMissile")
{ {
var silo = self.World.Queries.OwnedBy[self.Owner] var silo = self.World.Queries.OwnedBy[self.Owner]

View File

@@ -22,6 +22,9 @@ Player:
TechLevel: 12 TechLevel: 12
Duration: 3 Duration: 3
KillCargo: yes KillCargo: yes
SelectTargetSound: slcttgt1.aud
BeginChargeSound: chrochr1.aud
EndChargeSound: chrordy1.aud
IronCurtainPower: IronCurtainPower:
Image: infxicon Image: infxicon
ChargeTime: 11 ChargeTime: 11