public static OracleSuggestion Evaluate(this IEnumerable<WeightedMetric> metrics, Map before, OracleSuggestion suggestions) { var unit = new PositionedUnit(before.Unit.Unit, suggestions.Position); var after = before.TeleportUnit(suggestions.Position).LockUnit(); return new OracleSuggestion( suggestions.Position, suggestions.LockingDirection, after, metrics.Evaluate(before, after, unit)); }
private IEnumerable<Directions> GetPath(Map map, OracleSuggestion s) { return Finder.GetSpellLengthAndPath(map, s.Position).Item2.Concat(new[] { s.LockingDirection }); }