public override void Apply(ImperaPlus.Domain.User user, HistoryTurn historyTurn, DTO.Games.Map.Map previousMap) { if (historyTurn.Game.State == GameState.Ended) { return; } // Apply to current turn this.Apply(user, historyTurn.Game); // Apply to previous turn map this.ApplyMap(user, historyTurn.Game, previousMap); var visibleCountries = new HashSet<string>(previousMap.Countries.Select(x => x.Identifier)); var visibleActions = new List<HistoryEntry>(); foreach(var action in historyTurn.Actions.ToArray()) { // Check that at least origin or destination of each action is visible, or no country is involved if ((action.OriginIdentifier == null && action.DestinationIdentifier == null) || visibleCountries.Contains(action.OriginIdentifier) || visibleCountries.Contains(action.DestinationIdentifier)) { visibleActions.Add(action); } } historyTurn.Actions = visibleActions.ToArray(); }
public override void Apply(ImperaPlus.Domain.User user, HistoryTurn historyTurn, DTO.Games.Map.Map previousHistoryTurn) { // Do not modify anything }
public abstract void Apply(ImperaPlus.Domain.User user, HistoryTurn historyTurn, DTO.Games.Map.Map previousMap);