33 lines
949 B
C#
33 lines
949 B
C#
|
using System.Collections.ObjectModel;
|
||
|
|
||
|
namespace MultiversalDiplomacy.Model;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Represents a unit that was dislodged and must retreat to another province.
|
||
|
/// </summary>
|
||
|
public class RetreatingUnit
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// The unit that was dislodged.
|
||
|
/// </summary>
|
||
|
public Unit Unit { get; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// Locations to which the dislodged unit may retreat. A dislodged unit may not retreat into
|
||
|
/// a province contested or held by another unit, nor into the province from which originated
|
||
|
/// the dislodging unit.
|
||
|
/// </summary>
|
||
|
public ReadOnlyCollection<(Season season, Location location)> ValidRetreats { get; }
|
||
|
|
||
|
public RetreatingUnit(Unit unit, List<(Season season, Location location)> validRetreats)
|
||
|
{
|
||
|
this.Unit = unit;
|
||
|
this.ValidRetreats = new(validRetreats);
|
||
|
}
|
||
|
|
||
|
public override string ToString()
|
||
|
{
|
||
|
return $"{this.Unit} (retreating)";
|
||
|
}
|
||
|
}
|