fix exploitable support powers
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user