@@ -13,6 +13,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OpenRA.Graphics;
|
||||
using OpenRA.Mods.RA.Activities;
|
||||
using OpenRA.Mods.RA.Orders;
|
||||
using OpenRA.Traits;
|
||||
|
||||
namespace OpenRA.Mods.RA
|
||||
@@ -45,17 +46,26 @@ namespace OpenRA.Mods.RA
|
||||
|
||||
public IEnumerable<IOrderTargeter> Orders
|
||||
{
|
||||
get { yield return new BeginMinefieldOrderTargeter(); }
|
||||
get
|
||||
{
|
||||
yield return new BeginMinefieldOrderTargeter();
|
||||
yield return new DeployOrderTargeter("PlaceMine", 5);
|
||||
}
|
||||
}
|
||||
|
||||
public Order IssueOrder(Actor self, IOrderTargeter order, Target target, bool queued)
|
||||
{
|
||||
if (!(order is BeginMinefieldOrderTargeter))
|
||||
return null;
|
||||
|
||||
var start = target.CenterPosition.ToCPos();
|
||||
self.World.OrderGenerator = new MinefieldOrderGenerator(self, start);
|
||||
return new Order("BeginMinefield", self, false) { TargetLocation = start };
|
||||
switch (order.OrderID)
|
||||
{
|
||||
case "BeginMinefield":
|
||||
var start = target.CenterPosition.ToCPos();
|
||||
self.World.OrderGenerator = new MinefieldOrderGenerator(self, start);
|
||||
return new Order("BeginMinefield", self, false) { TargetLocation = start };
|
||||
case "PlaceMine":
|
||||
return new Order("PlaceMine", self, false) { TargetLocation = self.Location };
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void ResolveOrder(Actor self, Order order)
|
||||
@@ -63,6 +73,14 @@ namespace OpenRA.Mods.RA
|
||||
if (order.OrderString == "BeginMinefield")
|
||||
minefieldStart = order.TargetLocation;
|
||||
|
||||
if (order.OrderString == "PlaceMine")
|
||||
{
|
||||
minefieldStart = order.TargetLocation;
|
||||
Minefield = new CPos[] { order.TargetLocation };
|
||||
self.CancelActivity();
|
||||
self.QueueActivity(new LayMines());
|
||||
}
|
||||
|
||||
if (order.OrderString == "PlaceMinefield")
|
||||
{
|
||||
var movement = self.Trait<IPositionable>();
|
||||
|
||||
Reference in New Issue
Block a user