Kill Controller

This commit is contained in:
Paul Chote
2010-07-25 19:21:53 +12:00
parent e677be7908
commit 305fa03355
31 changed files with 208 additions and 234 deletions

View File

@@ -40,7 +40,7 @@ namespace OpenRA.Mods.RA.Activities
self.World.AddFrameEndTask(w =>
{
var selected = Game.controller.selection.Contains(self);
var selected = w.Selection.Contains(self);
self.World.Remove(self);
foreach (var s in sounds)
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Activities
a.Health = GetHealthToTransfer(self, a, transferPercentage);
if (selected)
Game.controller.selection.Add(w, a);
w.Selection.Add(w, a);
});
return this;
}

View File

@@ -20,7 +20,7 @@ namespace OpenRA.Mods.RA.Activities
void DoUndeploy(World w, Actor self)
{
var selected = Game.controller.selection.Contains(self);
var selected = w.Selection.Contains(self);
w.Remove(self);
var mcv = w.CreateActor("mcv", self.Location + new int2(1, 1), self.Owner);
@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA.Activities
mcv.traits.Get<Unit>().Facing = 96;
if (selected)
Game.controller.selection.Add(w, mcv);
w.Selection.Add(w, mcv);
}
public IActivity Tick(Actor self)

View File

@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA
if (order.OrderString == "ChronoshiftDeploy")
{
if (self.Owner == self.World.LocalPlayer)
Game.controller.orderGenerator = new SetChronoTankDestination(self);
self.World.OrderGenerator = new SetChronoTankDestination(self);
return;
}
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.RA
{
if (self.Owner == self.World.LocalPlayer)
{
Game.controller.CancelInputMode();
self.World.CancelInputMode();
self.World.AddFrameEndTask(w => w.Add(new MoveFlash(self.World, order.TargetLocation)));
}

View File

@@ -51,13 +51,13 @@ namespace OpenRA.Mods.RA
{
minefieldStart = order.TargetLocation;
if (self.Owner == self.World.LocalPlayer)
Game.controller.orderGenerator = new MinefieldOrderGenerator(self);
self.World.OrderGenerator = new MinefieldOrderGenerator(self);
}
if (order.OrderString == "PlaceMinefield")
{
if (self.Owner == self.World.LocalPlayer)
Game.controller.CancelInputMode();
self.World.CancelInputMode();
var movement = self.traits.Get<IMove>();
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.RA
{
if (mi.Button == MouseButton.Left)
{
Game.controller.CancelInputMode();
world.CancelInputMode();
yield break;
}
@@ -116,7 +116,7 @@ namespace OpenRA.Mods.RA
public void Tick(World world)
{
if (minelayer.IsDead || !minelayer.IsInWorld)
Game.controller.CancelInputMode();
world.CancelInputMode();
}
int2 lastMousePos;

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.RA.Orders
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)
{
if (mi.Button == MouseButton.Right)
Game.controller.CancelInputMode();
world.CancelInputMode();
return OrderInner(world, xy, mi);
}

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA.Orders
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)
{
if (mi.Button == MouseButton.Right)
Game.controller.CancelInputMode();
world.CancelInputMode();
return OrderInner(world, xy, mi);
}
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA.Orders
public void Tick( World world )
{
if( !PlayerIsAllowedToRepair( world ) )
Game.controller.CancelInputMode();
world.CancelInputMode();
}
public static bool PlayerIsAllowedToRepair( World world )

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA.Orders
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)
{
if (mi.Button == MouseButton.Right)
Game.controller.CancelInputMode();
world.CancelInputMode();
return OrderInner(world, xy, mi);
}

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA.Orders
{
if (mi.Button == MouseButton.Left)
{
Game.controller.CancelInputMode();
world.CancelInputMode();
yield break;
}

View File

@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA
protected override void OnActivate()
{
Game.controller.orderGenerator = new GenericSelectTarget(Owner.PlayerActor, Info.OrderName, "ability");
Game.world.OrderGenerator = new GenericSelectTarget(Owner.PlayerActor, Info.OrderName, "ability");
}
public void ResolveOrder(Actor self, Order order)
@@ -63,7 +63,7 @@ namespace OpenRA.Mods.RA
});
if (Owner == Owner.World.LocalPlayer)
Game.controller.CancelInputMode();
self.World.CancelInputMode();
FinishActivate();
}

View File

