5dplomacy/MultiversalDiplomacy/Orders/SupportMoveOrder.cs
Jaculabilis 46c28a087c Shorten string representations
The new format for representing timeline, province, and season is T-PRO@S. Hopefully this is easier to read than the PRO T:S format.
2022-11-06 20:27:28 -08:00

46 lines
1.3 KiB
C#

using MultiversalDiplomacy.Model;
namespace MultiversalDiplomacy.Orders;
/// <summary>
/// An order for a unit to support another unit's move order.
/// </summary>
public class SupportMoveOrder : SupportOrder
{
/// <summary>
/// The destination season to which the target is moving.
/// </summary>
public Season Season { get; }
/// <summary>
/// The destination location to which the target is moving.
/// </summary>
public Location Location { get; }
/// <summary>
/// The destination province to which the target is moving.
/// </summary>
public Province Province => this.Location.Province;
/// <summary>
/// The target's destination's spatiotemporal location as a province-season tuple.
/// </summary>
public (Province province, Season season) Point => (this.Province, this.Season);
public SupportMoveOrder(Power power, Unit unit, Unit target, Season season, Location location)
: base(power, unit, target)
{
this.Season = season;
this.Location = location;
}
public override string ToString()
{
return $"{this.Unit} S {this.Target} -> {(this.Province, this.Season).ToShort()}";
}
public bool IsSupportFor(MoveOrder move)
=> this.Target == move.Unit
&& this.Season == move.Season
&& this.Location == move.Location;
}