public void Undo() { // Undo our tracked statistic changes foreach (var pair in UnitStatisticChanges) { Unit.DecrementStatistic(pair.Key, pair.Value); } // Undo our tile changes too TileChanges.ForEach(x => x.Undo()); }