Minelayer: extract creating BeginMinefield order so it can be triggered from outside
This commit is contained in:
committed by
Matthias Mailänder
parent
ce6e73dc92
commit
8aa548f70c
@@ -109,13 +109,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
switch (order.OrderID)
|
switch (order.OrderID)
|
||||||
{
|
{
|
||||||
case "BeginMinefield":
|
case "BeginMinefield":
|
||||||
var start = self.World.Map.CellContaining(target.CenterPosition);
|
return BeginMinefield(self, target, queued);
|
||||||
if (self.World.OrderGenerator is MinefieldOrderGenerator generator)
|
|
||||||
generator.AddMinelayer(self);
|
|
||||||
else
|
|
||||||
self.World.OrderGenerator = new MinefieldOrderGenerator(self, start, queued);
|
|
||||||
|
|
||||||
return new Order("BeginMinefield", self, Target.FromCell(self.World, start), queued);
|
|
||||||
case "PlaceMine":
|
case "PlaceMine":
|
||||||
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
|
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
|
||||||
default:
|
default:
|
||||||
@@ -123,6 +117,17 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Order BeginMinefield(Actor self, Target target, bool queued)
|
||||||
|
{
|
||||||
|
var start = self.World.Map.CellContaining(target.CenterPosition);
|
||||||
|
if (self.World.OrderGenerator is MinefieldOrderGenerator generator)
|
||||||
|
generator.AddMinelayer(self);
|
||||||
|
else
|
||||||
|
self.World.OrderGenerator = new MinefieldOrderGenerator(self, start, queued);
|
||||||
|
|
||||||
|
return new Order("BeginMinefield", self, Target.FromCell(self.World, start), queued);
|
||||||
|
}
|
||||||
|
|
||||||
Order IIssueDeployOrder.IssueDeployOrder(Actor self, bool queued)
|
Order IIssueDeployOrder.IssueDeployOrder(Actor self, bool queued)
|
||||||
{
|
{
|
||||||
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
|
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
|
||||||
|
|||||||
Reference in New Issue
Block a user