Port EnterTransport to the new Enter activity.

This dramatically simplifies the reservation logic,
which seemed to be needlessly complicated. This may
regress unexpected edge-cases.
This commit is contained in:
Paul Chote
2019-02-01 23:08:04 +00:00
committed by Oliver Brakmann
parent d6b7d5c4c7
commit 71dd3202c3
3 changed files with 107 additions and 41 deletions

View File

@@ -32,9 +32,6 @@ namespace OpenRA.Mods.Common.Traits
"Default - use force move modifier (Alt) to disable.")]
public readonly AlternateTransportsMode AlternateTransportsMode = AlternateTransportsMode.Force;
[Desc("Number of retries using alternate transports.")]
public readonly int MaxAlternateTransportAttempts = 1;
[Desc("Range from self for looking for an alternate transport (default: 5.5 cells).")]
public readonly WDist AlternateTransportScanRange = WDist.FromCells(11) / 2;
@@ -161,9 +158,11 @@ namespace OpenRA.Mods.Common.Traits
if (!order.Queued)
self.CancelActivity();
var transports = order.OrderString == "EnterTransports";
self.SetTargetLine(order.Target, Color.Green);
self.QueueActivity(new EnterTransport(self, targetActor, transports ? Info.MaxAlternateTransportAttempts : 0, !transports));
if (order.OrderString == "EnterTransports")
self.QueueActivity(new EnterTransports(self, order.Target));
else
self.QueueActivity(new EnterTransport(self, order.Target));
}
public bool Reserve(Actor self, Cargo cargo)