public List <Vector2> GetRelevantPath(Vector2 start, uint team_index) { List <Vector2> rel_path = null; int min_path_length = bounds.GetWidth() * bounds.GetHeight(); foreach (var unit in units.Values) { if (unit.GetTeamIndex() == team_index) { continue; } var unit_tilepos = unit.GetTilePosition(); var path = pathfinder.FindPath(start, unit_tilepos); if (path == null || path.Count == 0) { continue; } var path_length = path.Count; if (path_length < min_path_length) { min_path_length = path_length; rel_path = path; } } return(rel_path); }
public Pathfinder(Battleground battleground, Tilemap main_tilemap, Tilemap decor_tilemap, FieldBounds field_bounds) { this.battleground = battleground; this.main_tilemap = main_tilemap; this.decor_tilemap = decor_tilemap; this.field_bounds = field_bounds; this.field = new int[field_bounds.GetWidth(), field_bounds.GetHeight()]; }