From 8aa548f70c594eed50ef090b7c8844499268fb1b Mon Sep 17 00:00:00 2001 From: michaeldgg2 <119738087+michaeldgg2@users.noreply.github.com> Date: Sat, 8 Jul 2023 20:15:34 +0200 Subject: [PATCH] Minelayer: extract creating BeginMinefield order so it can be triggered from outside --- OpenRA.Mods.Common/Traits/Minelayer.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Minelayer.cs b/OpenRA.Mods.Common/Traits/Minelayer.cs index cd314c70f5..e4f5287ac8 100644 --- a/OpenRA.Mods.Common/Traits/Minelayer.cs +++ b/OpenRA.Mods.Common/Traits/Minelayer.cs @@ -109,13 +109,7 @@ namespace OpenRA.Mods.Common.Traits switch (order.OrderID) { case "BeginMinefield": - 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); + return BeginMinefield(self, target, queued); case "PlaceMine": return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued); 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) { return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);