5dplomacy/MultiversalDiplomacy/Orders/MoveOrder.cs

46 lines
1.3 KiB
C#
Raw Normal View History

2022-02-19 00:58:16 +00:00
using MultiversalDiplomacy.Model;
namespace MultiversalDiplomacy.Orders;
/// <summary>
/// An order for a unit to move to another province.
/// </summary>
public class MoveOrder : UnitOrder
{
/// <summary>
/// The destination season to which the unit should move.
2024-08-15 05:28:56 +00:00
/// TODO replace this with timeline and turn individually so ToString can do the proper format
2022-02-19 00:58:16 +00:00
/// </summary>
2024-08-15 05:28:56 +00:00
public string Season { get; }
2022-02-19 00:58:16 +00:00
/// <summary>
/// The destination location to which the unit should move.
/// </summary>
public Location Location { get; }
/// <summary>
/// The destination province to which the unit should move.
/// </summary>
public Province Province => this.Location.Province;
2024-08-15 05:28:56 +00:00
public MoveOrder(Power power, Unit unit, string season, Location location)
2022-02-19 00:58:16 +00:00
: base (power, unit)
{
this.Season = season;
this.Location = location;
}
2022-04-07 22:58:17 +00:00
public override string ToString()
{
2024-08-15 05:28:56 +00:00
return $"{this.Unit} -> {this.Season} {this.Province}";
2022-04-07 22:58:17 +00:00
}
/// <summary>
/// Returns whether another move order has the same destination as this order.
/// </summary>
public bool IsCompeting(MoveOrder other)
=> this != other
&& this.Season == other.Season
&& this.Province == other.Province;
2022-02-19 00:58:16 +00:00
}