@@ -24,7 +24,7 @@ namespace OpenRA.Mods.RA
class ChronoshiftPower : SupportPower, IResolveOrder
{
public ChronoshiftPower(Actor self, ChronoshiftPowerInfo info) : base(self, info) { }
protected override void OnActivate() { Game.controller.orderGenerator = new SelectTarget(); }
protected override void OnActivate() { Game.world.OrderGenerator = new SelectTarget(); }
public void ResolveOrder(Actor self, Order order)
{
@@ -32,13 +32,13 @@ namespace OpenRA.Mods.RA
if (order.OrderString == "ChronosphereSelect" && self.Owner == self.World.LocalPlayer)
{
Game.controller.orderGenerator = new SelectDestination(order.TargetActor);
self.World.OrderGenerator = new SelectDestination(order.TargetActor);
}
if (order.OrderString == "ChronosphereActivate")
{
if (self.Owner == self.World.LocalPlayer)
Game.controller.CancelInputMode();
self.World.CancelInputMode();
// Ensure the target cell is valid for the unit
var movement = order.TargetActor.traits.GetOrDefault<IMove>();
@@ -61,7 +61,7 @@ namespace OpenRA.Mods.RA
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)
{
if (mi.Button == MouseButton.Right)
Game.controller.CancelInputMode();
world.CancelInputMode();
return OrderInner(world, xy, mi);
}
@@ -88,7 +88,7 @@ namespace OpenRA.Mods.RA
.Any();
if (!hasChronosphere)
Game.controller.CancelInputMode();
world.CancelInputMode();
// TODO: Check if the selected unit is still alive
}
@@ -113,7 +113,7 @@ namespace OpenRA.Mods.RA
{
if (mi.Button == MouseButton.Right)
{
Game.controller.CancelInputMode();
world.CancelInputMode();
yield break;
}
@@ -129,7 +129,7 @@ namespace OpenRA.Mods.RA
.Any();
if (!hasChronosphere)
Game.controller.CancelInputMode();
world.CancelInputMode();
// TODO: Check if the selected unit is still alive
}

View File

@@ -29,7 +29,7 @@ namespace OpenRA.Mods.RA
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "ironrdy1.aud"); }
protected override void OnActivate()
{
Game.controller.orderGenerator = new SelectTarget();
Game.world.OrderGenerator = new SelectTarget();
Sound.Play("slcttgt1.aud");
}
@@ -40,7 +40,7 @@ namespace OpenRA.Mods.RA
if (order.OrderString == "IronCurtain")
{
if (self.Owner == self.World.LocalPlayer)
Game.controller.CancelInputMode();
self.World.CancelInputMode();
var curtain = self.World.Queries.WithTrait<IronCurtain>()
.Where(a => a.Actor.Owner != null)
@@ -64,7 +64,7 @@ namespace OpenRA.Mods.RA
public IEnumerable<Order> Order(World world, int2 xy, MouseInput mi)
{
if (mi.Button == MouseButton.Right)
Game.controller.CancelInputMode();
world.CancelInputMode();
return OrderInner(world, xy, mi);
}
@@ -92,7 +92,7 @@ namespace OpenRA.Mods.RA
.Any();
if (!hasStructure)
Game.controller.CancelInputMode();
world.CancelInputMode();
}
public void RenderAfterWorld(World world) { }

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.RA
protected override void OnActivate()
{
Game.controller.orderGenerator =
Game.world.OrderGenerator =
new GenericSelectTargetWithBuilding<NukeSilo>(Owner.PlayerActor, "NuclearMissile", "nuke");
}
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.RA
silo.traits.Get<NukeSilo>().Attack(order.TargetLocation);
Game.controller.CancelInputMode();
self.World.CancelInputMode();
FinishActivate();
}
}

View File

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.RA
protected override void OnActivate()
{
Game.controller.orderGenerator =
Game.world.OrderGenerator =
new GenericSelectTarget( Owner.PlayerActor, "ParatroopersActivate", "ability" );
}
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA
if (order.OrderString == "ParatroopersActivate")
{
if (self.Owner == self.World.LocalPlayer)
Game.controller.CancelInputMode();
self.World.CancelInputMode();
DoParadrop(Owner, order.TargetLocation,
self.Info.Traits.Get<ParatroopersPowerInfo>().DropItems);

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA
protected override void OnFinishCharging() { Sound.PlayToPlayer(Owner, "spypln1.aud"); }
protected override void OnActivate()
{
Game.controller.orderGenerator = new GenericSelectTarget(Owner.PlayerActor, "SpyPlane", "ability");
Game.world.OrderGenerator = new GenericSelectTarget(Owner.PlayerActor, "SpyPlane", "ability");
Sound.Play("slcttgt1.aud");
}
@@ -41,7 +41,7 @@ namespace OpenRA.Mods.RA
FinishActivate();
if (order.Player == Owner.World.LocalPlayer)
Game.controller.CancelInputMode();
self.World.CancelInputMode();
var enterCell = self.World.ChooseRandomEdgeCell();

View File

@@ -26,23 +26,23 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
var sell = moneybin.GetWidget<OrderButtonWidget>("SELL");
if (sell != null)
{
sell.Pressed = () => Game.controller.orderGenerator is SellOrderGenerator;
sell.OnMouseDown = mi => { Game.controller.ToggleInputMode<SellOrderGenerator>(); return true; };
sell.Pressed = () => Game.world.OrderGenerator is SellOrderGenerator;
sell.OnMouseDown = mi => { Game.world.ToggleInputMode<SellOrderGenerator>(); return true; };
}
var powerdown = moneybin.GetWidget<OrderButtonWidget>("POWER_DOWN");
if (powerdown != null)
{
powerdown.Pressed = () => Game.controller.orderGenerator is PowerDownOrderGenerator;
powerdown.OnMouseDown = mi => { Game.controller.ToggleInputMode<PowerDownOrderGenerator>(); return true; };
powerdown.Pressed = () => Game.world.OrderGenerator is PowerDownOrderGenerator;
powerdown.OnMouseDown = mi => { Game.world.ToggleInputMode<PowerDownOrderGenerator>(); return true; };
}
var repair = moneybin.GetWidget<OrderButtonWidget>("REPAIR");
if (repair != null)
{
repair.Enabled = () => { return RepairOrderGenerator.PlayerIsAllowedToRepair( Game.world ); };
repair.Pressed = () => Game.controller.orderGenerator is RepairOrderGenerator;
repair.OnMouseDown = mi => { Game.controller.ToggleInputMode<RepairOrderGenerator>(); return true; };
repair.Pressed = () => Game.world.OrderGenerator is RepairOrderGenerator;
repair.OnMouseDown = mi => { Game.world.ToggleInputMode<RepairOrderGenerator>(); return true; };
repair.GetLongDesc = () => { return repair.Enabled() ? repair.LongDesc : repair.LongDesc + "\n\nRequires: Construction Yard"; };
}
}