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 bool IsUsed;
public bool IsAvailable;
public bool IsReady { get { return RemainingTime == 0; } }
public bool IsReady { get { return IsAvailable && RemainingTime == 0; } }
public readonly Player Owner;
bool notifiedCharging;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -35,16 +35,12 @@ namespace OpenRA.Mods.RA.SupportPowers
class ChronoshiftPower : SupportPower, IResolveOrder
{
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
protected override void OnBeginCharging() { Sound.PlayToPlayer(Owner, "chrochr1.aud"); }
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "chrordy1.aud"); }
protected override void OnActivate()
{
Game.controller.orderGenerator = new SelectTarget();
Sound.Play("slcttgt1.aud");
}
protected override void OnActivate() { Game.controller.orderGenerator = new SelectTarget(); }
public void ResolveOrder(Actor self, Order order)
{
if (!IsAvailable) return;
if (order.OrderString == "ChronosphereSelect" && self.Owner == self.World.LocalPlayer)
{
Game.controller.orderGenerator = new SelectDestination(order.TargetActor);
@@ -67,7 +63,7 @@ namespace OpenRA.Mods.RA.SupportPowers
var chronosphere = self.World.Queries
.OwnedBy[self.Owner]
.WithTrait<Chronosphere>()
.Select(x=>x.Actor).FirstOrDefault();
.Select(x => x.Actor).FirstOrDefault();
bool success = order.TargetActor.traits.Get<Chronoshiftable>().Activate(order.TargetActor,
order.TargetLocation,

View File

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

View File

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