Only fork on new moves into a season
This commit is contained in:
parent
069cb4c548
commit
b241d206f4
|
@ -492,13 +492,12 @@ public class MovementPhaseAdjudicator : IPhaseAdjudicator
|
||||||
return progress;
|
return progress;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The season target of a successful move always advances.
|
// The season target of a new (i.e. not previously adjudicated) and successful move always advances.
|
||||||
IEnumerable<MoveOrder> incomingMoveOrders = decision.Orders
|
IEnumerable<MoveOrder> newIncomingMoves = decision.Orders
|
||||||
.OfType<MoveOrder>()
|
.OfType<MoveOrder>()
|
||||||
.Where(order => order.Season == decision.Season);
|
.Where(order => order.Season == decision.Season
|
||||||
logger.Log(depth, "decision.Orders = {0}", string.Join(", ", decision.Orders));
|
&& !world.OrderHistory[order.Season].DoesMoveOutcomes.ContainsKey(order));
|
||||||
logger.Log(depth, "incomingMoveOrders = {0}", string.Join(", ", incomingMoveOrders));
|
foreach (MoveOrder moveOrder in newIncomingMoves)
|
||||||
foreach (MoveOrder moveOrder in incomingMoveOrders)
|
|
||||||
{
|
{
|
||||||
DoesMove doesMove = decisions.DoesMove[moveOrder];
|
DoesMove doesMove = decisions.DoesMove[moveOrder];
|
||||||
progress |= ResolveDecision(doesMove, world, decisions, depth + 1);
|
progress |= ResolveDecision(doesMove, world, decisions, depth + 1);
|
||||||
|
@ -513,8 +512,7 @@ public class MovementPhaseAdjudicator : IPhaseAdjudicator
|
||||||
// The outcome of a battle is changed if:
|
// The outcome of a battle is changed if:
|
||||||
// 1. The outcome of a dislodge decision is changed,
|
// 1. The outcome of a dislodge decision is changed,
|
||||||
// 2. The outcome of an intra-timeline move decision is changed, or
|
// 2. The outcome of an intra-timeline move decision is changed, or
|
||||||
// 3. The outcome of an inter-timeline move decision with that season as the destination is
|
// 3. The outcome of an inter-timeline move decision with that season as the destination is changed.
|
||||||
// changed.
|
|
||||||
OrderHistory history = world.OrderHistory[decision.Season];
|
OrderHistory history = world.OrderHistory[decision.Season];
|
||||||
bool anyUnresolved = false;
|
bool anyUnresolved = false;
|
||||||
foreach (UnitOrder order in decision.Orders)
|
foreach (UnitOrder order in decision.Orders)
|
||||||
|
|
Loading…
Reference in New Issue